Condividi tramite


Visualizzare i dati delle matrici nelle schede adattive

Le schede adattive sono uno strumento versatile utilizzato per creare conversazioni interattive e coinvolgenti in Copilot Studio e possono essere utilizzate per visualizzare una serie di elementi. In questo articolo, per semplicità, usiamo un esempio codificato direttamente. Tuttavia, è probabile che i dati vengano ottenuti da un'origine più dinamica, ad esempio un elenco SharePoint, utilizzando Power Automate.

Inizializzare una variabile con l'elenco delle attività

In questo scenario, si dispone di un elenco di attività in un array e si desidera visualizzare l'elenco delle attività nell'agente.

  1. Seleziona Aggiungi nodo (+) per aggiungere un nodo, quindi seleziona Gestione variabili>Imposta un valore variabile.

  2. Seleziona la casella in Imposta variabile, quindi seleziona Crea nuovo.

  3. Seleziona la nuova variabile (ad esempio, Var1) per visualizzare il pannello Proprietà della variabile.

  4. Assegna un nome significativo alla variabile, ad esempio EmployeeTaskList.

  5. Incolla il seguente JSON nel campo A valore:

    {
        "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"
            }
        ]
    }
    

Analizza i dati JSON in una tabella

Questo nodo di gestione delle variabili consente di convertire la stringa JSON in una tabella che può essere usata successivamente nella scheda adattiva.

  1. Seleziona Aggiungi nodo (+) e Gestione delle variabili>Analizza il valore.

  2. In Analizza valore seleziona la variabile EmployeeTaskList creata nella sezione precedente.

  3. In Tipo di dati seleziona Dati di esempio.

  4. Seleziona </> Ottieni schema da codice JSON di esempio, quindi copia e incolla lo stesso codice JSON nella sezione Dai dati di esempio delle impostazioni Tipo di dati. I dati di esempio generano automaticamente lo schema e il tipo di dati. Seleziona Conferma.

  5. In Salva come, seleziona Crea una nuova variabile.

  6. Seleziona la nuova variabile e modifica Nome variabile in TaskTable.

Screenshot del nodo

Visualizza i dati in una scheda adattiva

Per visualizzare i dati in una scheda adattiva, utilizza un nodo Messaggio.

  1. Seleziona Aggiungi e Scheda adattiva dal menu a discesa.

  2. Seleziona la sezione Supporti per mostrare il pannello Proprietà della scheda adattiva.

  3. Nel pannello Proprietà della scheda adattiva a destra, seleziona il menu a discesa </> Modifica JSON e modificalo in Formula.

  4. Incolla il codice seguente.

    {
      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. Ora possiamo fare riferimento alle proprietà del record JSON utilizzando espressioni come Topic.TaskTable.employeeName.

  6. Per visualizzare gli elementi della matrice in una scheda adattiva, utilizza l'elemento Contenitore con la proprietà delle voci.

La proprietà delle voci accetta una matrice di elementi come valore. Ogni elemento della matrice viene visualizzato nella scheda adattiva, utilizzando la funzione "ForAll". Fai riferimento alla matrice Topic.TaskTable.employeeTasks, poiché consente l'accesso a ciascuna delle sue proprietà.

Se desideri creare argomento senza seguire queste istruzioni, puoi selezionare Apri editor di codice dalla barra dei comandi in alto a destra e incollare il seguente codice YAML nella visualizzazione dell'editor di codice.

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
                        }
                    )
                  }
                ]
              }