Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Transformar datos

Hola a todos
Espero que puedas ayudarme. Vea las dos imágenes adjuntas. La imagen "Listas de proyectos" es una lista de proyectos de una API (primera página). Ahora, para cada proyecto o fila, la última columna proporciona otra API para explorar en profundidad cada proyecto. El taladro resultante para el proyecto seleccionado es la imagen "Proyecto". El proyecto tiene una combinación de datos/lista/registro.
Idealmente, debería tener una sola tabla (Proyectos-todo) extraiendo toda la información de cada API ("Proyecto") proporcionada en cada página y fila de "Lista de proyectos". La primera columna de "Proyecto" debe ser las columnas de "Proyectos-todo", y la segunda columna "Proyectos" debe ser las filas de cada proyecto/fila. Para esto tendría que:
  • Lea cuántas páginas tiene mi origen de datos (consulta la primera página, pero no proporciona cuántas páginas)
  • Para cada página llame a la API de cada proyecto/fila
  • Para cada proyecto de API, transforme diferentes tipos de datos.
  • Combinar resultados en una sola tabla. Esta sería la tabla de hechos (Proyectos-todos).
¿Sabes cómo hacer esto? ¿Conoces alguna fuente web donde pueda aprender a hacer esto? Busqué en Google escenarios de "transformación de datos diferentes" y leí varios mensajes en este foro, pero nada.
Gracias
Projects list.pngProject.jpg

2 Replies

  • v-lid-msft's avatar
    v-lid-msft
    Icon for Community Support rankCommunity Support

    Hola @scastrontu ,

    Podemos agregar una columna personalizada a cada fila de la consulta 1, que llama a api para cada identificador, luego expande la nueva columna en columnas y, a continuación, el resultado puede combinarse en una tabla. Si desea contar el número de páginas, podemos hacerlo con código dax.


    Saludos

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hola

      Gracias por esto. Tengo un problema con la función que creé.

      En primer lugar, de la tabla Projects-list creé una nueva columna que extrae solo el número del proyecto (WTNumber) y, a continuación, una nueva columna "Invoke Custrom Function" para llamar a cada API. La función se basa en un número WTNumber aleatorio, que utiliza WTNumber como variable.

      Consulta de función:

      (WTNumber como número) como tabla >
      Dejar
      Fuente: Json.Document(Web.Contents("https://XXXXX/api/4.2/records/Project/WTNumber")),
      "Convertido a tabla" - Record.ToTable(Source),
      "Tabla transpuesta" - Table.Transpose("Converted to Table"),
      "Encabezados promocionados" ? Table.PromoteHeaders("Tabla transpuesta", [PromoteAllScalars-true])
      En
      "Encabezados promocionados"

      Sin embargo, si invoco esta función obtengo el mismo problema en la salida y, a continuación, para cada fila de Projects-list.

      Se ha producido un error en la consulta ''. DataSource.Error: Web.Contents no pudo obtener contenido de 'https://xxxx/api/4.2/records/Project/WTNumber' (400): Solicitud incorrecta

      Traté de modificar la función para arreglar esto, pero nada:

      1.

      WTNumber ?> xxxxx/WTNumber

      2.

      Número de WT 😆 xxxxx/Number.ToText(WTNumber) o Int64.From(WTNumber)

      Gracias