Flux de travail séquentiels

Les cartes adaptatives prennent désormais en charge les flux de travail séquentiels qui sont mis à jour en fonction de l’action de l’utilisateur. À l’aide de flux de travail séquentiels, les cartes adaptatives sont mises à jour sur l’action de l’utilisateur et l’utilisateur peut passer à une série de cartes qui nécessitent une entrée utilisateur. Action.Execute prend en charge les flux de travail séquentiels, ce qui permet aux développeurs de bots de retourner des cartes adaptatives en réponse à une action de l’utilisateur.

Par exemple, prenons un scénario où la cafétéria souhaite prendre une commande pour une équipe ou un canal. Avec Action.Execute le choix de l’utilisateur pour divers éléments, tels que les aliments et les boissons peuvent être enregistrés séquentiellement. L’utilisateur peut également parcourir les cartes selon la logique définie par le développeur du bot.

L’image suivante montre le flux de travail séquentiel :

Flux de travail séquentiel

Un utilisateur peut progresser dans son workflow sans modifier les carte pour les autres utilisateurs. Le flux de travail est également utile pour effectuer des questionnaires à l’aide de cartes adaptatives séquentielles. L’image suivante montre que différents utilisateurs peuvent se trouver à différentes étapes du flux de travail et des états du carte :

États du bot de restauration

Remarque

Pour synchroniser la progression de l’utilisateur entre les appareils, utilisez la refresh propriété dans la carte adaptative JSON.

Flux de travail séquentiel pour les cartes adaptatives

Le code suivant fournit un exemple de cartes adaptatives :

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    {
      "type": "TextBlock",
      "text": "Select from food options"
    },
    { 
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Execute",
          "title": "Chicken",
          "verb": "food",
          "data": {
              "item": "chicken"
          }
        },
        {
          "type": "Action.Execute",
          "title": "Beef",
          "verb": "food",
          "data": {
              "item": "beef"
          }
        },
        {
          "type": "Action.Execute",
          "title": "Vegan",
          "verb": "food",
          "data": {
              "item": "vegan"
          }
        }
      ]
    }
  ]
}

Action.Executel’appel du bot peut retourner des cartes adaptatives en tant que réponse, ce qui remplace les carte existantes dans Teams. L’exemple suivant fournit ce que le bot retourne lors de la sélection d’aliments ou de boissons ou de la confirmation de commande :

  • Sur la sélection d’aliments de la carte 1, le bot peut retourner un carte pour la sélection de boissons qui est carte 2.
  • Lors de la sélection de boisson à partir de la carte 2, le bot peut retourner une confirmation de commande carte qui est la carte 3.
  • Sur la confirmation de commande de la Carte 3, le bot peut retourner une commande confirmée carte qui est la Carte 4.

Demande d’appel reçue côté bot

Le code suivant fournit un exemple de demande d’appel reçue côté bot :

{ 
  "type": "invoke",
  "name": "adaptiveCard/action",

  // ... other properties omitted for brevity

  "value": { 
    "action": { 
      "type": "Action.Execute", 
      "id": "", 
      "verb": "food",
      "data": { 
            "item": "vegan"
      } 
    },
    "trigger": "manual" 
  }
}

Appeler la réponse pour retourner des cartes adaptatives

Le code suivant fournit un exemple de réponse d’appel pour retourner des cartes adaptatives :

string cardJson = "<adaptive card json>";
var card = JsonConvert.DeserializeObject(cardJson);

var adaptiveCardResponse = JObject.FromObject(new
 {
    statusCode = 200,
    type = "application/vnd.microsoft.adaptive.card",
    value = card
 });

Exemples de code

Exemple de nom Description .NET Node.js Manifeste
Bot de traiteur Teams Cet exemple montre un bot qui accepte la commande alimentaire à l’aide de cartes adaptatives. View N/A N/A
Flux de travail séquentiels Cartes adaptatives Cet exemple illustre l’implémentation des flux de travail séquentiels, des vues spécifiques à l’utilisateur et des cartes adaptatives actuelles dans les bots. View View View

Voir aussi