Del via


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.

  1. Vælg Ny i den udbyderløsning, du har oprettet.

  2. Vælg IOMUdbyderdefinition.

  3. Tilføj følgende oplysninger:

    1. Vist navn: Det navn, du vil give udbyderen, f.eks. "Testudbyder".

    2. Logisk navn: Eksportnøglen til udbyderen.

    3. Beskrivelse : Tekst, der beskriver, hvad udbyderen gør.

  4. Vælg Gem.

  5. Hvis du vil tilføje et logo, skal du uploade billedet.

  6. 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.

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

  1. Gå til din løsning.

  2. Vælg Tilføj eksisterende.

  3. 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.

  1. Vælg Ny i din udbyderløsning.

  2. Vælg Transformation af IOM-udbyderdefinitioner.

  3. Tilføj følgende oplysninger:

    1. Vist navn: Navnet på din udbydertransformation, f.eks. "Transformér salgsordrer".

    2. Logisk navn: Det entydige id for udbyderen. 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.

    3. Kildetype: I dette felt angives, 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.

    4. Navn på kildeobjekt: Navnet på de data, du er ved at transformere. Hvis du er ved at transformere en Dataverse-post, skal du kontrollere, at Navn på kildeobjekt har samme navn som i Dataverse-tabellen.

    5. Destinationsobjektnavn: Destinationen for den post, du vil transformere.

    6. Transformation: Den Power Query online-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));
  1. Vælg Gem.

  2. 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.

  1. Vælg Ny.

  2. Vælg Definition af IOM-udbyderdefinitionsforretningshændelser.

  3. Tilføj følgende oplysninger:

    1. Navn: Navnet på forretningshændelsen.

    2. Udbyder: Den udbyder, du opretter denne forretningsdefinition for.

    3. Tilknyttet enhed : Dataverse-enheden i Intelligent Order Management, der ændres eller påvirkes, når hændelsen oprettes.

    4. Tilknyttet tilstandsværdi: Hvis tilstanden af den tilknyttede enhed skal opdateres, når forretningshændelsen aktiveres, skal du medtage en tilstandsværdi i dette felt.

    5. Tilknyttet statusværdi: Hvis status af den tilknyttede enhed skal opdateres, når forretningshændelsen aktiveres, skal du medtage en statusværdi i dette felt.

  4. Vælg Gem.

  5. 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.

  1. Gå til din udbyderløsning.

  2. Vælg Tilføj eksisterende.

  3. 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.

  1. 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. Skærmbillede af udløseren for modtagelse af en HTTP-anmodning.

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"
    ]
}
  1. Initialiser behandlingen af meddelelsen. Der er to trin involveret i denne opgave.

    1. Initialiser udførelsesresultatet, som vil blive brugt til at spore behandlingen af meddelelsen.

    2. 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.

      1. PowerAutomateWorkflowId: WorkflowId i definitionen af meddelelseshandleren. Du kan hente dette ved at have en oprettelsesfunktion sammen med workflow()['tags'].

      2. PowerAutomateRunId: Det entydige id for den Power Automate-kørsel, der har modtaget meddelelsen, og giver pipeline mulighed for at gentage behandlingen og sammenkæde udførelselogfilerne. Du kan hente dette ved at have en oprettelsesfunktion med workflow()['run']?['name'].

      3. ProviderMessageExternalRequestId: En identifikator for den sendte meddelelse. 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']).

Skærmbillede af Godkend anmodning om udbydermeddelelse.

  1. 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:

    1. Udbydernavn: Navnet på den udbyder, der er knyttet til meddelelseshandleren. Denne værdi skal have samme navn som udbyderens transformation.

    2. Navn på kildeobjekt: Den nøgleværdi for kildeopslag, som transformationen skal udføre. Denne værdi skal være den samme som det kildeobjektnavn, der er defineret i din udbydertransformation.

    3. Navn på destinationsobjekt: Den nøgleværdi for destinationsopslag, som transformationen skal udføre. Denne værdi skal være den samme som den, der er defineret i udbydertransformationen.

    4. Nyttedata: Leveres, når der transformeres JSON-nyttedata. Power Automate kræver, at parametrene sendes som en serialiseret streng. Angiv værdien Nyttedata eller Post-id, ikke begge dele.

    5. Post-id : Leveres ved transformering af en Dataverse-post. Angiv værdien Nyttedata eller Post-id, ikke begge dele.
      Skærmbillede af transformeringsmeddelelse med Power Query online.

  2. 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.
    Skærmbillede af flow for indsættelse af meddelelser.

  3. 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.

    1. BusinessEventName: Navnet på den hændelse, du vil have forhøjet.

    2. EntityRecordId: Id'et for den post, der lige er oprettet og knyttet til hændelsen.

  4. 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.

    1. ProviderMessageRequestExecutionId: Output-id'et for den post, der er oprettet for at spore forløbet af meddelelsesbehandlingen.

    2. IsProviderMessageRequestExecutionSuccess: Boolesk værdi til at angive, om behandlingen blev gennemført korrekt.

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.

  1. Brug en gentagelsesgentagelse til at planlægge en udløser.

  2. Hent et kontrolpunkt fra Dataverse. Kontrolpunkter sporer, hvilke meddelelser der er blevet trukket ud af den eksterne udbyder. Tilføj følgende oplysninger.

    1. Handlingsnavn: Navn på kontrolpunktet.

    2. WorkflowId: Angiv følgende oprettelsesfunktion for at hente disse oplysninger: workflow()['tags']['xrmWorkflowId'].
      Skærmbillede af Hent kontrolpunkt.

  3. Opret en HTTP-POST-anmodning til en ekstern udbyder for at trække meddelelserne ud. Tilføj følgende oplysninger.

    1. Metode: Angiv dette felt til POST.

    2. URL-adresse: Slutpunktet for den eksterne udbyder.

    3. Tekst: JSON-anmodningen skal have følgende formel: if(empty(outputs('Get_Checkpoint')?['body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?['body/Checkpoint'])).
      Skærmbillede af udtrækkermeddelelser.

  4. Fortolk meddelelserne, der er trukket ud i trin 3. Tilføj følgende oplysninger.

    1. Indhold: Teksten hentet fra trin 3.

    2. Skema: Strukturen af den tekst, der hentes i trin 3.
      Skærmbillede af meddelelsesfortolkning.

  5. Behandl meddelelser for at gå gennem hver meddelelse fra trin 4.

  6. Fortolk hver meddelelse fra de forrige trin. Tilføj følgende oplysninger.

    1. Indhold: Aktuelt element fra Behandlingsmeddelelser.

    2. Skema: En enkelt meddelelse i JSON-format.
      Skærmbillede af behandlingsmeddelelser 2.

  7. Kald den tilknyttede udbyders meddelelseshandler, du har konfigureret i forudsætningerne. Tilføj følgende oplysninger.

    1. Underordnet flow: Vælg udbyderens meddelelseshandler.

    2. Meddelelse: Meddelelsen, der er fortolket i trin 6.
      Skærmbillede af behandlingsmeddelelser 3.

  8. Gem kontrolpunktet i Dataverse. Tilføj følgende oplysninger.

    1. Kontrolpunkt: Dette kan være enhver strengværdi (maks. 100). I dette eksempel er dette id'et for den sidst behandlet meddelelse.

    2. WorkFlowId: Hent dette id ved at tilføje en oprettelsesfunktion, der er angivet til workflow()['tags']['xrmWorkflowId'].
      Skærmbillede af behandlingsmeddelelser 4.

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.

  1. 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"
    ]
}
  1. Initialiser handlingsbehandlingen.

    1. Initialiser udførelsesresultatet og eventuelle andre behandlingsvariabler.

    2. 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.

      1. ProviderActionExecutionEventId: Denne værdi blev overført til handlingen som en inputparameter i trin 1.

      2. PowerAutomateRunID: Den entydige kørsel af Power Automate-handlingen. 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'].

  2. Udfør handlingen.

    1. Hvis det er nødvendigt, kan du transformere posterne ved hjælp af det underordnede flow Transformer meddelelse med Power Query online.

      1. Udbydernavn: Navnet på den udbyder, der skal knyttes til handlingen. Navnet skal være det samme navn som din udbyderdefinition.

      2. Navn på kildeobjekt: Kildenavnet på den transformation, som skal udføres. Dette navn skal være det samme kildeobjekt, som er defineret i Power Automate-transformationen.

      3. Navn på destinationsobjekt: Den nøgleværdi for destinationsopslag, som transformationen skal udføre. Dette navn skal være det samme som det, der er defineret i udbydertransformationen.

      4. Nyttedata: Leveres, når der transformeres indgående JSON-nyttedata. Power Automate kræver, at parametrene sendes som en serialiseret streng. Tilføj værdien Nyttedata eller Post-id, men ikke begge dele.

      5. Post-id : Leveres ved transformering af en udgående Dataverse-post. Tilføj værdien Nyttedata eller Post-id, men ikke begge dele.
        Skærmbillede af transformeringsmeddelelse med Power Query online.

    2. Udfør eventuelle brugerdefinerede handlinger, du har defineret. Det er handlinger, der findes på den Power Automate-connector, du bruger.

    3. Forhøj en handlingsspecifik forretningshændelse. Brug det underordnede flow Forhøj forretningshændelse. Tilføj følgende oplysninger.

      1. BusinessEventName: Navnet på den hændelse, du vil forhøje.

      2. EntityRecordId: Id'et for den post, der er knyttet til hændelsen.

  3. Fuldfør handlingsudførelsen, og gem resultaterne. Resultaterne behandles af orkestreringsdesigneren. Tilføj følgende oplysninger.

    1. ExecutionResult: Boolesk værdi til at angive, om behandlingen blev gennemført korrekt.

    2. ExecutionDetails: Valgfrie logoplysninger til test- og fejlfindingsformål.

    3. ProviderActionExecutionEventId: Denne værdi blev overført til handlingen som en inputparameter, der blev defineret i trin 1.
      Skærmbillede af Fuldfør udbyderhandlingsudførelse.

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:

  1. Åbn standardløsningen i dit Power Apps-miljø.

Vigtig

Du skal ikke føje disse løsninger til din udbyderløsning.

  1. Vælg Ny, og vælg derefter Cloudflow.

  2. Opbyg dit Power Automate-flow. Brug skabelonerne i forrige afsnit som reference.

  3. 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. For at gøre dette, skal du gennemføre følgende.

    • 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.

  1. Find arbejdsproces-id'et for det Power Automate-flow, du vil gemme. Benyt en af følgende fremgangsmåder.

    1. Find arbejdsproces-id'et ved hjælp af en Power Automate-handling.

      1. Opret en handling med udtrykket workflow() sidst i Power Automate-flowet.
        Skærmbillede af oprettelseshandling.

      2. Kør Power Automate.

      3. Egenskaben xrmWorkflowId fra udførelsesresultaterne indeholder arbejdsproces-id'et.
        Skærmbillede af arbejdsproces-id.

      4. Slet denne handling fra flowet, så den ikke køres igen.

    2. Du kan også udstede en Hent OData-anmodning.

      1. 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.
        Sådan finder du entydigt id.

      2. 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,workflowidunique

      3. Gem den returnerede workflowid-egenskab.

  2. Find udbyderdefinitions-id'et.

    1. Vælg den udbyderdefinition, du vil gemme flowet i.

    2. Kopiér udbyderens definitions-id fra URL-adressen. Det er denne del af URL-adressen ../id={eksempelnummer}/.
      Sådan finder du udbyderdefinitions-id'et.

  3. Notér dig værdien for opsætningsindstillingen for den type af Power Automate, du gemmer.

    1. Underordnet flow: 192350002

    2. Udbyderhandling: 192350001

    3. Udbyderens meddelelseshandler: 192350000

    4. Udbyderens meddelelsesudtrækker: 192350003

  4. 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}

}
  1. Kontrollér, at komponenten Logisk definition af udbyderdefinition er tilføjet. Hvis du vil gøre dette, skal du udføre disse trin:

    1. Gå til din udbyderløsning.

    2. 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.

  1. 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

  1. Kontrollér, at det korrekte forbindelsesreference-id blev hentet, ved at søge i dine Power Automate-klientdata.

    1. Gå til komponenten Logisk definition af udbyderdefinition, som du gemte tidligere.

    2. Kontrollér klientdataene for at se, om connectionReferenceLogicalName vises.

  2. Find dit udbyderdefinitions-id. Det er den samme værdi, som du brugte i trin 2 til at gemme dine Power Automate-logikdefinitioner.

  3. 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}"

}
  1. Kontrollér, at komponenten Logisk definition af udbyderdefinition er tilføjet.

    1. Gå til din udbyderløsning.

    2. 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.