Partager via


Exemple de code du modèle Actions universelles - Approbation des dépenses

Cet exemple illustre l’implémentation du modèle d’action universel disponible pour les cartes adaptatives version 1.4 ou ultérieure.

Conditions préalables

  • Le client Outlook/OWA est disponible et vous disposez d’un compte.
  • Une subsciption Azure valide.
  • Compréhension d’Azure Bot Framework.

Configuration du bot

Étape 1 : Vérifier que vos charges utiles carte adaptatives sont prêtes

Pour le scénario d’approbations, vous trouverez la charge utile JSON ici. Ci-dessous, vous pouvez voir le rendu de la charge utile dans les écrans mobiles et de bureau.

Pour les actions universelles, vous devez utiliser Action.Execute qui collecte les champs d’entrée et envoie une Invoke activité de type adaptiveCard/action au bot cible. Le bot cible peut identifier l’action effectuée à l’aide du verb champ . Toute entrée supplémentaire peut être envoyée à l’aide du data champ .

Charge utile JSON

Voici un extrait de scénario Actions pour approbation.

{
  "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"
}

Pour plus d’informations, consultez Schéma et propriétés Action.Execute

Étape 2 : Écrire une logique métier personnalisée dans le bot pour approbation

Dans le bot Azure, vous pouvez utiliser la méthode OnAdaptiveCardInvokeAsync pour capturer l’action à l’aide du verb champ , ajouter votre logique métier et renvoyer le carte d’actualisation à 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);
    }
}

Vous pouvez tester votre bot localement ou le déployer sur Azure.

Étape 3 : Envoi du message actionnable

Vous pouvez envoyer le message actionnable soutenu par des actions universelles comme n’importe quel autre message actionnable. Pour plus d’informations, consultez Envoyer un message actionnable par e-mail.