Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Selecteer Nieuw in de provideroplossing die u hebt gemaakt.
Selecteer IOMProviderdefinitie.
Voeg de volgende details toe:
Weergavenaam: de naam die u de provider wilt geven, bijvoorbeeld Testprovider.
Logische naam: de exportsleutel voor de provider.
Omschrijving: tekst om aan te geven wat uw provider doet.
Selecteer Opslaan.
Upload de afbeelding als u een logo wilt toevoegen.
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.
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.
Ga naar uw oplossing.
Selecteer Bestaande toevoegen.
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.
Selecteer Nieuw in de provideroplossing.
Selecteer Transformatie van IOM-providerdefinitie.
Voeg de volgende details toe:
Weergavenaam: de naam van de transformatie van uw provider, bijvoorbeeld Verkooporders transformeren.
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.
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.
Naam van 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.
Doelobjectnaam: het doel van de record die u wilt transformeren.
Transformatie: de Power Query Online MQuery die wordt gebruikt om de ingevoerde gegevens 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));
Selecteer Opslaan.
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.
Selecteer Nieuw.
Selecteer Definitie van zakelijke gebeurtenis voor IOM-providerdefinitie.
Voeg de volgende details toe:
Naam: de naam van uw zakelijke gebeurtenis.
Provider: de provider waarvoor u deze bedrijfsdefinitie maakt.
Gekoppelde entiteit: de Dataverse-entiteit in Intelligent Order Management die wordt gewijzigd of beïnvloed wanneer de gebeurtenis wordt gemaakt.
Gekoppelde staatwaarde: als u wilt dat de staat van uw gekoppelde entiteit wordt bijgewerkt wanneer de zakelijke gebeurtenis wordt gegenereerd, neemt u een staatwaarde op in dit veld.
Gekoppelde statuswaarde: als u wilt dat de status van uw gekoppelde entiteit wordt bijgewerkt wanneer de zakelijke gebeurtenis wordt gegenereerd, neemt u een statuswaarde op in dit veld.
Selecteer Opslaan.
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.
Ga naar uw provideroplossing.
Selecteer Bestaande toevoegen.
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.
- 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.
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"
]
}
Initialiseer de berichtverwerking. Er zijn twee stappen nodig voor deze taak.
Het uitvoeringsresultaat initialiseren dat wordt gebruikt om de verwerking van het bericht bij te houden.
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.
PowerAutomateworkflowId: werkstroom-id in de berichthandlerdefinitie. U kunt deze ophalen met een samenstelfunctie met workflow()['tags'].
PowerAutomateRunId: de unieke id voor de Power Automate-uitvoering waarin het bericht is ontvangen en waarmee de pijplijn opnieuw kan proberen de verwerking uit te voeren en de uitvoeringslogboeken te koppelen. U kunt deze ophalen met een samenstelfunctie met workflow()['run']?['name'].
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']).
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:
Providernaam: de naam van de provider die aan de berichthandler is gekoppeld. Deze waarde moet overeenkomen met de naam van uw providertransformatie.
Naam van bronobject: de waarde van de bronzoeksleutel voor de transformatie die moet worden uitgevoerd. Deze waarde moet dezelfde zijn als de naam van het bronobject dat in de providertransformatie is gedefinieerd.
Naam van doelobject: de waarde van de doelzoeksleutel voor de transformatie die moet worden uitgevoerd. Deze waarde moet dezelfde zijn als de waarde die in de providertransformatie is gedefinieerd.
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.
Record-id: wordt geleverd bij de transformatie van een Dataverse-record. Geef een waarde voor Nettolading of Record-id op, niet beide.
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.
Als u wilt dat de stroom een zakelijke gebeurtenis genereert, kunt u de onderliggende stroom Zakelijke gebeurtenis genereren gebruiken. Voeg de volgende details toe.
BusinessEventName: naam van de gebeurtenis die u wilt genereren.
EntityRecordId: de id van de record die zojuist is gemaakt en aan de gebeurtenis is gekoppeld.
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.
ProviderMessageRequestExecutionId: de uitvoer-id van de record die is gemaakt om de voortgang van de berichtverwerking bij te houden.
IsProviderMessageRequestExecutionSuccess: booleaanse waarde 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.
Gebruik een terugkeerwerkstroom om een trigger te plannen.
Haal een controlepunt uit Dataverse. Via controlepunten wordt bijgehouden welke berichten zijn opgehaald van de externe provider. Voeg de volgende details toe.
Actienaam: naam voor het controlepunt.
WorkflowId: stel de volgende samenstelfunctie in om deze informatie op te halen: workflow()['tags']['xrmWorkflowId'].
Maak een HTTP POST-aanvraag voor een externe provider om de berichten op te halen. Voeg de volgende details toe.
Methode: stel dit veld in op POST.
URL: het eindpunt van de externe provider.
Hoofdtekst: de JSON-aanvraag moet de volgende formule bevatten: if(empty(outputs('Get_Checkpoint')?['body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?['body/Checkpoint'])).
Parseer de berichten die zijn opgehaald in stap 3. Voeg de volgende details toe.
Inhoud: de opgehaalde hoofdtekst uit stap 3.
Schema: de structuur van de hoofdtekst die is opgehaald in stap 3.
Verwerk berichten om elk bericht uit stap 4 te doorlopen.
Parseer elk bericht uit de vorige stappen. Voeg de volgende gegevens toe.
Inhoud: huidig item uit Berichten verwerken.
Schema: één bericht in JSON-indeling.
Roep de gekoppelde berichthandler voor providers aan die u hebt ingesteld voor de vereisten. Voeg de volgende gegevens toe.
Onderliggende stroom: selecteer de berichthandler voor providers.
Bericht: het geparseerde bericht uit stap 6.
Sla het controlepunt op in Dataverse. Voeg de volgende gegevens toe.
Controlepunt: dit kan elke tekenreekswaarde zijn (max. 100). In dit voorbeeld is dit de id van het laatst verwerkte bericht.
WorkFlowId: u kunt deze id ophalen door een samenstelfunctie toe te voegen die is ingesteld op workflow()['tags']['xrmWorkflowId'].
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.
- 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"
]
}
Initialiseer de actieverwerking.
Initialiseer het uitvoeringsresultaat en andere verwerkingsvariabelen.
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.
ProviderActionExecutionEventId: deze waarde is doorgegeven aan de actie als invoerparameter in stap 1.
PowerAutomateRunID: de unieke uitvoering 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'].
Voer de actie uit.
Transformeer indien nodig de records met de onderliggende stroom Bericht transformeren met Power Query Online.
Providernaam: de naam van de provider die aan de actie moet worden gekoppeld. De naam moet overeenkomen met de naam van uw providerdefinitie.
Naam van bronobject: de bronnaam van de transformatie die moet worden uitgevoerd. Deze naam moet hetzelfde bronobject zijn als in uw Power Automate-transformatie is gedefinieerd.
Naam van doelobject: de waarde van de doelzoeksleutel voor de transformatie die moet worden uitgevoerd. Deze naam moet dezelfde zijn als de waarde die in de providertransformatie is gedefinieerd.
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.
Record-id: wordt geleverd bij de transformatie van een uitgaande Dataverse-record. Voeg een waarde voor Nettolading of Record-id toe, maar niet beide.
Voer de aangepaste acties uit die u hebt gedefinieerd. Dit zijn acties die aanwezig zijn in de Power Automate-connector die u gebruikt.
Geneer een actiespecifieke zakelijke gebeurtenis. Gebruik de onderliggende stroom Zakelijke gebeurtenis genereren. Voeg de volgende gegevens toe.
BusinessEventName: de naam van de gebeurtenis die u wilt genereren.
EntityRecordId: de id van de record die aan de gebeurtenis is gekoppeld.
Voltooi de actie-uitvoering en sla de resultaten op. De resultaten worden verwerkt door de indelingsontwerper. Voeg de volgende gegevens toe.
ExecutionResult: booleaanse waarde om aan te geven of de verwerking is geslaagd.
ExecutionDetails: optionele logboekgegevens voor test- en foutopsporingsdoeleinden.
ProviderActionExecutionEventId: deze waarde is doorgegeven aan de actie als invoerparameter die is gedefinieerd in stap 1.
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:
- Open de standaardoplossing in uw Power Apps-omgeving.
Belangrijk
Voeg deze oplossingen niet aan uw provideroplossing toe.
Selecteer Nieuw en selecteer vervolgens Cloudstroom.
Bouw uw Power Automate-stroom op. Gebruik de sjablonen in de vorige sectie ter referentie.
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.
Zoek de werkstroom-id van de Power Automate-stroom die u wilt opslaan. U kunt een van de volgende dingen doen.
Zoek de werkstroom-id met behulp van een Power Automate-actie.
Maak een samenstelactie met de werkstroom()-expressie aan het einde van de Power Automate-stroom.
Voer Power Automate uit.
De eigenschap xrmWorkflowId uit de uitvoeringsresultaten bevat de werkstroom-id.
Verwijder deze actie uit de stroom zodat deze niet opnieuw wordt uitgevoerd.
U kunt eventueel een OData-aanvraag uitgeven.
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.
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,workflowiduniqueSla de geretourneerde eigenschap voor workflowid op.
Zoek de providerdefinitie-id.
Selecteer de providerdefinitie waarin u de stroom wilt opslaan.
Kopieer de providerdefinitie-id uit de URL. Dit is het deel van de URL ../id={voorbeeldnummer}/.
Noteer de optiesetwaarde voor het type Power Automate dat u wilt opslaan.
Onderliggende stroom: 192350002
Provideractie: 192350001
Berichthandler voor providers: 192350000
Berichtophaler voor providers: 192350003
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}
}
Controleer of uw onderdeel Logicadefinitie van providerdefinitie is toegevoegd. Voer hiervoor de onderstaande stappen uit:
Ga naar uw provideroplossing.
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.
- 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
Controleer of de juiste verbindingsverwijzings-id is opgehaald door te zoeken naar uw Power Automate-clientgegevens.
Ga naar het onderdeel Logicadefinitie van providerdefinitie dat u eerder hebt opgeslagen.
Controleer de clientgegevens om te controleren of connectionReferenceLogicalName wordt weergegeven.
Zoek de providerdefinitie-id. Dit is dezelfde waarde die u in stap 2 hebt gebruikt om uw Power Automate-logicadefinities op te slaan.
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}"
}
Controleer of uw onderdeel Logicadefinitie van providerdefinitie is toegevoegd.
Ga naar uw provideroplossing.
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.