Oprette en ny udbyder
Udfør følgende trin for at oprette en ny udbyder. Du kan også bruge disse trin til at foretage tilføjelser til eksisterende udbydere.
Definere udbyderarkitektur
Før du opretter en udbyder, er det vigtigt at forstå, hvad du ønsker, at udbyderen skal gøre, og hvad du vil bruge den til. Udbydere har flere komponenter, og du har måske ikke brug for alle komponenter.
Du kan bruge følgende tabel til at bestemme, hvilke komponenter du skal bruge.
Betingelse | Komponent, der skal bruges |
---|---|
Den tjeneste, du vil oprette en udbyder for, har ikke en connector i Power Automate. Du kan finde flere oplysninger i Oversigt over alle Power Automate-connectorer. |
Opret en kundeconnector, eller brug et generisk connector. |
Udbyderen udveksler data mellem en ekstern tjeneste og Microsoft Dataverse. | Din udbyder har brug for en transformation af udbyder. Tilføj en transformationskomponent for en udbyder for hver transformation. |
Udbyderen udfører logik fra orkestreringsdesigneren. | Opret et separat Power Automate-flow, der repræsenterer hver af handlingerne. |
Din udbyder skal behandle meddelelser fra en ekstern tjeneste. | Opret et Power Automate-meddelelseshandlerflow. |
Din udbyder trækker meddelelser fra en ekstern service med jævne mellemrum. | Opret et Power Automate-meddelelsesudtrækkerflow. |
Din udbyder forhøjer forretningshændelser, der ikke aktuelt er defineret i Intelligent Order Management. | Opret en ny forretningshændelsesdefinition, og tilføj eksisterende hændelser. |
Når du har en god forståelse af løsningerne, kan du fortsætte med at implementere udbyderen.
Oprette en udbyderløsning
Du skal udføre følgende opgaver i dette afsnit for at oprette en udbyderløsning.
Konfigurer en brugerdefineret udbyder.
Tilføj en udbyderdefinition.
Føj komponenterne til løsningen.
Konfigurere en brugerdefineret udbyder
Opret en løsning i Power Apps, som indeholder udbyderens komponenter. Hvis du vil oprette en ny løsning i Power Apps, skal du følge trinnene under Oprette en løsning i Power Apps.
Tilføje en udbyderdefinition
En udbyderdefinition indeholder oplysninger om udbyderen. Definitionen bestemmer, hvordan udbyderen vises i udbyderkataloget.
Vælg Ny i den udbyderløsning, du har oprettet.
Vælg IOMUdbyderdefinition.
Tilføj følgende oplysninger:
Visningsnavn: Det navn, du vil give din udbyder, f.eks. "Testudbyder".
Logisk navn: Eksportnøglen for din udbyder.
Beskrivelse: Tekst, der beskriver, hvad din udbyder gør.
Vælg Gem.
Hvis du vil tilføje et logo, skal du uploade billedet.
Kontrollér, at udbyderdefinitionen vises i løsningen. Der skal vises en post med komponenttypen IOM-udbyderdefinition. Hvis den ikke vises, skal du vælge Tilføj eksisterende og derefter vælge den post, du netop har oprettet.
Kontrollér, at udbyderen vises i udbyderkataloget. Hvis du angiver feltet Er aktiv til Ja, vises udbyderdefinitionen i udbyderkataloget. Åbn Intelligent Order Management. Gå til Udbydere > Katalog. Kontrollér, at udbyderdefinitionen vises.
Tilføje komponenter i løsning
Når du har oprettet din udbyderdefinition, kan du føje udbyderkomponenter til løsningen.
Gå til din løsning.
Vælg Tilføj eksisterende.
Vælg komponenttypen Intelligent Order Management, og vælg derefter den post, du netop har oprettet.
Oprette en udbydertransformation
Hvis din udbyder kræver en transformation, skal du føje en udbydertransformationskomponent til din løsning. Det kan være nødvendigt at oprette flere transformationer.
Vælg Ny i din udbyderløsning.
Vælg Transformation af IOM-udbyderdefinitioner.
Tilføj følgende oplysninger:
Visningsnavn: Navnet på din udbydertransformation, f.eks. "Transformér salgsordrer".
Logisk navn: Din udbyders unikke identifikator. Denne værdi er dataenes import- og eksportnøgle. Det bør starte med udgiverens præfiks. Microsoft bruger f.eks. udgiverpræfikset msdyn_. Eksempler på logiske navne: msdyn_flexe_fulfillmentorderproduct_orderline og msdyn_flexe_fulfillmentorder_order.
Kildetype: Dette felt angiver, hvilken type data der modtages. Der er to indstillinger: JsonDocument eller Dataverse-enhed. Hvis dataene allerede findes i Dataverse, skal du vælge Dataverse-enhed. Hvis ikke, skal du vælge JsonDocument. Disse oplysninger bruges i det Power Automate-element, du definerer for at slå transformationen op.
Navn på kildeobjekt: Navnet på de data, du transformerer. Hvis du er ved at transformere en Dataverse-post, skal du kontrollere, at Navn på kildeobjekt har samme navn som i Dataverse-tabellen.
Navn på destinationsobjekt: Destinationen for den post, du vil transformere.
Transformation: Online Power Query MQuery, der vil blive brugt til at transformere inputdataene. Du kan finde oplysninger om Power Query og MQuery under Hvad er Power Query? og Power Query M-formelsprogreference. Nedenfor er et eksempel på en MQuery, der transformerer en salgsordre fra en ekstern ordretjeneste til en salgsordre i 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));
Vælg Gem.
Kontrollér, at transformationskomponenten vises korrekt. Der skal vises en komponenttype af Transformation af IOM-udbyderdefinitioner med transformationsnavnet. Hvis den ikke vises, skal du vælge Tilføj eksisterende og derefter vælge den transformation, du netop har oprettet.
Tilføje definitioner af forretningshændelser
Hvis udbyderen skal oprette eller bruge nye forretningshændelser, skal du tilføje Definition af IOM-udbyderdefinitionsforretningshændelser-komponenter til din løsning. Du behøver kun at tilføje forretningshændelser, som ikke allerede findes i Intelligent Order Management.
Hvis du vil oprette en forretningshændelse, som ikke allerede findes i Intelligent Order Management, kan du oprette din egen.
Vælg Ny.
Vælg Definition af IOM-udbyderdefinitionsforretningshændelser.
Tilføj følgende oplysninger:
Navn: Navnet på din virksomhedshændelse.
Udbyder: Den udbyder, du opretter denne virksomhedsdefinition for.
Tilknyttet objekt: Det Dataverse objekt i Intelligent Order Management, der ændres eller påvirkes, når hændelsen oprettes.
Tilknyttet tilstandsværdi: Hvis tilstanden for det tilknyttede objekt skal opdateres, når forretningshændelsen udløses, skal du medtage en tilstandsværdi i dette felt.
Tilknyttet statusværdi: Hvis status for det tilknyttede objekt skal opdateres, når forretningshændelsen udløses, skal du medtage en statusværdi i dette felt.
Vælg Gem.
Kontrollér løsningen for at sikre, at posten Definition af IOM-udbyderdefinitionsforretningshændelser vises. Hvis posten ikke vises i løsningen, skal du vælge Tilføj eksisterende og derefter vælge den post, du lige har oprettet.
Tilføj en connector
Hvis din udbyder har brug for en connector, som ikke er tilgængelig i Power Automate, skal du oprette din egen connector. Yderligere oplysninger finder du i Liste over alle Power Automate-connectorer.
Hvis du vil oprette din egen Power Automate-connector, skal du følge trinnene i Oversigt over brugerdefinerede connectorer.
Når du har oprettet dnt brugerdefinerede connector, kan du føje den til udbyderløsningen som en komponent.
Gå til din udbyderløsning.
Vælg Tilføj eksisterende.
Vælg den connector, du har oprettet.
Types af Power Automate-flow
Enhver handling, der udføres i orkestreringsdesigneren, repræsenteres af Power Automate-flow. Hvis Power Automate skal hente specifikke oplysninger eller udføre bestemte handlinger, skal du oprette flowene for disse handlinger. Du kan finde flere oplysninger om Power Automate i Introduktion til Power Automate.
Tilføj dine flows som Logisk definition af IOM-udbyderdefinition-komponenter i udbyderen.
Før du går i gang med at oprette flow, skal du gennemgå de flowtyper, der bruges i Intelligent Order Management.
Udbyderens meddelelseshandler
Disse flow modtager og behandler meddelelser fra en ekstern tjeneste og aktiverer den relevante forretningshændelse for at give besked til Intelligent Order Management-orkestrering. Disse flow udløses af en ekstern tjeneste.
Følgende er en eksempelstruktur til oprettelse af en meddelelseshandlertype af Power Automate-flow.
- Definer en Power Automate-udløser. Dette er typisk et HTTP-slutpunkt, der er en webhook-udløser (anbefales), connector-udløserr eller en Dataverse-indsættelsesudløser. Udløseren aktiveres, når en ekstern tjeneste har data, der skal sendes til Intelligent Order Management.
Det JSON-skema, der skal bruges i HTTP-udløseren, er defineret nedenfor.
{
"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"
]
}
Initialiser behandlingen af meddelelsen. Der er to trin involveret i denne opgave.
Initialiser udførelsesresultatet, som vil blive brugt til at spore behandlingen af meddelelsen.
Godkend udbydermeddelelsen i Intelligent Order Management, så du kan spore, gentage og vise behandlingstilstanden. Dette er en Power Automate-handling, som Intelligent Order Management introducerer. Denne handling kaldes Godkend anmodning om udbydermeddelelse i IOM. Denne handling har følgende påkrævede parametre.
PowerAutomateWorkflowId: WorkflowId i definitionen af meddelelsesbehandleren. Du kan hente dette ved at have en oprettelsesfunktion sammen med workflow()['tags'].
PowerAutomateRunId: Det entydige id for den Power Automate kørsel, der modtog meddelelsen, og som gør det muligt for pipelinen at prøve behandlingen igen og sammenkæde udførelseslogfilerne. Du kan hente dette ved at have en oprettelsesfunktion med workflow()['run']?['name'].
ProviderMessageExternalRequestId: Et id for den meddelelse, der sendes. Hvis der ikke findes en identifikator, kan der genereres et GUID. Denne identifikator bruges af pipelinen til at forhindre, at afsenderen sender identiske meddelelser. Identifikatoren afhænger af kildens nyttedata. For eksempel: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['id']).
Den udbydertransformation, du har defineret tidligere, henter inputdataene og transformerer dem. Intelligent Order Management leverer en indbygget underordnet proces, der kaldes IOM-udbydertransformator, som skal udføre transformationen. Tilføj følgende oplysninger for at behandle hændelsen eller meddelelsen:
Udbydernavn: Navnet på den udbyder, der er knyttet til meddelelsesbehandleren. Denne værdi skal have samme navn som udbyderens transformation.
Navn på kildeobjekt: Kildeopslagsnøgleværdien for den transformation, der skal udføres. Denne værdi skal være den samme som det kildeobjektnavn, der er defineret i din udbydertransformation.
Destinationsobjektnavn: Nøgleværdien for destinationsopslag for den transformation, der skal udføres. Denne værdi skal være den samme som den, der er defineret i udbydertransformationen.
Nyttelast: Leveres ved transformering af JSON-data. Power Automate kræver, at parametrene sendes som en serialiseret streng. Angiv værdien Nyttedata eller Post-id, ikke begge dele.
Post-id: Angives ved transformering af en Dataverse post. Angiv værdien Nyttedata eller Post-id, ikke begge dele.
Du kan indsætte data i Dataverse ved hjælp af HTTP-anmodninger eller Dataverse-connectorhandlingen Indsæt. Hvis du gør foretage end én indsættelse og vil forbedre ydeevnen, skal du pakke indsættelserne i et ændringssæt, så anmodningerne er i en transaktionsbatch.
Hvis du ønsker, at dit flow skal aktivere en forretningshændelse, kan du bruge det underordnede flow Forhøj forretningshændelse. Tilføj følgende oplysninger.
BusinessEventName: Navnet på den begivenhed, der skal oprettes.
EntityRecordId: Id'et for den post, der netop er oprettet og knyttet til hændelsen.
Opdater tilstanden for behandling af meddelelsen ved at bruge handlingen Opdater anmodningsstatus for udbydermeddelelse for at gemme udførelsesresultatet af behandlingen. Tilføj følgende oplysninger.
ProviderMessageRequestExecutionId: Output-id'et for den post, der er oprettet for at spore status for meddelelsesbehandlingen.
IsProviderMessageRequestExecutionSuccess: boolesk værdi til at angive, om behandlingen lykkedes.
Udbyderens meddelelsesudtrækker
Udbyderens meddelelsesudtrækker er Power Automate-flow, der trækker meddelelser ud med et regelmæssigt defineret interval fra en ekstern tjeneste.
Bemærk!
En meddelelseshandler er en forudsætning for et meddelelsesudtrækkerflow.
Følgende er en eksempelstruktur til oprettelse af en meddelelsesudtrækkertype af Power Automate-flow.
Brug en gentagelsesgentagelse til at planlægge en udløser.
Hent et kontrolpunkt fra Dataverse. Kontrolpunkter sporer, hvilke meddelelser der er blevet trukket ud af den eksterne udbyder. Tilføj følgende oplysninger.
Handlingsnavn: Navn på kontrolpunktet.
WorkflowId: Indstil følgende skrivefunktion for at hente disse oplysninger: workflow()['tags']['xrmWorkflowId'].
Opret en HTTP-POST-anmodning til en ekstern udbyder for at trække meddelelserne ud. Tilføj følgende oplysninger.
Metode: Indstil dette felt til POST.
URL-adresse: Den eksterne udbyders slutpunkt.
Brødtekst: JSON-anmodningen skal have følgende formel: if(empty(outputs('Get_Checkpoint')?[' body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?[' krop/kontrolpunkt'])).
Fortolk meddelelserne, der er trukket ud i trin 3. Tilføj følgende oplysninger.
Indhold: Liget hentet fra trin 3.
Skema: Kroppens struktur hentet i trin 3.
Behandl meddelelser for at gå gennem hver meddelelse fra trin 4.
Fortolk hver meddelelse fra de forrige trin. Tilføj følgende oplysninger.
Indhold: Aktuelt element fra Behandl meddelelser.
Skema: En enkelt meddelelse i JSON-format.
Kald den tilknyttede udbyders meddelelseshandler, du har konfigureret i forudsætningerne. Tilføj følgende oplysninger.
underordnet flow: Vælg din udbyders meddelelseshandler.
Meddelelse: Meddelelsen er analyseret fra trin 6.
Gem kontrolpunktet i Dataverse. Tilføj følgende oplysninger.
Checkpoint: Dette kan være en hvilken som helst strengværdi (maks. 100). I dette eksempel er dette id'et for den sidst behandlet meddelelse.
WorkFlowId: Du kan hente dette id ved at tilføje en skrivefunktion, der er indstillet til workflow()['tags']['xrmWorkflowId'].
Udbyderhandling
Udbyderhandlingsflow aktiveres fra orkestreringsdesigneren. Disse flow foretager typisk kald fra Intelligent Order Management til eksterne tjenester.
Den væsentligste forskel mellem en udbyders meddelelseshandler og en udbyderhandling er, at mens en meddelelseshandler kan give orkestreringsdesigneren besked, kan den ikke udløses af et handlingsfelt i orkestreringsdesigneren, hvorimod en udbyderhandling kan.
Nedenfor er et eksempel på en struktur for et Power Automate-udbyderhandlingsflow.
- Start med en HTTP-udløser. Følgende oplysninger overføres under kørslen af orkestreringstjenesten. Følgende JSON-skema anvendes:
{
"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"
]
}
Initialiser handlingsbehandlingen.
Initialiser udførelsesresultatet og eventuelle andre behandlingsvariabler.
Godkend for starten af handlingsudførelsen ved hjælp af handlingen Start udbyderhandlingsudførelse i Dataverse. På den måde kan pipelinen spore, gentage og vise behandlingstilstanden i Intelligent Order Management. Tilføj følgende oplysninger.
ProviderActionExecutionEventId: Denne værdi blev overført til handlingen som en inputparameter i trin 1.
PowerAutomateRunID: Den unikke kørsel af handlingen Power Automate . Dette giver pipelinen mulighed for at sammenkæde udførelseslogfiler. Du kan hente disse oplysninger ved at indstille feltet til Power Automate-udtrykket worflow()['run']?['name'].
Udfør handlingen.
Hvis det er nødvendigt, kan du transformere posterne ved hjælp af det underordnede flow Transformer meddelelse med Power Query online.
Udbydernavn: Navnet på den udbyder, der skal knyttes til handlingen. Navnet skal være det samme navn som din udbyderdefinition.
Kildeobjektnavn: Kildenavnet på den transformation, der skal udføres. Dette navn skal være det samme kildeobjekt, som er defineret i Power Automate-transformationen.
Navn på destinationsobjekt: Nøgleværdien for destinationsopslag for den transformation, der skal udføres. Dette navn skal være det samme som det, der er defineret i udbydertransformationen.
Data: Leveres ved transformering af indgående JSON-data. Power Automate kræver, at parametrene sendes som en serialiseret streng. Tilføj værdien Nyttedata eller Post-id, men ikke begge dele.
Post-id: Angives ved transformering af en udgående Dataverse post. Tilføj værdien Nyttedata eller Post-id, men ikke begge dele.
Udfør eventuelle brugerdefinerede handlinger, du har defineret. Det er handlinger, der findes på den Power Automate-connector, du bruger.
Forhøj en handlingsspecifik forretningshændelse. Brug det underordnede flow Forhøj forretningshændelse. Tilføj følgende oplysninger.
BusinessEventName: Navnet på den begivenhed, du vil oprette.
EntityRecordId: Id'et for den post, der er knyttet til hændelsen.
Fuldfør handlingsudførelsen, og gem resultaterne. Resultaterne behandles af orkestreringsdesigneren. Tilføj følgende oplysninger.
ExecutionResult: boolesk værdi til at angive, om behandlingen lykkedes.
ExecutionDetails: Valgfri logoplysninger til test- og fejlfindingsformål.
ProviderActionExecutionEventId: Denne værdi blev overført til handlingen som en inputparameter, der blev defineret i trin 1.
Underordnet flow
Et underordnet flow er et underflow, der refereres til i andre Power Automate-flow. Det kan være en god ide at definere et underordnet flow, hvis du gentager nogle trin på tværs af flere områder. Der findes ikke en bestemt skabelon eller anbefalet proces til underordnede flow, da de primært bruges til at gøre det nemmere at konsolidere lignende trin.
Udbyders underordnede flow kan ikke kalde andre underordnede udbyderflow.
Oprette cloudflow
Når du forstår de flowtyper, du vil oprette, er du klar til at oprette cloudflow. Hvis du vil gøre dette, skal du udføre disse trin:
- Åbn standardløsningen i dit Power Apps-miljø.
Vigtig
Du skal ikke føje disse løsninger til din udbyderløsning.
Vælg Ny, og vælg derefter Cloudflow.
Opbyg dit Power Automate-flow. Brug skabelonerne i forrige afsnit som reference.
Se følgende afsnit for at gemme flow.
Gemme Power Automate-definition
Når du har oprettet flow, skal du gemme dem som Logisk definition af udbyderdefinition-komponenter. Denne komponenttype leverer Intelligent Order Management med de handlinger, der skal implementeres under aktivering af udbyderen.
Du skal have følgende forudsætninger, før du kan gemme flowene.
Hvis du vil gemme dine Power Automate-logikdefinitioner, skal du udstede OData-anmodninger. Dette kan du gøre ved at have en konto hos PostMan eller en lignende tjeneste.
Du skal generere et adgangstoken til dit Dataverse-miljø for at kunne udstede GET- og POST-anmodninger.
Konfigurer en Azure-konto med et aktivt abonnement. Hvis du ikke har en aktiv konto, skal du konfigurere en konto på Azure-webstedet.
PowerShell skal være installeret. Du kan finde flere oplysninger i Installere PowerShell.
Angiv følgende kommando i PowerShell for at få et adgangstoken: az login --allow-no-subscriptions account get-access-token --resource=https://YourDataverseTenantURL.api.crm.dynamics.com/ --query=accessToken --output=tsv | Set-Clipboard.
Gør følgende for at gemme Power Automate-definitionen.
Find arbejdsproces-id'et for det Power Automate-flow, du vil gemme. Benyt en af følgende fremgangsmåder.
Find arbejdsproces-id'et ved hjælp af en Power Automate-handling.
Opret en handling med udtrykket workflow() sidst i Power Automate-flowet.
Kør Power Automate.
Egenskaben xrmWorkflowId fra udførelsesresultaterne indeholder arbejdsproces-id'et.
Slet denne handling fra flowet, så den ikke køres igen.
Du kan også udstede en Hent OData-anmodning.
Gå til det flow, du vil gemme arbejdsproces-id'et for. Find det entydige id i URL-adressen. Det er det id, der vises efter ../flows/ i URL-adressen.
Udsted en OData-anmodning for at hente arbejdsprocessens metadata. Nedenfor vises et eksempel på GET-anmodning.
GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Entydigt arbejdsproces-id fra Power Automate U}'&$select=workflowid,workflowiduniqueGem den returnerede workflowid-egenskab.
Find udbyderdefinitions-id'et.
Vælg den udbyderdefinition, du vil gemme flowet i.
Kopiér udbyderens definitions-id fra URL-adressen. Det er denne del af URL-adressen ../id={eksempelnummer}/.
Notér dig værdien for opsætningsindstillingen for den type af Power Automate, du gemmer.
underordnet flow: 192350002
Udbyderhandling: 192350001
Udbydermeddelelseshandler: 192350000
udbyders udtræk af meddelelser: 192350003
Udsted en POST-anmodning for at gemme Power Automate-definitionen. Nedenfor vises en eksempelanmodning.
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}
}
Kontrollér, at komponenten Logisk definition af udbyderdefinition er tilføjet. Hvis du vil gøre dette, skal du udføre disse trin:
Gå til din udbyderløsning.
Kontrollér, at Logisk definition af udbyderdefinition, du har oprettet, er tilføjet. Hvis den ikke er tilføjet, skal du vælge Tilføj eksisterende og derefter tilføje den komponent, du har oprettet.
Gemme forbindelsesreferencer
Hvis din udbyder bruger Power Automate-kundeconnectorer, skal du udføre følgende trin for at gemme forbindelsesreferencer til din Power Automate-løsning.
- Udsted en GET-anmodning for at hente dit forbindelsesreference-id. F.eks.:
GET {Env url}/api/data/v9.2/connectionreferences
Hvis du vil filtrere den yderligere, kan du filtrere efter forbindelsesreferencenavn. F.eks.:
{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
Kontrollér, at det korrekte forbindelsesreference-id blev hentet, ved at søge i dine Power Automate-klientdata.
Gå til komponenten Logisk definition af udbyderdefinition, som du gemte tidligere.
Kontrollér klientdataene for at se, om connectionReferenceLogicalName vises.
Find dit udbyderdefinitions-id. Det er den samme værdi, som du brugte i trin 2 til at gemme dine Power Automate-logikdefinitioner.
Udsted en POST-anmodning for at gemme din forbindelsesreference. F.eks.:
POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference
Body:
{
"ProviderDefinitionId": "{ProviderId previously found}",
"ConnectionReferenceId": "{Connection reference id previously found}"
}
Kontrollér, at komponenten Logisk definition af udbyderdefinition er tilføjet.
Gå til din udbyderløsning.
Kontrollér, at referencekomponenten Logisk definition af udbyderdefinition, du har oprettet, er tilføjet. Hvis den ikke er tilføjet, skal du vælge Tilføj eksisterende og tilføje den komponent, du lige har oprettet.
Dele dine udbydere
Hvis du vil bruge din udbyderdefinition i et andet miljø eller dele din løsning, kan du eksportere udbyderløsningen. Du kan finde flere oplysninger under Eksportere læsninger.