W skrócie

SAP Connector upraszcza komunikację aplikacji .NET z systemem SAP, umożliwiając programistom łatwe wywoływanie zdalnych funkcji RFC i BAPI bez zagłębiania się w skomplikowane protokoły. Dzięki temu wdrożenie integracji WMS z modułem MM przebiega szybciej i sprawniej.

Zbliżenie terminala z Androidem i siatką ikon aplikacji
Połączenie przez RFC pozwala aplikacji magazynowej sięgnąć wprost do funkcji SAP

Trzy funkcje konektora

Biblioteka SAP RFC Connector pozwala aplikacjom .NET wywoływać zdalne funkcje w systemie SAP protokołem RFC. Nakładka SoftwareStudio sprowadza całość do trzech operacji - reszta to konfiguracja i obsługa wyniku.

OperacjaDo czego służyCo zwraca
Testowanie połączeniasprawdzenie, czy dane autoryzacyjne i trasa do serwera są poprawnestatus połączenia
Odczytywanie parametrów funkcjidynamiczne ustalenie, jakie dane wejściowe i wyjściowe obsługuje funkcjalistę parametrów z typami
Wykonywanie funkcjiwłaściwe wywołanie z przekazaniem parametrówstruktury, tabele i komunikaty

Parametry mogą mieć różne typy - najczęściej STRING, TABLE albo STRUCTURE. Ponieważ struktura funkcji jest dynamiczna, drugą operację warto wykonać przed pierwszym wywołaniem nowej funkcji, zamiast zgadywać nazwy pól.

Biblioteki i sposoby nawiązania połączenia

Konektor zaimplementowano w usłudze WebService StudioSystemST, więc wywołuje się go z dowolnego miejsca, przekazując odpowiednie parametry. Do uruchomienia potrzebne są referencje do trzech bibliotek:

  • SapConnector.dll - nakładka SoftwareStudio upraszczająca wywołania,
  • sapnco.dll - podstawowa biblioteka SAP .NET Connector,
  • sapnco_utils.dll - biblioteka pomocnicza wymagana przez sapnco.

Samo połączenie można nawiązać na trzy sposoby, a każdy wymaga innego kompletu danych:

Sposób połączeniaKiedy stosowanyWymagane dane
Bezpośrednio z serweremaplikacja i SAP w tej samej siecihost serwera, numer instancji, klient, użytkownik
Przez SapRouterpołączenie przez granicę sieciciąg trasy SapRoutera plus dane serwera
Przez SapGatewaywywołanie kierowane przez bramęhost i usługa bramy plus dane autoryzacyjne

Droga wywołania z aplikacji do SAP

Warto mieć przed oczami całą ścieżkę, bo błędy integracyjne najczęściej biorą się z pomylenia warstw - problem z autoryzacją wygląda inaczej niż błąd samej funkcji w SAP.

Schemat pięciu etapów wywołania: aplikacja .NET, usługa WebService StudioSystemST, biblioteka SapConnector.dll oparta na sapnco.dll i sapnco_utils.dll, wywołanie RFC funkcji BAPI lub własnej funkcji Z oraz wynik zwracany jako struktury, tabele i tabela RETURN
Pięć warstw wywołania - każda zgłasza błędy w inny sposób

Konektor obsługuje również konwersję zapytań SOAP: zamiast budować rozbudowane zapytanie, przekazuje się słownik parametrów. Kod jest wtedy krótszy, a zmiana sygnatury funkcji po stronie SAP nie wymaga przepisywania całej warstwy komunikacyjnej.

Pracownik trzyma przemysłowy terminal mobilny z interfejsem aplikacji magazynowej przy regałach

Funkcje BAPI wykorzystywane w magazynie

BAPI (Business Application Programming Interface) to standardowe funkcje SAP przeznaczone do wywoływania z zewnątrz. Przy integracji WMS z modułem MM najczęściej wracają trzy z nich. Zanim wywołasz je z aplikacji, sprawdź ich sygnatury w transakcji SE37 - pokazujemy to krok po kroku w materiale o tym, jak odczytywać i wykonywać funkcje w systemie SAP.

FunkcjaDo czego służyIstotne parametry
BAPI_GOODSMVT_CREATEksięgowanie ruchów towarowych w module MMGOODSMVT_HEADER, GOODSMVT_CODE, GOODSMVT_ITEM
BAPI_MATERIAL_GETLISTwyszukanie listy materiałów według kryteriówMATNRSELECTION, PLANTSELECTION, MATNRLIST
BAPI_MATERIAL_GET_DETAILpobranie szczegółów pojedynczego materiałuMATERIAL, PLANT, VALUATIONAREA

Pierwsza z nich zapisuje dane, dwie pozostałe tylko czytają. To rozróżnienie ma praktyczne znaczenie, opisane w następnej sekcji.

BAPI_GOODSMVT_CREATE i pułapka z commitem

Funkcja księguje ruchy towarowe w module Zarządzania Materiałami: przyjęcia, wydania z magazynu oraz przesunięcia międzymagazynowe. Wywołanie wygląda tak:

  1. Wypełnienie nagłówkaStruktura GOODSMVT_HEADER niesie ogólne dane dokumentu materiałowego, na przykład datę księgowania.
  2. Wskazanie rodzaju ruchuParametr GOODSMVT_CODE określa rodzaj operacji - przykładowo kod 03 dla wydań towarów.
  3. Wypełnienie pozycjiTabela GOODSMVT_ITEM zawiera numer materiału, ilość, jednostkę miary, zakład i miejsce składowania.
  4. Odczyt wynikuSystem zwraca rezultat w tabeli RETURN, a po udanym księgowaniu - numer nowego dokumentu materiałowego.
  5. Zatwierdzenie transakcjiBezpośrednio po BAPI_GOODSMVT_CREATE trzeba wywołać BAPI_TRANSACTION_COMMIT. Bez tego kroku operacja zostanie cofnięta.

Ostatni punkt jest najczęstszą przyczyną zgłoszeń typu „funkcja zwraca numer dokumentu, ale w SAP nic nie ma". Numer pochodzi z bufora transakcji, a bez zatwierdzenia bufor jest odrzucany.

Studio WMS.net

Studio WMS.net - dashboard operacyjny

Ekran główny Studio WMS.net prezentuje aktualny stan operacji magazynowych w formie trzech wykresów. Dwa wykresy kołowe pokazują rozkład zleceń według statusu (5374 zrealizowanych, 1104 anulowanych, 168 do realizacji, 18 w buforze) oraz strukturę typów dokumentów magazynowych (PZ, WZ, PZB, WZB, ZPZ, ZWZ i inne). Wykres słupkowy prezentuje top 10 kontrahentów z największą liczbą obsługiwanych palet. Menu główne zawiera sekcje NOWY, MAGAZYN, KARTOTEKI i INFORMACJE. Widoczna wersja systemu v2026.1.4.9500.

Z_WS_SALESORDER_SIMULATE - symulacja zlecenia

Sama nazwa funkcji mówi o niej wszystko, bo składa się z trzech czytelnych członów:

  • Z_ - prefiks obiektu niestandardowego, stworzonego na potrzeby konkretnego wdrożenia, a nie dostarczonego z systemem.
  • WS_ - obiekt wystawiony jako Web Service, przeznaczony do komunikacji z systemami zewnętrznymi.
  • SALESORDER_SIMULATE - symulacja procesu tworzenia zlecenia sprzedaży.

To funkcja opakowująca (wrapper) standardową logikę SAP, która pozwala sprawdzić, co by się stało, gdyby zlecenie o określonych parametrach powstało - bez zapisywania czegokolwiek w bazie. W odróżnieniu od funkcji CREATE, SIMULATE wykonuje procesy w tle i zwraca ich wyniki:

ProcesCo sprawdzaPo co przy integracji
ATP - Available-to-Promisestany i planowane przyjęcia oraz wydaniaczy i kiedy ilość będzie dostępna do wysyłki
Determinacja cenyschemat kalkulacyjny: ceny, rabaty, podatki, wysyłkapokazanie kwoty przed złożeniem zamówienia
Kompletność danychczy przekazany zestaw wystarcza do utworzenia zleceniawyłapanie braków po stronie systemu wywołującego
Dane logistycznezakład wysyłkowy, trasa transportowa, terminy dostawyprzewidzenie sposobu realizacji

W praktyce takie wywołanie stoi za komunikatem o dostępności i cenie w sklepie internetowym albo w aplikacji mobilnej - klient widzi wynik symulacji, zanim cokolwiek zostanie zapisane.

Studio WMS.net

Studio WMS.net - wizualizacja układu magazynu

Moduł Wizualizacja w sekcji Magazyn Studio WMS.net prezentuje graficzny rzut z góry na układ magazynu z zaznaczonymi regałami, strefami i lokalizacjami składowania. Kolory wskazują poziom zajętości: zielony - lokalizacja wolna, żółty - częściowo zajęta, czerwony - pełna lub zablokowana. Kliknięcie na lokalizację otwiera panel z aktualnym asortymentem i ilościami. Wizualizacja ułatwia zarządzanie przestrzenią, planowanie przesunięć konsolidacyjnych oraz szybkie zlokalizowanie towaru bez konieczności przeglądania list.

Od czego zacząć integrację

Kolejność prac jest za każdym razem taka sama i warto jej nie skracać - każdy krok odsiewa inną klasę błędów.

  1. Konfiguracja autoryzacjiDane dostępowe, klient SAP i sposób połączenia: bezpośrednio, przez SapRouter albo SapGateway.
  2. Test połączeniaZanim zaczniesz wywoływać funkcje, potwierdź samo połączenie. Błąd na tym etapie jest sprawą sieci i uprawnień, nie kodu.
  3. Odczyt parametrów funkcjiSprawdź, jakie pola wejściowe i wyjściowe funkcja faktycznie obsługuje w tej instalacji SAP.
  4. Wywołanie na środowisku testowymFunkcje zapisujące uruchamiaj najpierw tam, gdzie skutki da się cofnąć.
  5. Obsługa tabeli RETURNKomunikaty z RETURN trzeba czytać i logować - to jedyne miejsce, w którym SAP tłumaczy, dlaczego operacja się nie powiodła.

O tym, jak integracja WMS z SAP wygląda po stronie magazynu - już nie w kodzie, tylko w pracy hali - piszemy w artykule WMS a SAP.

Studio WMS.net

Studio WMS.net - lista dokumentów przyjęcia

Sekcja Przyjęcia w module Magazyn Studio WMS.net agreguje wszystkie dokumenty przyjęcia towaru: standardowe PZ (Przyjęcie Zewnętrzne) realizowane na podstawie wcześniejszego zlecenia ZPZ oraz PZB (Przyjęcie Zewnętrzne Bezpośrednie) bez zlecenia. Lista zawiera numer dokumentu, kontrahenta, datę przyjęcia, liczbę pozycji i aktualny status realizacji. Filtrowanie umożliwia szybkie odnalezienie konkretnego przyjęcia po numerze dostawcy, asortymencie lub przedziale czasowym. Podgląd szczegółów otwiera pełne zestawienie pozycji z ilościami i lokalizacjami odłożenia.

Słownik pojęć: integracja aplikacji z SAP

SAP Connector

Biblioteka zaimplementowana w WebService StudioSystemST, która upraszcza wywoływanie zdalnych funkcji RFC i BAPI z aplikacji .NET bez znajomości niskopoziomowych protokołów SAP.

RFC (Remote Function Call)

Protokół komunikacyjny SAP wykorzystywany przez SAP Connector do odczytu i zapisu danych oraz wywoływania zdalnych funkcji w systemie.

BAPI

Business Application Programming Interface - standardowy interfejs programistyczny SAP do realizacji operacji biznesowych, np. księgowania ruchów towarowych czy pobierania danych materiałowych.

Z_WS_SALESORDER_SIMULATE

Niestandardowy web service (prefiks Z_, WS_) symulujący utworzenie zlecenia sprzedaży bez trwałego zapisu w bazie danych SAP.

ATP (Available-to-Promise)

Sprawdzenie dostępności towaru na podstawie stanów magazynowych oraz planowanych przyjęć i wydań, wykonywane m.in. podczas symulacji zlecenia sprzedaży.

BAPI_GOODSMVT_CREATE

Funkcja księgująca ruchy towarowe w module MM, wywoływana przez Studio WMS.net m.in. przy przyjęciach (kod ruchu 101) i wydaniach towaru (kod ruchu 601).

BAPI_TRANSACTION_COMMIT

Funkcja, którą trzeba wywołać bezpośrednio po BAPI_GOODSMVT_CREATE, aby trwale zapisać zaksięgowany ruch towarowy w bazie danych SAP.

Moduł MM (Materials Management)

Moduł SAP odpowiedzialny za zarządzanie materiałami, z którym magazyn synchronizuje dane za pośrednictwem konektora RFC.

Pytania i odpowiedzi o integracji aplikacji z SAP

Czym jest SAP Connector i jak działa?

SAP Connector to biblioteka zaimplementowana w WebService StudioSystemST, która pozwala aplikacjom .NET wywoływać zdalne funkcje SAP przez protokół RFC bez konieczności poznawania niskopoziomowych protokołów komunikacyjnych.

Jakich bibliotek DLL wymaga uruchomienie SAP Connector?

Do działania potrzebne są referencje do trzech bibliotek: SapConnector.dll, sapnco.dll oraz sapnco_utils.dll.

Jakie trzy główne funkcje oferuje SAP Connector?

SAP Connector umożliwia testowanie połączenia z SAP bezpośrednio, przez SapRouter lub SapGateway, dynamiczne odczytywanie parametrów wejściowych i wyjściowych funkcji oraz wykonywanie dowolnej funkcji w systemie SAP.

Do czego służy funkcja Z_WS_SALESORDER_SIMULATE?

To niestandardowy web service opakowujący standardową logikę SAP, który symuluje utworzenie zlecenia sprzedaży - sprawdza dostępność towaru ATP, nalicza ceny i rabaty oraz weryfikuje kompletność danych, ale nie zapisuje niczego trwale w bazie.

Jak Studio WMS.net wykorzystuje konektor RFC przy obsłudze magazynu?

Zarejestrowanie dostawy dokumentem PZ lub PZB wywołuje BAPI_GOODSMVT_CREATE z kodem ruchu 101, a wydanie towaru dokumentem WZ lub WZB - z kodem 601. Numer dokumentu materiałowego zwrócony przez SAP zapisywany jest przy pozycji operacji magazynowej.

Zobacz Studio WMS.net w działaniu

Przekonaj się, jak system magazynowy upraszcza codzienną pracę - uruchom bezpłatne demo lub obejrzyj pełną galerię ekranów.