beanywilson
Hola a todos
Soy un NOOB completo en esto, metido en el fondo de un proyecto. Seguí el tutorial (https://docs.microsoft.com/en-us/power-bi/developer/walkthrough-push-data) y la solución funciona bien. Intenté agregar una columna a la tabla (NumberSold) y establecí el valor inicial en 1, ahora necesito actualizar ese valor para decir 5. No puedo encontrar una solución en la referencia de API, y todos mis intentos terminan con nuevas filas. Busqué en el foro y no veo una solución.
Supongo que tendré que eliminar todas las filas y actualizar, lo que podría ser un problema, dado el tamaño final del conjunto de datos que se me pide que cree.
El codigo es
AddRows vacíos estáticos privados (string datasetId, string tableName)
{
string powerBIApiAddRowsUrl = String.Format («https://api.powerbi.com/v1.0/myorg/datasets/{0}/tables/{1}/rows», datasetId, tableName);
Solicitud HttpWebRequest = System.Net.WebRequest.Create (powerBIApiAddRowsUrl) como System.Net.HttpWebRequest;
request.KeepAlive = true;
request.Method = «POST»;
request.ContentLength = 0;
request.ContentType = «aplicación / json»;
// Agregar token al encabezado de la solicitud
request.Headers.Add («Autorización», String.Format («Portador {0}», token));
// Contenido JSON para la fila de productos
string filasJson = «{» filas «:» +
«[{«ProductID»:1,»Name»:»Adjustable Race»,»Category»:»Components»,»ManufacturedOn»:»07/30/2015″,»NumberSold»:5},» +
«{«ProductID»:2,»Name»:»LL Crankarm»,»Category»:»Components»,»ManufacturedOn»:»07/30/2014″,»NumberSold»:5},» +
«{«ProductID»:3,»Name»:»HL Mountain Frame – Silver»,»Category»:»Bikes»,»ManufacturedOn»:»07/30/2014″,»NumberSold»:5}]} «;
// POST solicitud web
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes (rowsJson);
request.ContentLength = byteArray.Length;
// Escribe el byte JSON[] en una corriente
usando (Stream writer = request.GetRequestStream ())
{
escritor.Escribir (byteArray, 0, byteArray.Length);
var respuesta = (HttpWebResponse) request.GetResponse ();
Console.WriteLine («Filas agregadas»);
}
}
Jayendran
Hola @beanywilson,
Desafortunadamente, hay algunas funciones menos disponibles para Push DataSet API, una de ellas es actualizar las filas
Puede encontrar la funcionalidad disponible para Push DataSet API a continuación
https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets
Según esa solo 2 funciones disponibles para Filas, puede agregar nuevas filas o eliminar filas
Conjuntos de datos DeleteRows
Conjuntos de datos PostRows
Le sugiero que proporcione esta funcionalidad como una nueva idea en el Foro de ideas.
beanywilson
Gracias, @Jayendran – Alguien preguntó hace 3 años – https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/9366600-update-rows-rest-api – todavía no hay movimiento, aunque fue enviado para revisión hace 3 años?
Lewis-H
Pasos para enviar datos a un conjunto de datos
- Paso 1: registrar una aplicación con Azure AD
- Paso 2: obtenga un token de acceso de autenticación
- Paso 3: crear un conjunto de datos en Power BI
- Paso 4: obtenga un conjunto de datos para agregar filas a una tabla de Power BI
- Paso 5: agregar filas a una tabla de Power BI
La siguiente sección es una discusión general de las operaciones de la API de Power BI que envían datos.
Operaciones de la API de Power BI para enviar datos
Con la API REST de Power BI, puede enviar orígenes de datos a Power BI. Cuando una aplicación agrega filas a un conjunto de datos, los mosaicos del tablero se actualizan automáticamente con los nuevos datos. Para enviar datos, use el PostDataSet y PostRows operaciones. Para encontrar un conjunto de datos, use el obtener DataSet operación. Puede pasar un ID de grupo para trabajar con un grupo para cualquiera de estas operaciones. Para obtener una lista de ID de grupo, use los grupos de obtención operación.
Estas son las operaciones para enviar datos a un conjunto de datos:
- PostDataset
- Obtener conjuntos de datos
- Filas de publicaciones
- Obtener grupos
Puede crear un conjunto de datos en Power BI pasando una cadena de notación de objetos JavaScript (JSON) al servicio Power BI.
La cadena JSON de un conjunto de datos tiene el siguiente formato:
Objeto JSON de conjunto de datos de Power BI
{"name": "dataset_name", "tables": [{"name": "", "columns": [{ "name": "column_name1", "dataType": "data_type"}, { "name": "column_name2", "dataType": "data_type"}, { ... } ] } ] }
Para nuestro ejemplo de conjunto de datos de marketing de ventas, pasaría una cadena JSON como se muestra a continuación. En este ejemplo, Ventas y Marketing es el nombre del conjunto de datos y Producto es el nombre de la tabla. Después de definir la tabla, define el esquema de la tabla. Para el Ventas y Marketing conjunto de datos, el esquema de la tabla tiene estas columnas: ProductID, Manufacturer, Category, Segment, Product e IsCompete.
Ejemplo JSON de objeto de conjunto de datos
{ "name": "SalesMarketing", "tables": [ { "name": "Product", "columns": [ { "name": "ProductID", "dataType": "int" }, { "name": "Manufacturer", "dataType": "string" }, { "name": "Category", "dataType": "string" }, { "name": "Segment", "dataType": "string" }, { "name": "Product", "dataType": "string" }, { "name": "IsCompete", "dataType": "bool" } ] } ] }
¡Espero que esta información te ayude!
Saludos,
Luis
Desarrollador
Apps4rent | O365CloudExperts
beanywilson
En respuesta a Lewis-H
Gracias @ Lewis-H. Hice eso y cada inserción de datos crea una nueva fila. Terminé usando una puerta de enlace y actualizando los datos históricos, y ahora mira la transmisión en tiempo real. Gracias por la sugerencia.
Saludos
Jayendran
Hola @beanywilson,
Desafortunadamente, hay algunas funciones menos disponibles para Push DataSet API, una de ellas es actualizar las filas
Puede encontrar la funcionalidad disponible para Push DataSet API a continuación
https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets
Según esa solo 2 funciones disponibles para Filas, puede agregar nuevas filas o eliminar filas
Conjuntos de datos DeleteRows
Conjuntos de datos PostRows
Le sugiero que proporcione esta funcionalidad como una nueva idea en el Foro de ideas.