Delen via


Een nieuwe provider maken

Voer de volgende stappen uit om een nieuwe provider te maken. U kunt deze stappen ook gebruiken voor toevoegingen aan bestaande providers.

Providerarchitectuur definiëren

Voordat u een provider maakt, is het belangrijk om te begrijpen wat de provider voor u moet doen en waarvoor u deze wilt gebruiken. Providers omvatten meerdere onderdelen en u hebt mogelijk niet alle onderdelen nodig.

Gebruik de volgende tabel om te bepalen welke onderdelen u nodig hebt.

Voorwaarde Benodigd onderdeel
De service waarvoor u een provider wilt maken, heeft geen connector in Power Automate.
Zie Lijst met alle connectors voor Power Automate voor meer informatie.
Maak een klantconnector of gebruik een algemene connector.
Uw provider wisselt gegevens tussen een externe service en Microsoft Dataverse uit. Uw provider heeft een providertransformatie nodig. Voeg voor elke transformatie een onderdeel voor providertransformatie toe.
Uw provider voert logica uit vanuit de indelingsontwerper. Maak een afzonderlijke Power Automate-stroom voor elk van de acties.
Uw provider moet berichten van een externe service verwerken. Maak een Power Automate-berichthandlerstroom.
Uw provider haalt regelmatig berichten van een externe service op. Maak een Power Automate-stroom voor het ophalen van berichten.
De provider genereert zakelijke gebeurtenissen die momenteel niet in Intelligent Order Management zijn gedefinieerd. Maak een nieuwe definitie voor zakelijke gebeurtenissen en voeg bestaande gebeurtenissen toe.

Wanneer u goed inzicht hebt in de oplossingen, kunt u verdergaan met het implementeren van uw provider.

Een provideroplossing maken

U moet de volgende taken in deze sectie uitvoeren om een provideroplossing te maken.

  • Stel een aangepaste provider in.

  • Voeg een providerdefinitie toe.

  • Voeg de onderdelen aan uw oplossing toe.

Een aangepaste provider instellen

Maak een oplossing in Power Apps die de onderdelen van uw provider moet bevatten. Volg de stappen in Een oplossing maken in Power Apps om een nieuwe oplossing in Power Apps te maken.

Een providerdefinitie toevoegen

Een providerdefinitie bevat details over uw provider. De definitie bepaalt hoe uw provider wordt weergegeven in de providercatalogus.

  1. Selecteer Nieuw in de provideroplossing die u hebt gemaakt.

  2. Selecteer IOMProviderdefinitie.

  3. Voeg de volgende details toe:

    1. Weergavenaam: de naam die u de provider wilt geven, bijvoorbeeld 'Testprovider'.

    2. Logische naam: de exportsleutel voor de provider.

    3. Omschrijving: tekst om te beschrijven wat uw provider doet.

  4. Selecteer Opslaan.

  5. Upload de afbeelding als u een logo wilt toevoegen.

  6. Controleer of uw providerdefinitie in de oplossing wordt weergegeven. Er moet een record met het onderdeeltype IOM-providerdefinitie worden weergegeven. Als dit niet wordt weergegeven, selecteert u Bestaande toevoegen en selecteert u de record die u zojuist hebt gemaakt.

  7. Controleer of uw provider in de providercatalogus wordt weergegeven. Als u het veld Is actief instelt op Ja, wordt uw providerdefinitie in de providercatalogus weergegeven. Open Intelligent Order Management. Ga naar Providers > Catalogus. Controleer of uw providerdefinitie wordt weergegeven.

Onderdelen toevoegen aan oplossing

Nadat u de providerdefinitie hebt gedefinieerd, voegt u de provideronderdelen aan de oplossing toe.

  1. Ga naar uw oplossing.

  2. Selecteer Bestaande toevoegen.

  3. Selecteer het onderdeeltype Intelligent Order Management en selecteer de record die u zojuist hebt gemaakt.

Een providertransformatie maken

Als uw provider een transformatie vereist, moet u een onderdeel voor providertransformatie aan uw oplossing toevoegen. Mogelijk moet u meerdere transformaties maken.

  1. Selecteer Nieuw in de provideroplossing.

  2. Selecteer Transformatie van IOM-providerdefinitie.

  3. Voeg de volgende details toe:

    1. Weergavenaam: de naam van de transformatie van uw provider, bijvoorbeeld 'Verkooporders omzetten'.

    2. Logische naam: de unieke id van uw provider. Deze waarde is de import- en exportsleutel van de gegevens. Deze moet beginnen met het voorvoegsel van de uitgever. Microsoft gebruikt bijvoorbeeld het uitgeversvoorvoegsel msdyn_. Voorbeelden voor de logische naam zijn: msdyn_flexe_fulfillmentorderproduct_orderline en msdyn_flexe_fulfillmentorder_order.

    3. Brontype: dit veld geeft aan welk type gegevens worden ontvangen. Er zijn twee opties: JsonDocument of Dataverse-entiteit. Selecteer Dataverse-entiteit als uw gegevens zich al in Dataverse bevinden. Zo niet, dan selecteert u JsonDocument. Deze informatie wordt gebruikt in het Power Automate-element dat u definieert om de transformatie op te zoeken.

    4. Naam van het bronobject: de naam van de gegevens die u transformeert. Als u een Dataverse-record transformeert, moet u ervoor zorgen dat Naam van bronobject dezelfde naam heeft als in de Dataverse-tabel.

    5. Doelobjectnaam: het doel van de record die u wilt omzetten.

    6. Transformatie: de Power Query onlinequery die wordt gebruikt om de invoergegevens te transformeren. Zie Wat is Power Query? en Referentie voor Power Query M-formuletaal voor informatie over Power Query en MQuery. Hierna volgt een voorbeeld van een MQuery waarin een verkooporder van een externe orderservice wordt omgezet in een verkooporder in Intelligent Order Management.

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. Selecteer Opslaan.

  2. Controleer of uw transformatieonderdeel op de juiste manier wordt weergegeven. Er moet een onderdeel van het type Transformatie van IOM-providerdefinitie met de transformatienaam worden weergegeven. Als dit niet wordt weergegeven, selecteert u Bestaande toevoegen en selecteert u de transformatie die u zojuist hebt gemaakt.

Definities voor zakelijke gebeurtenissen toevoegen

Als uw provider nieuwe zakelijke gebeurtenissen wil maken of gebruiken, moet u onderdelen van het type Definitie van zakelijke gebeurtenis voor IOM-providerdefinitie aan uw oplossing toevoegen. U hoeft alleen zakelijke gebeurtenissen toe te voegen die nog niet in Intelligent Order Management beschikbaar zijn.

Als de zakelijke gebeurtenis die u wilt maken, nog niet in Intelligent Order Management is opgenomen, kunt u uw eigen zakelijke gebeurtenis maken.

  1. Selecteer Nieuw.

  2. Selecteer Definitie van zakelijke gebeurtenis voor IOM-providerdefinitie.

  3. Voeg de volgende details toe:

    1. Naam: de naam van uw zakelijke gebeurtenis.

    2. Provider: de provider voor wie u deze bedrijfsdefinitie maakt.

    3. Gekoppelde entiteit: de Dataverse entiteit in Wordenorderbeheer die wordt gewijzigd of beïnvloed wanneer de gebeurtenis wordt gemaakt.

    4. Gekoppelde provinciewaarde: als u wilt dat de status van uw gekoppelde entiteit wordt bijgewerkt wanneer de zakelijke gebeurtenis wordt aangesteld, neem dan een provinciewaarde op in dit veld.

    5. Bijbehorende statuswaarde: als u wilt dat de status van de gekoppelde entiteit wordt bijgewerkt wanneer de zakelijke gebeurtenis wordt aan de orde van de dag, neem dan een statuswaarde op in dit veld.

  4. Selecteer Opslaan.

  5. Controleer de oplossing om te controleren of de record Definitie van zakelijke gebeurtenis voor IOM-provider wordt weergegeven. Als de record niet in de oplossing wordt weergegeven, selecteert u Bestaande toevoegen en selecteert u de record die u zojuist hebt gemaakt.

Een connector toevoegen

Als uw provider een connector nodig heeft die niet beschikbaar is in Power Automate, moet u uw eigen connector maken. Zie Lijst met alle connectoren voor Power Automate voor meer informatie.

Volg de stappen in Overzicht van aangepaste connectoren om uw eigen Power Automate-connector te maken.

Nadat u de aangepaste connector hebt gemaakt, voegt u deze als onderdeel aan uw provideroplossing toe.

  1. Ga naar uw provideroplossing.

  2. Selecteer Bestaande toevoegen.

  3. Selecteer de connector die u hebt gemaakt.

Typen Power Automate-stromen

Elke actie die in de indelingsontwerper wordt uitgevoerd, wordt vertegenwoordigd door Power Automate-stromen. Als u in Power Automate specifieke informatie wilt ophalen of specifieke acties wilt uitvoeren, moet u de stromen voor die acties maken. Zie Inleiding op Power Automate voor meer informatie over Power Automate.

Voeg uw stromen als onderdelen van het type Logicadefinitie van providerdefinitie aan uw provider toe.

Controleer voordat u met het maken van de stroom begint de stromen die worden gebruikt in Intelligent Order Management.

Berichthandler voor providers

Met deze stromen worden berichten van een externe service ontvangen en verwerkt en wordt de toepasselijke zakelijke gebeurtenis gegenereerd om Intelligent Order Management te informeren. Deze stromen worden geactiveerd door een externe service.

Hieronder wordt een voorbeeldstructuur voor het maken van een berichthandlertype van een Power Automate-stroom.

  1. Definieer een Power Automate-trigger. Dit is meestal een HTTP-eindpunt dat een webhooktrigger (aanbevolen), connectortrigger of Dataverse-invoegtrigger is. De trigger wordt gegenereerd wanneer een externe service gegevens heeft om naar Intelligent Order Management te verzenden. Schermopname van trigger voor wanneer een HTTP-aanvraag wordt ontvangen.

Het JSON-schema dat u wilt gebruiken in uw HTTP-trigger wordt hieronder gedefinieerd.

{
    "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. Initialiseer de berichtverwerking. Er zijn twee stappen nodig voor deze taak.

    1. Het uitvoeringsresultaat initialiseren dat wordt gebruikt om de verwerking van het bericht bij te houden.

    2. Het providerbericht bevestigen in Intelligent Order Management, zodat u de verwerkingsstatus kunt bijhouden, opnieuw kunt proberen en kunt weergeven. Dit is een Power Automate-actie die door Intelligent Order Management wordt geïntroduceerd. Deze actie wordt Berichtaanvraag van provider bevestigen in IOM genoemd. Deze actie heeft de volgende vereiste parameters.

      1. PowerAutomateworkflowId: WorkflowId op de bericht handlerdefinitie. U kunt deze ophalen met een samenstelfunctie met workflow()['tags'].

      2. PowerAutomateRunId: de Power Automate unieke ID voor de uitvoering waarbij het bericht werd ontvangen, en stelt de pijplijn in staat om de verwerking opnieuw uit te voeren en koppelen de uitvoeringslogboeken. U kunt deze ophalen met een samenstelfunctie met workflow()['run']?['name'].

      3. ProviderMessageExternalRequestId: een ID voor het verzonden bericht. Als er geen id aanwezig is, kan een GUID worden gegenereerd. Deze id wordt door de pijplijn gebruikt om te voorkomen dat de afzender dubbele berichten verstuurt. De id is afhankelijk van de nettolading van de bron. Bijvoorbeeld: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['id']).

Schermopname van het scherm Berichtaanvraag van provider bevestigen.

  1. Met de transformatie van de provider die u eerder hebt gedefinieerd, worden de invoergegevens opgehaald en getransformeerd. Intelligent Order Management biedt een kant-en-klare onderliggende stroom met de naam IOM-providertransformaties voor het uitvoeren van de transformatie. Voeg de volgende gegevens toe om de gebeurtenis of het bericht te verwerken:

    1. Providernaam: de naam van de provider die aan de bericht handler is gekoppeld. Deze waarde moet overeenkomen met de naam van uw providertransformatie.

    2. Naam van het bronobject: de waarde van de bronzoeksleutel voor de transformatie die u wilt uitvoeren. Deze waarde moet dezelfde zijn als de naam van het bronobject dat in de providertransformatie is gedefinieerd.

    3. Doelobjectnaam: de waarde voor de opzoeksleutel voor bestemmingsobjecten die u wilt uitvoeren. Deze waarde moet dezelfde zijn als de waarde die in de providertransformatie is gedefinieerd.

    4. Nettolading: wordt geleverd bij de transformatie van een JSON-nettolading. Power Automate vereist dat de parameters worden doorgegeven als een tekenreeks met serienummers. Geef een waarde voor Nettolading of Record-id op, niet beide.

    5. Record-ID: wordt geleverd bij de transformatie van een Dataverse record. Geef een waarde voor Nettolading of Record-id op, niet beide.
      Schermopname voor transformatiebericht met Power Query Online.

  2. U kunt gegevens invoegen in Dataverse met HTTP-aanvragen of de Dataverse-connectoractie Invoegen. Als u meerdere invoegacties uitvoert en de prestaties wilt verbeteren, verpakt u de invoegacties in een wijzigingsset, zodat de aanvragen worden opgenomen in een transactiebatch.
    Schermopname van invoegberichtenstroom.

  3. Als u wilt dat de stroom een zakelijke gebeurtenis genereert, kunt u de onderliggende stroom Zakelijke gebeurtenis genereren gebruiken. Voeg de volgende details toe.

    1. BusinessEventName: naam van de gebeurtenis die u wilt hebben opgeheven.

    2. Entiteitsrecord: de ID van de record die zojuist is gemaakt en aan de gebeurtenis is gekoppeld.

  4. Werk de status van de berichtverwerking bij met de actie Berichtaanvraagstatus van provider bijwerken om het resultaat van de uitvoering van de verwerking op te slaan. Voeg de volgende details toe.

    1. ProviderMessageRequestExecutionId: de uitvoer-ID van de record die is gemaakt om de voortgang van de berichtverwerking bij te houden.

    2. IsProviderMessageRequestExecutionJous: Boolean om aan te geven of de verwerking is geslaagd.

Berichtophaler voor providers

Berichtophalers voor providers zijn Power Automate-stromen die berichten met een regelmatig gedefinieerd interval van een externe service ophalen.

Notitie

Een berichthandler is een vereiste voor een berichtophalerstroom.

Hieronder wordt een voorbeeldstructuur voor het maken van een berichtophalertype van een Power Automate-stroom.

  1. Gebruik een terugkeerwerkstroom om een trigger te plannen.

  2. Haal een controlepunt uit Dataverse. Via controlepunten wordt bijgehouden welke berichten zijn opgehaald van de externe provider. Voeg de volgende details toe.

    1. Actienaam: naam voor de vs.

    2. workflowId: stel de volgende functie samen om deze informatie op te halen: workflow()['tags']['xrmworkflowId'].
      schermopname van Controlepunt ophalen.

  3. Maak een HTTP POST-aanvraag voor een externe provider om de berichten op te halen. Voeg de volgende details toe.

    1. methode: hiermee stelt u dit veld in op 'Bericht'.

    2. URL: het eindpunt van de externe provider.

    3. Body: De JSON-aanvraag moet de volgende formule hebben: if(empty(outputs('Get_Checkpoint')?[' body/Worden']), 0, int(uitvoer('Get_Checkpoint')?'[' body/wordend'])).
      Schermopname voor Berichten ophalen.

  4. Parseer de berichten die zijn opgehaald in stap 3. Voeg de volgende details toe.

    1. Inhoud: de body die wordt opgehaald uit stap 3.

    2. Schema: de structuur van de body die in stap 3 wordt opgehaald.
      Schermopname voor Berichten parseren.

  5. Verwerk berichten om elk bericht uit stap 4 te doorlopen.

  6. Parseer elk bericht uit de vorige stappen. Voeg de volgende gegevens toe.

    1. Inhoud: huidig artikel uit Procesberichten.

    2. Schema: één bericht in JSON-indeling.
      Schermopname voor Berichten verwerken 2.

  7. Roep de gekoppelde berichthandler voor providers aan die u hebt ingesteld voor de vereisten. Voeg de volgende gegevens toe.

    1. onderliggende stroom: selecteer de bericht handler van uw provider.

    2. Bericht: het bericht is gelijk aan stap 6.
      Schermopname voor Berichten verwerken 3.

  8. Sla het controlepunt op in Dataverse. Voeg de volgende gegevens toe.

    1. Deze waarde kan elke tekenreekswaarde (max 100) zijn. In dit voorbeeld is dit de id van het laatst verwerkte bericht.

    2. WorkFlowId: U kunt deze ID ophalen door een bestaande functieset toe te voegen aan workflow()['tags']['xrmworkflowId'].
      Schermopname voor Berichten verwerken 4.

Provideractie

Provideractiestromen worden aangeroepen vanuit de indelingsontwerper. Deze stromen voeren meestal aanroepen vanuit Intelligent Order Management naar externe services uit.

Het belangrijkste verschil tussen een berichthandler van een provider en een provideractie is dat een berichthandler de indelingsontwerper kan informeren, maar niet kan worden geactiveerd door een actietegel in de indelingsontwerper en dit wel mogelijk is voor de provideractie.

Hier volgt een voorbeeldstructuur voor een Power Automate-stroom voor provideracties.

  1. Begin met een HTTP-trigger. De volgende informatie wordt doorgegeven tijdens runtime door de indelingsservice. Het volgende JSON-schema wordt gebruikt voor de hoofdtekst:
{
    "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. Initialiseer de actieverwerking.

    1. Initialiseer het uitvoeringsresultaat en andere verwerkingsvariabelen.

    2. Bevestig het begin van de actie-uitvoering met de Dataverse-actie Uitvoering van provideractie starten. Hierdoor kan de pijplijn de verwerkingsstatus in Intelligent Order Management bijhouden, opnieuw proberen en weergeven. Voeg de volgende gegevens toe.

      1. ProviderActionExecutionEventId: deze waarde is doorgegeven aan de actie als invoerparameter in stap 1.

      2. PowerAutomateRunID: de unieke run van de Power Automate actie. Hierdoor kan de pijplijn de uitvoeringslogboeken koppelen. U kunt deze informatie verkrijgen door het veld in te stellen op een Power Automate-expressie worflow()['run']?['name'].

  2. Voer de actie uit.

    1. Transformeer indien nodig de records met de onderliggende stroom Bericht transformeren met Power Query Online.

      1. Providernaam: de naam van de provider die aan de actie moet worden gekoppeld. De naam moet overeenkomen met de naam van uw providerdefinitie.

      2. Naam van het bronobject: de bronnaam van de transformatie die u wilt uitvoeren. Deze naam moet hetzelfde bronobject zijn als in uw Power Automate-transformatie is gedefinieerd.

      3. Doelobjectnaam: de waarde voor de opzoeksleutel voor bestemmingsobjecten die u wilt uitvoeren. Deze naam moet dezelfde zijn als de waarde die in de providertransformatie is gedefinieerd.

      4. Nettolading: wordt geleverd bij de transformatie van een inkomende JSON-nettolading. Power Automate vereist dat de parameters worden doorgegeven als een tekenreeks met serienummers. Voeg een waarde voor Nettolading of Record-id toe, maar niet beide.

      5. Record-ID: wordt geleverd bij de transformatie van een uitgaande Dataverse record. Voeg een waarde voor Nettolading of Record-id toe, maar niet beide.
        Schermopname voor transformatiebericht met Power Query Online.

    2. Voer de aangepaste acties uit die u hebt gedefinieerd. Dit zijn acties die aanwezig zijn in de Power Automate-connector die u gebruikt.

    3. Geneer een actiespecifieke zakelijke gebeurtenis. Gebruik de onderliggende stroom Zakelijke gebeurtenis genereren. Voeg de volgende gegevens toe.

      1. BedrijfEventNaam: de naam van de gebeurtenis die u wilt verhogen.

      2. Entiteitsrecord: de ID van de record die aan de gebeurtenis is gekoppeld.

  3. Voltooi de actie-uitvoering en sla de resultaten op. De resultaten worden verwerkt door de indelingsontwerper. Voeg de volgende gegevens toe.

    1. ExecutionResult: Boolean om aan te geven of de verwerking is geslaagd.

    2. ExecutionDetails: Optionele logboekgegevens voor het testen en debuggen.

    3. ProviderActionExecutionEventId: deze waarde is doorgegeven aan de actie als invoerparameter die in stap 1 is gedefinieerd.
      Schermopname van Uitvoering van provideractie voltooien.

Onderliggende stroom

Een onderliggende stroom is een substroom waarnaar in andere Power Automate-stromen wordt verwezen. Het is handig om een onderliggende stroom te definiëren als er enkele stappen zijn die u voor meerdere gebieden herhaalt. Er is geen specifieke sjabloon of een aanbevolen proces voor onderliggende stromen, omdat deze voornamelijk bedoeld zijn om te worden gebruikt voor het gemak van het consolideren van vergelijkbare stappen.

Onderliggende stromen van providers kunnen geen onderliggende stromen van andere providers aanroepen.

Cloudstromen maken

Wanneer u de typen stromen begrijpt die u wilt maken, kunt u cloudstromen maken. Voer hiervoor de onderstaande stappen uit:

  1. Open de standaardoplossing in uw Power Apps-omgeving.

Belangrijk

Voeg deze oplossingen niet aan uw provideroplossing toe.

  1. Selecteer Nieuw en selecteer vervolgens Cloudstroom.

  2. Bouw uw Power Automate-stroom op. Gebruik de sjablonen in de vorige sectie ter referentie.

  3. Raadpleeg de volgende sectie om uw stromen op te slaan.

Power Automate-definitie opslaan

Nadat u de werkstromen hebt gemaakt, moet u deze opslaan als onderdelen van het type Logicadefinitie van providerdefinitie. Dit onderdeeltype voorziet Intelligent Order Management van de acties die tijdens het activeren van de provider worden geïmplementeerd.

U moet aan de volgende vereisten voldoen voordat u uw stromen kunt opslaan.

  • Als u de Power Automate-logicadefinities wilt opslaan, moet u OData-aanvragen uitgeven. U hebt om dit te doen een account bij PostMan of een vergelijkbare service nodig.

  • U moet een toegangstoken voor uw Dataverse-omgeving genereren om GET- en POST-aanvragen uit te geven.

    • Een Azure-account instellen met een actief abonnement. Als u geen actieve account hebt, moet u een account instellen op de Azure-website.

    • PowerShell moet geïnstalleerd zijn. Zie PowerShell installeren voor meer informatie.

    • Voer de volgende opdracht in PowerShell in om een toegangstoken te krijgen: az login --allow-no-subscriptions account get-access-token --resource=https://YourDataverseTenantURL.api.crm.dynamics.com/ --query=accessToken --output=tsv | Set-Clipboard.

Ga als volgt te werk om uw Power Automate-definitie op te slaan.

  1. Zoek de werkstroom-id van de Power Automate-stroom die u wilt opslaan. U kunt een van de volgende dingen doen.

    1. Zoek de werkstroom-id met behulp van een Power Automate-actie.

      1. Maak een samenstelactie met de werkstroom()-expressie aan het einde van de Power Automate-stroom.
        Schermopname van samenstelactie.

      2. Voer Power Automate uit.

      3. De eigenschap xrmWorkflowId uit de uitvoeringsresultaten bevat de werkstroom-id.
        Schermopname van werkstroom-id.

      4. Verwijder deze actie uit de stroom zodat deze niet opnieuw wordt uitgevoerd.

    2. U kunt eventueel een OData-aanvraag uitgeven.

      1. Ga naar de stroom waarvoor u de werkstroom-id wilt opslaan. Zoek de unieke id in de URL. Dit is de id die wordt weergegeven na .. /flows/ in de URL.
        Hoe u een unieke id vindt.

      2. Geef een OData-aanvraag uit om de werkstroommetagegevens op te halen. Hier volgt een voorbeeld van een GET-aanvraag.
        GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Unique Workflow Id from the Power Automate U}'&$select=workflowid,workflowidunique

      3. Sla de geretourneerde eigenschap voor workflowid op.

  2. Zoek de providerdefinitie-id.

    1. Selecteer de providerdefinitie waarin u de stroom wilt opslaan.

    2. Kopieer de providerdefinitie-id uit de URL. Dit is het deel van de URL ../id={voorbeeldnummer}/.
      Hoe u de providerdefinitie-id vindt.

  3. Noteer de optiesetwaarde voor het type Power Automate dat u wilt opslaan.

    1. onderliggende stroom: 192350002

    2. Provideractie: 192350001

    3. Providerbericht handler: 192350000

    4. ophaalfunctie voor providerberichten: 192350003

  4. Een POST-aanvraag uitgeven om uw Power Automate-definitie op te slaan. Hier volgt een voorbeeld van een aanvraag.

    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. Controleer of uw onderdeel Logicadefinitie van providerdefinitie is toegevoegd. Voer hiervoor de onderstaande stappen uit:

    1. Ga naar uw provideroplossing.

    2. Controleer of het door u gemaakte Logicadefinitie van providerdefinitie is toegevoegd. Als dit niet zo is, selecteert u Bestaande toevoegen en voegt u het onderdeel toe dat u hebt gemaakt.

Verbindingsverwijzingen opslaan

Als uw provider gebruikmaakt van Power Automate-connectors voor klanten, moet u de volgende stappen uitvoeren om verbindingsverwijzingen naar uw Power Automate-oplossing op te slaan.

  1. Geef een GET-aanvraag uit om de verbindingsverwijzings-id op te halen. Bijvoorbeeld:
GET {Env url}/api/data/v9.2/connectionreferences

Als u nog verder wilt filteren, kunt u filteren op de naam van de verbindingsverwijzing. Bijvoorbeeld:

    {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. Controleer of de juiste verbindingsverwijzings-id is opgehaald door te zoeken naar uw Power Automate-clientgegevens.

    1. Ga naar het onderdeel Logicadefinitie van providerdefinitie dat u eerder hebt opgeslagen.

    2. Controleer de clientgegevens om te controleren of connectionReferenceLogicalName wordt weergegeven.

  2. Zoek de providerdefinitie-id. Dit is dezelfde waarde die u in stap 2 hebt gebruikt om uw Power Automate-logicadefinities op te slaan.

  3. Geef een POST-aanvraag uit om de verbindingsverwijzings-id op te slaan. Bijvoorbeeld:

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

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

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

}
  1. Controleer of uw onderdeel Logicadefinitie van providerdefinitie is toegevoegd.

    1. Ga naar uw provideroplossing.

    2. Controleer of het door u gemaakte referentieonderdeel Logicadefinitie van providerdefinitie is toegevoegd. Als dit niet zo is, selecteert u Bestaande toevoegen en voegt u het onderdeel toe dat u zojuist hebt gemaakt.

Uw providers delen

Als u uw providerdefinitie in een andere omgeving wilt gebruiken of uw oplossing wilt delen, kunt u uw provideroplossing exporteren. Zie Oplossingen exporteren voor meer informatie.