Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano kroki wymagane do utworzenia dostawcy usług zamówień w rozwiązaniu Microsoft Dynamics 365 Intelligent Order Management.
Tworzenie nowej definicji dostawcy
Aby stworzyć nową definicję dostawcy, wykonaj następujące kroki.
- Przejdź do Dostawcy > Katalog.
- Wybierz Nowa definicja dostawcy.
- Dla Nazwy wyświetlanej wprowadź nazwę „IOMLabOrderIntakeProvider”.
- Dla Nazwa logiczna wprowadź nazwę „msdyn_IOMLabOrderIntakeProvider”.
- W przypadku logo wybierz pozycję „IOMLab.png”.
- Wprowadź "Order intake" w typu usługi.
- W Opis wprowadź tekst „IOM lab order intake provider”.
- Wybierz opcję Zapisz i zamknij.
Dodaj definicję dostawcy do rozwiązania
Aby dodać definicję dostawcy do rozwiązania, wykonaj następujące kroki.
- Przejdź do portalu usługi Power App Maker Portal i przejdź do nowo utworzonego rozwiązania IOMLabProviders.
- Wybierz Dodaj istniejące > Definicja dostawcy IOM.
- Wybierz IOMLabOrderIntakeProvider, a następnie wybierz Dodaj i dodaj je do rozwiązania.
Dodaj transformację do definicji dostawcy
Aby dodać transformację do definicji dostawcy, wykonaj następujące kroki.
- Przejdź do Dostawcy > Katalog.
- Wybierz nowo utworzoną pozycję IOMLabOrderIntakeProvider.
- W menu wybierz pozycję Edytuj.
- Wybierz kartę Przekształcenia.
- Wybierz Przekształcenie definicji dostawcy IOM.
- Dla Nazwy wyświetlanej wprowadź nazwę „IOMLab Order to Dataverse Order”.
- Dla Nazwa logiczna wprowadź nazwę „msdyn_IOMLabOrderIntake_Order”.
- W przypadku definicji dostawcy wprowadź lub wybierz pozycję IOMLabOrderInvidProvider.
- Dla Nazwy wyświetlanej wprowadź nazwę „IOMLabOrderIntakeProvider”.
- Dla nazwa obiektu docelowego wpisz "Dataverse Order".
- W przypadku przekształcenia wklej do następującego kodu zapytania M:
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));
- W przypadku typu źródła przekształcenia wprowadź wartość „JsonPayload”.
- Wybierz opcję Zapisz.
- Utwórz plik JSON, wklej do poniższego kodu i zapisz go.
{
"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
}
]
}
- Obok pola Przykładowe dane wybierz pozycję Wybierz plik i przekaż utworzony plik JSON.
- Wybierz opcję Zapisz i zamknij.
Dodaj transformację definicji dostawcy do rozwiązania
Aby dodać definicję dostawcy do rozwiązania, wykonaj następujące kroki.
- Przejdź do portalu usługi Power App Maker Portal i przejdź do nowo utworzonego rozwiązania IOMLabProviders.
- Wybierz Dodaj istniejące > Parametr definicji dostawcy IOM.
- Wybierz IOMLab Order to Dataverse Order, a następnie wybierz Dodaj i dodaj je do rozwiązania.
Twórz Program obsługi komunikatów dostawcy
Aby utworzyć nowe rozwiązanie dla komunikacji, wykonaj następujące kroki.
Przejdź do portalu usługi Power App Maker Portal i przejdź do rozwiązania i otwórz Domyślne rozwiązanie.
Wybierz pozycję Nowy.
Wybierz przepływ w chmurze, a następnie nadaj nazwę „Program obsługi żądań przetwarzania komunikatów zamowieniu IOM”.
Wybierz typ wyzwalacza jako Outlook.com – gdy pojawi się nowy adres e-mail (V2), a następnie zaloguj się przy użyciu outlook.com konta.
Dla folderu wybierz pozycję Skrzynka odbiorcza.
W przypadku opcji Do wybierz adresy e-mail adresatów rozdzielone średnikami.
W przypadku opcji CC wybierz adresy e-mail adresatów rozdzielone średnikami.
W przypadku opcji CC wybierz adresy e-mail adresatów rozdzielone średnikami.
W przypadku opcji OD wybierz adresy e-mail nadawców rozdzielone średnikami.
Aby dołączyć załączniki, wybierz opcję Tak.
Dla filtru tematu wybierz pozycję IOMLabOrderIntakeOrder.
Aby uzyskać ważność, wybierz opcję Any.
W przypadku opcji Tylko z załącznikiem wybierz opcję Tak.
Wybierz pozycję Nowy krok i dodaj pozycję Parse JSON.
W przypadku zawartości wklej do następującego kodu:
{ "ProviderId": "00000000-0000-0000-0000-000000000000" }
Wklej bezpośrednio do następującego przykładowego kodu schematu:
{ "type": "object", "properties": { "ProviderId": { "type": "string" } } }
Wybierz opcję Gotowe.
Kliknij przycisk wielokropka(„...”) i wybierz polecenie Zmień nazwę.
Zmień nazwę akcji „Właściwości systemu IOM”.
Wybierz opcję Zapisz.
Wybierz nowy krok, dodaj akcję Parse JSON i zmień nazwę na „Inicjuj zmienne dostawcy”.
W przypadku zawartości wklej do następującego kodu:
{ "SourceObjectName": "IOMLabOrderIntakeProvider", "DestinationObjectName": "Dataverse Order" }
Wybierz opcję Zapisz.
Wybierz pozycję Nowy krok, dodaj akcję Inicjuj zmienną i zmień nazwę na „Inicjuj wynik wykonywania przetwarzania”.
Dla Nazwa wprowadź nazwę „ExecutionResult”.
Dla opcji Typ wybierz wartość Boolean.
Wybierz wartość jako true.
Wybierz opcję Zapisz.
Wybierz pozycję Nowy krok, dodaj zakres i zmień nazwę na „Spróbuj”.
W zakresie prób wybierz pozycję Dodaj akcję.
Dodaj „wykonywanie niezwiązanej akcji” Dataverse z łącznika i zmień jej nazwę „Potwierdzanie komunikatu dostawcy w operacji IOM”.
W przypadku nazwy akcji wprowadź nazwę „msdyn_CreateProviderMessageRequestExecution”.
Dla wartości PowerAutomateWorkflowId wprowadź
workflow()['tags']['xrmWorkflowId']
w wyrażeniu.Dla PowerAutomateRunId wprowadź
workflow()['run']?['name']
w wyrażeniu.Dla ProviderExternalRequestId wprowadź
guid()
w wyrażeniu.Wybierz opcję Zapisz.
Wybierz opcję Dodaj akcję, a następnie dodaj opcję Zastosuj do każdej kontrolki .
Aby wybrać dane wyjściowe z poprzednich kroków, wybierz pozycję Załączniki.
Wybierz opcję Dodaj akcję w obrębie opcji Zastosuj do każdej pętli, dodaj opcję Uruchom przepływ podrzędny z łącznika przepływu i zmień jej nazwę „Przekształć wiadomość w Power Query trybie online”.
Wybierz podrzędny dostawca IOM przepływu.
Dla identyfikatora dostawcy wybierz zmienną ProviderId .
W przypadku pola Nazwa obiektu źródłowego wybierz zmienną SourceObjectName .
W Nazwa obiektu docelowego obiektu źródłowego wybierz zmienną DestinationObjectName .
Dla Payload wprowadź
decodeBase64(items('Apply_to_each')?['ContentBytes'])
w wyrażeniu.Wybierz opcję Zapisz.
Po kroku przekształcenia wybierz opcję Dodaj akcję,dodaj polecenie Uruchom przepływ podrzędny z łącznika przepływu i zmień jego nazwę „ Utwórz zamówienie”.
W przypadku przepływu podrzędnego wprowadź nazwę Tworzenie zamówienia sprzedaży dla IOM.
Dla Payload wprowadź
string(json(outputs('Transform_Message_with_Power_Query_Online')?['Body']?['result'])?[0][0])
w wyrażeniu.Wybierz opcję Zapisz.
Zwiń zakres próby , wybierając jego pasek tytułu.
Wybierz nowy krok i dodaj inny zakres o nazwie „Wychwyć”.
W przypadku zakresu Wychwyć wybierz wielokropek (”...”), wybierz opcję Konfiguruj uruchamianie po.
Zaznacz pole nie powiodło się i czas skończył się, a następnie wybierz opcję Gotowe.
W zakresie wychwytywania wybierz opcję Dodaj akcję i dodaj akcję Ustaw zmienną, a następnie zmień jej nazwę” i „Ustaw wynik wykonania jako niepowodzenie”.
Dla Nazwa wprowadź nazwę „Executionresult”.
Dla wartość wybierz False.
Wybierz opcję Zapisz.
Zwiń zakres wyłapywania , wybierając jego pasek tytułu.
Wybierz nowy krok i dodaj inny zakres o nazwie „W końcu”.
W przypadku zakresu w końcu wybierz wielokropek (”...”), wybierz opcję Konfiguruj uruchamianie po.
Zaznacz pole powiodło się, nie powiodło się i pominięto i czas się skończył, a następnie wybierz opcję Gotowe.
W zakresie Na koniec wybierz opcję Dodaj akcję, dodaj akcję Wykonywanie niezwiązanej akcji i zmień jej nazwę „Zapisz wynik wykonania żądania komunikatu dostawcy”.
W przypadku nazwy akcji wprowadź nazwę „msdyn_UpdateProviderMessageRequestStatus”.
Dla ProviderMessageRequestExecutionId wpisz
@outputs('Acknowledge_the_Provider_Message_in_IOM')?["body/ProviderMessageRequestExecutionId']
.Wybierz opcję Zapisz.
Dodaj definicję logiczną definicji dostawcy do definicji dostawcy
Aby dodać definicję logiczną dostawcy do definicji dostawcy, wykonaj następujące kroki.
- W Intelligent Order Management przejdź do Dostawcy > Katalog.
- Wybierz nowo utworzoną pozycję IOMLabOrderIntakeProvider.
- W menu wybierz pozycję Edytuj.
- Wybierz kartę Definicje logiczne.
- Wybierz + Nowa definicja logiczna dostawcy IOM.
- Aby uzyskać nazwę wyświetlaną, wprowadź wartość „Obsługa żądań komunikatów zakańcania zamówień IOM”.
- Dla Nazwa logiczna wprowadź nazwę „msdyn_LabOrderIntakeMessageRequestHandler”.
- W przypadku definicji dostawcy wprowadź lub wybierz pozycję „IOMLabOrderInvidProvider”.
- W przypadku typu logiki wprowadź wartość „Provide Message Handler” (Podaj program obsługi komunikatów).
- Dla Nazwa przepływu, wprowadź wartość „Obsługa żądań komunikatów zakańczania zamówień IOM”.
- W Limit czasu w minutach wprowadź „2”.
- W przypadku prób maksymalnej próby wprowadź wartość „3”.
- Dla Opis, wprowadź wartość „Obsługa żądań komunikatów zakańcania zamówień IOM”.
- Wybierz opcję Zapisz. Generuje to reprezentację JSON przepływu chmury message handler i wypełnia pole Danych klienta.
- Wybierz opcję Zapisz i zamknij.
- Wybierz połączenia. Na liście powinny być wyświetlane Microsoft Dataverse i Outlook.com odwołania do połączeń.
Banknot
Jeśli widzisz definicje referencyjne połączeń inne niż Microsoft Dataverse i Outlook.com, oznacza to, że używasz więcej niż jednego referencyjnego połączenia Dataverse w przepływie obsługi komunikatów przyjmowania zamówień . Aby rozwiązać ten problem, przejdź do przepływu i upewnij się, że wszystkie akcje Dataverse używa tego samego odwołania do połączenia.
Dodaj definicję logiki definicji dostawcy do rozwiązania IOMLabProviders
Aby dodać definicję logiczną dostawcy do rozwiązania IOMLabProviders, wykonaj następujące kroki.
- Przejdź do portalu usługi Power App Maker Portal i przejdź do nowo utworzonego rozwiązania IOMLabProviders.
- Wybierz Dodaj istniejące > + Nowa definicja logiczna dostawcy IOM.
- Wybierz IOM Lab Order Intake Message Request Handler, a następnie wybierz Dodaj i dodaj je do rozwiązania.
Dodaj odniesienia do połączenia definicji dostawcy do rozwiązania IOMLabProviders
Aby dodać odwołania do połączeń definicji dostawcy do rozwiązania IOMLabProviders, wykonaj następujące kroki.
- Przejdź do portalu usługi Power App Maker Portal i przejdź do nowo utworzonego rozwiązania IOMLabProviders.
- Wybierz Dodaj istniejące > Odniesienie do połączenia z definicją dostawcy IOM.
- Zaznacz zarówno Microsoft Dataverse odwołania Outlook.com, jak i odwołania do połączeń definicji, a następnie wybierz polecenie Dodaj , aby dodać je do rozwiązania.
Następny krok szybkiego rozpoczęcia: Tworzenie dostawcy realizacji.