Opret indtagsudbyder
I dette emne beskrives de trin, der skal bruges til at oprette en indtagsudbyder i Microsoft Dynamics 365 Intelligent Order Management.
Opret ny udbyderdefinition
Du kan oprette ny udbyderdefinition ved at følge disse trin.
- Gå til Udbydere > Katalog.
- Vælg Ny udbyderdefinition.
- Angiv "IOMLabOrderIntakeProvider" for visningsnavn.
- Angiv "msdyn_IOMLabOrderIntakeProvider" for Logisk navn.
- Til logo skal du vælge "IOMLab.png".
- Angiv "Ordreindtag" for Servicetype.
- Angiv "IOM-laboratorie ordreindtagsudbyder" i Beskrivelse.
- Vælg Gem og luk.
Føj udbyderdefinition til løsning
Hvis du vil tilføje en udbyderdefinition til en løsning, skal du følge disse trin.
- Gå til portalen Power App Maker, og gå til den nyoprettede løsning IOMLabProviders.
- Vælg Tilføj eksisterende > IOM-udbyderdefinition.
- Vælg IOMLabOrderIntakeProvider, og vælg derefter Tilføj for at føje den til løsningen.
Tilføj transformation til udbyderdefinitionen
Hvis du vil tilføje en transformation til udbyderdefinitionen, skal du følge disse trin.
- Gå til Udbydere > Katalog.
- Vælg den nyoprettede IOMLabOrderIntakeProvider.
- Vælg Rediger i menuen.
- Vælg fanen Transformationer.
- Vælg + Ny IOM-udbyderdefinitionstransformation.
- Angiv "IOMLab Order to Dataverse-ordre" for visningsnavn.
- Angiv "msdyn_IOMLabOrderIntake_Order" for Logisk navn.
- Angiv eller vælg IOMLabOrderIntakeProvider for Udbyderdefinition.
- Angiv "IOMLabOrderIntakeProvider" for Kildeobjektnavn.
- Angiv "Dataverse-ordre" for Destinationsobjektnavn.
- Indsæt i følgende M-forespørgselskode for Transformation:
shared ImportMappingKey = [
account = {
[
ExternalRecordKey = [ProviderName = "IOMLabOrderIntakeProvider"],
SelectedFields = {"accountid"}
]
},
pricelevel = {
[
ExternalRecordKey = [ProviderName = "IOMLabOrderIntakeProvider"],
SelectedFields = {"pricelevelid"}
]
},
product = List.Distinct(List.Transform(Source[orderdetails], each
[
ExternalRecordKey = [sku = _[sku]],
SelectedFields = {"productid"}
])),
uom = List.Distinct(List.Transform(Source[orderdetails], each
[
ExternalRecordKey = [unit = _[unit]],
SelectedFields = {"uomid"}
]))
];
shared TransformSourceData =
let
orderProducts = Source[orderdetails],
account = IOM.MapRecord(IOM.MappingTables[account], [ProviderName = "IOMLabOrderIntakeProvider"]),
pricelevel = IOM.MapRecord(IOM.MappingTables[pricelevel], [ProviderName = "IOMLabOrderIntakeProvider"]),
orderheader = Record.FromTable
(
Table.SelectRows
(
Record.ToTable
(
[
ordernumber = Text.From(Source[ordernumber]),
name = ordernumber,
#"customerid_account@odata.bind" = "/accounts(" & Text.From(account[accountid]) & ")",
#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(pricelevel[pricelevelid]) & ")",
billto_city = Record.FieldOrDefault(Source, "billtocity"),
billto_stateorprovince = Record.FieldOrDefault(Source, "billtostateorprovince"),
billto_country = Record.FieldOrDefault(Source, "billtocountry"),
billto_postalcode = Record.FieldOrDefault(Source, "billtozip"),
shipto_city = Record.FieldOrDefault(Source, "shiptocity"),
shipto_stateorprovince = Record.FieldOrDefault(Source, "shiptostateorprovince"),
shipto_country = Record.FieldOrDefault(Source, "shiptocountry"),
shipto_postalcode = Record.FieldOrDefault(Source, "shiptozip")
]
), each [Value] <> null
)
),
orderlines = List.Transform(orderProducts, each
Record.FromTable
(
Table.SelectRows
(
Record.ToTable
(
[
ispriceoverridden = true,
#"productid@odata.bind" = "/products(" & IOM.MapRecord(IOM.MappingTables[product], [sku = Record.FieldOrDefault(_, "sku")])[productid] & ")",
#"uomid@odata.bind" = "/uoms(" & IOM.MapRecord(IOM.MappingTables[uom], [unit = Record.FieldOrDefault(_, "unit")])[uomid] & ")",
quantity = [quantity],
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")
]
), each [Value] <> null
)
)
),
salesorder = Record.AddField(orderheader, "order_details", orderlines)
in Text.FromBinary(Json.FromValue(salesorder));
- Angiv "JsonPayload" for Transformationskildetype.
- Vælg Gem.
- Opret en JSON-fil, indsæt i følgende kode, og gem den.
{
"ordernumber": "IOMLabOrder001",
"shiptocity": "BELLEVUE",
"shiptostateorprovince": "WA",
"shiptocountry": "US",
"shiptozip": "98007",
"billtocity": "BELLEVUE",
"billtostateorprovince": "WA",
"billtocountry": "US",
"billtozip": "98007",
"orderdetails": [
{
"sku": "883988211855",
"unit": "each",
"quantity": 11
}
]
}
- Ud for feltet eksempeldata vælges Vælg fil, og opfør den JSON-fil, du har oprettet.
- Vælg Gem og luk.
Tilføj udbyderdefinitionstransformation til løsning
Hvis du vil tilføje en udbyderdefinitionstransformation til en løsning, skal du følge disse trin.
- Gå til portalen Power App Maker, og gå til den nyoprettede løsning IOMLabProviders.
- Vælg Tilføj eksisterende > IOM-udbyderdefinitionstransformation.
- Vælg IOMLab-ordre til Dataverse-ordre, og vælg derefter Tilføj for at føje den til løsningen.
Opret udbydermeddelelseshandler
Benyt følgende fremgangsmåde for at oprette en udbydermeddelelseshandler.
Gå til portalen Power App Maker, naviger til Løsninger, og åbn Standardløsning.
Vælg Ny.
Vælg Skyflow, og navngiv det "IOM Laboratorie Ordreindtagsmeddelelsesanmodningshandler".
Vælg udløsertypen som Outlook.com – når der ankommer en ny e-mail (V2), og log derefter på med outlook.com-kontolegitimationsoplysningerne.
Til mappe skal du vælge Indbakke.
Vælg Modtager-e-mailadresser adskilt af semikolon ved Til.
Vælg CC-modtager-e-mailadresser adskilt af semikolon ved CC.
Vælg Til eller CC-modtager-e-mailadresser adskilt af semikolon ved Til eller CC.
Vælg Afsender-e-mailadresser adskilt af semikolon ved Fra.
Vælg Ja Medtag vedhæftede filer.
Til Emnefilter skal du vælge IOMLabOrderIntakeOrder.
Vælg Enhver til Vigtighed.
Vælg Ja i forbindelse med Kun vedhæftet fil.
Vælg Nyt trin, og tilføj "Parse JSON".
Indsæt i følgende kode for Indhold:
{ "ProviderId": "00000000-0000-0000-0000-000000000000" }
Indsæt direkte i følgende eksempelskemakode:
{ "type": "object", "properties": { "ProviderId": { "type": "string" } } }
Vælg Udført.
Vælg ellipseknappen (...), og vælg derefter Omdøb.
Omdøb handlingen "Egenskaber for IOM-systemet".
Vælg Gem.
Vælg Nyt trin, tilføj en Parse JSON-handling, og omdøb til "Initialiser udbydervariabler".
Indsæt i følgende kode for Indhold:
{ "SourceObjectName": "IOMLabOrderIntakeProvider", "DestinationObjectName": "Dataverse Order" }
Vælg Gem.
Vælg Nyt trin, tilføj en initialiser variabelhandling, og omdøb til "Initialiser afviklingsresultat for behandling".
Angiv "ExecutionResult" for Navn.
Vælg Boolesk for Type.
For Værdi skal du skrive sand.
Vælg Gem.
Vælg Nyt trin, tilføj "område", og omdøb til "Prøv".
Vælg Tilføj en handling i området Prøv.
Tilføj "udfør en ubundet handling" fra Dataverse-connectoren, og omdøb den "Bekend udbydermeddelelse i IOM".
Angiv "msdyn_CreateProviderMessageRequestExecution" i Handlingsnavn.
Angiv et udtryk for PowerAutomateWorkflowId
workflow()['tags']['xrmWorkflowId']
.Angiv et udtryk for PowerAutomateRunId
workflow()['run']?['name']
.Angiv et udtryk for ProviderExternalRequestId
guid()
.Vælg Gem.
Vælg Tilføj en handling, og føj derefter en Anvend til de enkelte kontrolelementer.
Vælg Vedhæftede filer for at vælge et output fra forrige trin.
Vælg Tilføj en handling i løkken Anvend på hver, tilføj Kør et underordnet flow fra Flow-connector, og omdøb den til "Transformeringsmeddelelse med Power Query Online".
Vælg transformering for det underordnede flow for IOM Provider-transformator.
For Udbyder-id vælges variablen ProviderId.
Vælg variablen SourceObjectName for Kildeobjektnavn.
Vælg variablen DestinationObjectName for Destinationsobjektnavn.
Angiv et udtryk for Nyttedata
decodeBase64(items('Apply_to_each')?['ContentBytes'])
.Vælg Gem.
Efter transformeringstrinet skal du vælge Tilføj en handling, Kør et underordnet flow fra Flow Connector og omdøbe den "Opret ordre".
Angiv "Oprettelse af IOM-salgsordre" for Underordnet flow.
Angiv et udtryk for Nyttedata
string(json(outputs('Transform_Message_with_Power_Query_Online')?['Body']?['result'])?[0][0])
.Vælg Gem.
Skjule området Prøve ved at vælge dets titellinje.
Vælg Nyt trin, tilføj et område, og omdøb til "Fangst".
Vælg ellipsen i Fangst ("..."), og vælg derefter Konfigurer kørslen efter.
Marker afkrydsningsfelterne Er mislykket og Har fået timeout, og vælg derefter Udført.
Vælg Tilføj en handling i fangstområdet, tilføj en variabelhandlingen Sæt, og omdøb den "Indstil udførelsesresultatet til mislykket".
Angiv "Executionresult" for Navn.
For Værdi skal du skrive Falsk.
Vælg Gem.
Skjule området Fangst ved at vælge dets titellinje.
Vælg Nyt trin, tilføj et område, og omdøb til "Til sidst".
Vælg ellipsen i Til sidst ("..."), og vælg derefter Konfigurer kørslen efter.
Marker afkrydsningsfelterne er lykkes, er mislykket, er sprunget over, udført og vælg derefter Udført.
I området Til sidst skal du vælge Tilføj en handling, tilføje en udfør en ubundet handling og omdøbe den "Gem udbyders meddelelse om resultat af anmodningsudførelse".
Angiv "msdyn_UpdateProviderMessageRequestStatus" i Handlingsnavn.
For ProviderMessageRequestExecutionId skal du angive
@outputs('Acknowledge_the_Provider_Message_in_IOM')?["body/ProviderMessageRequestExecutionId']
Vælg Gem.
Føje en definition af logisk udbyderdefinition til udbyderdefinitionen
Tilføje en definition af logisk udbyderdefinition til udbyderdefinitionen ved at følge disse trin.
- I din Intelligent Order Management-applikation skal du gå til Udbydere > Katalog.
- Vælg den nyoprettede IOMLabOrderIntakeProvider.
- Vælg Rediger i menuen.
- Vælg fanen Logikdefinitioner.
- Vælg + Ny IOM-udbyderdefinition af logisk definition.
- I forbindelse med visningsnavnet skal du angive "IOM Laboratorieordre indtagelsesmeddelelsesanmodningshandler".
- Angiv "msdyn_LabOrderIntakeMessageRequestHandler" for Logisk navn.
- Angiv "IOMLabOrderIntakeProvider" for Udbyderdefinition.
- I forbindelse med Logisk type for "Angiv meddelelseshandler".
- I forbindelse med Arbejdsflownavn skal du angive "IOM Laboratorieordre indtagelsesmeddelelsesanmodningshandler".
- Ved timeoutminutter skal du skrive "2".
- Angiv "3" ved Maks antal nye forsøg.
- I forbindelse med Beskrivelse skal du angive "IOM Laboratorieordre indtagelsesmeddelelsesanmodningshandler".
- Vælg Gem. Derved genereres en JSON-repræsentation af skyflowet for meddelelseshandleren, og feltet Klientdata udfyldes.
- Vælg Gem og luk.
- Vælg Forbindelser. Du bør se både Microsoft Dataverse og Outlook.com-forbindelsesreferencedefinitioner angivet.
Bemærk!
Hvis du kan se andre referencedefinitioner for forbindelser end Microsoft Dataverse og Outlook.com, betyder det, at du bruger mere end én Dataverse-forbindelsesreference i flowet for ordreindløbsmeddelelseshandleren. Du kan løse dette ved at gå til flowet og sikre, at alle Dataverse-handlinger bruger samme forbindelsesreference.
Tilføje en definition af logisk udbyderdefinition til IOMLabProvider-løsningen
Tilføje en definition af logisk udbyderdefinition til IOMLabProviders-løsningen ved at følge disse trin.
- Gå til portalen Power App Maker, og gå til den nyoprettede løsning IOMLabProviders.
- Vælg Tilføj eksisterende > Logisk definition af IOM-udbyderdefinition.
- Vælg IOM Laboratorie Ordreindtagsmeddelelsesanmodningshandler, og vælg derefter Tilføj for at føje den til løsningen.
Tilføj reference for udbyderdefinitionsforbindelse til IOMLabProviders-løsningen
Tilføje en reference til udbyderdefinitionsforbindelse til IOMLabProviders-løsningen ved at følge disse trin.
- Gå til portalen Power App Maker, og gå til den nyoprettede løsning IOMLabProviders.
- Vælg Tilføj eksisterende > IOM-udbyderdefinitionsforbindelsesreference.
- Vælg både Microsoft Dataverse og Outlook.com til forbindelsesreferencedefinitioner, og vælg derefter Tilføj for at føje dem til løsningen.
Næste trin i hurtig start: Oprette opfyldelsesudbyder