Wymiana komunikatów B2B między partnerami przy użyciu przepływów pracy w usłudze Azure Logic Apps
Dotyczy: Azure Logic Apps (Zużycie + Standardowa)
Jeśli masz konto integracji, które definiuje partnerów handlowych i umowy, możesz utworzyć zautomatyzowany przepływ pracy między firmami (B2B), który wymienia komunikaty między partnerami handlowymi przy użyciu usługi Azure Logic Apps. Przepływ pracy może używać łączników obsługujących standardowe protokoły branżowe, takie jak AS2, X12, EDIFACT i RosettaNet. Można również uwzględnić operacje udostępniane przez inne łączniki w usłudze Azure Logic Apps, takie jak Office 365 Outlook, SQL Server i Salesforce.
W tym artykule pokazano, jak utworzyć przykładowy przepływ pracy aplikacji logiki, który może odbierać żądania HTTP przy użyciu wyzwalacza żądania, dekodować zawartość komunikatu przy użyciu akcji Dekoduj as2 i Dekoduj X12 oraz zwracać odpowiedź przy użyciu akcji Odpowiedź. W przykładzie użyto projektanta przepływu pracy w witrynie Azure Portal, ale możesz wykonać podobne kroki dla projektanta przepływu pracy w programie Visual Studio Code.
Jeśli dopiero zaczynasz korzystać z aplikacji logiki, zapoznaj się z tematem Co to jest usługa Azure Logic Apps? Aby uzyskać więcej informacji na temat integracji B2B dla przedsiębiorstw, zapoznaj się z tematem B2B enterprise integration workflows with Azure Logic Apps (Przepływy pracy integracji przedsiębiorstwa B2B z usługą Azure Logic Apps).
Wymagania wstępne
Konto i subskrypcja platformy Azure. Jeśli nie masz jeszcze subskrypcji, utwórz bezpłatne konto platformy Azure.
Zasób konta integracji, w którym definiujesz i przechowujesz artefakty, takie jak partnerzy handlowi, umowy, certyfikaty itd., do użycia w przepływach pracy integracji przedsiębiorstwa i B2B. Ten zasób musi spełniać następujące wymagania:
Jest skojarzony z tą samą subskrypcją platformy Azure co zasób aplikacji logiki.
Istnieje w tej samej lokalizacji lub regionie platformy Azure co zasób aplikacji logiki.
Jeśli używasz typu zasobu Aplikacja logiki (Zużycie), konto integracji wymaga linku do zasobu aplikacji logiki, zanim będzie można używać artefaktów w przepływie pracy.
Jeśli używasz typu zasobu aplikacji logiki (Standardowa), konto integracji nie wymaga linku do zasobu aplikacji logiki, ale nadal jest wymagane do przechowywania innych artefaktów, takich jak partnerzy, umowy i certyfikaty, wraz z użyciem operacji AS2, X12 lub EDIFACT. Twoje konto integracji nadal musi spełniać inne wymagania, takie jak używanie tej samej subskrypcji platformy Azure i istniejące w tej samej lokalizacji co zasób aplikacji logiki.
Uwaga
Obecnie tylko typ zasobu aplikacji logiki (Zużycie) obsługuje operacje RosettaNet . Typ zasobu aplikacji logiki (Standardowa) nie obejmuje operacji RosettaNet .
Co najmniej dwóch partnerów handlowych na koncie integracji. Definicje dla obu partnerów muszą używać tego samego kwalifikatora tożsamości biznesowej, który to AS2, X12, EDIFACT lub RosettaNet.
Umowa AS2 i umowa X12 dla partnerów, których używasz w tym przepływie pracy. Każda umowa wymaga partnera hosta i partnera-gościa.
Zasób aplikacji logiki z pustym przepływem pracy, w którym można dodać wyzwalacz Żądania , a następnie następujące akcje:
Dodawanie wyzwalacza żądania
Aby uruchomić przepływ pracy w tym przykładzie, dodaj wyzwalacz Żądania.
W witrynie Azure Portal otwórz zasób aplikacji logiki i pusty przepływ pracy w projektancie przepływu pracy.
W polu wyszukiwania projektanta wybierz pozycję Wszystkie, jeśli nie jest zaznaczone. W polu wyszukiwania wpisz
when a http request
. Wybierz wyzwalacz Żądania o nazwie Po odebraniu żądania HTTP.W wyzwalaczu pozostaw puste pole Schemat JSON treści żądania.
Przyczyną jest to, że wyzwalacz otrzyma komunikat X12 w formacie pliku prostego.
Gdy skończysz, na pasku narzędzi projektanta wybierz Zapisz.
Ten krok generuje adres URL POST protokołu HTTP, którego później używasz do wysyłania żądania wyzwalającego przepływ pracy aplikacji logiki.
Skopiuj i zapisz adres URL do późniejszego użycia.
Dodawanie akcji dekodowania AS2
Teraz dodaj akcje B2B dla tego przykładu, które używają akcji AS2 i X12.
W obszarze wyzwalacza wybierz pozycję Nowy krok.
Napiwek
Aby ukryć szczegóły wyzwalacza żądania, wybierz pasek tytułu wyzwalacza.
W polu wyszukiwania Wybierz operację wybierz pozycję Wszystkie, jeśli nie jest zaznaczone. W polu wyszukiwania wprowadź ciąg
as2
, a następnie wybierz pozycję Dekoduj AS2.W akcji Komunikat do dekodowania właściwości wprowadź dane wejściowe, które chcesz zdekodować akcję AS2, która jest
body
danymi wyjściowymi wyzwalacza Żądania. Istnieje wiele sposobów określania tej zawartości jako danych wejściowych akcji, wybierając z listy zawartości dynamicznej lub jako wyrażenie:Aby wybrać z listy zawierającej dostępne dane wyjściowe wyzwalacza, kliknij wewnątrz pola Komunikat, aby zdekodować . Po wyświetleniu listy zawartości dynamicznej w obszarze Po odebraniu żądania HTTP wybierz wartość właściwości Treść , na przykład:
Napiwek
Jeśli żadne dane wyjściowe wyzwalacza nie są wyświetlane, na liście właściwości dynamicznych w obszarze Po odebraniu żądania HTTP wybierz pozycję Zobacz więcej.
Aby wprowadzić wyrażenie odwołujące się do danych wyjściowych wyzwalacza
body
, kliknij wewnątrz pola Komunikat, aby zdekodować . Po wyświetleniu listy zawartości dynamicznej wybierz pozycję Wyrażenie. W edytorze wyrażeń wprowadź następujące wyrażenie i wybierz przycisk OK:triggerOutputs()['body']
Lub w polu Komunikat do dekodowania wprowadź bezpośrednio następujące wyrażenie:
@triggerBody()
Wyrażenie jest rozpoznawane jako token Treść .
We właściwości Nagłówki komunikatów akcji wprowadź wszelkie nagłówki wymagane dla akcji AS2, które znajdują się w
headers
danych wyjściowych wyzwalacza Żądanie.Aby wprowadzić wyrażenie odwołujące się do danych wyjściowych wyzwalacza
headers
, wybierz pozycję Przełącz nagłówki wiadomości na tryb tekstowy.Kliknij wewnątrz pola Nagłówki wiadomości. Po wyświetleniu listy zawartości dynamicznej wybierz pozycję Wyrażenie. W edytorze wyrażeń wprowadź następujące wyrażenie i wybierz przycisk OK:
triggerOutputs()['Headers']
W akcji Dekoduj AS2 wyrażenie jest teraz wyświetlane jako token:
Aby uzyskać token wyrażenia, który ma zostać rozpoznany w tokenie Nagłówki , przełącz się między projektantem a widokiem kodu. Po tym kroku akcja Dekoduj as2 wygląda następująco:
Dodawanie akcji Odpowiedź jako potwierdzenia wiadomości
Aby powiadomić partnera handlowego, że wiadomość została odebrana, możesz zwrócić odpowiedź zawierającą powiadomienie o dyspozycji komunikatu AS2 (MDN) przy użyciu akcji Warunek i Odpowiedź. Dodając te akcje bezpośrednio po akcji AS2, przepływ pracy aplikacji logiki może kontynuować przetwarzanie, jeśli akcja AS2 zakończy się pomyślnie. W przeciwnym razie, jeśli akcja AS2 zakończy się niepowodzeniem, przepływ pracy aplikacji logiki przestanie przetwarzać.
W obszarze akcji Dekoduj AS2 wybierz pozycję Nowy krok.
W polu wyszukiwania Wybierz operację wybierz pozycję Wbudowane, jeśli jeszcze nie wybrano. W polu wyszukiwania wpisz
condition
. Wybierz akcję Warunek.Teraz zostanie wyświetlony kształt warunku, w tym ścieżki określające, czy warunek jest spełniony.
Teraz określ warunek do obliczenia. W polu Wybierz wartość wprowadź następujące wyrażenie:
@body('AS2_Decode')?['AS2Message']?['MdnExpected']
W środkowym polu upewnij się, że operacja porównania jest ustawiona na
is equal to
wartość . W polu po prawej stronie wprowadź wartośćExpected
.Zapisz przepływ pracy aplikacji logiki. Aby uzyskać wyrażenie rozpoznawane jako ten token, przełącz się między projektantem i widokiem kodu.
Teraz określ odpowiedzi, które mają zostać zwrócone na podstawie tego, czy akcja dekodowania AS2 zakończy się powodzeniem, czy nie.
W przypadku pomyślnego wykonania akcji dekodowania AS2 w kształcie True wybierz pozycję Dodaj akcję. W polu wyszukiwania Wybierz operację wprowadź ,
response
a następnie wybierz pozycję Odpowiedź.Aby uzyskać dostęp do nazwy MDN AS2 z danych wyjściowych akcji dekodowania AS2, określ następujące wyrażenia:
We właściwości Nagłówki akcji odpowiedzi wprowadź następujące wyrażenie:
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
We właściwości Treść akcji odpowiedź wprowadź następujące wyrażenie:
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Aby uzyskać wyrażenia rozpoznawane jako tokeny, przełącz się między projektantem a widokiem kodu:
W przypadku niepowodzenia akcji dekodowania AS2 w kształcie Fałsz wybierz pozycję Dodaj akcję. W polu wyszukiwania Wybierz operację wprowadź ,
response
a następnie wybierz pozycję Odpowiedź. Skonfiguruj akcję Odpowiedź, aby zwrócić żądany stan i błąd.
Zapisz przepływ pracy aplikacji logiki.
Dodawanie akcji dekodowania komunikatu X12
Teraz dodaj akcję Dekoduj komunikat X12.
W obszarze akcji Odpowiedź wybierz pozycję Dodaj akcję.
W obszarze Wybierz operację w polu wyszukiwania wprowadź ,
x12 decode
a następnie wybierz pozycję Dekoduj komunikat X12.Jeśli akcja X12 wyświetli monit o podanie informacji o połączeniu, podaj nazwę połączenia, wybierz konto integracji, którego chcesz użyć, a następnie wybierz pozycję Utwórz.
Teraz określ dane wejściowe akcji X12. W tym przykładzie użyto danych wyjściowych akcji AS2, która jest zawartością komunikatu, ale pamiętaj, że ta zawartość jest w formacie obiektu JSON i jest zakodowana w formacie base64. Dlatego musisz przekonwertować tę zawartość na ciąg.
W oknie komunikatu X12 Flat file to decode (Dekodowanie pliku X12 Flat) wprowadź następujące wyrażenie, aby przekonwertować dane wyjściowe AS2:
@base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])
Zapisz przepływ pracy aplikacji logiki. Aby uzyskać wyrażenie rozpoznawane jako ten token, przełącz się między projektantem i widokiem kodu.
Zapisz przepływ pracy aplikacji logiki.
Jeśli potrzebujesz dodatkowych kroków dla tego przepływu pracy aplikacji logiki, na przykład w celu dekodowania zawartości komunikatu i danych wyjściowych tej zawartości w formacie obiektu JSON, kontynuuj dodawanie niezbędnych akcji do przepływu pracy aplikacji logiki.
Teraz skonfigurujesz przepływ pracy aplikacji logiki B2B. W rzeczywistej aplikacji możesz przechowywać zdekodowane dane X12 w aplikacji biznesowej lub magazynie danych. Zapoznaj się na przykład z następującą dokumentacją:
Aby połączyć własne aplikacje biznesowe i używać tych interfejsów API w aplikacji logiki, możesz dodać więcej akcji lub napisać niestandardowe interfejsy API.