Udostępnij za pośrednictwem


Tworzenie przepływów pracy dla typowych scenariuszy integracji sap w usłudze Azure Logic Apps

Dotyczy: Azure Logic Apps (Zużycie + Standardowa)

W tym przewodniku z instrukcjami pokazano, jak utworzyć przykładowe przepływy pracy aplikacji logiki dla niektórych typowych scenariuszy integracji z oprogramowaniem SAP przy użyciu usługi Azure Logic Apps i łącznika SAP.

Przepływy pracy aplikacji logiki w warstwie Standardowa i Zużycie oferują łącznik zarządzany sap , który jest hostowany i uruchamiany na platformie Azure z wieloma dzierżawami. Standardowe przepływy pracy oferują również wbudowany łącznik dostawcy usług SAP, który jest hostowany i uruchamiany w usłudze Azure Logic Apps z jedną dzierżawą. Jeśli tworzysz i hostujesz przepływ pracy Zużycie w środowisku usługi integracji (ISE), możesz również użyć natywnej wersji programu SAP Connector. Aby uzyskać więcej informacji, zobacz dokumentację techniczną Połączenie or.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że zapoznasz się z wymaganiami łącznika SAP i spełnij je dla konkretnego scenariusza.

Odbieranie komunikatów z oprogramowania SAP

Poniższy przykładowy przepływ pracy aplikacji logiki jest wyzwalany, gdy wyzwalacz SAP przepływu pracy odbiera komunikat z serwera SAP.

Dodawanie wyzwalacza SAP

W zależności od tego, czy masz przepływ pracy Zużycie w wielodostępnej usłudze Azure Logic Apps, czy standardowy przepływ pracy w usłudze Azure Logic Apps z jedną dzierżawą, wykonaj odpowiednie kroki:

  1. W witrynie Azure Portal otwórz aplikację logiki Zużycie i pusty przepływ pracy w projektancie.

  2. W projektancie wykonaj następujące ogólne kroki, aby dodać wyzwalacz łącznika zarządzanego SAP o nazwie Po odebraniu komunikatu.

  3. Jeśli zostanie wyświetlony monit, podaj następujące informacje o połączeniu dla lokalnego serwera SAP. Po zakończeniu wybierz Utwórz. W przeciwnym razie przejdź do następnego kroku, aby skonfigurować wyzwalacz SAP.

    Parametr Wymagania opis
    Nazwa połączenia Tak Wprowadź nazwę połączenia.
    Brama danych Tak 1. W polu Subskrypcja wybierz subskrypcję platformy Azure dla zasobu bramy danych utworzonego w witrynie Azure Portal na potrzeby instalacji bramy danych.

    2. W przypadku bramy Połączenie ion wybierz zasób bramy danych na platformie Azure.
    Klient Tak Identyfikator klienta SAP używany do nawiązywania połączenia z serwerem SAP
    Typ uwierzytelnienia Tak Typ uwierzytelniania do użycia dla połączenia, który musi mieć wartość Podstawowa (nazwa użytkownika i hasło). Aby utworzyć połączenie SNC, zobacz Włączanie bezpiecznej komunikacji sieciowej (SNC).
    Nazwa użytkownika sap Tak Nazwa użytkownika serwera SAP
    Hasło SAP Tak Hasło serwera SAP
    Typ logowania Tak Wybierz pozycję Serwer aplikacji lub Grupa (serwer komunikatów), a następnie skonfiguruj odpowiednie wymagane parametry, mimo że są one opcjonalne:

    Serwer aplikacji:
    - Host AS: nazwa hosta serwera aplikacji SAP
    - Usługa AS: nazwa usługi lub numer portu serwera APLIKACJI SAP
    - Numer systemu AS: numer systemowy serwera SAP, który waha się od 00 do 99

    Grupa:
    - Host serwera MS: nazwa hosta serwera SAP Message Server
    - Nazwa usługi MS lub numer portu: nazwa usługi lub numer portu serwera SAP Message Server
    - IDENTYFIKATOR systemu MS: identyfikator systemu dla serwera SAP
    - Grupa logowania MS: grupa logowania dla serwera SAP. Na serwerze SAP można znaleźć lub edytować wartość Grupy logowania, otwierając okno dialogowe CCMS: Obsługa grup logowania (T-Code SMLG). Aby uzyskać więcej informacji, zapoznaj się z artykułem SAP Note 26317 — Konfigurowanie grupy LOGON na potrzeby automatycznego równoważenia obciążenia.
    Sejf wpisywanie Nie. Ta opcja jest dostępna na potrzeby zgodności z poprzednimi wersjami i sprawdza tylko długość ciągu. Domyślnie silne wpisywanie służy do sprawdzania nieprawidłowych wartości przez przeprowadzenie walidacji XML względem schematu. To zachowanie może pomóc w wykrywaniu problemów wcześniej. Dowiedz się więcej o ustawieniu Sejf Wpisywanie.
    Korzystanie z SNC Nie. Aby utworzyć połączenie SNC, zobacz Włączanie bezpiecznej komunikacji sieciowej (SNC).

    Aby zapoznać się z innymi opcjonalnymi dostępnymi parametrami połączenia, zobacz Domyślne informacje o połączeniu.

    Po skonfigurowaniu i testowaniu połączenia przez usługę Azure Logic Apps zostanie wyświetlone pole informacji o wyzwalaczu. Aby uzyskać więcej informacji na temat wszelkich problemów z połączeniem, które mogą wystąpić, zobacz Rozwiązywanie problemów z połączeniami.

  4. Na podstawie konfiguracji i scenariusza serwera SAP podaj niezbędne wartości parametrów wyzwalacza Po odebraniu komunikatu i dodaj inne dostępne parametry wyzwalacza, które mają być używane w danym scenariuszu.

    Uwaga

    Ten wyzwalacz SAP jest wyzwalaczem opartym na elementach webhook, a nie wyzwalaczem sondowania i nie zawiera opcji określania harmonogramu sondowania. Na przykład w przypadku korzystania z zarządzanego łącznika SAP z lokalną bramą danych wyzwalacz jest wywoływany z bramy danych tylko wtedy, gdy pojawi się komunikat, więc sondowanie nie jest konieczne.

    Parametr Wymagania opis
    GatewayHost Tak Host bramy rejestracji serwera SAP RFC
    GatewayService Tak Usługa bramy rejestracji dla serwera SAP RFC
    Identyfikator programu Tak Identyfikator programu bramy rejestracji dla serwera SAP RFC.

    Uwaga: ta wartość jest uwzględniana w wielkości liter. Upewnij się, że stale używasz tego samego formatu przypadku dla wartości Identyfikator programu podczas konfigurowania przepływu pracy aplikacji logiki i serwera SAP. W przeciwnym razie podczas próby wysłania dokumentu IDoc do systemu SAP monitor tRFC (T-Code SM58) może wyświetlać następujące błędy (linki wymagają logowania sap):

    - Nie można odnaleźć IDOC_INBOUND_ASYNCHRONOUS funkcji (2399329)
    - Klient RFC bez protokołu ABAP (typ partnera) nie jest obsługiwany (353597)
    DegreeOfParallelism Nie. Liczba wywołań do przetwarzania równoległego. Aby dodać ten parametr i zmienić wartość, z listy Dodaj nowy parametr wybierz pozycję DegreeOfParallelism i wprowadź nową wartość.
    SapActions Nie. Filtruj komunikaty odbierane z serwera SAP na podstawie listy akcji SAP. Aby dodać ten parametr, z listy Dodaj nowy parametr wybierz pozycję SapActions. W nowej sekcji SapActions dla parametru SapActions — 1 użyj selektora plików, aby wybrać akcję SAP lub ręcznie określić akcję. Aby uzyskać więcej informacji na temat akcji SAP, zobacz Schematy komunikatów dla operacji IDoc.
    IDoc Format Nie. Format używany do odbierania dokumentów IDocs. Aby dodać ten parametr, z listy Dodaj nowy parametr wybierz pozycję IDoc Format.

    — Aby otrzymywać dokumenty IDoc jako zwykły kod XML sap, z listy IDoc Format wybierz pozycję SapPlainXml.

    - Aby otrzymywać dokumenty IDocs jako plik prosty, z listy IDoc Format wybierz pozycję FlatFile.

    - Uwaga: jeśli używasz również akcji Dekoduj plik prosty w przepływie pracy, w schemacie pliku prostego musisz użyć właściwości early_terminate_optional_fields i ustawić wartość true. To wymaganie jest konieczne, ponieważ rekord danych IDoc pliku prostego, który jest wysyłany przez system SAP w wywołaniu tRFC o nazwie IDOC_INBOUND_ASYNCHRONOUS , nie jest dopełniany do pełnej długości pola SDATA. Usługa Azure Logic Apps udostępnia pliki proste IDoc oryginalne dane bez uzupełniania danych odebranych z oprogramowania SAP. Ponadto po połączeniu tego wyzwalacza SAP z akcją Dekoduj plik prosty schemat dostarczony do akcji musi być zgodny.
    Odbieranie dokumentów IDOCS z nieopublikowanymi segmentami Nie. Odbieranie dokumentów IDoc z nieopublikowanymi segmentami lub bez ich wersji. Aby dodać ten parametr i zmienić wartość, z listy Dodaj nowy parametr wybierz pozycję Odbierz dokumenty IDOCS z nieopublikowanymi segmentami, a następnie wybierz pozycję Tak lub Nie.
    SncPartnerNames Nie. Lista partnerów SNC, którzy mają uprawnienia do wywoływania wyzwalacza na poziomie biblioteki klienta SAP. Tylko wymienieni partnerzy są autoryzowani przez połączenie SNC serwera SAP. Aby dodać ten parametr, z listy Dodaj nowy parametr wybierz pozycję SncPartnerNames. Pamiętaj, aby wprowadzić każdą nazwę oddzieloną pionowym paskiem (|).

    W poniższym przykładzie przedstawiono w zasadzie skonfigurowany wyzwalacz zarządzany przez oprogramowanie SAP w przepływie pracy Zużycie:

    Screenshot shows basically configured SAP managed connector trigger in Consumption workflow.

    W poniższym przykładzie pokazano wyzwalacz zarządzany przez oprogramowanie SAP, w którym można filtrować komunikaty, wybierając akcje SAP:

    Screenshot shows selecting an SAP action to filter messages in a Consumption workflow.

    Możesz też ręcznie określić akcję:

    Screenshot shows manually entering the SAP action to filter messages in a Consumption workflow.

    W poniższym przykładzie pokazano, jak akcja jest wyświetlana podczas konfigurowania wyzwalacza w celu odbierania więcej niż jednego komunikatu:

    Screenshot shows example trigger that receives multiple messages in a Consumption workflow.

  5. Zapisz przepływ pracy, aby można było rozpocząć odbieranie komunikatów z serwera SAP. Na pasku narzędzi projektanta wybierz pozycję Zapisz.

    Przepływ pracy jest teraz gotowy do odbierania komunikatów z serwera SAP.

  6. Po wyzwoleniu wyzwalacza i uruchomieniu przepływu pracy przejrzyj historię wyzwalacza przepływu pracy, aby potwierdzić, że rejestracja wyzwalacza zakończyła się pomyślnie.

Odbieranie pakietów IDoc z oprogramowania SAP

Aby odbierać pakiety IDoc, które są partiami lub grupami IDocs, wyzwalacz SAP nie wymaga dodatkowej konfiguracji. Jednak aby przetworzyć każdy element w pakiecie IDoc po odebraniu pakietu przez wyzwalacz, należy zaimplementować kilka kolejnych kroków, aby podzielić pakiet na poszczególne dokumenty IDocs, konfigurując system SAP do wysyłania dokumentów IDocs w pakietach.

Poniższy przykładowy przepływ pracy przedstawia sposób wyodrębniania poszczególnych dokumentów IDoc z pakietu przy użyciu xpath() funkcji :

  1. Przed rozpoczęciem potrzebny jest przepływ pracy aplikacji logiki Zużycie lub Standardowa z wyzwalaczem SAP. Jeśli twój przepływ pracy jeszcze nie rozpoczyna się od tego wyzwalacza, wykonaj poprzednie kroki opisane w tym przewodniku, aby dodać wyzwalacz SAP, który może odbierać komunikaty do przepływu pracy.

  2. Aby natychmiast odpowiedzieć na serwer SAP przy użyciu stanu żądania SAP, dodaj następującą akcję odpowiedzi na podstawie tego, czy używasz wyzwalacza zarządzanego przez sap, czy wbudowanego wyzwalacza SAP:

    • Wyzwalacz zarządzany sap: dla tego wyzwalacza dodaj akcję Odpowiedź do przepływu pracy.

      W akcji Odpowiedź użyj jednego z następujących kodów stanu (statusCode):

      Kod stanu opis
      Zaakceptowano 202 Żądanie zostało zaakceptowane do przetworzenia, ale przetwarzanie nie zostało jeszcze ukończone.
      204 Brak zawartości Serwer pomyślnie wypełnił żądanie i nie ma dodatkowej zawartości do wysłania w treści ładunku odpowiedzi.
      200 OK Ten kod stanu zawsze zawiera ładunek, nawet jeśli serwer generuje treść ładunku o zerowej długości.
    • Wbudowany wyzwalacz SAP: dla tego wyzwalacza dodaj akcję Odpowiadanie na serwer SAP do przepływu pracy.

    Uwaga

    Najlepszym rozwiązaniem jest dodanie akcji odpowiedzi natychmiast po wyzwoleniu wyzwalacza w celu zwolnienia kanału komunikacyjnego z serwerem SAP.

  3. Pobierz przestrzeń nazw katalogu głównego z dokumentu IDoc XML odbieranego przez przepływ pracy z systemu SAP.

    1. Aby wyodrębnić tę przestrzeń nazw z dokumentu XML i zapisać przestrzeń nazw w lokalnej zmiennej ciągu, dodaj akcję Inicjowanie zmiennej .

    2. Zmień nazwę tytułu akcji na Pobierz przestrzeń nazw dla węzła głównego w odebranych dokumentach IDoc.

    3. Podaj nazwę zmiennej i ustaw typ na Ciąg.

    4. W parametrze Value akcji wybierz wewnątrz pola edycji, otwórz wyrażenie lub edytor funkcji i utwórz następujące wyrażenie przy użyciu xpath() funkcji :

      xpath(xml(triggerBody()?['Content']), 'namespace-uri(/*)')

      Przepływ pracy użycia

      Screenshot shows the expression to get the root node namespace from received IDoc for a Consumption workflow.

      Standardowy przepływ pracy

      Screenshot shows the expression to get the root node namespace from received IDoc for a Standard workflow.

      Gdy skończysz, wyrażenie zostanie rozpoznane, a teraz będzie wyświetlane jako następujący format:

      Screenshot shows the resolved expression that gets the root node namespace from received IDoc.

  4. Aby wyodrębnić pojedynczy dokument IDoc, przechowując kolekcję IDoc w zmiennej tablicy lokalnej, wykonaj następujące kroki:

    1. Dodaj kolejną akcję Inicjowanie zmiennej .

    2. Zmień nazwę tytułu akcji na Pobierz tablicę za pomocą elementów danych IDoc.

    3. Podaj nazwę zmiennej i ustaw typ na Array.

      Zmienna tablicowa udostępnia każdemu dokumentowi IDoc przepływ pracy do przetwarzania indywidualnie przez wyliczenie w kolekcji.

    4. W parametrze Value akcji wybierz wewnątrz pola edycji, otwórz wyrażenie lub edytor funkcji i utwórz następujące xpath() wyrażenie:

      xpath(xml(triggerBody()?['Content']), '/*[local-name()="Receive"]/*[local-name()="idocData"]')

      Gdy skończysz, wyrażenie zostanie rozpoznane, a teraz będzie wyświetlane jako następujący format:

      Przepływ pracy użycia

      Screenshot shows the expression to get an array of IDocs for a Consumption workflow.

      W tym przykładzie poniższy przepływ pracy przesyła każdy dokument IDoc do serwera SFTP przy użyciu akcji Kontrolka o nazwie Dla każdego i akcji SFTP-SSH o nazwie Utwórz plik. Każdy dokument IDoc musi zawierać przestrzeń nazw katalogu głównego, co jest powodem, dla którego zawartość pliku jest owinięta wewnątrz <Receive></Receive> elementu wraz z przestrzeń nazw katalogu głównego przed wysłaniem dokumentu IDoc do aplikacji podrzędnej lub serwera SFTP w tym przypadku.

      Screenshot shows sending an IDoc to an SFTP server from a Consumption workflow.

      Uwaga

      W przypadku przepływów pracy Zużycie ten wzorzec jest dostępny jako szablon szybkiego startu, który można wybrać z galerii szablonów podczas tworzenia zasobu aplikacji logiki Zużycie i pustego przepływu pracy. Lub gdy projektant przepływu pracy jest otwarty, na pasku narzędzi projektanta wybierz pozycję Szablony.

      Screenshot that shows selecting the template for getting an IDoc batch.

      Standardowy przepływ pracy

      Screenshot shows the expression to get an array of IDocs for a Standard workflow.

      W tym przykładzie poniższy przepływ pracy przesyła każdy dokument IDoc do serwera SFTP przy użyciu akcji Kontrolka o nazwie Dla każdego i akcji SFTP-SSH o nazwie Utwórz plik. Każdy dokument IDoc musi zawierać przestrzeń nazw katalogu głównego, co jest powodem, dla którego zawartość pliku jest owinięta wewnątrz <Receive></Receive> elementu wraz z przestrzeń nazw katalogu głównego przed wysłaniem dokumentu IDoc do aplikacji podrzędnej lub serwera SFTP w tym przypadku.

      Screenshot shows sending an IDoc to an SFTP server from a Standard workflow.


Filtrowanie odebranych komunikatów za pomocą akcji SAP

Jeśli używasz łącznika zarządzanego SAP lub łącznika SAP w wersji isE, w ramach wyzwalacza w przepływie pracy skonfiguruj sposób jawnego filtrowania niepożądanych akcji z serwera SAP na podstawie przestrzeni nazw węzła głównego w odebranym ładunku XML. Listę (tablicę) można podać za pomocą jednej lub wielu akcji SAP. Domyślnie ta tablica jest pusta, co oznacza, że przepływ pracy odbiera wszystkie komunikaty z serwera SAP bez filtrowania. Po skonfigurowaniu filtru tablicy wyzwalacz odbiera komunikaty tylko z określonych typów akcji SAP i odrzuca wszystkie inne komunikaty z serwera SAP. Jednak ten filtr nie ma wpływu na to, czy wpisanie odebranego ładunku jest słabe, czy silne. Filtrowanie akcji SAP odbywa się na poziomie adaptera SAP dla lokalnej bramy danych. Aby uzyskać więcej informacji, zapoznaj się ze sposobem testowania wysyłania dokumentów IDocs do usługi Azure Logic Apps z systemu SAP.

Konfigurowanie asynchronicznego wzorca żądania-odpowiedzi dla wyzwalaczy

Łącznik zarządzany sap obsługuje asynchroniczny wzorzec żądania-odpowiedzi platformy Azure dla wyzwalaczy usługi Azure Logic Apps. Ten wzorzec służy do tworzenia pomyślnych żądań, które w przeciwnym razie kończą się niepowodzeniem z domyślnym synchronicznym wzorcem odpowiedzi na żądanie.

Uwaga

W przepływach pracy z wieloma akcjami odpowiedzi wszystkie akcje odpowiedzi muszą używać tego samego wzorca odpowiedzi żądania. Jeśli na przykład przepływ pracy używa kontrolki przełącznika z wieloma możliwymi akcjami odpowiedzi, należy skonfigurować wszystkie akcje Odpowiedzi, aby używać tego samego wzorca odpowiedzi żądania, synchronicznego lub asynchronicznego.

Jeśli włączysz asynchroniczną odpowiedź dla akcji Odpowiedź , przepływ pracy może odpowiedzieć na odpowiedź 202 Zaakceptowane po zaakceptowaniu żądania przetwarzania. Odpowiedź zawiera nagłówek lokalizacji, którego można użyć do pobrania stanu końcowego żądania.

Aby skonfigurować asynchroniczny wzorzec żądania-odpowiedzi dla przepływu pracy przy użyciu łącznika SAP, wykonaj następujące kroki:

  1. W projektancie otwórz przepływ pracy aplikacji logiki. Upewnij się, że przepływ pracy rozpoczyna się od wyzwalacza SAP.

  2. W przepływie pracy znajdź akcję Odpowiedź i otwórz Ustawienia tej akcji.

  3. W zależności od tego, czy masz przepływ pracy Zużycie, czy Standardowy, wykonaj odpowiednie kroki:

    • Zużycie: w obszarze Odpowiedź asynchroniczna ustaw ustawienie z Wyłączone na Włączone i wybierz pozycję Gotowe.
    • Standardowa: rozwiń węzeł Sieć i w obszarze Odpowiedź asynchroniczna włącz ustawienie z Wył.
  4. Zapisz przepływ pracy.

Wysyłanie dokumentów IDocs do systemu SAP

Aby utworzyć przepływ pracy aplikacji logiki, który wysyła dokument IDoc do serwera SAP i zwraca odpowiedź, wykonaj następujące przykłady:

  1. Utwórz przepływ pracy aplikacji logiki wyzwalany przez żądanie HTTP.
  2. Dodaj akcję SAP do przepływu pracy, aby wysłać dokument IDoc do systemu SAP.
  3. Dodaj akcję odpowiedzi do przepływu pracy.
  4. Utwórz wzorzec odpowiedzi na żądanie wywołania funkcji zdalnej (RFC), jeśli używasz RFC do odbierania odpowiedzi z programu SAP ABAP.
  5. Przetestuj przepływ pracy.

Dodawanie wyzwalacza żądania

Aby przepływ pracy odbierał dokumenty IDocs z oprogramowania SAP za pośrednictwem protokołu HTTP XML, możesz użyć wbudowanego wyzwalacza Request. Ten wyzwalacz tworzy punkt końcowy z adresem URL, pod którym serwer SAP może wysyłać żądania HTTP POST do przepływu pracy. Gdy przepływ pracy odbierze te żądania, wyzwalacz zostanie wyzwolony i uruchomi następny krok w przepływie pracy.

Aby otrzymywać dokumenty IDocs za pośrednictwem common Programming Interface Communication (CPIC) jako zwykłego kodu XML lub jako pliku prostego, przejrzyj sekcję Odbieranie komunikatu z oprogramowania SAP.

W zależności od tego, czy masz przepływ pracy Zużycie w wielodostępnej usłudze Azure Logic Apps, czy standardowy przepływ pracy w usłudze Azure Logic Apps z jedną dzierżawą, wykonaj odpowiednie kroki:

  1. W witrynie Azure Portal utwórz zasób aplikacji logiki Zużycie i pusty przepływ pracy w projektancie.

  2. W projektancie wykonaj następujące ogólne kroki, aby znaleźć i dodać wbudowany wyzwalacz Żądania o nazwie Po odebraniu żądania HTTP.

    Screenshot shows the Request trigger for a Consumption workflow.

  3. Zapisz przepływ pracy. Na pasku narzędzi projektanta wybierz pozycję Zapisz.

    Ten krok generuje adres URL punktu końcowego, pod którym wyzwalacz może odbierać żądania z serwera SAP, na przykład:

    Screenshot shows the Request trigger's generated endpoint URL for receiving requests in a Consumption workflow.

Dodawanie akcji SAP w celu wysłania dokumentu IDoc

Następnie utwórz akcję, aby wysłać dokument IDoc do oprogramowania SAP, gdy wyzwalacz żądania przepływu pracy zostanie wyzwolony. W zależności od tego, czy masz przepływ pracy Zużycie w wielodostępnej usłudze Azure Logic Apps, czy standardowy przepływ pracy w usłudze Azure Logic Apps z jedną dzierżawą, wykonaj odpowiednie kroki:

  1. W projektancie przepływu pracy w obszarze Wyzwalacz żądania wybierz pozycję Nowy krok.

  2. W projektancie wykonaj następujące ogólne kroki, aby znaleźć i dodać akcję zarządzaną SAP o nazwie Wyślij komunikat do systemu SAP.

  3. Jeśli zostanie wyświetlony monit, podaj następujące informacje o połączeniu dla lokalnego serwera SAP. Po zakończeniu wybierz Utwórz. W przeciwnym razie przejdź do następnego kroku, aby skonfigurować akcję SAP.

    Parametr Wymagania opis
    Nazwa połączenia Tak Wprowadź nazwę połączenia.
    Brama danych Tak 1. W polu Subskrypcja wybierz subskrypcję platformy Azure dla zasobu bramy danych utworzonego w witrynie Azure Portal na potrzeby instalacji bramy danych.

    2. W przypadku bramy Połączenie ion wybierz zasób bramy danych na platformie Azure.
    Klient Tak Identyfikator klienta SAP używany do nawiązywania połączenia z serwerem SAP
    Typ uwierzytelnienia Tak Typ uwierzytelniania do użycia dla połączenia, który musi mieć wartość Podstawowa (nazwa użytkownika i hasło). Aby utworzyć połączenie SNC, zobacz Włączanie bezpiecznej komunikacji sieciowej (SNC).
    Nazwa użytkownika sap Tak Nazwa użytkownika serwera SAP
    Hasło SAP Tak Hasło serwera SAP
    Typ logowania Tak Wybierz pozycję Serwer aplikacji lub Grupa (serwer komunikatów), a następnie skonfiguruj odpowiednie wymagane parametry, mimo że są one opcjonalne:

    Serwer aplikacji:
    - Host AS: nazwa hosta serwera aplikacji SAP
    - Usługa AS: nazwa usługi lub numer portu serwera APLIKACJI SAP
    - Numer systemu AS: numer systemowy serwera SAP, który waha się od 00 do 99

    Grupa:
    - Host serwera MS: nazwa hosta serwera SAP Message Server
    - Nazwa usługi MS lub numer portu: nazwa usługi lub numer portu serwera SAP Message Server
    - IDENTYFIKATOR systemu MS: identyfikator systemu dla serwera SAP
    - Grupa logowania MS: grupa logowania dla serwera SAP. Na serwerze SAP można znaleźć lub edytować wartość Grupy logowania, otwierając okno dialogowe CCMS: Obsługa grup logowania (T-Code SMLG). Aby uzyskać więcej informacji, zapoznaj się z artykułem SAP Note 26317 — Konfigurowanie grupy LOGON na potrzeby automatycznego równoważenia obciążenia.
    Sejf wpisywanie Nie. Ta opcja jest dostępna na potrzeby zgodności z poprzednimi wersjami i sprawdza tylko długość ciągu. Domyślnie silne wpisywanie służy do sprawdzania nieprawidłowych wartości przez przeprowadzenie walidacji XML względem schematu. To zachowanie może pomóc w wykrywaniu problemów wcześniej. Dowiedz się więcej o ustawieniu Sejf Wpisywanie.
    Korzystanie z SNC Nie. Aby utworzyć połączenie SNC, zobacz Włączanie bezpiecznej komunikacji sieciowej (SNC).

    Aby zapoznać się z innymi opcjonalnymi dostępnymi parametrami połączenia, zobacz Domyślne informacje o połączeniu.

    Po skonfigurowaniu i testowaniu połączenia przez usługę Azure Logic Apps zostanie wyświetlone pole informacji o akcji SAP. Aby uzyskać więcej informacji na temat wszelkich problemów z połączeniem, które mogą wystąpić, zobacz Rozwiązywanie problemów z połączeniami.

    Screenshot shows a Consumption workflow with the SAP managed action named Send message to SAP.

  4. W akcji Wyślij komunikat do sap znajdź i wybierz dostępną akcję SAP na serwerze SAP, aby wysłać dokument IDoc.

    Akcja Wyślij komunikat do systemu SAP jest ogólna i może wysłać komunikat dla baPI, IDoc, RFC lub tRFC, ale musisz najpierw wybrać typ komunikatu i akcję SAP do użycia.

    1. W polu edycji parametru SAP Action wybierz ikonę folderu. Z listy, która zostanie otwarta, wybierz pozycję BAPI, IDOC, RFC lub TRFC. W tym przykładzie wybrano dokument IDOC. W przypadku wybrania innego typu dostępne akcje SAP zmieniają się w zależności od wybranego typu.

      Uwaga

      Jeśli wystąpi błąd nieprawidłowej bramy (500) lub błąd Nieprawidłowe żądanie (400), zobacz błąd 500 Zła brama lub Błąd nieprawidłowego żądania 400.

      Screenshot shows selecting IDOC for a Consumption workflow.

    2. Przeglądaj foldery typów akcji SAP przy użyciu strzałek, aby znaleźć i wybrać akcję SAP, której chcesz użyć.

      W tym przykładzie wybrano pozycję ORDERS>ORDERS05>720>Send( Wyślij).

      Screenshot shows finding an Orders action for a Consumption workflow.

      Jeśli nie możesz znaleźć żądanej akcji, możesz ręcznie wprowadzić ścieżkę, na przykład:

      Screenshot shows manually entering a path to an Orders action type for a Consumption workflow.

      Napiwek

      Dla parametru SAP Action możesz podać wartość parametru za pomocą edytora wyrażeń. W ten sposób można użyć tej samej akcji SAP dla różnych typów komunikatów.

      Aby uzyskać więcej informacji na temat komunikatów IDoc, zobacz Schematy komunikatów dla operacji IDoc.

    3. W akcji Wyślij komunikat do systemu SAP dołącz dane wyjściowe treści z wyzwalacza Żądanie.

      1. W parametrze Komunikat wejściowy wybierz wewnątrz pola edycji, aby otworzyć listę zawartości dynamicznej.

      2. Z listy zawartości dynamicznej w obszarze Po odebraniu żądania HTTP wybierz pozycję Treść. Pole Treść zawiera dane wyjściowe treści wyzwalacza Żądanie.

        Uwaga

        Jeśli pole Treść nie jest wyświetlane na liście, obok etykiety Po odebraniu żądania HTTP wybierz pozycję Zobacz więcej.

      Screenshot shows selecting the Request trigger's output named Body for Consumption workflow.

      Akcja Wyślij komunikat do systemu SAP zawiera teraz zawartość treści z wyzwalacza Żądanie i wysyła te dane wyjściowe do serwera SAP, na przykład:

      Screenshot shows completed SAP action for Consumption workflow.

  5. Zapisz przepływ pracy.

Wysyłanie plików prostych dokumentów IDocs do serwera SAP (tylko łącznik zarządzany)

Aby wysłać dokument IDoc przy użyciu schematu pliku prostego podczas korzystania z łącznika zarządzanego sap, możesz owinąć dokument IDoc w kopercie XML i wykonać ogólne kroki, aby dodać akcję SAP w celu wysłania dokumentu IDoc, ale z następującymi zmianami.

Uwaga

Jeśli używasz wbudowanego łącznika SAP, upewnij się, że nie opakowujesz pliku prostego IDoc w kopercie XML.

Zawijanie dokumentu IDoc z kopertą XML

  1. W akcji SAP używanej do wysyłania komunikatu użyj następującego identyfikatora URI:

    http://Microsoft.LobServices.Sap/2007/03/Idoc/SendIdoc

  2. Sformatuj komunikat wejściowy przy użyciu koperty XML.

Poniższy przykład przedstawia przykładowy ładunek XML:

<SendIdoc xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/">
  <idocData>EDI_DC 3000000001017945375750 30INVOIC011BTSVLINV30KUABCABCFPPC LDCA X004010810 4 SAPMSX LSEDI ABCABCFPPC 000d3ae4-723e-1edb-9ca4-cc017365c9fd 20210217054521INVOICINVOIC01ZINVOIC2RE 20210217054520
E2EDK010013000000001017945375000001E2EDK01001000000010 ABCABC1.00000 0060 INVO9988298128 298.000 298.000 LB Z4LR EN 0005065828 L
E2EDKA1 3000000001017945375000002E2EDKA1 000000020 RS ABCABCFPPC 0005065828 ABCABCABC ABCABC Inc. Limited Risk Distributor ABCABC 1950 ABCABCABCA Blvd ABCABAABCAB L5N8L9 CA ABCABC E ON V-ABCABC LDCA
E2EDKA1 3000000001017945375000003E2EDKA1 000000020 AG 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000004E2EDKA1 000000020 RE 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000005E2EDKA1 000000020 RG 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000006E2EDKA1 000000020 WE 0005001847 41 ABCABC ABCABC INC (ABCABC) DC A. ABCABCAB 88 ABCABC CRESCENT ABCABAABCAB L5R 4A2 CA ABCABC 111-111-1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000007E2EDKA1 000000020 Z3 0005533050 ABCABCABC ABCABC Inc. ABCA Bank Swift Code -ABCABCABCAB Sort Code - 1950 ABCABCABCA Blvd. Acc No -1111111111 ABCABAABCAB L5N8L9 CA ABCABC E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000008E2EDKA1 000000020 BK 1075 ABCABCABC ABCABC Inc 1950 ABCABCABCA Blvd ABCABAABCAB ON L5N 8L9 CA ABCABC (111) 111-1111 (111) 111-1111 ON
E2EDKA1 3000000001017945375000009E2EDKA1 000000020 CR 1075 CONTACT ABCABCABC 1950 ABCABCABCA Blvd ABCABAABCAB ON L5N 8L9 CA ABCABC (111) 111-1111 (111) 111-1111 ON
E2EDK02 3000000001017945375000010E2EDK02 000000020 0099988298128 20210217
E2EDK02 3000000001017945375000011E2EDK02 000000020 00140-N6260-S 20210205
E2EDK02 3000000001017945375000012E2EDK02 000000020 0026336270425 20210217
E2EDK02 3000000001017945375000013E2EDK02 000000020 0128026580537 20210224
E2EDK02 3000000001017945375000014E2EDK02 000000020 01740-N6260-S
E2EDK02 3000000001017945375000015E2EDK02 000000020 900IAC
E2EDK02 3000000001017945375000016E2EDK02 000000020 901ZSH
E2EDK02 3000000001017945375000017E2EDK02 000000020 9078026580537 20210217
E2EDK03 3000000001017945375000018E2EDK03 000000020 02620210217
E2EDK03 3000000001017945375000019E2EDK03 000000020 00120210224
E2EDK03 3000000001017945375000020E2EDK03 000000020 02220210205
E2EDK03 3000000001017945375000021E2EDK03 000000020 01220210217
E2EDK03 3000000001017945375000022E2EDK03 000000020 01120210217
E2EDK03 3000000001017945375000023E2EDK03 000000020 02420210217
E2EDK03 3000000001017945375000024E2EDK03 000000020 02820210418
E2EDK03 3000000001017945375000025E2EDK03 000000020 04820210217
E2EDK17 3000000001017945375000026E2EDK17 000000020 001DDPDelivered Duty Paid
E2EDK17 3000000001017945375000027E2EDK17 000000020 002DDPdestination
E2EDK18 3000000001017945375000028E2EDK18 000000020 00160 0 Up to 04/18/2021 without deduction
E2EDK28 3000000001017945375000029E2EDK28 000000020 CA BOFACATT Bank of ABCABAB ABCABC ABCABAB 50127217 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000030E2EDK28 000000020 CA 026000082 ABCAbank ABCABC ABCABAB 201456700OLD ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000031E2EDK28 000000020 GB ABCAGB2L ABCAbank N.A ABCABA E14, 5LB GB63ABCA18500803115593 ABCABCABC ABCABC Inc. GB63ABCA18500803115593
E2EDK28 3000000001017945375000032E2EDK28 000000020 CA 020012328 ABCABANK ABCABC ABCABAB ON M5J 2M3 2014567007 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000033E2EDK28 000000020 CA 03722010 ABCABABC ABCABABC Bank of Commerce ABCABAABCAB 64-04812 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000034E2EDK28 000000020 IE IHCC In-House Cash Center IHCC1075 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000035E2EDK28 000000020 CA 000300002 ABCAB Bank of ABCABC ABCABAB 0021520584OLD ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000036E2EDK28 000000020 US USCC US Cash Center (IHC) city USCC1075 ABCABCABC ABCABC Inc.
E2EDK29 3000000001017945375000037E2EDK29 000000020 0064848944US A CAD CA ABCABC CA United States US CA A Air Air
E2EDKT1 3000000001017945375000038E2EDKT1 000000020 ZJ32E EN
E2EDKT2 3000000001017945375000039E2EDKT2 000038030 GST/HST877845941RT0001 *
E2EDKT2 3000000001017945375000040E2EDKT2 000038030 QST1021036966TQ0001 *
E2EDKT1 3000000001017945375000041E2EDKT1 000000020 Z4VL
E2EDKT2 3000000001017945375000042E2EDKT2 000041030 0.000 *
E2EDKT1 3000000001017945375000043E2EDKT1 000000020 Z4VH
E2EDKT2 3000000001017945375000044E2EDKT2 000043030 *
E2EDK14 3000000001017945375000045E2EDK14 000000020 008LDCA
E2EDK14 3000000001017945375000046E2EDK14 000000020 00710
E2EDK14 3000000001017945375000047E2EDK14 000000020 00610
E2EDK14 3000000001017945375000048E2EDK14 000000020 015Z4F2
E2EDK14 3000000001017945375000049E2EDK14 000000020 0031075
E2EDK14 3000000001017945375000050E2EDK14 000000020 021M
E2EDK14 3000000001017945375000051E2EDK14 000000020 0161075
E2EDK14 3000000001017945375000052E2EDK14 000000020 962M
E2EDP010013000000001017945375000053E2EDP01001000000020 000011 2980.000 EA 298.000 LB MOUSE 298.000 Z4TN 4260
E2EDP02 3000000001017945375000054E2EDP02 000053030 00140-N6260-S 00000120210205 DFUE
E2EDP02 3000000001017945375000055E2EDP02 000053030 0026336270425 00001120210217
E2EDP02 3000000001017945375000056E2EDP02 000053030 0168026580537 00001020210224
E2EDP02 3000000001017945375000057E2EDP02 000053030 9100000 00000120210205 DFUE
E2EDP02 3000000001017945375000058E2EDP02 000053030 911A 00000120210205 DFUE
E2EDP02 3000000001017945375000059E2EDP02 000053030 912PP 00000120210205 DFUE
E2EDP02 3000000001017945375000060E2EDP02 000053030 91300 00000120210205 DFUE
E2EDP02 3000000001017945375000061E2EDP02 000053030 914CONTACT ABCABCABC 00000120210205 DFUE
E2EDP02 3000000001017945375000062E2EDP02 000053030 963 00000120210205 DFUE
E2EDP02 3000000001017945375000063E2EDP02 000053030 965 00000120210205 DFUE
E2EDP02 3000000001017945375000064E2EDP02 000053030 9666336270425 00000120210205 DFUE
E2EDP02 3000000001017945375000065E2EDP02 000053030 9078026580537 00001020210205 DFUE
E2EDP03 3000000001017945375000066E2EDP03 000053030 02920210217
E2EDP03 3000000001017945375000067E2EDP03 000053030 00120210224
E2EDP03 3000000001017945375000068E2EDP03 000053030 01120210217
E2EDP03 3000000001017945375000069E2EDP03 000053030 02520210217
E2EDP03 3000000001017945375000070E2EDP03 000053030 02720210217
E2EDP03 3000000001017945375000071E2EDP03 000053030 02320210217
E2EDP03 3000000001017945375000072E2EDP03 000053030 02220210205
E2EDP19 3000000001017945375000073E2EDP19 000053030 001418VVZ
E2EDP19 3000000001017945375000074E2EDP19 000053030 002RJR-00001 AB ABCABCABC Mouse FORBUS BLUETOOTH
E2EDP19 3000000001017945375000075E2EDP19 000053030 0078471609000
E2EDP19 3000000001017945375000076E2EDP19 000053030 003889842532685
E2EDP19 3000000001017945375000077E2EDP19 000053030 011CN
E2EDP26 3000000001017945375000078E2EDP26 000053030 00459064.20
E2EDP26 3000000001017945375000079E2EDP26 000053030 00352269.20
E2EDP26 3000000001017945375000080E2EDP26 000053030 01052269.20
E2EDP26 3000000001017945375000081E2EDP26 000053030 01152269.20
E2EDP26 3000000001017945375000082E2EDP26 000053030 0126795.00
E2EDP26 3000000001017945375000083E2EDP26 000053030 01552269.20
E2EDP26 3000000001017945375000084E2EDP26 000053030 00117.54
E2EDP26 3000000001017945375000085E2EDP26 000053030 00252269.20
E2EDP26 3000000001017945375000086E2EDP26 000053030 940 2980.000
E2EDP26 3000000001017945375000087E2EDP26 000053030 939 2980.000
E2EDP05 3000000001017945375000088E2EDP05 000053030 + Z400MS List Price 52269.20 17.54 1 EA CAD 2980
E2EDP05 3000000001017945375000089E2EDP05 000053030 + XR1 Tax Jur Code Level 6795.00 13.000 52269.20
E2EDP05 3000000001017945375000090E2EDP05 000053030 + Tax Subtotal1 6795.00 2.28 1 EA CAD 2980
E2EDP05 3000000001017945375000091E2EDP05 000053030 + Taxable Amount + TaxSubtotal1 59064.20 19.82 1 EA CAD 2980
E2EDP04 3000000001017945375000092E2EDP04 000053030 CX 13.000 6795.00 7000000000
E2EDP04 3000000001017945375000093E2EDP04 000053030 CX 0 0 7001500000
E2EDP04 3000000001017945375000094E2EDP04 000053030 CX 0 0 7001505690
E2EDP28 3000000001017945375000095E2EDP28 000053030 00648489440000108471609000 CN CN ABCAB ZZ 298.000 298.000 LB US 400 United Stat KY
E2EDPT1 3000000001017945375000096E2EDPT1 000053030 0001E EN
E2EDPT2 3000000001017945375000097E2EDPT2 000096040 AB ABCABCABC Mouse forBus Bluetooth EN/XC/XD/XX Hdwr Black For Bsnss *
E2EDS01 3000000001017945375000098E2EDS01 000000020 0011
E2EDS01 3000000001017945375000099E2EDS01 000000020 01259064.20 CAD
E2EDS01 3000000001017945375000100E2EDS01 000000020 0056795.00 CAD
E2EDS01 3000000001017945375000101E2EDS01 000000020 01159064.20 CAD
E2EDS01 3000000001017945375000102E2EDS01 000000020 01052269.20 CAD
E2EDS01 3000000001017945375000103E2EDS01 000000020 94200000 CAD
E2EDS01 3000000001017945375000104E2EDS01 000000020 9440.00 CAD
E2EDS01 3000000001017945375000105E2EDS01 000000020 9450.00 CAD
E2EDS01 3000000001017945375000106E2EDS01 000000020 94659064.20 CAD
E2EDS01 3000000001017945375000107E2EDS01 000000020 94752269.20 CAD
E2EDS01 3000000001017945375000108E2EDS01 000000020 EXT
Z2XSK010003000000001017945375000109Z2XSK01000000108030 Z400 52269.20
Z2XSK010003000000001017945375000110Z2XSK01000000108030 XR1 13.000 6795.00 CX
</idocData>
</SendIdoc>

Dodawanie akcji odpowiedzi

Teraz skonfiguruj przepływ pracy, aby zwrócić wyniki z serwera SAP do oryginalnego obiektu żądającego. W tym zadaniu wykonaj następujące kroki:

  1. W projektancie przepływu pracy w obszarze akcji SAP wybierz pozycję Nowy krok.

  2. W projektancie wykonaj następujące ogólne kroki, aby znaleźć i dodać wbudowaną akcję Żądanie o nazwie Odpowiedź.

  3. W akcji Odpowiedź dla parametru Treść wybierz wewnątrz pola edycji, aby otworzyć listę zawartości dynamicznej.

  4. Z listy zawartości dynamicznej w obszarze Wyślij wiadomość do systemu SAP wybierz pozycję Treść. Pole Treść zawiera dane wyjściowe treści z akcji SAP.

    Screenshot shows selecting SAP action output named Body for Consumption workflow.

  5. Zapisz przepływ pracy.

Tworzenie wzorca żądania odpowiedzi wywołania funkcji zdalnej (RFC)

W przypadku przepływów pracy Zużycie korzystających z łącznika zarządzanego sap i łącznika SAP z wersją isE, jeśli musisz otrzymywać odpowiedzi przy użyciu zdalnego wywołania funkcji (RFC) do usługi Azure Logic Apps z programu SAP ABAP, musisz zaimplementować wzorzec żądania i odpowiedzi. Aby otrzymywać dokumenty IDoc w przepływie pracy podczas korzystania z wyzwalacza żądania, upewnij się, że pierwsza akcja przepływu pracy to akcja Odpowiedź, która używa kodu stanu 200 OK bez żadnej zawartości. Ten zalecany krok natychmiast kończy asynchroniczny transfer asynchroniczny jednostki logicznej SAP (LUW) za pośrednictwem narzędzia tRFC, co powoduje ponowne udostępnienie konwersacji SAP CPIC. Następnie możesz dodać więcej akcji do przepływu pracy w celu przetworzenia odebranego dokumentu IDoc bez blokowania późniejszych transferów.

Uwaga

Wyzwalacz SAP odbiera dokumenty IDocs za pomocą TRFC, który nie ma parametru odpowiedzi zgodnie z projektem.

Aby zaimplementować wzorzec żądania i odpowiedzi, należy najpierw odnaleźć schemat RFC przy użyciu generate schema polecenia . Wygenerowany schemat ma dwa możliwe węzły główne:

  • Węzeł żądania, czyli wywołanie odbierane z oprogramowania SAP
  • Węzeł odpowiedzi, który odpowiada z powrotem do oprogramowania SAP

W poniższym przykładzie STFC_CONNECTION moduł RFC generuje wzorzec żądania i odpowiedzi. Kod XML żądania jest analizowany w celu wyodrębnienia wartości węzła, w której oprogramowanie SAP żąda <ECHOTEXT>. Odpowiedź wstawia bieżący znacznik czasu jako wartość dynamiczną. Podobną odpowiedź otrzymujesz podczas wysyłania STFC_CONNECTION RFC z przepływu pracy aplikacji logiki do systemu SAP.

<STFC_CONNECTIONResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
  <ECHOTEXT>@{first(xpath(xml(triggerBody()?['Content']), '/*[local-name()="STFC_CONNECTION"]/*[local-name()="REQUTEXT"]/text()'))}</ECHOTEXT>
  <RESPTEXT>Azure Logic Apps @{utcNow()}</RESPTEXT>
</STFC_CONNECTIONResponse>

Testowanie przepływu pracy

  1. Jeśli zasób aplikacji logiki Zużycie nie jest jeszcze włączony, w menu aplikacji logiki wybierz pozycję Przegląd. Na pasku narzędzi wybierz pozycję Włącz.

  2. Na pasku narzędzi projektanta wybierz pozycję Uruchom wyzwalacz>Uruchom, aby ręcznie uruchomić przepływ pracy.

  3. Aby zasymulować ładunek wyzwalacza elementu webhook, wyślij żądanie HTTP POST do adresu URL punktu końcowego określonego przez wyzwalacz żądania przepływu pracy. Upewnij się, że dołącz zawartość wiadomości do żądania. Aby wysłać żądanie, użyj narzędzia, takiego jak klient interfejsu API Postman.

    W tym przykładzie żądanie HTTP POST wysyła plik IDoc, który musi być w formacie XML i zawiera przestrzeń nazw wybranej akcji SAP, na przykład:

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send">
      <idocData>
        <...>
      </idocData>
    </Send>
    
  4. Po wysłaniu żądania HTTP poczekaj na odpowiedź z przepływu pracy.

    Uwaga

    Przepływ pracy może przekraczać limit czasu, jeśli wszystkie kroki wymagane dla odpowiedzi nie zakończą się w limicie limitu czasu żądania. Jeśli ten warunek się stanie, żądania mogą zostać zablokowane. Aby ułatwić diagnozowanie problemów, dowiedz się, jak można sprawdzać i monitorować przepływy pracy aplikacji logiki.

Utworzono przepływ pracy, który może komunikować się z serwerem SAP. Po skonfigurowaniu połączenia SAP dla przepływu pracy możesz spróbować eksperymentować z interfejsem BAPI i RFC.

Sejf wpisywanie

Domyślnie podczas tworzenia połączenia dla operacji zarządzanej przez sap silne wpisywanie jest używane do sprawdzania nieprawidłowych wartości przez przeprowadzenie walidacji XML względem schematu. To zachowanie może pomóc w wykrywaniu problemów wcześniej. Opcja Sejf Wpisywanie jest dostępna na potrzeby zgodności z poprzednimi wersjami i sprawdza tylko długość ciągu. Jeśli wybierzesz Sejf wpisywanie, typ DATS i typ TIMS w systemie SAP są traktowane jako ciągi, a nie ich odpowiedniki XML i xs:datexs:time, gdzie xmlns:xs="http://www.w3.org/2001/XMLSchema". Sejf wpisywanie wpływa na zachowanie całej generacji schematu, komunikat wysyłania zarówno dla ładunku "wysłano", jak i odpowiedź "odebrano" oraz wyzwalacz.

Gdy jest używane silne wpisywanie (Sejf wpisywanie nie jest włączone), schemat mapuje typy DATS i TIMS na prostsze typy XML:

<xs:element minOccurs="0" maxOccurs="1" name="UPDDAT" nillable="true" type="xs:date"/>
<xs:element minOccurs="0" maxOccurs="1" name="UPDTIM" nillable="true" type="xs:time"/>

Podczas wysyłania komunikatów przy użyciu silnego pisania odpowiedź DATS i TIMS jest zgodna z zgodnym formatem typu XML:

<DATE>9999-12-31</DATE>
<TIME>23:59:59</TIME>

Po włączeniu Sejf wpisywania schemat mapuje typy DATS i TIMS na pola ciągów XML tylko z ograniczeniami długości, na przykład:

<xs:element minOccurs="0" maxOccurs="1" name="UPDDAT" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="8" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="UPDTIM" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="6" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Gdy komunikaty są wysyłane z włączonym Sejf Wpisywanie, odpowiedź DATS i TIMS wygląda następująco:

<DATE>99991231</DATE>
<TIME>235959</TIME>

Zaawansowane scenariusze

Zmienianie nagłówków języka na potrzeby wysyłania danych do systemu SAP

Po nawiązaniu połączenia z oprogramowaniem SAP z usługi Azure Logic Apps język angielski jest domyślnym językiem używanym przez połączenie SAP do wysyłania danych do serwera SAP. Jednak łącznik zarządzany sap i wbudowany łącznik SAP obsługują zmianę i zapisywanie języka używanego na różne sposoby.

  • Podczas tworzenia połączenia z wbudowanym łącznikiem SAP parametry połączenia umożliwiają określenie i zapisanie wartości parametru języka w ramach parametrów połączenia SAP.

  • Podczas tworzenia połączenia z łącznikiem zarządzanym przez system SAP parametry połączenia nie mają parametru języka. Dlatego w tym czasie nie można określić ani języka używanego do wysyłania danych na serwer SAP. Zamiast tego, zarówno w czasie projektowania przepływu pracy, jak i w czasie wykonywania, łącznik używa lokalnego języka przeglądarki internetowej z każdego żądania wysyłanego do serwera. Jeśli na przykład przeglądarka jest ustawiona na portugalski, usługa Azure Logic Apps tworzy i testuje połączenie SAP z językiem portugalskim, ale nie zapisuje połączenia z tym językiem.

    Można jednak ustawić język połączenia przy użyciu standardowego nagłówka Accept-Language HTTP z żądaniami przychodzącymi. Większość przeglądarek internetowych dodaje Accept-Language nagłówek na podstawie ustawień regionalnych. Przeglądarka internetowa stosuje ten nagłówek podczas tworzenia nowego połączenia SAP w projektancie przepływu pracy. W związku z tym możesz zaktualizować ustawienia przeglądarki internetowej, aby używać preferowanego języka, lub utworzyć połączenie SAP przy użyciu usługi Azure Resource Manager zamiast projektanta przepływu pracy.

    Możesz na przykład wysłać żądanie z nagłówkiem Accept-Language do przepływu pracy aplikacji logiki przy użyciu wyzwalacza żądania o nazwie Po odebraniu żądania HTTP. Wszystkie akcje w przepływie pracy otrzymują nagłówek. Następnie system SAP używa określonych języków w komunikatach systemowych, takich jak komunikaty o błędach BAPI. Jeśli nie przekażesz nagłówka Accept-Language w czasie wykonywania, domyślnie jest używany język angielski.

    Jeśli używasz nagłówka Accept-Language , może wystąpić następujący błąd: Sprawdź informacje o koncie i/lub uprawnienia i spróbuj ponownie. W takim przypadku sprawdź zamiast tego dzienniki błędów składnika SAP. Błąd faktycznie występuje w składniku SAP, który używa nagłówka, więc może zostać wyświetlony jeden z następujących komunikatów o błędach:

    • "SAP. Middleware. Połączenie or. RfcLogonException: wybierz jeden z zainstalowanych języków"

    • "SAP. Middleware. Połączenie or. RfcAbapMessageException: wybierz jeden z zainstalowanych języków"

Potwierdzanie transakcji oddzielnie i jawnie

Podczas wysyłania transakcji do oprogramowania SAP z usługi Azure Logic Apps ta wymiana odbywa się w dwóch krokach zgodnie z opisem w dokumencie SAP Transactional RFC Server Programs(Programy transakcyjnego serwera RFC).

Domyślnie akcja łącznika zarządzanego SAP o nazwie Wyślij komunikat do systemu SAP obsługuje zarówno kroki przenoszenia funkcji, jak i potwierdzania transakcji w jednym wywołaniu. Istnieje również możliwość oddzielenia tych kroków. Możliwość oddzielenia kroków transferu i potwierdzenia jest przydatna w scenariuszach, w których nie chcesz duplikować transakcji w oprogramowaniu SAP. Takie scenariusze obejmują błędy spowodowane przyczynami, takimi jak problemy z siecią.

Dokument IDoc można wysłać bez automatycznego potwierdzania transakcji przy użyciu akcji łącznika zarządzanego SAP o nazwie [IDOC] Wyślij dokument do systemu SAP. Następnie można jawnie potwierdzić transakcję przy użyciu akcji łącznika zarządzanego SAP o nazwie [IDOC - RFC] Potwierdź identyfikator transakcji. Gdy przepływ pracy osobno potwierdza transakcję w innym kroku, system SAP kończy transakcję tylko raz.

W przypadku standardowych przepływów pracy wbudowany łącznik SAP zawiera również akcje, które oddzielnie obsługują kroki transferu i potwierdzenia, w szczególności [IDoc] Wysyłanie dokumentu do oprogramowania SAP i [IDOC — RFC] Potwierdzanie identyfikatora transakcji.

Poniższy przykładowy przepływ pracy przedstawia ten wzorzec:

  1. Utwórz i otwórz aplikację logiki Zużycie lub Standardowa z pustym przepływem pracy w projektancie. Dodaj wyzwalacz Żądania.

  2. Aby uniknąć wysyłania duplikatów IDocs do systemu SAP, wykonaj następujące alternatywne kroki, aby utworzyć i użyć identyfikatora transakcji IDoc w akcjach SAP.

  3. Dodaj akcję SAP o nazwie [IDOC] Wyślij dokument do systemu SAP do przepływu pracy. Podaj informacje dotyczące dokumentu IDoc wysyłanego do systemu SAP oraz następujące wartości:

    Parametr Wartość Opis
    Potwierdzanie identyfikatora TID Nie Nie potwierdzaj automatycznie identyfikatora transakcji, który jawnie występuje w osobnym kroku.
    Identyfikator GUID identyfikatora transakcji <IDoc-transaction-ID> Jeśli ten parametr nie zostanie wyświetlony automatycznie, otwórz listę Dodaj nowe parametry i wybierz parametr.

    Możesz ręcznie określić tę wartość lub łącznik może automatycznie wygenerować ten identyfikator GUID jako dane wyjściowe z akcji Wyślij dokument do oprogramowania SAP [IDOC]. W tym przykładzie ten parametr pozostaje pusty, aby automatycznie wygenerować identyfikator GUID.

    Przepływ pracy użycia

    Screenshot shows Consumption workflow with the action named IDOC Send document to SAP.

    Standardowy przepływ pracy

    Screenshot shows Standard workflow with the action named IDOC Send document to SAP.

  4. W akcji SAP o nazwie [IDOC] Wyślij dokument do systemu SAP otwórz Ustawienia, aby przejrzeć zasady ponawiania prób.

    Opcja Domyślna to zalecane zasady, ale można wybrać niestandardowe zasady dla określonych potrzeb. Jeśli zdecydujesz się używać zasad niestandardowych, skonfiguruj co najmniej jedną ponowną próbę w celu rozwiązania tymczasowych awarii sieci.

  5. Teraz dodaj akcję SAP o nazwie [IDOC — RFC] Potwierdź identyfikator transakcji.

    1. W parametrze Identyfikator transakcji wybierz wewnątrz pola edycji , aby otworzyć listę zawartości dynamicznej.

    2. Z listy w obszarze [IDOC] Wyślij dokument do systemu SAP wybierz wartość Identyfikator transakcji, która jest danymi wyjściowymi poprzedniej akcji SAP.

      Przepływ pracy użycia

      Screenshot shows Consumption workflow with action named Confirm transaction ID, which includes GUID output from previous action.

      Standardowy przepływ pracy

      Screenshot shows Standard workflow with action named Confirm transaction ID, which includes GUID output from previous action.

    Po uruchomieniu tego kroku bieżąca transakcja zostanie oznaczona jako zakończona na obu końcach po stronie łącznika SAP i po stronie systemu SAP.

Unikaj wysyłania zduplikowanych dokumentów IDoc za pomocą zmiennej identyfikatora transakcji

Jeśli wystąpi problem z przepływem pracy wysyłającym zduplikowane dokumenty IDocs do systemu SAP, możesz utworzyć zmienną ciągu, która służy jako identyfikator transakcji IDoc. Następnie możesz użyć tego identyfikatora, aby zapobiec zduplikowaniu transmisji sieci w warunkach takich jak tymczasowe awarie, problemy z siecią lub utracone potwierdzenia.

  1. W projektancie po dodaniu wyzwalacza Żądania i przed dodaniem akcji SAP o nazwie [IDOC] Wyślij dokument do systemu SAP dodaj akcję o nazwie Initialize zmiennej do przepływu pracy.

  2. Zmień nazwę akcji na Create IDoc transaction ID (Utwórz identyfikator transakcji IDoc).

  3. W polu informacji o akcji podaj następujące wartości parametrów:

    Parametr Wartość Opis
    Nazwa/nazwisko <variable-name> Nazwa zmiennej, na przykład IDocTransactionID
    Type ciąg Typ zmiennej
    Wartość guid() Wybierz wewnątrz pola edycji, otwórz wyrażenie lub edytor funkcji i wprowadź identyfikator guid(). Zapisz zmiany.

    Parametr Value jest teraz ustawiony na funkcję guid(), która generuje identyfikator GUID.

    Przepływ pracy użycia

    Screenshot shows Consumption workflow with the action named Create transaction ID.

    Standardowy przepływ pracy

    Screenshot shows Standard workflow with the action named Create transaction ID.

    Uwaga

    Systemy SAP domyślnie zapominają o identyfikatorze transakcji po upływie określonego czasu lub 24 godzin. W związku z tym system SAP nigdy nie może potwierdzić identyfikatora transakcji, jeśli identyfikator lub identyfikator GUID jest nieznany. Jeśli potwierdzenie identyfikatora transakcji zakończy się niepowodzeniem, ten błąd wskazuje, że komunikacja z systemem SAP nie powiodła się, zanim system SAP mógł potwierdzić potwierdzenie.

  4. Dodaj akcję SAP o nazwie [IDOC] Wyślij dokument do systemu SAP do przepływu pracy. Podaj informacje dotyczące dokumentu IDoc wysyłanego do systemu SAP oraz następujące wartości:

    Parametr Wartość Opis
    Potwierdzanie identyfikatora TID Nie Nie potwierdzaj automatycznie identyfikatora transakcji, który jawnie występuje w osobnym kroku.
    Identyfikator GUID identyfikatora transakcji <IDoc-transaction-ID> Jeśli ten parametr nie zostanie wyświetlony automatycznie, otwórz listę Dodaj nowe parametry i wybierz parametr. Aby wybrać utworzoną zmienną identyfikatora transakcji, wykonaj następujące kroki:

    1. W parametrze GUID identyfikatora transakcji wybierz wewnątrz pola edycji, aby otworzyć listę zawartości dynamicznej.

    2. Z listy w obszarze Zmienne wybierz wcześniej utworzoną zmienną, czyli IDocTransactionID w tym przykładzie.

    Przepływ pracy użycia

    Screenshot shows Consumption workflow with action named IDOC Send document to SAP.

    Standardowy przepływ pracy

    Screenshot shows Standard workflow with action named IDOC Send document to SAP.

  5. W przypadku akcji zarządzanej sap o nazwie [IDOC] Wyślij dokument do systemu SAP otwórz Ustawienia, aby przejrzeć zasady ponawiania prób.

    Opcja Domyślna to zalecane zasady, ale można wybrać niestandardowe zasady dla określonych potrzeb. Jeśli zdecydujesz się używać zasad niestandardowych, skonfiguruj co najmniej jedną ponowną próbę w celu rozwiązania tymczasowych awarii sieci.

    Uwaga

    Obecnie tylko akcje łącznika zarządzanego mają ustawienie Zasady ponawiania, a nie wbudowane łączniki oparte na dostawcy usług.

  6. Teraz dodaj akcję SAP o nazwie [IDOC — RFC] Potwierdź identyfikator transakcji.

    1. W parametrze Identyfikator transakcji wybierz wewnątrz pola edycji , aby otworzyć listę zawartości dynamicznej.

    2. Z listy w obszarze Zmienne wprowadź nazwę utworzonej zmiennej, czyli IDocTransactionID w tym przykładzie.

      Przepływ pracy użycia

      Screenshot shows Consumption workflow with action named Confirm transaction ID using a variable.

      Standardowy przepływ pracy

      Screenshot shows Standard workflow with action named Confirm transaction ID using a variable.

  7. Opcjonalnie zweryfikuj deduplikację w środowisku testowym.

    1. Dodaj kolejną akcję SAP o nazwie [IDOC] Wyślij dokument do systemu SAP. W parametrze Identyfikator transakcji wybierz identyfikator GUID identyfikatora transakcji, który został użyty w poprzednim kroku.

    2. Aby sprawdzić, który numer IDoc jest przypisywany po każdym wywołaniu akcji o nazwie [IDOC] Wyślij dokument do systemu SAP, dodaj akcję o nazwie [IDOC] Pobierz listę IDOC dla transakcji do przepływu pracy przy użyciu tego samego identyfikatora transakcji i kierunku odbierania.

      Jeśli ten sam numer IDoc jest zwracany dla obu wywołań, IDoc został zdeduplikowany.

Jeśli dwukrotnie wyślesz ten sam dokument IDoc, możesz zweryfikować, że system SAP może zidentyfikować duplikację wywołania tRFC i rozpoznać dwa wywołania do pojedynczego przychodzącego komunikatu IDoc.

Rozwiązywanie problemów

Problemy z połączeniem

Jeśli podczas tworzenia połączenia wystąpi następujący błąd, wystąpi problem z instalacją biblioteki klienta SAP NCo:

Połączenie testowe nie powiodło się. Błąd "Nie można przetworzyć żądania. Szczegóły błędu: "nie można załadować pliku lub zestawu "sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken 50436dca5c7f7d23" lub jednej z jego zależności. W systemie nie można odnaleźć określonego pliku.'.'

Pamiętaj, aby zainstalować wymaganą wersję biblioteki klienta SAP NCo i spełnić wszystkie inne wymagania wstępne.

Błąd nieprawidłowej bramy 500 lub 400 nieprawidłowego żądania

Jeśli zostanie wyświetlony błąd nieprawidłowej bramy 500 lub 400 Nieprawidłowe żądanie z komunikatem podobnym do usługi "sapgw00", rozpoznawanie nazwy usługi sieciowej na numer portu kończy się niepowodzeniem, na przykład:

{
   "body": {
      "error": {
         "code": 500,
         "source": "EXAMPLE-FLOW-NAME.eastus.environments.microsoftazurelogicapps.net",
         "clientRequestId": "00000000-0000-0000-0000-000000000000",
         "message": "BadGateway",
         "innerError": {
            "error": {
               "code": "UnhandledException",
               "message": "\nERROR service 'sapgw00' unknown\nTIME Wed Nov 11 19:37:50 2020\nRELEASE 721\nCOMPONENT NI (network interface)\nVERSION 40\nRC -3\nMODULE ninti.c\nLINE 933\nDETAIL NiPGetServByName: 'sapgw00' not found\nSYSTEM CALL getaddrinfo\nCOUNTER 1\n\nRETURN CODE: 20"
            }
         }
      }
   }
}
  • Opcja 1. W konfiguracji połączenia interfejsu API i wyzwalacza zastąp nazwę usługi bramy numerem portu. W przykładowym błędzie sapgw00 należy zastąpić rzeczywistym numerem portu, na przykład 3300. Jest to jedyna dostępna opcja dla ise.

  • Opcja 2: Jeśli używasz lokalnej bramy danych, możesz dodać nazwę usługi bramy do mapowania portów, %windir%\System32\drivers\etc\services a następnie ponownie uruchomić lokalną usługę bramy danych, na przykład:

    sapgw00  3300/tcp
    

Podobny błąd może wystąpić, gdy serwer aplikacji SAP lub nazwa serwera komunikatów jest rozpoznawana jako adres IP. W przypadku środowiska ISE należy określić adres IP serwera aplikacji SAP lub serwera komunikatów. W przypadku lokalnej bramy danych można zamiast tego dodać nazwę do mapowania adresów IP w %windir%\System32\drivers\etc\hostspliku , na przykład:

10.0.1.9 SAPDBSERVER01 # SAP System Server VPN IP by computer name
10.0.1.9 SAPDBSERVER01.someguid.xx.xxxxxxx.cloudapp.net # SAP System Server VPN IP by fully qualified computer name

Błędy wysyłania pakietów IDoc z systemu SAP do wyzwalacza

Jeśli nie możesz wysyłać pakietów IDoc z systemu SAP do wyzwalacza, zapoznaj się z komunikatem odrzucenia wywołania transakcyjnego RFC (tRFC) w oknie dialogowym SAP tRFC (T-Code SM58). W interfejsie SAP mogą zostać wyświetlone następujące komunikaty o błędach, które zostały obcięte ze względu na limity podciągów w polu Tekst stanu.

Nie można odnaleźć E2EDK36001 definicji segmentu lub grupy w metadanych IDoc

Ten komunikat o błędzie oznacza, że oczekiwane błędy występują z innymi błędami. Na przykład błąd generowania ładunku XML IDoc, ponieważ jego segmenty nie są zwalniane przez system SAP. W związku z tym brakuje metadanych typu segmentu wymaganych do konwersji.

Aby te segmenty zostały wydane przez system SAP, skontaktuj się z inżynierem ABAP dla systemu SAP.

Element RequestContext dla IReplyChannel został zamknięty bez wysyłania odpowiedzi

W przypadku łącznika zarządzanego sap i łącznika SAP z wersją środowiska ISE ten komunikat o błędzie oznacza nieoczekiwane błędy, gdy program obsługi catch-all dla kanału kończy kanał z powodu błędu i ponownie kompiluje kanał w celu przetwarzania innych komunikatów.

Uwaga

Wyzwalacze sap managed trigger i ISE-versioned SAP wyzwalacze to elementy webhook korzystające z adaptera SAP opartego na protokole SOAP. Jednak wbudowany wyzwalacz SAP jest wyzwalaczem opartym na usłudze Azure Functions, który nie używa adaptera SAP PROTOKOŁU SOAP i nie otrzymuje tego komunikatu o błędzie.

  • Aby potwierdzić, że przepływ pracy otrzymał dokument IDoc, dodaj akcję Odpowiedź zwracającą kod stanu OK 200 OK. Pozostaw treść pustą i nie zmieniaj ani nie dodawaj ich do nagłówków. Dokument IDoc jest transportowany za pośrednictwem TRFC, który nie zezwala na ładunek odpowiedzi.

  • Aby odrzucić dokument IDoc, zamiast tego zareaguj na dowolny kod stanu HTTP inny niż 200 OK. Następnie adapter SAP zwraca wyjątek do systemu SAP w Twoim imieniu. Należy odrzucić tylko dokument IDoc, aby sygnalizować błędy transportu z powrotem do systemu SAP, takie jak nieprawidłowo przekierowany dokument IDoc, którego aplikacja nie może przetworzyć. Nie należy odrzucać dokumentu IDoc dla błędów na poziomie aplikacji, takich jak problemy z danymi zawartymi w IDoc. Jeśli opóźnisz akceptację transportu na potrzeby weryfikacji na poziomie aplikacji, może wystąpić negatywna wydajność z powodu blokowania połączenia z transportem innych dokumentów IDocs.

  • Jeśli zostanie wyświetlony ten komunikat o błędzie i wystąpią błędy systemowe wywołujące usługę Azure Logic Apps, sprawdź, czy skonfigurowano ustawienia sieciowe dla lokalnej usługi bramy danych dla określonego środowiska. Jeśli na przykład środowisko sieciowe wymaga użycia serwera proxy do wywoływania punktów końcowych platformy Azure, musisz skonfigurować lokalną usługę bramy danych do korzystania z serwera proxy. Aby uzyskać więcej informacji, zobacz Konfiguracja serwera proxy.

  • Jeśli zostanie wyświetlony ten komunikat o błędzie i występują sporadyczne błędy wywołujące usługę Azure Logic Apps, może być konieczne zwiększenie liczby ponownych prób lub interwał ponawiania prób, wykonując następujące kroki:

    1. Sprawdź ustawienia sap w lokalnym pliku konfiguracji usługi bramy danych o nazwie Microsoft.PowerBI.EnterpriseGateway.exe.config.

      1. W węźle configuration głównym dodaj configSections element, jeśli żaden z nich nie istnieje.

      2. W węźle configSections dodaj section element z następującymi atrybutami, jeśli żaden z nich nie istnieje: name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"

        Ważne

        Nie zmieniaj atrybutów w istniejących section elementach, jeśli takie elementy już istnieją.

        Element configSections wygląda jak następująca wersja, jeśli żadna inna sekcja lub grupa sekcji nie jest zadeklarowana w konfiguracji usługi bramy:

        <configSections>
          <section name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"/>
        </configSections>
        
      3. W węźle configuration głównym dodaj SapAdapterSection element, jeśli żaden z nich nie istnieje.

      4. W węźle SapAdapterSection dodaj Broker element z następującymi atrybutami, jeśli żaden z nich nie istnieje: WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2"

        Ważne

        Zmień atrybuty elementu Broker , nawet jeśli element już istnieje.

        Element SapAdapterSection wygląda jak następująca wersja, jeśli żaden inny element lub atrybut nie jest zadeklarowany w konfiguracji adaptera SAP:

        <SapAdapterSection>
          <Broker WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2" />
        </SapAdapterSection>
        

        Ustawienie liczba ponownych prób wygląda następująco: WebhookRetryMaximumCount="2". Ustawienie interwału ponawiania prób wygląda następująco: WebhookRetryDefaultDelay="00:00:00.10" format przedziału czasu to HH:mm:ss.ff.

      Uwaga

      Aby uzyskać więcej informacji na temat pliku konfiguracji, zapoznaj się ze schematem pliku konfiguracji dla programu .NET Framework.

    2. Zapisz zmiany.

    3. Jeśli używasz lokalnej bramy danych, uruchom ponownie bramę.

Następne kroki