Jaa


Vastaanottopalvelun luominen

Tässä aiheessa käsitellään vastaanottopalvelun luontivaiheita Microsoft Dynamics 365 Intelligent Order Managementissa.

Uuden palveluntarjoajan määrityksen luominen

Uusi palveluntarjoajan määritys luodaan seuraavasti.

  1. Valitse Palvelut > Luettelo.
  2. Valitse Uusi palveluntarjoajan määritys.
  3. Kirjoita näyttönimeksi IOMLabOrderIntakeProvider.
  4. Kirjoita loogiseksi nimeksi msdyn_IOMLabOrderIntakeProvider.
  5. Valitse logoksi IOMLab.png.
  6. Kirjoita palvelun tyypiksi Tilauksen vastaanotto.
  7. Kirjoita kuvaukseksi IOM labratyön tilauksen vastaanottopalvelu.
  8. Valitse Tallenna ja sulje.

Palveluntarjoajan määrityksen lisääminen ratkaisuun

Palveluntarjoajan määritys lisätään ratkaisuun seuraavasti.

  1. Siirry Power App Maker Portaliin ja siirry siellä juuri luotuun IOMLabProviders-ratkaisuun.
  2. Valitse Lisää aiemmin luotu > IOM Palveluntarjoajan määritys.
  3. Valitse IOMLabOrderIntakeProvider ja lisää se sitten ratkaisuun valitsemalla Lisää.

Muunnoksen lisääminen palveluntarjoajan määritykseen

Muunnos lisätään palveluntarjoajan määritykseen seuraavasti.

  1. Valitse Palvelut > Luettelo.
  2. Valitse juuri luotu IOMLabOrderIntakeProvider.
  3. Valitse valikkorivillä Muokkaa.
  4. Valitse Muunnokset-välilehti.
  5. Valitse + Uusi IOM palveluntarjoajan määrityksen muunnos.
  6. Kirjoita näyttönimeksi IOM labratyön tilaus Dataverse-tilaukseksi.
  7. Kirjoita loogiseksi nimeksi msdyn_IOMLabOrderIntake_Order.
  8. Kirjoita tai valitse palveluntarjoajan määritykseksi IOMLabOrderIntakeProvider.
  9. Kirjoita lähdeobjektin nimeksi IOMLabOrderIntakeProvider.
  10. Kirjoita kohdeobjektin nimeksi Dataverse-tilaus.
  11. Liitä Muunnos-kenttään seuraava M-kyselykoodi:
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));
  1. Kirjoita muunnoksen lähdetyypiksi JsonPayload.
  2. Valitse Tallenna.
  3. Luo JSON-tiedosto, liitä siihen seuraava koodi ja tallenna tiedosto.
{
  "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
    }
  ]
} 

  1. Valitse Näytetiedot-kentän vieressä Valitse tiedosto ja lataa luotu JSON-tiedosto.
  2. Valitse Tallenna ja sulje.

Palveluntarjoajan määrityksen muunnoksen lisääminen ratkaisuun

Palveluntarjoajan määrityksen muunnos lisätään ratkaisuun seuraavasti.

  1. Siirry Power App Maker Portaliin ja siirry siellä juuri luotuun IOMLabProviders-ratkaisuun.
  2. Valitse Lisää aiemmin luotu > IOM Palveluntarjoajan määrityksen muunnos.
  3. Valitse IOMLabratyötilaus Dataverse-tilaukseen ja lisää se sitten ratkaisuun valitsemalla Lisää.

Palveluntarjoajan sanomakäsittelijän luominen

Palveluntarjoajan sanomakäsittelijä luodaan seuraavasti.

  1. Siirry Power App Maker Portaliin, valitse siellä Ratkaisut ja avaa Oletusratkaisu.

  2. Valitse Uusi.

  3. Valitse Pilvityönkulku ja anna sen nimeksi IOM Labratyön tilauksen vastaanoton sanomapyynnön käsittelijä.

  4. Valitse käynnistimen tyypiksi Outlook.com – kun uusi sähköposti saapuu (V2) ja käytä sitten kirjautumiseen outlook.com-tilin tunnistetietoja.

  5. Valitse kansioksi Saapuneet.

  6. Valitse vastaanottajaksi Vastaanottajan sähköpostiosoitteet puolipisteillä erotettuina.

  7. Valitse kopioksi Kopion vastaanottajan sähköpostiosoitteet puolipisteillä erotettuina.

  8. Valitse vastaanottajaksi tai kopioksi Vastaanottajan tai kopion vastaanottajan sähköpostiosoitteet puolipisteillä erotettuina.

  9. Valitse lähettäjäksi Lähettäjän sähköpostiosoitteet puolipisteillä erotettuina.

  10. Valitse Sisällytä liitteet -asetukseksi Kyllä.

  11. Valitse aihesuodattimeksi IOMLabOrderIntakeOrder.

  12. Valitse tärkeydeksi Mikä tahansa.

  13. Valitse Vain jos liite -asetukseksi Kyllä.

    Outlook-käynnistin)

  14. Valitse Uusi vaihe ja lisää Jäsennä JSON.

  15. Liitä sisällöksi seuraava koodi:

    {
    "ProviderId": "00000000-0000-0000-0000-000000000000"
    }
    
  16. Liitä seuraava esimerkkirakenteen koodi suoraan:

    {
      "type": "object",
      "properties": {
        "ProviderId": {
          "type": "string"
        }
      }
    }
    
  17. Valitse Valmis.

  18. Valitse ensin kolme pistettä (...) ja sitten Nimeä uudelleen.

  19. Anna toiminnon uudeksi nimeksi IOM-järjestelmän ominaisuudet.

  20. Valitse Tallenna.

    Järjestelmän ominaisuudet -toiminto)

  21. Valitse Uusi vaihe, lisää Jäsennä JSON -toiminto ja anna uudeksi nimeksi Käynnistä palvelumuuttujat.

  22. Liitä sisällöksi seuraava koodi:

    {
      "SourceObjectName": "IOMLabOrderIntakeProvider",
      "DestinationObjectName": "Dataverse Order"
    }
    
  23. Valitse Tallenna.

  24. Valitse Uusi vaihe, lisää Käynnistä muuttuja -toiminto ja anna uudeksi nimeksi Käynnistä käsittelyn suorituksen tulos.

  25. Kirjoita nimeksi ExecutionResult.

  26. Valitse tyypiksi Totuusarvo.

  27. Valitse arvoksi tosi.

  28. Valitse Tallenna.

    Käsittelyn suorituksen tuloksen käynnistäminen

  29. Valitse Uusi vaihe, lisää vaikutusalue ja anna uudeksi nimeksi Try.

  30. Valitse Try-vaikutusalueella Lisää toiminto.

  31. Lisää sitomattoman toiminnon suorittaminen Dataverse-yhdistimestä ja anna uudeksi nimeksi Kuittaa palvelun sanoma IOM:ssa.

  32. Kirjoita toiminnon nimeksi msdyn_CreateProviderMessageRequestExecution.

  33. Kirjoita PowerAutomateWorkflowId-lausekkeeksi workflow()['tags']['xrmWorkflowId'].

  34. Kirjoita PowerAutomateRunId-lausekkeeksi workflow()['run']?['name'].

  35. Kirjoita ProviderExternalRequestId-lausekkeeksi guid().

  36. Valitse Tallenna.

    Palvelun sanoman kuittaaminen

  37. Valitse Lisää toiminto ja lisää sitten Käytä jokaiseen -ohjausobjekti.

  38. Valitse Valitse edellisten vaiheiden tuotos -kohdassa Liitteet.

    Käyttäminen kussakin ohjausobjektissa

  39. Valitse Lisää toiminto Lisää kuhunkin -silmukassa, lisää Suorita alityönkulku Työnkulku-yhdistimestä ja anna sen uudeksi nimeksi Muunna sanoma Power Query Onlinen avulla.

  40. Valitse alityönkulku IOM:n palveluntarjoajan muunnos.

  41. Valitse palvelun tunnukseksi ProviderId-muuttuja.

  42. Valitse lähdeobjektin nimeksi SourceObjectName-muuttuja.

  43. Valitse kohdeobjektin nimeksi DestinationObjectName-muuttuja.

  44. Kirjoita Tiedot-lausekkeeksi decodeBase64(items('Apply_to_each')?['ContentBytes']).

  45. Valitse Tallenna.

    Sanoman muuntaminen Power Queryn avulla

  46. Valitse muunnosvaiheen jälkeen Lisää toiminto, lisää Suorita alityönkulkuna työnkulkuyhdistimestä ja anna sen uudeksi nimeksi Luo tilaus.

  47. Kirjoita alityönkuluksi IOM:n myyntitilauksen luonti.

  48. Kirjoita Tiedot-lausekkeeksi string(json(outputs('Transform_Message_with_Power_Query_Online')?['Body']?['result'])?[0][0]).

  49. Valitse Tallenna.

    Tilauksen luominen

  50. Tiivistä Try-vaikutusalue valitsemalla sen otsikkopalkki.

  51. Valitse Uusi vaihe, lisää vaikutusalue ja anna sen uudeksi nimeksi Catch.

  52. Valitse Catch-vaikutusalueella ensin kolme pistettä (...) ja sitten Määritä suoritetaan, kun.

  53. Valitse on epäonnistunut- ja aikakatkaistu-valintaruudut ja valitse lopuksi Valmis.

    Määritä suoritetaan, kun

  54. Valitse Catch-vaikutusalueella Lisää toiminto ja lisää Määritä muuttuja -toiminto. Vaihda sen nimeksi Määritä suorituksen tulokseksi epäonnistunut.

  55. Kirjoita nimeksi Executionresult.

  56. Valitse arvoksi epätosi.

  57. Valitse Tallenna.

    Muuttujatoiminnon määrittäminen

  58. Tiivistä Catch-vaikutusalue valitsemalla sen otsikkopalkki.

  59. Valitse Uusi vaihe, lisää vaikutusalue ja anna sen uudeksi nimeksi Finally.

  60. Valitse Finally-vaikutusalueella ensin kolme pistettä (...) ja sitten Määritä suoritetaan, kun.

  61. Valitse onnistui-, on epäonnistunut, on ohitettu- ja on aikakatkaistu-valintaruudut. Valitse lopuksi Valmis.

    Määritä suoritetaan, kun (Finally-vaikutusalue)

  62. Valitse Finally-vaikutusalueella Lisää toiminto, lisää Suorita sitomaton toiminto -toiminto ja anna sen uudeksi nimeksi Tallenna palveluntarjoajan sanomapyynnön suorituksen tulos.

  63. Kirjoita toiminnon nimeksi msdyn_UpdateProviderMessageRequestStatus.

  64. Anna ProviderMessageRequestExecutionId-lausekkeeksi @outputs('Acknowledge_the_Provider_Message_in_IOM')?["body/ProviderMessageRequestExecutionId'].

  65. Valitse Tallenna.

    Palveluntarjoajan sanomapyynnön suorituksen tuloksen tallentaminen

Palveluntarjoajan määrityksen logiikkamäärityksen lisääminen palveluntarjoajan määritykseen

Palveluntarjoajan määrityksen logiikkamääritys lisätään palveluntarjoajan määritykseen seuraavasti.

  1. Valitse Intelligent Order Management -sovelluksessa Palvelut > Luettelo.
  2. Valitse juuri luotu IOMLabOrderIntakeProvider.
  3. Valitse valikkorivillä Muokkaa.
  4. Valitse Logiikkamääritykset -välilehti.
  5. Valitse + Uusi IOM palveluntarjoajan määrityksen logiikkamääritys.
  6. Kirjoita näyttönimikesi IOM Labratyön tilauksen vastaanoton sanoman pyyntökäsittelijä.
  7. Kirjoita loogiseksi nimeksi msdyn_LabOrderIntakeMessageRequestHandler.
  8. Kirjoita palveluntarjoajan määritykseksi IOMLabOrderIntakeProvider.
  9. Kirjoita logiikkatyypiksi Palveluntarjoajan sanomakäsittelijä.
  10. Kirjoita työnkulun nimikesi IOM Labratyön tilauksen vastaanoton sanoman pyyntökäsittelijä.
  11. Anna Aikakatkaisu minuutteina arvoksi 2.
  12. Anna Uudelleenyritysten enimmäismäärä -arvoksi 3.
  13. Kirjoita kuvaukseksi IOM Labratyön tilauksen vastaanoton sanoman pyyntökäsittelijä.
  14. Valitse Tallenna. Tämä luo sanomakäsittelijän pilvityönkulun JSON-ilmaisun ja täyttää Asiakkaan tiedot -kentän.
  15. Valitse Tallenna ja sulje.
  16. Valitse Yhteydet. Luettelossa pitäisi näkyä sekä Microsoft Dataverse- ja Outlook.com-yhteysviite.

Huomautus

Jos näkyvissä on muita yhteysviitemäärityksiä kuin Microsoft Dataverse ja Outlook.com, silloin tilauksen vastaanoton sanomakäsittelyn työnkulussa on käytössä useampi kuin yksi Dataverse-yhteysviite. Se korjataan siirtymällä työnkulkuun ja varmistamalla, että kaikki Dataverse-toiminnot käyttävät samaa yhteysviitettä.

Palveluntarjoajan määrityksen logiikkamäärityksen lisääminen IOMLabProviders-ratkaisuun

Palveluntarjoajan määrityksen logiikkamääritys lisätään IOMLabProviders-ratkaisuun seuraavasti.

  1. Siirry Power App Maker Portaliin ja siirry siellä juuri luotuun IOMLabProviders-ratkaisuun.
  2. Valitse Lisää aiemmin luotu > IOM palveluntarjoajan määrityksen logiikkamääritys.
  3. Valitse IOM labratyön tilauksen vastaanoton sanomapyynnön käsittelijä ja lisää se sitten ratkaisuun valitsemalla Lisää.

Palveluntarjoajan määrityksen yhteysviitteen lisääminen IOMLabProviders-ratkaisuun

Palveluntarjoajan määrityksen yhteysviite lisätään IOMLabProviders-ratkaisuun seuraavasti.

  1. Siirry Power App Maker Portaliin ja siirry siellä juuri luotuun IOMLabProviders-ratkaisuun.
  2. Valitse Lisää aiemmin luotu > IOM palveluntarjoajan määrityksen yhteysviite.
  3. Valitse Microsoft Dataversen ja Outlook.comin yhteysviitemääritykset, ja lisää ne ratkaisuun valitsemalla Lisää.

Labratyön pika-aloituksen seuraava vaihe: Täyttämispalvelun luominen