Teilen über


Sequenzielle Workflows

Adaptive Karten unterstützen jetzt sequenzielle Workflows, die bei Benutzeraktionen aktualisiert werden. Mithilfe von sequenziellen Workflows werden adaptive Karten bei Benutzeraktionen aktualisiert, und der Benutzer kann eine Reihe von Karten durchlaufen, die eine Benutzereingabe erfordern. Action.Execute unterstützt sequenzielle Workflows, mit denen Botentwickler adaptive Karten als Reaktion auf eine Benutzeraktion zurückgeben können.

Nehmen Sie beispielsweise ein Szenario, in dem die Cafeteria eine Bestellung für ein Team oder einen Kanal annehmen möchte. Mit Action.Execute der Auswahl des Benutzers für verschiedene Elemente, wie z. B. Speisen und Getränke, kann sequenziell aufgezeichnet werden. Der Benutzer kann auch die Karten gemäß der vom Botentwickler definierten Logik durchlaufen.

Die folgende Abbildung zeigt den sequenziellen Workflow:

Sequenzieller Workflow

Ein Benutzer kann seinen Workflow durchlaufen, ohne die Karte für andere Benutzer zu ändern. Der Workflow ist auch nützlich für die Durchführung von Quizzes mit sequenziellen adaptiven Karten. Die folgende Abbildung zeigt, dass sich unterschiedliche Benutzer in verschiedenen Phasen des Workflows befinden können und zu den Zuständen der Karte:

Zustände des Cateringbots

Hinweis

Um den Fortschritt des Benutzers geräteübergreifend zu synchronisieren, verwenden Sie die refresh -Eigenschaft in JSON für adaptive Karten.

Sequenzieller Workflow für adaptive Karten

Der folgende Code enthält ein Beispiel für adaptive Karten:

{
  "$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.ExecuteDurch den Aufruf des Bots können adaptive Karten als Antwort zurückgegeben werden, wodurch die vorhandenen Karte in Teams ersetzt werden. Das folgende Beispiel zeigt, was der Bot bei der Auswahl von Speisen oder Getränken oder auf einer Bestellbestätigung zurückgibt:

  • Auf der Essensauswahl von Karte 1 kann der Bot eine Karte für eine Auswahl an Getränken zurückgeben, die Karte 2 ist.
  • Bei der Getränkeauswahl aus Karte 2 kann der Bot eine Auftragsbestätigung Karte, d. h. Karte 3, zurückgeben.
  • Bei der Auftragsbestätigung von Karte 3 kann der Bot eine bestellung zurückgeben, die Karte, d. h. Karte 4, bestätigt wurde.

Auf botseitiger Seite empfangene Aufrufanforderung

Der folgende Code enthält ein Beispiel für eine Aufrufanforderung, die auf der Botseite empfangen wurde:

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

  // ... other properties omitted for brevity

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

Aufrufen der Antwort zum Zurückgeben adaptiver Karten

Der folgende Code enthält ein Beispiel für eine Aufrufantwort, um adaptive Karten zurückzugeben:

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

Codebeispiele

Beispielname Beschreibung .NET Node.js Manifest
Teams-Catering-Bot Dieses Beispiel zeigt einen Bot, der Lebensmittelbestellungen mit adaptiven Karten akzeptiert. Anzeigen
Adaptive Karten für sequenzielle Workflows In diesem Beispiel wird die Implementierung von sequenziellen Workflows, benutzerspezifischen Ansichten und aktuellen adaptiven Karten in Bots veranschaulicht. View View Anzeigen

Siehe auch