Freigeben über


Codebeispiel für das Universal Actions-Modell – Spesengenehmigung

Dieses Beispiel veranschaulicht die Implementierung des universellen Aktionsmodells, die für adaptive Karten version 1.4 oder höher verfügbar ist.

Voraussetzungen

  • Der Outlook/OWA-Client ist verfügbar, und Sie verfügen über ein Konto.
  • Eine gültige Azure-Teilmenge.
  • Grundlegendes zu Azure Bot Framework.

Setup für Bot

Schritt 1: Sicherstellen, dass Ihre adaptiven Karte Nutzlasten bereit sind

Für das Genehmigungsszenario finden Sie die JSON-Nutzlast hier. Unten sehen Sie das Rendern der Nutzlast auf mobilen und Desktopbildschirmen.

Für universelle Aktionen müssen Sie verwenden Action.Execute , um Eingabefelder zu sammeln und eine Invoke Aktivität vom Typ adaptiveCard/action an den Zielbot zu senden. Der Zielbot kann die ausgeführte Aktion mithilfe des verb Felds identifizieren. Jede zusätzliche Eingabe kann mithilfe des -Felds data gesendet werden.

JSON-Nutzlast

Im Folgenden finden Sie einen Codeausschnitt des Szenarios Aktionen für die Genehmigung.

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

Weitere Informationen finden Sie unter Action.Execute-Schema und -Eigenschaften.

Schritt 2: Schreiben von benutzerdefinierter Geschäftslogik im Bot zur Genehmigung

Im Azure-Bot können Sie die OnAdaptiveCardInvokeAsync-Methode verwenden, um die Aktion mithilfe des verb Felds zu erfassen, Ihre Geschäftslogik hinzuzufügen und die Aktualisierungs-Karte zurück an Outlook zu senden.

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

Sie können Ihren Bot lokal testen oder in Azure bereitstellen.

Schritt 3: Senden der Nachricht mit Aktionen

Sie können die Aktion erfordernde Nachricht mit universellen Aktionen ähnlich wie jede andere Aktion erfordernde Nachricht senden. Weitere Informationen finden Sie unter Senden einer Nachricht mit Aktionen per E-Mail.