Fluxos de Trabalho Sequenciais

Os cartões adaptáveis agora dão suporte a fluxos de trabalho sequenciais atualizados na ação do usuário. Usando fluxos de trabalho sequenciais, os Cartões Adaptáveis são atualizados na ação do usuário e o usuário pode progredir por meio de uma série de cartões que exigem entrada do usuário. Action.Execute dá suporte a fluxos de trabalho sequenciais, o que permite que os desenvolvedores de bot retornem Cartões Adaptáveis em resposta a uma ação do usuário.

Por exemplo, veja um cenário em que a cafeteria deseja fazer um pedido para uma equipe ou canal. Com Action.Execute a escolha do usuário para vários itens, como alimentos e bebidas, pode ser registrado sequencialmente. O usuário também pode ir e voltar pelos cartões de acordo com a lógica definida pelo desenvolvedor do bot.

A imagem a seguir mostra o fluxo de trabalho sequencial:

Fluxo de trabalho sequencial

Um usuário pode progredir por meio de seu fluxo de trabalho sem modificar o cartão para outros usuários. O fluxo de trabalho também é útil para realizar testes usando cartões adaptáveis sequenciais. A imagem a seguir mostra que diferentes usuários podem estar em diferentes estágios do fluxo de trabalho e dos estados do cartão:

Estados de bot de catering

Observação

Para sincronizar o progresso do usuário entre dispositivos, use a refresh propriedade no JSON do Cartão Adaptável.

Fluxo de trabalho sequencial para cartões adaptáveis

O código a seguir fornece um exemplo de Cartões Adaptáveis:

{
  "$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.ExecuteInvocar o bot pode retornar Cartões Adaptáveis como uma resposta, que substitui o cartão existente no Teams. O exemplo a seguir fornece o que o bot retorna na seleção de alimentos ou bebidas ou confirmação do pedido:

  • Na seleção de alimentos do Cartão 1, o bot pode retornar uma cartão para seleção de bebidas que é Cartão 2.
  • Na seleção de bebidas do Cartão 2, o bot pode retornar uma cartão de confirmação de pedido que é o Cartão 3.
  • Na confirmação do pedido do Cartão 3, o bot pode retornar um pedido confirmado cartão que é o Cartão 4.

Invocar solicitação recebida no lado do bot

O código a seguir fornece um exemplo de uma solicitação de invocação recebida no lado do bot:

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

  // ... other properties omitted for brevity

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

Invocar resposta para retornar cartões adaptáveis

O código a seguir fornece um exemplo de uma resposta de invocação para retornar Cartões Adaptáveis:

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

Exemplos de código

Nome do exemplo Descrição .NET Node.js Manifesto
Bot de refeições do Teams Este exemplo mostra um bot que aceita pedido de comida usando Cartões Adaptáveis. Exibir NA NA
Cartões Adaptáveis de Fluxos de Trabalho Sequenciais Este exemplo demonstra a implementação de fluxos de trabalho sequenciais, exibições específicas do usuário e cartões adaptáveis atuais em bots. View View Exibir

Confira também