Vis data fra arrays i Adaptive kort
Adaptive kort er et alsidigt værktøj, der bruges til at skabe interaktive og engagerende samtaler i Copilot Studio, og kan bruges til at vise en række elementer. I denne artikel bruger vi for nemheds skyld et hårdkodet eksempel. Du vil dog sandsynligvis få dataene fra en mere dynamisk kilde, f.eks. en SharePoint liste, ved hjælp af Power Automate.
Initialiser en variabel med opgavelisten
I dette scenarie har du en liste over opgaver i en matrix, og du vil have vist listen over opgaver i Helpdesk-medarbejder.
Vælg Tilføj node (+) for at tilføje en node, og vælg derefter Variabelstyring>Angiv en variabelværdi.
Markér feltet under Angiv variabel, og vælg derefter Opret nyt.
Vælg den nye variabel (f.eks.)
Var1
for at få vist panelet Variabelegenskaber .Navngive variablen noget meningsfuldt, f.eks.
EmployeeTaskList
.Indsæt følgende JSON i feltet Til-værdi :
{ "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" } ] }
Parse JSON-dataene i en tabel
Denne variabelstyringsnode bruges til at konvertere JSON-strengen til en tabel, der kan bruges senere på det adaptive kort.
Vælg Tilføj node (+) og Parseværdi for> variabelstyring.
Under Parse værdi skal du vælge den
EmployeeTaskList
variabel, du oprettede i forrige afsnit.Vælg Fra eksempeldata under Datatype.
Vælg </> hent skema fra eksempel-JSON, og kopiér og indsæt derefter den samme JSON i sektionen Fra eksempeldata i indstillingerne for datatype . Eksempeldataene genererer automatisk skemaet og datatypen. Vælg Bekræft.
Under Gem som skal du vælgeOpret en ny variabel .
Vælg den nye variabel, og skift Variabelnavn til
TaskTable
.
Vis dataene på et adaptivt kort
Hvis du vil have vist dataene på et adaptivt kort, skal du bruge en meddelelsesnode.
Vælg + Tilføj, og vælg Adaptivt kort på rullelisten.
Vælg sektionen Medie for at få vist panelet Adaptive kortegenskaber.
I panelet Adaptive kortegenskaber i højre side, skal du vælge </> Rediger JSON-rullemenuen og ændre det til Formel.
Indsæt følgende kode.
{ 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 } ) } ] }
Nu kan vi referere til egenskaberne for JSON-posten ved hjælp af udtryk som f.eks.
Topic.TaskTable.employeeName
.For at vise matrixelementer i et adaptivt kort skal du bruge Objektbeholder-elementet med elementer-egenskaben.
Egenskaben elementer accepterer en række elementer som dens værdi. Hvert element i arrayet vises i det adaptive kort ved hjælp af 'ForAll'-funktionen. Reference til Topic.TaskTable.employeeTasks
matrixen, da den giver adgang til alle egenskaber.
Hvis du vil oprette emne uden at følge disse instruktioner, kan du vælge Open code editor fra kommandolinjen øverst til højre og indsætte følgende YAML-kode i kodeeditorvisningen.
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
}
)
}
]
}