Freigeben über


Einen neuen Anbieter erstellen

Führen Sie die folgenden Schritte aus, um einen neuen Anbieter zu erstellen. Sie können diese Schritte auch verwenden, um Ergänzungen zu bestehenden Anbietern vorzunehmen.

Anbieterarchitektur festlegen

Bevor Sie einen Anbieter erstellen, ist es wichtig zu verstehen, was der Anbieter tun soll und wofür Sie ihn verwenden möchten. Anbieter haben mehrere Komponenten und Sie benötigen möglicherweise nicht alle.

Bestimmen Sie anhand der folgenden Tabelle, welche Komponenten Sie benötigen.

Bedingung Komponente notwendig
Der Dienst, für den Sie einen Anbieter erstellen möchten, hat keinen Connector in Power Automate.
Weitere Informationen finden Sie unter Liste aller Power Automate-Connectors.
Erstellen Sie einen benutzerdefinierten Connector oder verwenden Sie einen generischen Connector.
Ihr Anbieter tauscht Daten zwischen einem externen Dienst und Microsoft Dataverse aus. Ihr Anbieter benötigt eine Anbietertransformation. Fügen Sie für jede Transformation eine Anbietertransformationskomponente hinzu.
Ihr Anbieter führt die Logik vom Orchestrierungs-Designer aus. Erstellen Sie einen separaten Power Automate-Flow, um die einzelnen Aktionen darzustellen.
Ihr Anbieter muss Meldungen von einem externen Dienst verarbeiten. Erstellen Sie Power Automate-Medlungshandler-Flow.
Ihr Anbieter ruft in regelmäßigen Abständen Meldungen von einem externen Dienst ab. Erstellen Sie Power Automate-Medlungspuller-Flow.
Ihr Anbieter wird Geschäftsereignisse auslösen, die derzeit nicht in Intelligent Order Management definiert sind. Erstellen Sie eine neue Geschäftsereignisdefinition und fügen Sie vorhandene Ereignisse hinzu.

Wenn Sie die Lösungen gut kennen, können Sie mit der Implementierung Ihres Anbieters fortfahren.

Eine Anbieterlösung erstellen

Sie müssen die folgenden Aufgaben in diesem Abschnitt ausführen, um eine Anbieterlösung zu erstellen.

  • Richten Sie einen benutzerdefinierten Anbieter ein.

  • Fügen Sie eine Anbieterdefinition hinzu.

  • Fügen Sie die Komponenten zu Ihrer Lösung hinzu.

Einen benutzerdefinierten Anbieter einrichten

Erstellen Sie eine Lösung in Power Apps, die die Komponenten Ihres Anbieters enthält. Um eine neue Lösung in Power Apps zu erstellen, führen Sie die Schritte in Eine Lösung in Power Apps erstellen aus.

Eine Anbieterdefinition hinzufügen

Eine Anbieterdefinition enthält Details zu Ihrem Anbieter. Die Definition bestimmt, wie Ihr Anbieter im Anbieterkatalog angezeigt wird.

  1. Wählen Sie Neu in der von Ihnen erstellten Anbieterlösung.

  2. Wählen Sie IOMAnbieterdefinition aus.

  3. Fügen Sie die folgenden Details hinzu:

    1. Anzeigename: Der Name, den Sie Ihrem Anbieter geben möchten, zum Beispiel „Testanbieter“.

    2. Logischer Name: Der Exportschlüssel für Ihren Provider.

    3. Beschreibung: Text zur Beschreibung der Tätigkeit Ihres Anbieters.

  4. Wählen Sie Speichern aus.

  5. Wenn Sie ein Logo hinzufügen möchten, laden Sie das Bild hoch.

  6. Überprüfen Sie, ob Ihre Anbieterdefinition in der Lösung angezeigt wird. Ein Datensatz mit dem Komponententyp IOM-Anbieterdefinition sollte angezeigt werden. Wenn er nicht angezeigt wird, wählen Sie Vorhandenes Element hinzufügen und dann den soeben erstellten Datensatz aus.

  7. Überprüfen Sie, ob Ihre Anbieterdefinition im Anbieterkatalog angezeigt wird. Wenn Sie das Feld Ist aktiv auf Ja setzen, wird Ihre Anbieterdefinition im Anbieterkatalog angezeigt. Öffnen Sie das Intelligent Order Management. Gehen Sie zu Anbieter > Katalog. Vergewissern Sie sich, dass Ihre Anbieterdefinition angezeigt wird.

Der Lösung Komponenten hinzufügen

Nachdem Sie Ihre Anbieterdefinition erstellt haben, fügen Sie der Lösung die Anbieterkomponenten hinzu.

  1. Gehen Sie zu Ihrer Lösung.

  2. Wählen Sie Vorhandene Elemente auswählen aus.

  3. Wählen Sie den Komponententyp Intelligent Order Management und dann den soeben erstellten Datensatz aus.

Eine Anbietertransformation erstellen

Wenn Ihr Anbieter eine Transformation erfordert, müssen Sie Ihrer Lösung eine Anbietertransformationskomponente hinzufügen. Möglicherweise müssen Sie mehrere Transformationen erstellen.

  1. Wählen Sie Neu in Ihrer Anbieterlösung.

  2. Wählen Sie IOM Anbieterdefinitionstransformation.

  3. Fügen Sie die folgenden Details hinzu:

    1. Anzeigename: Der Name Ihrer Providertransformation, z. B. „Transform Sales Orders“.

    2. Logischer Name: Die eindeutige Kennung Ihres Anbieters. Dieser Wert ist der Import- und Exportschlüssel der Daten. Er sollte mit dem Präfix des Herausgebers beginnen. Microsoft verwendet beispielsweise das Herausgeberpräfix msdyn_. Beispiele für logische Namen sind: msdyn_flexe_fulfillmentorderproduct_orderline und msdyn_flexe_fulfillmentorder_order.

    3. Quelltyp: Dieses Feld gibt an, welche Art von Daten empfangen wird. Es gibt zwei Möglichkeiten: JsonDocument oder Dataverse-Entität. Wenn Ihre Daten bereits in Dataverse vorhanden sind, wählen Sie Dataverse-Entität aus. Wenn nicht, wählen Sie JsonDocument. Diese Informationen werden im Power Automate-Element verwendet, das Sie festlegen, um die Transformation zu suchen.

    4. Quellobjektname: Der Name der Daten, die Sie transformieren. Wenn Sie einen Dataverse-Datensatz transformieren, vergewissern Sie sich, dass der Quellobjektname der gleiche Name wie in der Dataverse-Tabelle.

    5. Zielobjektname: Das Ziel des Datensatzes, den Sie transformieren möchten.

    6. Transformation: Die Power Query Online-MQuery, die zum Transformieren der Eingabedaten verwendet wird. Weitere Informationen über Power Query und MQuery finden Sie unter Was ist Power Query? und Referenz zur Power Query M-Formelsprache. Im Folgenden finden Sie ein Beispiel für eine MQuery, die einen Auftrag von einem externen Bestellservice in einen Auftrag in Intelligent Order Management umwandelt.

shared TransformSourceData =

let

orderItems = Source\[OrderItems\],

orderheader =

Record.FromTable

(

Table.SelectRows

(

Record.ToTable

(

\[

ordernumber = Record.FieldOrDefault(Source, "SellerOrderId", Text.From(Source\[OrderServiceOrderId\])),

name = ordernumber,

msdyn\_ExternalOrderId = Text.From(Source\[OrderServiceOrderId\]),

\#"customerid\_account@odata.bind" = "/accounts(" & Text.From(Source\[accountid\]) & ")",

\#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(Source\[pricelevelid\]) & ")",

totalamount = if Record.HasFields(Source, "OrderTotal") then Decimal.From(Record.FieldOrDefault(Source\[OrderTotal\], "Amount")) else null,

shipto\_name = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Name") else null,

shipto\_contactname = shipto\_name,

shipto\_line1 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine1") else null,

shipto\_line2 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine2") else null,

shipto\_line3 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine3") else null,

shipto\_city = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "City") else null,

shipto\_stateorprovince = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "StateOrRegion") else null,

shipto\_country = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "CountryCode") else null,

shipto\_postalcode = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "PostalCode") else null,

shipto\_telephone = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Phone") else null,

overriddencreatedon = Record.FieldOrDefault(Source, "PurchaseDate")

\]

), each \[Value\] \<\> null

)

),

orderlines = List.Transform(orderItems, each

Record.FromTable

(

Table.SelectRows

(

Record.ToTable

(

\[

isproductoverridden = true,

ispriceoverridden = true,

productdescription = \[OrderItemId\] & "-" & Record.FieldOrDefault(\_, "SellerSKU") & "-" & Record.FieldOrDefault(\_, "Title"),

quantity = \[QuantityOrdered\],

quantityshipped = Record.FieldOrDefault(\_, "QuantityShipped"),

priceperunit = if Record.HasFields(\_, "ItemPrice") then Decimal.From(Record.FieldOrDefault(\[ItemPrice\], "Amount")) else null,

manualdiscountamount = if Record.HasFields(\_, "PromotionDiscount") then Decimal.From(Record.FieldOrDefault(\[PromotionDiscount\], "Amount")) else null,

tax = if Record.HasFields(\_, "ItemTax") then Decimal.From(Record.FieldOrDefault(\[ItemTax\], "Amount")) else null,

shipto\_name = Record.FieldOrDefault(orderheader, "shipto\_name"),

shipto\_contactname = Record.FieldOrDefault(orderheader, "shipto\_contactname"),

shipto\_line1 = Record.FieldOrDefault(orderheader, "shipto\_line1"),

shipto\_line2 = Record.FieldOrDefault(orderheader, "shipto\_line2"),

shipto\_line3 = Record.FieldOrDefault(orderheader, "shipto\_line3"),

shipto\_city = Record.FieldOrDefault(orderheader, "shipto\_city"),

shipto\_stateorprovince = Record.FieldOrDefault(orderheader, "shipto\_stateorprovince"),

shipto\_country = Record.FieldOrDefault(orderheader, "shipto\_country"),

shipto\_postalcode = Record.FieldOrDefault(orderheader, "shipto\_postalcode"),

shipto\_telephone = Record.FieldOrDefault(orderheader, "shipto\_telephone"),

overriddencreatedon = Record.FieldOrDefault(orderheader, "overriddencreatedon")

\]

), each \[Value\] \<\> null

)

)

),

salesorder = Record.AddField(orderheader, "order\_details", orderlines)

in Text.FromBinary(Json.FromValue(salesorder));
  1. Wählen Sie Speichern aus.

  2. Überprüfen Sie, ob Ihre Transformationskomponente richtig angezeigt wird. Ein Komponententyp IOM-Anbieterdefinitionstransformation mit dem Transformationsnamen sollte angezeigt werden. Wenn er nicht angezeigt wird, wählen Sie Vorhandenes Element hinzufügen und dann die soeben erstellte Transformation aus.

Geschäftsereignisdefinitionen hinzufügen

Wenn Ihr Anbieter neue Geschäftsereignisse erstellt oder verwendet, müssen Sie IOM-Anbieterdefinitions-Geschäftsereignisdefinition-Komponenten zu Ihrer Lösung hinzufügen. Sie müssen nur Geschäftsereignisse hinzufügen, die noch nicht in Intelligent Order Management enthalten sind.

Wenn sich das Geschäftsereignis, das Sie erstellen möchten, noch nicht in Intelligent Order Management befindet, können Sie selbst eines erstellen.

  1. Wählen Sie Neu aus.

  2. Wählen Sie IOM-Anbieterdefinition-Geschäftsereignisdefinition aus.

  3. Fügen Sie die folgenden Details hinzu:

    1. Name: Der Name Ihrer Geschäftsveranstaltung.

    2. Anbieter: Der Anbieter, für den Sie diese Geschäftsdefinition erstellen.

    3. Zugehörige Entität: Die Dataverse Entität in Intelligent Order Management, die geändert oder beeinflusst wird, wenn das Ereignis erstellt wird.

    4. Zugehöriger Statuswert: Wenn der Status Ihrer zugehörigen Entität aktualisiert werden soll, wenn das Geschäftsereignis ausgelöst wird, fügen Sie in dieses Feld einen Statuswert ein.

    5. Zugehöriger Statuswert: Wenn Sie möchten, dass der Status Ihrer zugehörigen Entität aktualisiert wird, wenn das Geschäftsereignis ausgelöst wird, fügen Sie in dieses Feld einen Statuswert ein.

  4. Wählen Sie Speichern aus.

  5. Überprüfen Sie Ihre Lösung, um sicherzustellen, dass der IOM-Anbieterdefinition-Geschäftsereignisdefinition-Datensatz angezeigt wird. Wenn der Datensatz nicht in der Lösung angezeigt wird, wählen Sie Vorhandenes Element hinzufügen und dann den soeben erstellten Datensatz aus.

Connector hinzufügen

Wenn Ihr Anbieter einen Connector benötigt, der in nicht in Power Automate verfügbar ist, müssen Sie Ihren eigenen Connector erstellen. Weitere Informationen finden Sie unter Liste aller Power Automate Connector.

Um Ihren eigenen Power Automate-Connector zu erstellen, befolgen Sie die Schritte in Übersicht über benutzerdefinierte Connectors.

Nachdem Sie Ihren benutzerdefinierten Connector erstellt haben, fügen Sie ihn als Komponente zu Ihrer Anbieterlösung hinzu.

  1. Gehen Sie zu Ihrer Anbieterlösung.

  2. Wählen Sie Vorhandenes Element auswählen aus.

  3. Wählen Sie den Connector aus, den Sie erstellt haben.

Typen von Power Automate-Flows

Jede Aktivität, die im Orchestrierungs-Designer ausgeführt wird, wird von Power Automate-Flows dargestellt. Wenn Power Automate bestimmte Informationen abzurufen oder bestimmte Aktionen auszuführen soll, müssen Sie die Flows für diese Aktionen erstellen. Weitere Informationen zum Tool Power Automate finden Sie unter Einführung in Power Automate.

Fügen Sie Ihre Flows Ihrem Anbieter als Logische Definition Anbieterdefinition-Komponenten hinzu.

Bevor Sie mit der Flowerstellung beginnen, überprüfen Sie die Flowtypen, die in Intelligent Order Management verwendet werden.

Meldungshandler des Anbieters

Diese Flows empfangen und verarbeiten Meldungen von einem externen Dienst und lösen das entsprechende Geschäftsereignis aus, um die Orchestrierung von Intelligent Order Management zu benachrichtigen. Diese Flows werden durch einen externen Dienst ausgelöst.

Im Folgenden sehen Sie eine Beispielstruktur zum Erstellen eines Power Automate-Flows vom Typ Meldungshandler.

  1. Einen Power Automate-Trigger festlegen. Dies ist normalerweise ein HTTP-Endpunkt, der ein Webhook-Trigger (empfohlen), Connector-Trigger oder ein Dataverse Insert-Trigger ist. Der Trigger wird ausgelöst, wenn ein externer Dienst Daten an Intelligent Order Management senden muss. Screenshot des Triggers, wenn eine HTTP-Anforderung empfangen wird.

Das in Ihrem HTTP-Trigger zu verwendende JSON-Schema ist unten definiert.

{
    "type": "object",
    "properties": {
        "text": {
            "title": "ProviderActionExecutionEventId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        },
        "text_1": {
            "title": "EntityRecordId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        }
    },
    "required": [
        "text",
        "text_1"
    ]
}
  1. Initialisieren Sie die Meldungsverarbeitung. Diese Aufgabe umfasst zwei Schritte.

    1. Initialisieren Sie das Ausführungsergebnis, das verwendet wird, um die Verarbeitung der Meldung zu verfolgen.

    2. Bestätigen Sie die Anbietermeldung in Intelligent Order Management, damit Sie den Verarbeitungsstatus verfolgen, wiederholen und anzeigen können. Das ist eine Power Automate-Aktivität, die Intelligent Order Management einführt. Diese Aktivität heißt Anbietermeldungsanforderung in IOM bestätigen. Diese Aktivität hat die folgenden erforderlichen Parameter.

      1. PowerAutomateWorkflowId: WorkflowId in der Nachrichtenhandlerdefinition. Sie können diese abrufen, indem Sie eine Verfassenfunktion mit workflow()['tags'].

      2. PowerAutomateRunId: Die eindeutige Kennung für den Power Automate Lauf, der die Nachricht empfangen hat, und ermöglicht es der Pipeline, die Verarbeitung zu wiederholen und die Ausführungsprotokolle zu verknüpfen. Sie können diese abrufen, indem Sie eine Verfassenfunktion mit workflow()['run']?['name'] ausführen.

      3. ProviderMessageExternalRequestId: Eine Kennung für die gesendete Nachricht. Wenn kein Bezeichner vorhanden ist, kann eine GUID generiert werden. Dieser Bezeichner wird von der Pipeline verwendet, um zu verhindern, dass der Absender doppelte Meldungen sendet. Der Bezeichner ist von der Quellnutzlast abhängig. Zum Beispiel: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['id']).

Screenshot des Bildschirms „Anbietermeldungsanforderung in IOM bestätigen“.

  1. Die zuvor definierte Anbietertransformation ruft die Eingabedaten ab und transformiert sie. Intelligent Order Management stellt einen sofort einsatzbereiten untergeordneten Flow namens IOM-Anbietertransformator bereit, der die Transformation ausführt. Fügen Sie die folgenden Details hinzu, um das Ereignis oder die Meldung zu verarbeiten:

    1. Anbietername: Der Name des Anbieters, der mit dem Nachrichtenhandler verknüpft ist. Dieser Wert muss mit dem Namen Ihrer Anbietertransformation identisch sein.

    2. Quellobjektname: Der Quellsuchschlüsselwert für die durchzuführende Transformation. Dieser Wert muss mit dem in Ihrer Anbietertransformation festgelegten Quellobjektnamen übereinstimmen.

    3. Name des Zielobjekts: Der Ziel-Lookup-Schlüsselwert für die durchzuführende Transformation. Dieser Wert muss mit dem in Ihrer Anbietertransformation festgelegten Wert übereinstimmen.

    4. Payload: Wird beim Transformieren einer JSON-Nutzlast bereitgestellt. Power Automate erfordert, dass die Parameter als serialisierte Zeichenfolge übergeben werden. Geben Sie eine Nutzlast oder eine Datensatzkennung an, nicht beides.

    5. Datensatz-ID: Wird beim Transformieren eines Dataverse Datensatzes bereitgestellt. Geben Sie eine Nutzlast oder eine Datensatzkennung an, nicht beides.
      Screenshot für „Meldung mit Power Query Online transformieren“.

  2. Sie können Daten in Dataverse durch Verwendung von HTTP-Anforderungen oder der Dataverse-Connector-Aktivität Einfügen einfügen. Wenn Sie mehr als eine Einfügung durchführen und die Leistung verbessern möchten, packen Sie die Einfügungen in ein Changeset, sodass sich die Anforderungen in einer Buchungscharge befinden.
    Screenshot des Flows zum Einfügen von Meldungen.

  3. Wenn Sie möchten, dass Ihr Flow ein Geschäftsereignis auslöst, können Sie den untergeordneten Geschäftsereignis auslösen verwenden. Fügen Sie die folgenden Details hinzu.

    1. BusinessEventName: Name des Ereignisses, das ausgelöst werden soll.

    2. EntityRecordId: Die ID des gerade erstellten und dem Ereignis zugeordneten Datensatzes.

  4. Aktualisieren Sie den Meldungsverarbeitungsstatus mithilfe der Aktivität Status Anbietermeldungsanforderung aktualisieren, um das Ergebnis der Verarbeitungsausführung zu speichern. Fügen Sie die folgenden Details hinzu.

    1. ProviderMessageRequestExecutionId: Die Ausgabe-ID des Datensatzes, der erstellt wird, um den Fortschritt der Nachrichtenverarbeitung zu verfolgen.

    2. IsProviderMessageRequestExecutionSuccess: boolesch-Wert, der angibt, ob die Verarbeitung erfolgreich war.

Anbieter-Meldungspuller

Anbieter-Meldungspuller sind Power Automate-Flows, die Meldungen in einem festen regelmäßigen zeitlichen Abstand von einem externen Dienst abrufen.

Notiz

Ein Meldungshandler ist eine Voraussetzung für einen Meldungspuller-Flow.

Im Folgenden sehen Sie eine Beispielstruktur zum Erstellen eines Power Automate-Flows vom Typ Meldungspuller.

  1. Verwenden Sie einen Serienworkflow, um einen Trigger zu planen.

  2. Holen Sie sich einen Prüfpunkt von Dataverse. Prüfpunkte verfolgen, welche Meldungen erfolgreich vom externen Anbieter abgerufen wurden. Fügen Sie die folgenden Details hinzu.

    1. Aktionsname: Name für den Prüfpunkt.

    2. WorkflowId: Legen Sie die folgende Compose-Funktion fest, um diese Informationen abzurufen: workflow()['tags']['xrmWorkflowId'].
      Screenshot von „Prüfpunkt abrufen“.

  3. Erstellen Sie eine HTTP-Post-Anforderung an einen externen Anbieter, um die Meldung abzurufen. Fügen Sie die folgenden Details hinzu.

    1. Methode: Setzen Sie dieses Feld auf POST.

    2. URL: Der externe Provider-Endpunkt.

    3. Body: Die JSON-Anfrage sollte die folgende Formel haben: if(empty(outputs('Get_Checkpoint')?['body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?['body/Checkpoint'])).
      Screenshot für Pull- Meldungen.

  4. Analysieren Sie die in Schritt 3 abgerufenen Meldungen. Fügen Sie die folgenden Details hinzu.

    1. Inhalt: Der aus Schritt 3 abgerufene Text.

    2. Schema: Die Struktur des in Schritt 3 abgerufenen Textkörpers.
      Screenshot für Analysemeldungen.

  5. Verarbeiten Sie Meldungen, bis Sie alle Nachrichten aus Schritt 4 durchlaufen haben.

  6. Analysieren Sie jede Meldung aus den vorherigen Schritten. Fügen Sie die folgenden Informationen hinzu.

    1. Inhalt: Aktueller Eintrag aus Prozessmeldungen.

    2. Schema: Eine einzelne Nachricht im JSON-Format.
      Screenshot für Verarbeitungsmeldungen 2.

  7. Rufen Sie den zugehörigen Anbietermeldungshandler auf, den Sie in den Voraussetzungen eingerichtet haben. Fügen Sie die folgenden Informationen hinzu.

    1. untergeordneter Flow: Auswählen Ihr Provider-Nachrichtenhandler.

    2. Nachricht: Die aus Schritt 6 analysierte Nachricht.
      Screenshot für Verarbeitungsmeldungen 3.

  8. Speichern Sie den Prüfpunkt in Dataverse. Fügen Sie die folgenden Informationen hinzu.

    1. Checkpoint: Dies kann ein beliebiger Zeichenfolgenwert sein (max. 100). In diesem Beispiel ist dies die ID der zuletzt verarbeiteten Meldung.

    2. WorkFlowId: Sie können diese ID abrufen, indem Sie eine auf workflow()['tags']['xrmWorkflowId'] festgelegte Compose-Funktion hinzufügen.
      Screenshot für Verarbeitungsmeldungen 4.

Anbieteraktivität

Anbieteraktivitätsflows werden vom Orchestrierungs-Designer aufgerufen. Diese Flows führen in der Regel Aufrufe von Intelligent Order Management an externe Dienste durch.

Der Hauptunterschied zwischen einem Anbietermeldungshandler und einer Anbieteraktivität besteht darin, dass ein Meldungshandler zwar den Orchestrierungs-Designer benachrichtigen kann, er jedoch nicht durch eine Aktivitätskachel im Orchestrierungs-Designer ausgelöst werden kann, während dies bei einer Anbieteraktivität der Fall ist.

Im Folgenden sehen Sie eine Beispielstruktur für eine Anbieteraktivitäts Power Automate-Flow.

  1. Beginnen Sie mit einem HTTP-Trigger. Die folgenden Informationen werden zur Runtime vom Orchestrierungsdienst übergeben. Für den Text wird das folgende JSON-Schema verwendet:
{
    "type": "object",
    "properties": {
        "text": {
            "title": "ProviderActionExecutionEventId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        },
        "text_1": {
            "title": "EntityRecordId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        }
    },
    "required": [
        "text",
        "text_1"
    ]
}
  1. Initialisieren Sie die Aktivitätsverarbeitung.

    1. Initialisieren Sie das Ausführungsergebnis und alle anderen Verarbeitungsvariablen.

    2. Bestätigen Sie den Start der Aktivitätsausführung mit der Aktivität Ausführung der Anbieteraktivität starten in Dataverse. Dadurch kann die Pipeline den Verarbeitungsstatus in Intelligent Order Management verfolgen, wiederholen und anzeigen. Fügen Sie die folgenden Informationen hinzu.

      1. ProviderActionExecutionEventId: Dieser Wert wurde als Eingabeparameter in Schritt 1 an die Aktion übergeben.

      2. PowerAutomateRunID: Der eindeutige Durchlauf der Power Automate Aktion. Dadurch kann die Pipeline die Ausführungsprotokolle verknüpfen. Rufen Sie diese Informationen ab, indem Sie das Feld auf einen Power Automate-Ausdruck worflow()['run']?['name'] festlegen.

  2. Führen Sie die Aktivität aus.

    1. Transformieren Sie bei Bedarf die Datensätze mit dem untergeordneten Flow Meldung mit Power Query Online transformieren.

      1. Anbietername: Der Name des Anbieters, der mit der Aktion verknüpft werden soll. Der Name muss mit dem Namen Ihrer Anbieterdefinition identisch sein.

      2. Quellobjektname: Der Quellname der durchzuführenden Transformation. Dieser Name muss dasselbe Quellobjekt wie in Ihrer Power Automate-Transformation sein.

      3. Zielobjektname: Der Zielsuchschlüsselwert für die durchzuführende Transformation. Dieser Name muss mit dem in Ihrer Anbietertransformation festgelegten Wert übereinstimmen.

      4. Payload: Wird beim Transformieren einer eingehenden JSON-Nutzlast bereitgestellt. Power Automate erfordert, dass die Parameter als serialisierte Zeichenfolge übergeben werden. Fügen Sie eine Nutzlast oder eine Datensatzkennung hinzu, aber nicht beides.

      5. Datensatz-ID: Wird beim Transformieren eines ausgehenden Dataverse Datensatzes bereitgestellt. Fügen Sie eine Nutzlast oder eine Datensatzkennung hinzu, aber nicht beides.
        Screenshot für „Meldung mit Power Query Online transformieren“.

    2. Führen Sie alle benutzerdefinierten Aktivitäten aus, die Sie definiert haben. Dies sind Aktivitäten, die auf dem Power Automate Connector vorhanden sind, den Sie verwenden.

    3. Rufen Sie ein aktivitätsspezifisches Geschäftsereignis auf. Verwenden Sie den untergeordneten Flow Geschäftereignis auslösen. Fügen Sie die folgenden Informationen hinzu.

      1. BusinessEventName: Der Name des Ereignisses, das Sie auslösen möchten.

      2. EntityRecordId: Die ID des mit dem Ereignis verknüpften Datensatzes.

  3. Schließen Sie die Aktivitätsausführung ab und speichern Sie die Ergebnisse. Die Ergebnisse werden vom Orchestrierungs-Designer verarbeitet. Fügen Sie die folgenden Informationen hinzu.

    1. ExecutionResult: boolesch-Wert, der angibt, ob die Verarbeitung erfolgreich war.

    2. ExecutionDetails: Optionale Protokolldetails für Test- und Debugzwecke.

    3. ProviderActionExecutionEventId: Dieser Wert wurde als Eingabeparameter an die Aktion übergeben, der in Schritt 1 definiert wurde.
      Screenshot von „Anbieteraktivitätsausführung abschließen“.

Untergeordneter Flow

Ein untergeordneter Flow ist ein untergeordneter Flow, auf den in anderen Power Automate-Flows verwiesen wird. Es ist hilfreich, einen untergeordneten Flow zu definieren, wenn Sie einige Schritte in mehreren Bereichen wiederholen. Für untergeordnete Flows gibt es weder eine spezielle Vorlage noch einen empfohlenen Prozess, da sie in erster Linie dazu gedacht sind, ähnliche Schritte zu konsolidieren.

Untergeordnete Anbieterflows können keine anderen untergeordneten Anbieterflows aufrufen.

Cloud-Flows erstellen

Wenn Sie wissen, welche Arten von Flows Sie erstellen möchten, können Sie Cloud-Flows erstellen. Gehen Sie dazu folgendermaßen vor:

  1. Öffnen Sie die Standardlösung in Ihrer Power Apps-Umgebung.

Wichtig

Fügen Sie diese Lösungen nicht zu Ihrer Anbieterlösung hinzu.

  1. Wählen Sie Neu und dann Cloud-Flow aus.

  2. Richten Sie Ihren Power Automate-Flow ein. Verwenden Sie die Vorlagen im vorherigen Abschnitt als Referenz.

  3. Lesen Sie den folgenden Abschnitt, um Ihre Flows zu speichern.

Power Automate-Definition speichern

Nachdem Sie Ihre Flows erstellt haben, müssen Sie sie als Komponente Logische Definition Anbieterdefinition speichern. Dieser Komponententyp stellt Intelligent Order Management die Aktivitäten bereit, die während der Anbieteraktivierung bereitgestellt werden.

Sie müssen die folgenden Voraussetzungen erfüllen, bevor Sie Ihre Flows speichern können.

  • Um Ihre logische Power Automate-Definitionen zu speichern, müssen Sie OData-Anforderungen ausgeben. Dazu benötigen Sie ein Konto bei PostMan oder einem ähnlichen Dienst.

  • Sie müssen ein Zugriffstoken für Ihre Dataverse-Umgebung generieren, um GET- und POST-Anforderungen auszugeben.

    • Richten Sie ein Azure-Konto mit einem aktiven Abonnement ein. Wenn Sie kein aktives Konto haben, müssen Sie ein Konto auf der Azure-Website einrichten.

    • PowerShell muss installiert sein. Weitere Informationen finden Sie unter Installieren von PowerShell.

    • Geben Sie den folgenden Befehl in PowerShell ein, um ein Zugriffstoken zu erhalten: az login --allow-no-subscriptions account get-access-token --resource=https://YourDataverseTenantURL.api.crm.dynamics.com/ --query=accessToken --output=tsv | Set-Clipboard.

Um Ihre Power Automate-Definition zu speichern, gehen Sie wie folgt vor.

  1. Finden Sie die Workflowkennung des Power Automate-Flow, den Sie speichern möchten. Führen Sie einen der folgenden Schritte aus.

    1. Finden Sie die Workflowkennung mit einer Power Automate-Aktivität.

      1. Erstellen Sie eine Verfassenaktivität mit dem Ausdruck workflow() am Ende Ihres Power Automate-Flows.
        Screenshot der Verfassenaktivität.

      2. Führen Sie Power Automate aus.

      3. Die xrmWorkflowId-Eigenschaft aus den Ausführungsergebnissen enthält die Workflowkennung.
        Screenshot der Workflowkennung.

      4. Löschen Sie diese Aktivität aus dem Flow, damit sie nicht erneut ausgeführt wird.

    2. Optional können Sie eine OData-abrufen-Anforderung ausgeben.

      1. Wechseln Sie zu dem Flow, für den Sie die Workflowkennung speichern möchten. Finden Sie in der URL den eindeutigen Bezeichner. Dies ist die Kennung, die nach ../flows/ in der URL angezeigt wird.
        So finden Sie den eindeutigen Bezeichner.

      2. Geben Sie eine OData-Anforderung aus, um die Workflow-Metadaten abzurufen. Hier sehen Sie ein Beispiel einer GET-Anforderung.
        GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Unique Workflow Id from the Power Automate U}'&$select=workflowid,workflowidunique

      3. Speichern Sie die zurückgegebene Workflowid-Eigenschaft.

  2. Finden Sie die Anbieterdefinitionskennung.

    1. Wählen Sie die Anbieterdefinition aus, in der Sie den Flow speichern möchten.

    2. Kopieren Sie die Anbieterdefinitionskennung aus der URL. Dies ist der Teil der URL ../id={Beispielnummer}/.
      So finden Sie die Anbieterdefinitionskennung.

  3. Notieren Sie sich den Wert des Optionssatzes für den Power Automate-Typ, den Sie speichern.

    1. untergeordneter Flow: 192350002

    2. Anbieteraktion: 192350001

    3. Provider-Nachrichtenhandler: 192350000

    4. Nachrichten-Puller des Anbieters: 192350003

  4. Geben Sie eine POST-Anforderung aus, um Ihre Power Automate-Definition zu speichern. Hier sehen Sie ein Beispiel einer Anforderung.

    POST: {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionLogicDefinition  
    Body:  
    {

"ProviderDefinitionId": "{ProviderId previously found}",

"WorkflowId": "{Power Automate WorkflowId previously found}",

"LogicalName": "{Export prefix \_ Power Automate Export Name}",

"LogicType": {Logic Type},

"MaxRetryAttempts": {Max number of attempts},

"TimeoutMinutes": {Timeout number ex: 5}

}
  1. Stellen Sie sicher, dass Ihre „Logische Definition Anbieterdefinition“-Komponente hinzugefügt wurde. Gehen Sie dazu folgendermaßen vor:

    1. Gehen Sie zu Ihrer Anbieterlösung.

    2. Überprüfen Sie, ob die „Logische Definition Anbieterdefinition“, die Sie erstellt haben, hinzugefügt wurde. Wenn sie nicht hinzugefügt wurde, wählen Sie Vorhandenes Element hinzufügen und fügen Sie dann die von Ihnen erstellte Komponente hinzu.

Verbindungsreferenzen speichern

Wenn Ihr Anbieter benutzerdefinierte Power Automate-Connectors verwendet, müssen Sie die folgenden Schritte ausführen, um Verbindungsreferenzen in Ihrer Power Automate-Lösung zu speichern.

  1. Geben Sie eine GET-Anforderung aus, um Ihre Verbindungsreferenz-ID abzurufen. Beispiel:
GET {Env url}/api/data/v9.2/connectionreferences

Wenn Sie weiter filtern möchten, können Sie nach dem Verbindungsreferenznamen filtern. Beispiel:

    {Env url}/api/data/v9.2/connectionreferences?$[connectionreferences?$filter=connectionreferencedisplayname](https://orgdb90e3a2.api.crm10.dynamics.com/api/data/v9.2/connectionreferences?$filter=connectionreferencedisplayname) eq 'Provider Example'&$select=connectionreferencelogicalname,connectionreferencedisplayname,connectionreferenceid,connectorid

  1. Überprüfen Sie, ob die richtige Verbindungsreferenz-ID abgerufen wurde, indem Sie in Ihren Power Automate Client-Daten suchen.

    1. Gehen Sie zu der „Logische Definition Anbieterdefinition“-Komponente, die Sie vorher gespeichert haben.

    2. Überprüfen Sie die Client-Daten, um sicherzustellen, dass connectionReferenceLogicalName erscheint.

  2. Finden Sie Ihre Anbieterdefinitionskennung. Dies ist derselbe Wert, den Sie in Schritt 2 verwendet haben, um logische Power Automate-Definitionen zu speichern.

  3. Geben Sie eine POST-Anforderung aus, um Ihre Verbindungsreferenz-ID zu speichern. Beispiel:

POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference  
    Body:  
    {

"ProviderDefinitionId": "{ProviderId previously found}",

"ConnectionReferenceId": "{Connection reference id previously found}"

}
  1. Stellen Sie sicher, dass Ihre „Logische Definition Anbieterdefinition“-Komponente hinzugefügt wurde.

    1. Gehen Sie zu Ihrer Anbieterlösung.

    2. Überprüfen Sie, ob die „Logische Definition Anbieterdefinition“-Referenzkomponente, die Sie erstellt haben, hinzugefügt wurde. Wenn sie nicht hinzugefügt wurde, wählen Sie Vorhandenes Element hinzufügen und fügen Sie die gerade von Ihnen erstellte Komponente hinzu.

Ihre Anbieter freigeben

Wenn Sie Ihre Anbieterdefinition in einer anderen Umgebung verwenden oder Ihre Lösung freigeben möchten, können Sie Ihre Anbieterlösung exportieren. Weitere Informationen finden Sie unter Lösungen exportieren.