Anónimo
Hola a todos,
Aquí hay un trasfondo de lo que estoy tratando de lograr.
Tengo un archivo de texto que tiene los pasos de consulta M para un conjunto de datos del que obtengo los pasos de consulta M. Cuando agrego pasos simples de consulta M como cambiar el nombre de una columna en el archivo de texto y actualizo el conjunto de datos en el escritorio de PowerBI, funciona bien. Pero cuando agrego pasos complejos como Fusionar/Unir otro conjunto de datos en el archivo de texto y actualizo el conjunto de datos, ¡la actualización de datos falla! ¿Esto se debe a que el modelo de datos subyacente cambia cuando me uno a otro conjunto de datos?
No tengo ninguna relación exclusiva definida en el modelo de datos, leí algunas publicaciones relacionadas con esto, pero eso no ayudó.
Aquí hay una captura de pantalla del error que recibo cuando actualizo el conjunto de datos.
Este es un archivo de texto que contiene los pasos de mi consulta Q.
Por favor, sugiera si hay una solución a esto.
Gracias,
Ajay
v-jiascu-msft
Hola Ajay,
Consulte este maravilloso blog: loading-power-query-m-code-from-text-files/.
Parece que solo necesita agregar el segundo parámetro «#shared». Por favor, consulte la instantánea a continuación.
Por favor, comprenda que este enlace se proporciona «TAL CUAL» sin garantías ni garantías de cambios de contenido, y no confiere ningún derecho.
Atentamente,
Anónimo
En respuesta a v-jiascu-msft
Hola Jiascu,
Gracias por su respuesta.
Ya tengo el segundo parámetro incorporado en mi código: captura de pantalla a continuación. Y esto funciona muy bien si tengo pasos de consulta M simples como «Cambiar el nombre de una columna». Recibo un error cuando agregué otro paso en mi archivo de texto para unirme a otro conjunto de datos e intenté actualizar el conjunto de datos.
Gracias,
Ajay
v-jiascu-msft
En respuesta a Anónimo
Hola Ajay,
Probé las tablas Merge (join) con éxito. ¿Puedes compartir tu código en modo Texto que podemos copiar y pegar aquí? Primero elimine los parámetros de conexión (las partes sensibles).
Atentamente,
Anónimo
En respuesta a v-jiascu-msft
Hola Jiascu,
Aquí están mis pasos de consulta M a continuación. Consulte los últimos 2 pasos donde me estoy uniendo a otro conjunto de datos.
dejar
FnObtenerUnaPágina =
(url) como registro =>
dejar
Fuente = Json.Document(Web.Contents(url, [Headers=[#»Authorization»=»bearer ******Auth_String here******»]])),
toTable = Table.FromRecords({Fuente}),
#»Datos ampliados» = Table.ExpandListColumn(toTable, «data»),
#»Datos ampliados1″ = Table.ExpandRecordColumn(#»Datos ampliados», «datos», {«id»,»título»}, {«datos.id», «datos.título»}),
#»Enlaces ampliados» = Table.ExpandRecordColumn(#»Datos ampliados1″, «enlaces», {«self», «last», «next»}, {«link_self», «link_last», «link_next»}),
linknext= #»Enlaces ampliados»[link_next],
#»Columnas combinadas» = Table.CombineColumns(#»Datos ampliados1″,{«data.id», «data.title»},Combiner.CombineTextByDelimiter(«,», QuoteStyle.None),»Merged»),
id = prueba #»Columnas combinadas»[Merged] de lo contrario nulo,
next = prueba List.First(linknext) de lo contrario nulo,
resolución = [Id=id, Next=next]
en res,
ListaGenerada =
Lista.Generar(
()=>[i=0, res = FnGetOnePage(«******Data source URL here******»)],
cada [i]<50 y [res][Id]<> nulo,
cada [i=[i]+1, res = FnGetOnePage([res][Next])],
cada [res]),
#»Converted_toTable» = Table.FromList(GeneratedList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#»Expanded_Record» = Table.ExpandRecordColumn(#»Converted_toTable», «Column1», {«Id», «Next»}, {«Column1.Id», «Column1.Next»}),
#»Lista_Expandida» = Table.ExpandListColumn(#»Registro_Expandido», «Columna1.Id»),
#»Split_Column_by_Delimiter» = Table.SplitColumn(#»Expanded_List», «Column1.Id», Splitter.SplitTextByEachDelimiter({«,»}, QuoteStyle.Csv, false), {«Column1.Id.1», «Column1.Id .2»}),
#»Changed_Data_Type» = Table.TransformColumnTypes(#»Split_Column_by_Delimiter»,{{«Column1.Id.1», Int64.Type}, {«Column1.Id.2», type text}}),
#»Renamed_Columns» = Table.RenameColumns(#»Changed_Data_Type»,{{«Column1.Id.1», «Survey_Id»}, {«Column1.Id.2», «Survey_Name_New»}, {«Column1.Next», «URLSiguiente_Nueva»}}),
#»Consultas combinadas» = Table.NestedJoin(#»Renamed_Columns»,{«Survey_Id»},Survey_Details,{«Survey_Id»},»Survey_Details»,JoinKind.LeftOuter),
#»Consulta ampliada1″ = Table.ExpandTableColumn(#»Consultas combinadas», «Detalles_de_encuesta», {«Nombre_de_encuesta», «Columna1.Siguiente»}, {«Detalles_de_encuesta.Nombre_de_encuesta», «Detalles_de_encuesta.Columna1.Siguiente»})
en
#»Consulta ampliada1″
v-jiascu-msft
En respuesta a Anónimo
Hola @Anónimo,
encuentro la consulta»Encuesta_Detalles» no está en el archivo. Eso tiene sentido como dice el mensaje de error. Te sugiero que lo pongas en el archivo también. Si desea utilizar esta función, ¿por qué no agregar también todas las partes relacionadas en el archivo? Por favor inténtalo.
Atentamente,
Anónimo
En respuesta a v-jiascu-msft
Hola Jiascu,
El conjunto de datos Survey_Details se carga por separado, por lo que sus pasos de consulta M no están disponibles en este archivo de texto.
¿Puedo cargar dos conjuntos de datos desde una fuente de archivo de texto común? Comparta amablemente el código de muestra si lo tiene a mano.
Gracias,
Ajay
v-jiascu-msft
En respuesta a Anónimo
Hola @Anónimo,
¿Podría marcar las respuestas adecuadas como soluciones?
Atentamente,
v-jiascu-msft
En respuesta a Anónimo
Hola Ajay,
Sí, podemos agregar las dos fuentes en el archivo de texto directamente. Consulte la demostración simple a continuación.
let
// source 1 Source1 = Sql.Database("Server", "DB"), dbo_BI_Salario = Source1{[Schema="dbo",Item="BI_Salario"]}[Data],
// source 2 Source2 = Excel.Workbook(File.Contents("D:DataSourceds.xlsx"), null, true), BI_Venda = Source2{[Item="Table1",Kind="Table"]}[Data], #"Merged Queries" = Table.NestedJoin(dbo_BI_Salario,{"Cpf_Vendedor"},BI_Venda,{"Cpf_Vendedor"},"BI_Venda",JoinKind.LeftOuter), #"Expanded BI_Venda" = Table.ExpandTableColumn(#"Merged Queries", "BI_Venda", {"Id_item", "Id_Venda", "Cpf_Vendedor", "Mes", "Ano", "Id_Produto", "Valor_Venda", "Lucro_Venda", "Comissao_Venda"}, {"BI_Venda.Id_item", "BI_Venda.Id_Venda", "BI_Venda.Cpf_Vendedor", "BI_Venda.Mes", "BI_Venda.Ano", "BI_Venda.Id_Produto", "BI_Venda.Valor_Venda", "BI_Venda.Lucro_Venda", "BI_Venda.Comissao_Venda"}) in #"Expanded BI_Venda"
Atentamente,