Compartir a través de


Ejemplo de código del modelo de acciones universales: aprobación de gastos

En este ejemplo se muestra la implementación del modelo de acción universal disponible para las tarjetas adaptables versión 1.4 o posterior.

Requisitos previos

  • El cliente de Outlook/OWA está disponible y tiene una cuenta.
  • Un subsciption de Azure válido.
  • Descripción de Azure Bot Framework.

Configuración del bot

Paso 1: Asegúrese de que las cargas de la tarjeta adaptable están listas

Para el escenario de aprobaciones, puede encontrar la carga de JSON aquí. A continuación, puede ver la representación de carga en pantallas móviles y de escritorio.

Para Acciones universales, debe usar Action.Execute que recopile campos de entrada y envíe una Invoke actividad de tipo adaptiveCard/action al bot de destino. El bot de destino puede identificar la acción realizada mediante el verb campo . Cualquier entrada adicional se puede enviar mediante el data campo .

Carga de JSON

Este es un fragmento de código del escenario Acciones para la aprobación.

{
  "type": "ActionSet",
  "actions": [
    {
      "type": "Action.Execute",
      "title": "Accept",
      "verb": "approvalAccept",
      "data": {},
      "isPrimary": true,
      "style": "positive"
    },
    {
      "type": "Action.ShowCard",
      "id": "e1487cbc-66b0-037e-cdc4-045fb7d8d0b8",
      "title": "Reject",
      "card": {
        "type": "AdaptiveCard",
        "body": [
          {
            "type": "Input.Text",
            "id": "Comment",
            "placeholder": "Add a comment",
            "isMultiline": true
          },
          {
            "type": "ActionSet",
            "actions": [
              {
                "type": "Action.Execute",
                "title": "Submit",
                "verb": "approvalReject",
                "data": {
                  "comment": "${Comment.value}"
                }
              }
            ]
          }
        ],
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "fallbackText": "Unable to render the card",
        "padding": "None"
      }
    }
  ],
  "spacing": "None"
}

Para obtener más información, vea Action.Execute schema and properties (Esquema y propiedades de Action.Execute).

Paso 2: Escritura de lógica de negocios personalizada en el bot para su aprobación

En el bot de Azure, puede usar el método OnAdaptiveCardInvokeAsync para capturar la acción mediante el campo, agregar la verb lógica de negocios y enviar la tarjeta de actualización a Outlook.

protected override async Task<AdaptiveCardInvokeResponse> OnAdaptiveCardInvokeAsync(
    ITurnContext<IInvokeActivity> turnContext,
    AdaptiveCardInvokeValue invokeValue,
    CancellationToken cancellationToken)
{
    try
    {
        // Approval Scenario
        if (invokeValue.Action.Verb == "approvalAccept")
        {
            // This function can contain your business logic
            // to capture the approval and show the refresh card
            return await ProcessApprovalAccepted();
        }
        else if (invokeValue.Action.Verb == "approvalReject")
        {
            // This function can contain you business logic
            // to capture the rejection and show the refresh card
            return await ProcessApprovalRejected();
        }
        else
        {
            throw new InvokeResponseException(HttpStatusCode.NotImplemented);
        }
    }
    catch (AdaptiveCardActionException e)
    {
        throw new InvokeResponseException(HttpStatusCode.NotImplemented, e.Response);
    }
}

Puede probar el bot localmente o implementarlo en Azure.

Paso 3: Envío del mensaje accionable

Puede enviar el mensaje accionable respaldado por acciones universales de forma similar a cualquier otro mensaje accionable. Para obtener más información, consulte Envío de un mensaje accionable por correo electrónico.