Aktuelle Karten

Sie können ihren Benutzern jetzt die neuesten Informationen auf adaptiven Karten bereitstellen. Fügen Sie eine Kombination aus Aktualisierungen und Nachrichtenbearbeitungen in Teams ein. Aktualisieren Sie die benutzerspezifischen Ansichten dynamisch auf den aktuellen Zustand, wenn eine Änderung an Ihrem Dienst vorliegt. Aktualisieren Sie beispielsweise für Projektmanagement- oder Ticketkarten Kommentare und den Vorgang status. Bei Genehmigungen wird der neueste Status wider und gleichzeitig differenzierte Informationen und Aktionen bereitgestellt.

Beispielsweise kann ein Benutzer in einer Teams-Unterhaltung eine Genehmigungsanforderung für Medienobjekte erstellen. Alex erstellt eine Genehmigungsanforderung und weist sie Megan und Nestor zu. Im Folgenden werden die beiden Teile zum Erstellen der Genehmigungsanforderung aufgeführt:

  • Benutzerspezifische Ansichten können mithilfe der refresh -Eigenschaft der adaptiven Karten angewendet werden. Mit benutzerspezifischen Ansichten kann eine Karte mit den Schaltflächen Genehmigen oder Ablehnen für eine Gruppe von Benutzern angezeigt werden, und anderen Benutzern eine Karte ohne diese Schaltflächen anzeigen.

  • Um den Karte Zustand immer auf dem neuesten Stand zu halten, kann der Bearbeitungsmechanismus für Teams-Nachrichten verwendet werden. Beispielsweise kann ein Bot für jede Genehmigung eine Nachrichtenbearbeitung an alle Benutzer auslösen. Diese Botnachrichtenbearbeitung löst eine adaptiveCard/action Aufrufanforderung für alle Benutzer der automatischen Aktualisierung aus, auf die der Bot mit dem aktualisierten benutzerspezifischen Karte reagieren kann.

Weitere Informationen finden Sie unter Vorgehensweise beim Bearbeiten von Botnachrichten.

Genehmigungsbasis Karte

Der folgende Code enthält ein Beispiel für eine Genehmigungsbasis Karte:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "acceptRejectView"
    },
    "userIds": ["<Megan's user MRI>", "<Nestor's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Asset Request B12"
    },
    {
      "type": "TextBlock",
      "text": "Submitted by **Alex**"
    },
    {
      "type": "TextBlock",
      "text": "Approval pending from **Megan and Nestor**"
    }
  ]
}

Genehmigungs-Karte mit den Schaltflächen "Genehmigen" und "Ablehnen"

Der folgende Code enthält ein Beispiel für eine Genehmigung Karte mit den Schaltflächen Genehmigen und Ablehnen:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "acceptRejectView"
    },
    "userIds": ["<Nestor's user MRI>", "<Megan's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Approval Request B12"
    },
    {
      "type": "TextBlock",
      "text": "Submitted by **Alex**"
    },
    {
      "type": "TextBlock",
      "text": "Approval pending from **Megan and Nestor**"
    }
  ],
  "actions": [
    {
      "type": "Action.Execute",
      "title": "Approve",
      "verb": "approve",
      "data": {
            "more info": "<more info>"
      }
    },
    {
      "type": "Action.Execute",
      "title": "Reject",
      "verb": "reject",
      "data": {
            "more info": "<more info>"
      }
    }
  ]
}

Im Folgenden sind die beiden Rollen aufgeführt, die Benutzern je nach Genehmigungsanforderung angezeigt werden:

  • Genehmigungsbasis Karte: Wird Benutzern angezeigt, die nicht teil der Liste der genehmigenden Personen sind, und die Anforderung ist noch nicht genehmigt oder abgelehnt und nicht Teil der Liste in refresh der userIds Eigenschaft der JSON-Datei für adaptive Karten.
  • Genehmigung Karte mit den Schaltflächen Genehmigen oder Ablehnen: Wird den Benutzern angezeigt, die Teil der Liste der genehmigenden Personen sind, und der userIds Liste in der refresh -Eigenschaft des JSON-Codes für adaptive Karten.

So senden Sie die Genehmigungsanforderung für das Objekt:

  1. Alex löst in einer Teams-Unterhaltung eine Anforderung zur Genehmigung von Ressourcen aus und weist sie Megan und Nestor zu.

  2. Der Bot sendet die Genehmigungsbasis Karte in der Konversation.

  3. Allen anderen Benutzern in der Unterhaltung wird die vom Bot gesendete Karte angezeigt. Die automatische Aktualisierung wird für Megan und Nestor ausgelöst, denen nun die benutzerspezifischen Karte mit den Schaltflächen Genehmigen oder Ablehnen angezeigt werden, während ihre Benutzer-MRIs der userIds Liste in der refresh Eigenschaft der adaptiven Karte hinzugefügt werden.

    Benutzerspezifische Ansichten

  4. Nestor wählt die Schaltfläche Genehmigen aus, die mit Action.Executeunterstützt wird. Der Bot erhält eine adaptiveCard/action Aufrufanforderung, auf die er als Antwort eine adaptive Karte zurückgeben kann.

  5. Der Bot löst eine Nachrichtenbearbeitung mit einem aktualisierten Karte aus, was besagt, dass Nestor die Anforderung genehmigt hat, während die Genehmigung von Megan aussteht.

  6. Die Bearbeitung von Botnachrichten löst eine automatische Aktualisierung für Megan aus, und sie sieht die aktualisierten benutzerspezifischen Karte, was besagt, dass Nestor die Anforderung genehmigt hat, aber auch die Schaltflächen Genehmigen oder Ablehnen sieht. Die Benutzer-MRT von Nestor wird in den Schritten 4 und 5 aus der userIds Liste in refresh der -Eigenschaft dieses JSON-Codes für adaptive Karten entfernt. Jetzt wird die automatische Aktualisierung nur für Megan ausgelöst.

    Aktuelle benutzerspezifische Ansichten

  7. Jetzt wählt Megan die Schaltfläche Genehmigen aus, die mit Action.Executeunterstützt wird. Der Bot erhält eine adaptiveCard/action Aufrufanforderung, auf die er als Antwort eine adaptive Karte zurückgeben kann.

  8. Der Bot löst eine Nachrichtenbearbeitung mit einer aktualisierten Karte aus, die besagt, dass Nestor und Megan die Anforderung genehmigt haben.

  9. Die Bearbeitung von Botnachrichten löst keine automatische Aktualisierung aus. Die Benutzer-MRT von Megan wird auch aus der Liste in refresh der userIds -Eigenschaft dieses JSON-Codes für adaptive Karten in Den Schritten 7 und 8 entfernt.

    Aktuelle Ansichten

Adaptive Karte, die als Antwort von adaptiveCard/action und gesendet wird message edit

Der folgende Code enthält ein Beispiel für adaptive Karten, die als Antwort von adaptiveCard/action und message edit für die Schritte 4 und 5 gesendet werden:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "acceptRejectView"
    },
    "userIds": ["<Megan's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Asset Request B12"
    },
    {
      "type": "TextBlock",
      "text": "Submitted by **Alex**"
    },
    {
      "type": "TextBlock",
      "text": "Approval pending from **Megan**"
    },
    {
      "type": "TextBlock",
      "text": "Approved by **Nestor**"
    }
  ]
}

Der folgende Code enthält ein Beispiel für adaptive Karten, die als Antwort des Aufrufs adaptiveCard/action durch automatische Aktualisierung für Schritt 6 gesendet werden:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "acceptRejectView"
    },
    "userIds": ["<Megan's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Approval Request B12"
    },
    {
      "type": "TextBlock",
      "text": "Submitted by **Alex**"
    },
    {
      "type": "TextBlock",
      "text": "Approval pending from **Megan**"
    },
    {
      "type": "TextBlock",
      "text": "Approved by **Nestor**"
    }
  ],
  "actions": [
    {
      "type": "Action.Execute",
      "title": "Approve",
      "verb": "approve",
      "data": {
            "more info": "<more info>"
      }
    },
    {
      "type": "Action.Execute",
      "title": "Reject",
      "verb": "reject",
      "data": {
            "more info": "<more info>"
      }
    }
  ]
}

Der folgende Code enthält ein Beispiel für adaptive Karten, die als Antwort von adaptiveCard/action und message edit für die Schritte 7 und 8 gesendet werden:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "acceptRejectView"
    },
    "userIds": []
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Asset Request B12"
    },
    {
      "type": "TextBlock",
      "text": "Submitted by **Alex**"
    },
    {
      "type": "TextBlock",
      "text": "Approved by **Nestor and Megan**"
    }
  ]
}

Codebeispiel

Beispielname Beschreibung .NET Node.js Manifest
Adaptive Karten für sequenzielle Workflows In diesem Beispiel wird die Implementierung von sequenziellen Workflows, benutzerspezifischen Ansichten und aktuellen adaptiven Karten in Bots veranschaulicht. View View Anzeigen

Siehe auch