Ontvangstprovider maken
In dit onderwerp worden de stappen beschreven die nodig zijn om een ontvangstprovider te maken in Microsoft Dynamics 365 Intelligent Order Management.
Nieuwe providerdefinitie maken
Volg deze stappen om een nieuwe providerdefinitie te maken.
- Ga naar Providers > Catalogus.
- Selecteer Nieuwe providerdefinitie.
- Voer IOMLabOrderIntakeProvider in bij Weergavenaam.
- Voer msdyn_IOMLabOrderIntakeProvider in bij Logische naam.
- Selecteer IOMLab.png bij Logo.
- Voor Servicetype voert u Orderontvangst in.
- Voer Orderontvangstprovider voor IOM-lab in bij Beschrijving.
- Selecteer Opslaan en sluiten.
Providerdefinitie aan oplossing toevoegen
Ga als volgt te werk om een providerdefinitie toe te voegen aan een oplossing.
- Ga naar de portal voor Power Apps-makers en navigeer naar de nieuwe oplossing IOMLabProviders.
- Selecteer Bestaande toevoegen > IOM-providerdefinitie.
- Selecteer IOMLabOrderIntakeProvider en selecteer Toevoegen om deze aan de oplossing toe te voegen.
Transformatie toevoegen aan de providerdefinitie
Ga als volgt te werk om een transformatie aan de providerdefinitie toe te voegen.
- Ga naar Providers > Catalogus.
- Selecteer de zojuist gemaakte IOMLabOrderIntakeProvider.
- Selecteer Bewerken op de menubalk.
- Selecteer het tabblad Transformaties.
- Selecteer + Nieuwe transformatie van IOM-providerdefinitie.
- Voer IOMLab-order naar Dataverse-order in bij Weergavenaam.
- Voer msdyn_IOMLabOrderIntake_Order in bij Logische naam.
- Geef IOMLabOrderIntakeProvider op bij Providerdefinitie.
- Voer IOMLabOrderIntakeProvider in bij Bronobject.
- Voer Dataverse-order in bij Naam doelobject.
- Plak de volgende M-querycode bij Transformatie:
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));
- Voer JsonPayload in bij Brontype transformatie.
- Selecteer Opslaan.
- Maak een JSON-bestand, plak hierin de volgende code en sla het op.
{
"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
}
]
}
- Selecteer naast het veld Voorbeeldgegevens de optie Bestand kiezen en upload het JSON-bestand dat u hebt gemaakt.
- Selecteer Opslaan en sluiten.
Transformatie van providerdefinitie toevoegen aan oplossing
Ga als volgt te werk om een transformatie van een providerdefinitie toe te voegen aan een oplossing.
- Ga naar de portal voor Power Apps-makers en navigeer naar de nieuwe oplossing IOMLabProviders.
- Selecteer Bestaande toevoegen > Transformatie voor IOM-providerdefinities.
- Selecteer IOMLab-order naar Dataverse-order en selecteer Toevoegen om deze aan de oplossing toe te voegen.
Berichtenhandler voor providers maken
Volg deze stappen om een berichtenhandler voor providers te maken.
Ga naar de portal voor Power Apps-makers, navigeer naar Oplossingen en open de standaardoplossing.
Selecteer Nieuw.
Selecteer Cloudstroom en geef deze de naam Handler voor berichtaanvragen voor orderontvangst van IOM-lab.
Selecteer het triggertype als Outlook.com - Wanneer een nieuw e-mailbericht binnenkomt (V2) en meld u aan met accountreferenties voor outlook.com.
Selecteer Postvak IN voor Map.
Selecteer e-mailadressen van geadresseerden gescheiden door puntkomma's bij Aan.
Selecteer e-mailadressen van CC-ontvangers gescheiden door puntkomma's bij CC.
Selecteer e-mailadressen van geadresseerden of CC-ontvangers gescheiden door puntkomma's bij Aan of CC.
Selecteer e-mailadressen van afzenders gescheiden door puntkomma's bij Van.
Selecteer Ja bij Bijlagen toevoegen.
Select IOMLabOrderIntakeOrder voor Onderwerpfilter.
Selecteer Willekeurig bij Belang.
Selecteer Ja bij Alleen met bijlage.
Selecteer Nieuwe stap en voeg 'JSON parseren' toe.
Plak de volgende code bij Inhoud:
{ "ProviderId": "00000000-0000-0000-0000-000000000000" }
Plak rechtstreeks de volgende voorbeeldschemacode:
{ "type": "object", "properties": { "ProviderId": { "type": "string" } } }
Selecteer Gereed.
Selecteer het weglatingsteken (...) en selecteer Naam wijzigen.
Geef de actie de naam IOM-systeemeigenschappen.
Selecteer Opslaan.
Selecteer Nieuwe stap, voeg een actie JSON parseren toe en wijzig de naam in Providervariabelen initialiseren.
Plak de volgende code bij Inhoud:
{ "SourceObjectName": "IOMLabOrderIntakeProvider", "DestinationObjectName": "Dataverse Order" }
Selecteer Opslaan.
Selecteer Nieuwe stap, voeg een actie Variabele initialiseren toe en wijzig de naam in Uitvoeringsresultaat van verwerking initialiseren.
Voer ExecutionResult in bij Naam.
Selecteer Booleaans bij Type.
Selecteer waar bij Waarde.
Selecteer Opslaan.
Selecteer Nieuwe stap, voeg Bereik toe en wijzig de naam in Proberen.
Selecteer Een actie toevoegen in het bereik Proberen.
Voeg Een niet-gebonden actie uitvoeren toe vanuit de Dataverse-connector en geef deze de naam Het bericht van de provider bevestigen in de IOM.
Voer msdyn_CreateProviderMessageRequestExecution in bij Actienaam.
Voer
workflow()['tags']['xrmWorkflowId']
in als expressie voor PowerAutomateWorkflowId.Voer
workflow()['run']?['name']
in als expressie voor PowerAutomateRunId.Voer
guid()
in als expressie voor ProviderExternalRequestId.Selecteer Opslaan.
Selecteer Een actie toevoegen en voeg vervolgens een besturingselement Toepassen op elke toe.
Selecteer Bijlagen bij Uitvoer uit vorige stappen selecteren.
Selecteer Een actie toevoegen in de lus Toepassen op elke, voeg Een onderliggende stroom uitvoeren vanuit de connector Stroom toe en geef deze de naam Bericht transformeren met Power Query Online.
Selecteer de onderliggende stroom IOM-providertransformator.
Selecteer de variabele ProviderId bij Provider-id.
Selecteer de variabele SourceObjectName bij Naam bronobject.
Selecteer de variabele DestinationObjectName bij Naam doelobject.
Voer
decodeBase64(items('Apply_to_each')?['ContentBytes'])
in als expressie voor Payload.Selecteer Opslaan.
Na de transformatiestap selecteert u Een actie toevoegen, voegt u Een onderliggende stroom uitvoeren toe vanuit de connector Stroom en geef deze de naam Order maken.
Voer IOM-verkooporder maken in voor Onderliggende stroom.
Voer
string(json(outputs('Transform_Message_with_Power_Query_Online')?['Body']?['result'])?[0][0])
in als expressie voor Payload.Selecteer Opslaan.
Vouw het bereik Proberen samen door de titelbalk te selecteren.
Selecteer Nieuwe stap, voeg nog een bereik toe en geef deze de naam Vangen.
Selecteer in het bereik Vangen het weglatingsteken (...) en selecteer Uitvoering configureren na.
Schakel de selectievakjes is mislukt en is verlopen in en selecteer de optie Gereed.
Selecteer in het bereik Vangen de optie Een actie toevoegen, voeg een actie Variabele instellen toe en wijzig de naam in Het resultaat van de uitvoering instellen op mislukt.
Voer Executionresult in bij Naam.
Selecteer Onwaar bij Waarde.
Selecteer Opslaan.
Vouw het bereik Vangen samen door de titelbalk te selecteren.
Selecteer Nieuwe stap, voeg nog een bereik toe en geef deze de naam Tot slot.
Selecteer in het bereik Tot slot het weglatingsteken (...) en selecteer Uitvoering configureren na.
Schakel de selectievakjes is uitgevoerd, is mislukt, is overgeslagen en is verlopen in en selecteer de optie Gereed.
Selecteer in het bereik Tot slot de optie Een actie toevoegen, voeg een actie Een niet-gebonden actie uitvoeren toe en wijzig de naam in Resultaat van uitvoering van berichtaanvragen voor providers opslaan.
Voer msdyn_UpdateProviderMessageRequestStatus in bij Actienaam.
Voer
@outputs('Acknowledge_the_Provider_Message_in_IOM')?["body/ProviderMessageRequestExecutionId']
in bij ProviderMessageRequestExecutionId.Selecteer Opslaan.
Logicadefinitie voor providerdefinities toevoegen aan de providerdefinitie
Ga als volgt te werk om een logicadefinitie voor providerdefinities toe te voegen aan de providerdefinitie.
- Ga in uw Intelligent Order Management-toepassing naar Leveranciers > Catalogus.
- Selecteer de zojuist gemaakte IOMLabOrderIntakeProvider.
- Selecteer Bewerken op de menubalk.
- Selecteer het tabblad Logicadefinities.
- Selecteer + Nieuwe logicadefinitie voor IOM-providerdefinities.
- Voer Handler voor berichtaanvragen voor orderontvangst van IOM-lab in bij Weergavenaam.
- Voer msdyn_LabOrderIntakeMessageRequestHandler in bij Logische naam.
- Voer IOMLabOrderIntakeProvider in bij Providerdefinitie.
- Voer Berichtenhandler voor providers in bij Type logica.
- Voer Handler voor berichtaanvragen voor orderontvangst van IOM-lab in bij Werkstroomnaam.
- Voer 2 in bij Time-outminuten.
- Voer 3 in bij Maximum aantal pogingen.
- Voer Handler voor berichtaanvragen voor orderontvangst van IOM-lab in bij Beschrijving.
- Selecteer Opslaan. Hierdoor wordt een JSON-representatie gegenereerd van de cloudstroom van de berichtenhandler en wordt het veld Clientgegevens ingevuld.
- Selecteer Opslaan en sluiten.
- Selecteer Verbindingen. A;ls het goed is, wordt zowel Microsoft Dataverse als Outlook.com weergegeven als gedefinieerde verbindingsverwijzing.
Notitie
Als u andere gedefinieerde verbindingsverwijzingen ziet dan Microsoft Dataverse en Outlook.com, gebruikt u meer dan één Dataverse-verbindingsverwijzing in uw berichthandlerstroom voor orderontvangst. U lost dit op door naar uw stroom te gaan en ervoor te zorgen dat alle Dataverse-acties dezelfde verbindingsverwijzing gebruiken.
Logicadefinitie voor providerdefinities toevoegen aan IOMLabProviders-oplossing
Ga als volgt te werk om een logicadefinitie voor providerdefinities toe te voegen aan de IOMLabProviders-oplossing.
- Ga naar de portal voor Power Apps-makers en navigeer naar de nieuwe oplossing IOMLabProviders.
- Selecteer Bestaande toevoegen > Logicadefinitie voor IOM-providerdefinities.
- Selecteer Handler voor berichtaanvragen voor orderontvangst van IOM-lab en selecteer Toevoegen om het aan de oplossing toe te voegen.
Verbindingsverwijzing voor providerdefinities toevoegen aan IOMLabProviders-oplossing
Ga als volgt te werk om een verbindingsverwijzing voor providerdefinities toe te voegen aan de IOMLabProviders-oplossing.
- Ga naar de portal voor Power Apps-makers en navigeer naar de nieuwe oplossing IOMLabProviders.
- Selecteer Bestaande toevoegen > Verbindingsverwijzing voor IOM-providerdefinities.
- Selecteer de verbindingsverwijzingsdefinities Microsoft Dataverse en Outlook.com en selecteer Toevoegen om ze aan de oplossing toe te voegen.
Volgende stap in lab voor snel starten: Afhandelingsprovider maken