Compartir a través de


Mostrar datos de matrices en tarjetas adaptables

Tarjetas adaptables es una herramienta versátil que se utiliza para crear conversaciones interactivas y atractivas en Copilot Studio, y se puede utilizar para mostrar una variedad de elementos. En este artículo, para simplificar, utilizaremos un ejemplo codificado. Sin embargo, es probable que obtengas los datos de una fuente más dinámica, como una lista, mediante el uso de SharePoint . Power Automate

Inicializar una variable para la lista de tareas

En este escenario, tiene una lista de tareas en una matriz y desea mostrar la lista de tareas en agente.

  1. Seleccionar Agregar nodo (+) para agregar un nodo y luego Seleccionar Administración de variables>Establecer un valor de variable.

  2. Seleccione la casilla debajo de Establecer variable y luego seleccione Crear nueva.

  3. Seleccionar la nueva variable (por ejemplo, Var1) para mostrar el panel Propiedades de la variable .

  4. Asigne un nombre significativo a su variable, como EmployeeTaskList.

  5. Pegue el siguiente JSON en el campo Para valorar :

    {
        "employeeName": "Alice",
        "employeeID": "E12345",
        "employeeDepartment": "HR",
        "employeeTasks": [
            {
                "taskID": "T001",
                "taskDescription": "Review employee benefits",
                "dueDate": "2023-10-15"
            },
            {
                "taskID": "T002",
                "taskDescription": "Conduct new hire orientation",
                "dueDate": "2023-09-30"
            },
            {
                "taskID": "T003",
                "taskDescription": "Update HR policies",
                "dueDate": "2023-11-05"
            }
        ]
    }
    

Analizar los datos JSON en una tabla

Este nodo de gestión de variables se utiliza para convertir la cadena JSON en una tabla que se puede utilizar más adelante en Adaptive tarjeta.

  1. Seleccionar Agregar nodo (+) y Gestión de variables>Analizar valor.

  2. En Valor de análisis, Seleccionar la EmployeeTaskList variable que creó en la sección anterior.

  3. En Tipo de actividad, seleccione Desde datos de referencia.

  4. Seleccionar </> Obtener el esquema del JSON de muestra, luego copiar y pegar el mismo JSON en la sección Desde datos de muestra de la configuración de Tipo de datos . Los datos de ejemplo generan automáticamente el esquema y el tipo de datos. Seleccione Confirmar.

  5. En Guardar como, Seleccionar Crear una nueva variable.

  6. Seleccionar la nueva variable y cambie el Nombre de la variable a TaskTable.

Captura de pantalla del nodo Analizar valor.

Mostrar los datos en una Tarjeta adaptable

Para mostrar los datos en un tarjeta adaptable, utilice un nodo Mensaje.

  1. Seleccione + Agregar y seleccione Tarjeta adaptable desde el menú desplegable.

  2. Seleccione la sección Soporte físico para mostrar el panel Propiedades de la tarjeta adaptable.

  3. Dentro del panel Propiedades de la tarjeta adaptable a la derecha, seleccione el menú desplegable </> Editar JSON y cámbielo a Fórmula.

  4. Pegue el código siguiente.

    {
      type: "AdaptiveCard",
      version: "1.5",
      body: [
        {
          type: "TextBlock",
          text: "Employee Information",
          weight: "bolder",
          size: "large"
        },
        {
          type: "TextBlock",
          text: "Employee Name: " & Topic.TaskTable.employeeName,
          separator: true
        },
        {
          type: "TextBlock",
          text: "Employee ID: " & Topic.TaskTable.employeeID,
          separator: true
        },
        {
          type: "TextBlock",
          text: "Department: " & Topic.TaskTable.employeeDepartment,
          separator: true
        },
        {
          type: "TextBlock",
          text: "Tasks",
          weight: "bolder",
          size: "medium",
          separator: true
        },
        {
          type: "Container",
          items: 
            ForAll(Topic.TaskTable.employeeTasks,
              {
                type: "TextBlock",
                text: "- Task ID: " & taskID & ",  Description: " & taskDescription & ", Due Date: " & dueDate ,
                wrap: true
              }
          )
        }
      ]
    }
    
  5. Ahora podemos hacer referencia a las propiedades del registro JSON usando expresiones como Topic.TaskTable.employeeName.

  6. Para mostrar elementos de matriz en una tarjeta adaptable, use el elemento Contenedor con la propiedad items.

La propiedad items acepta una matriz de elementos como valor. Cada elemento de la matriz aparece en la Tarjeta adaptable, utilizando la función "ForAll". Referencie la matriz Topic.TaskTable.employeeTasks, ya que permite acceder a cada una de sus propiedades.

Si desea crear el tema sin seguir estas instrucciones, puede seleccionar Abrir editor de código en la barra de comandos superior derecha y pegar el siguiente código YAML en la vista del editor de código.

kind: AdaptiveDialog
beginDialog:
  kind: OnRecognizedIntent
  id: main
  intent:
    displayName: Untitled
    triggerQueries:
      - array

  actions:
    - kind: SetVariable
      id: setVariable_uFs69M
      variable: Topic.EmployeeTaskList
      value: "{     \"employeeName\": \"Alice\",     \"employeeID\": \"E12345\",     \"employeeDepartment\": \"HR\",     \"employeeTasks\": [         {             \"taskID\": \"T001\",             \"taskDescription\": \"Review employee benefits\",             \"dueDate\": \"2023-10-15\"         },         {             \"taskID\": \"T002\",             \"taskDescription\": \"Conduct new hire orientation\",             \"dueDate\": \"2023-09-30\"         },         {             \"taskID\": \"T003\",             \"taskDescription\": \"Update HR policies\",             \"dueDate\": \"2023-11-05\"         }     ] }"

    - kind: ParseValue
      id: 58zKdp
      variable: Topic.TaskTable
      valueType:
        kind: Record
        properties:
          employeeDepartment: String
          employeeID: String
          employeeName: String
          employeeTasks:
            type:
              kind: Table
              properties:
                dueDate: String
                taskDescription: String
                taskID: String

      value: =Topic.EmployeeTaskList

    - kind: SendActivity
      id: sendActivity_oNXY1r
      activity:
        attachments:
          - kind: AdaptiveCardTemplate
            cardContent: |-
              ={
                type: "AdaptiveCard",
                version: "1.5",
                body: [
                  {
                    type: "TextBlock",
                    text: "Employee Information",
                    weight: "bolder",
                    size: "large"
                  },
                  {
                    type: "TextBlock",
                    text: "Employee Name: " & Topic.TaskTable.employeeName,
                    separator: true
                  },
                  {
                    type: "TextBlock",
                    text: "Employee ID: " & Topic.TaskTable.employeeID,
                    separator: true
                  },
                  {
                    type: "TextBlock",
                    text: "Department: " & Topic.TaskTable.employeeDepartment,
                    separator: true
                  },
                  {
                    type: "TextBlock",
                    text: "Tasks",
                    weight: "bolder",
                    size: "medium",
                    separator: true
                  },
                  {
                    type: "Container",
                    items: 
                      ForAll(Topic.TaskTable.employeeTasks,
                        {
                          type: "TextBlock",
                          text: "- Task ID: " & taskID & ",  Description: " & taskDescription & ", Due Date: " & dueDate ,
                          wrap: true
                        }
                    )
                  }
                ]
              }