Flujos de trabajo secuenciales
Las tarjetas adaptables ahora admiten flujos de trabajo secuenciales que se actualizan en la acción del usuario. Con flujos de trabajo secuenciales, las tarjetas adaptables se actualizan en la acción del usuario y el usuario puede avanzar a través de una serie de tarjetas que requieren la entrada del usuario.
Action.Execute
admite flujos de trabajo secuenciales, lo que permite a los desarrolladores de bots devolver tarjetas adaptables en respuesta a una acción del usuario.
Por ejemplo, tome un escenario en el que la cafetería quiera realizar un pedido para un equipo o canal. Con Action.Execute
la elección del usuario para diversos artículos, como alimentos y bebidas, se puede registrar secuencialmente. El usuario también puede ir y venir a través de las tarjetas según la lógica definida por el desarrollador del bot.
En la imagen siguiente se muestra el flujo de trabajo secuencial:
Un usuario puede avanzar a través de su flujo de trabajo sin modificar la tarjeta para otros usuarios. El flujo de trabajo también es útil para realizar cuestionarios mediante tarjetas adaptables secuenciales. En la imagen siguiente se muestran diferentes usuarios que pueden estar en diferentes fases del flujo de trabajo y los estados de la tarjeta:
Nota:
Para sincronizar el progreso del usuario entre dispositivos, use la refresh
propiedad en JSON de tarjeta adaptable.
Flujo de trabajo secuencial para tarjetas adaptables
El código siguiente proporciona un ejemplo de tarjetas adaptables:
{
"$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.Execute
La invocación del bot puede devolver tarjetas adaptables como respuesta, lo que reemplaza a la tarjeta existente en Teams.
En el ejemplo siguiente se proporciona lo que devuelve el bot en la selección de alimentos o bebidas o la confirmación del pedido:
- En la selección de alimentos de la Tarjeta 1, el bot puede devolver una tarjeta para la selección de bebidas que es la Tarjeta 2.
- En la selección de bebidas de la Tarjeta 2, el bot puede devolver una tarjeta de confirmación de pedido que sea la Tarjeta 3.
- En la confirmación del pedido de la Tarjeta 3, el bot puede devolver una tarjeta confirmada por pedido que sea la Tarjeta 4.
Invocación de la solicitud recibida en el lado del bot
El código siguiente proporciona un ejemplo de una solicitud de invocación recibida en el bot:
{
"type": "invoke",
"name": "adaptiveCard/action",
// ... other properties omitted for brevity
"value": {
"action": {
"type": "Action.Execute",
"id": "",
"verb": "food",
"data": {
"item": "vegan"
}
},
"trigger": "manual"
}
}
Invocación de la respuesta para devolver tarjetas adaptables
El código siguiente proporciona un ejemplo de una respuesta de invocación para devolver tarjetas adaptables:
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
});
Ejemplos de código
Ejemplo de nombre | Descripción | .NET | Node.js | Manifiesto |
---|---|---|---|---|
Bot de servicio de alimentos de Teams | En este ejemplo se muestra un bot que acepta el pedido de alimentos mediante tarjetas adaptables. | View | ND | ND |
Tarjetas adaptables de flujos de trabajo secuenciales | En este ejemplo se muestra la implementación de flujos de trabajo secuenciales, vistas específicas del usuario y tarjetas adaptables actuales en bots. | View | View | Ver |