# Zadanie integracyjne uruchamiane z formularza WMS

> Jak formularz pakowania w WMS uruchamia zadanie integracji z platformą sprzedażową: wywołanie asynchroniczne, wybór jednego z dwóch kont i zapis przed zadaniem.

Adres strony: https://magazyn.softwarestudio.com.pl/zadanie-integracyjne-uruchamiane-z-formularza-wms/

---

W opisywanym wdrożeniu zadanie integracji z platformą sprzedażową rusza z formularza pakowania, po zapisie danych. Formularz wywołuje usługę serwera asynchronicznie i nie czeka na wynik.
W opisywanym wdrożeniu integracja z platformą sprzedażową nie czeka na harmonogram. Formularz pakowania wywołuje zadanie usługi po zapisie danych i nie czeka na wynik. Zamknięcie kompletacji wysyła statusy osobnym zapytaniem.

Nazwy w kodzie wskazują BaseLinker. Opisujemy sposób uruchamiania zadania, a nie to, co zadanie wymienia z platformą. Ogólny obraz integracji z platformami sprzedażowymi daje artykuł o [integracji WMS z platformami sprzedażowymi](/integracja-wms-e-commerce/), a produkt opisuje strona [Studio WMS.net](/wms/).

## Zdarzenie zamiast harmonogramu

Zadanie integracyjne jest zadaniem wewnętrznej usługi serwera. Formularz uruchamia je w chwili, gdy dane są już zapisane, więc start wynika ze zdarzenia w formularzu. W innym wdrożeniu zlecenia z systemu ERP pobierają zadania cykliczne, o czym piszemy w artykule o [integracji ERP z WMS](/integracja-erp-z-wms-webapi/).

Podobną kolejność, czyli zapis przed wywołaniem usługi, ma zamówienie kuriera. Opisuje je artykuł o [zamówieniu kuriera z dokumentu wydania](https://system.wms.net.pl/zamowienie-kuriera-z-dokumentu-wydania/). Formularz przesyłki paletowej z tego samego wdrożenia opisuje artykuł o [przesyłce paletowej z liniami towarowymi](/wysylka-paletowa-linie-towarowe-i-uslugi-dodatkowe/).

Skutek dla operatora widać na ekranie. Po zapisie formularz pokazuje komunikat i wraca do pracy, więc operator nie czeka na platformę sprzedażową. Ewentualny błąd wywołania zadania pokazuje osobny komunikat, opisany w sekcji o błędach.

## Pakowanie i zamknięcie kompletacji

Dane o realizacji trafiają do platformy z dwóch formularzy, ale tylko jeden z nich uruchamia zadanie. Pakowanie zlecenia wywołuje zadanie usługi, a zamknięcie kompletacji wysyła statusy kompletacji osobnym zapytaniem. Przebieg pakowania opisuje artykuł o [pakowaniu z wózka](https://system.wms.net.pl/pakowanie-z-wozka-skan-wozka-i-zlecenie-po-ean/), a kompletacji artykuł o [kompletacji do wózka na kolektorze](https://system.wms.net.pl/kompletacja-do-wozka-na-kolektorze/).

| Miejsce | Co zapisuje się wcześniej | Co robi zadanie lub wysyłka |
| --- | --- | --- |
| Pakowanie zlecenia | Dla zlecenia paczkomatowego gabaryt zapisany przy dokumencie | Uruchomienie zadania usługi po spakowaniu zlecenia |
| Zamknięcie kompletacji | Zatwierdzenie i zamknięcie dokumentu kompletacji | Wysyłka statusów kompletacji osobnym zapytaniem, przed odświeżeniem ekranu, bez uruchamiania zadania |

## Uruchomienie zadania a wysyłka statusów

Oba mechanizmy kończą się tym, że formularz wraca do pracy, ale w formularzach to dwa różne wywołania. Zestawienie pokazuje, czym się różnią z punktu widzenia operatora i działu IT.

| Cecha | Pakowanie zlecenia | Zamknięcie kompletacji |
| --- | --- | --- |
| Co wykonuje formularz | Wywołanie zadania usługi serwera | Zapytanie wysyłające statusy kompletacji |
| Co poprzedza wywołanie | Gabaryt zapisany przy dokumencie, gdy zlecenie jest paczkomatowe | Pytanie "Czy chcesz zatwierdzić dokument?" i zamknięcie dokumentu kompletacji |
| Wybór zadania | Jedno z dwóch zadań, po kodzie zapisanym w zleceniu | Brak wywołania zadania, więc brak wyboru |
| Co widzi operator | Komunikat "Dane zostały zapisane", po chwili powrót do skanu | Odświeżenie ekranu po wysłaniu statusów |
| Błąd wywołania | Komunikat "Bład przetwarzania! Komunikat:" z odpowiedzią serwera | Nie opisujemy |

- Zadanie uruchamiane - metoda usługi z trzema parametrami, wywoływana asynchronicznie dla jednego z dwóch kont platformy.
- Wysyłka statusów - osobne zapytanie po zamknięciu dokumentu kompletacji, wykonywane przed odświeżeniem ekranu.

Pytanie o zatwierdzenie dokumentu kompletacji pojawia się także samo, gdy w kompletacji nie ma już pozycji do wykonania. To rozróżnienie ma znaczenie przy odbiorze projektu: próba uruchomienia zadania dotyczy pakowania, a próba statusów zamknięcia kompletacji, więc jedna próba nie sprawdza obu mechanizmów.

## Wywołanie asynchroniczne i zadania nieaktywne

Wywołanie to metoda wewnętrznej usługi serwera z trzema parametrami. Pierwszy to identyfikator zadania, drugi włącza uruchomienie asynchroniczne, a trzeci zezwala na uruchomienie zadania oznaczonego jako nieaktywne.

Formularz nie czeka na wynik zadania. Po przyjęciu wywołania pokazuje "Dane zostały zapisane" i wraca do pracy.

> Zadanie integracyjne rusza po zapisie danych w formularzu pakowania. Formularz nie czeka na jego wynik.

## Dwa konta platformy

Wdrożenie ma dwa konta platformy sprzedażowej: konto pierwsze i konto drugie. Każde z nich ma osobne zadanie, więc wywołanie musi wskazać jedno. Pakowanie wybiera zadanie po kodzie zapisanym w dokumencie zlecenia.

## Kolejność zdarzeń w pakowaniu

Pakowanie z wózka trwa od skanu wózka do komunikatu po zadaniu. Tabela pokazuje kolejność zdarzeń i to, co widzi operator na każdym kroku.

| Krok | Co się dzieje | Co widzi operator |
| --- | --- | --- |
| Skan wózka | System szuka otwartej kompletacji dla wózka i loginu operatora | Przy braku: "Brak kompletacji dla danego wózka bądź wózek nie istnieje" |
| Skan artykułu | System wskazuje zlecenie na wózku, które zawiera ten kod EAN | Dane zlecenia i tabela pozycji; gdy kod istnieje, a nie wskazuje jednego zlecenia: "Brak kodu ean w ramach zlecenia" |
| Skan EAN pozycji | Kontrola kodu i zapis spakowanej pozycji | "Kod EAN nie istnieje" albo "Kod EAN nie występuje w kompletacji" |
| Gabaryt | Tylko dla zlecenia paczkomatowego; wartość trafia do dokumentu | Pole tekstowe; inna wartość niż GAB_A, GAB_B lub GAB_C jest odrzucana |
| Zadanie | Wywołanie usługi dla konta wybranego po kodzie zlecenia | Bez oczekiwania na wynik |
| Komunikat | Formularz kończy obsługę zlecenia | "Dane zostały zapisane", po 1 sekundzie powrót do skanu artykułu |

Gabaryt pojawia się po spakowaniu zlecenia, a nie w trakcie skanowania pozycji. Pole przyjmuje wpis albo skan i zatwierdza się klawiszem Enter. Po powrocie do skanu artykułu pole wózka pozostaje zablokowane, więc kolejne zlecenie z tego samego wózka zaczyna się od skanu artykułu.

Gdy kończy się kompletacja wózka, formularz po komunikacie pokazuje ekran końcowy z napisem "Proces Pick&Pack został zakończony".

## Zapis przed uruchomieniem

Zadanie rusza dopiero po zapisie danych. W pakowaniu paczkomatowym gabaryt trafia do dokumentu przed wywołaniem zadania, co omawia artykuł o pakowaniu z wózka.

Zamknięcie kompletacji wysyła statusy kompletacji osobnym zapytaniem, przed odświeżeniem ekranu.

## Przykład z jednego wózka

Przykład z fikcyjnymi danymi. Operator skanuje wózek 0001 i artykuł z kodem EAN 5900000000017, a system wskazuje zlecenie ZWZ-26-0042. Po spakowaniu ostatniej pozycji zlecenie nie ma oznaczenia paczkomatu, więc formularz wywołuje zadanie usługi i pokazuje "Dane zostały zapisane". Po sekundzie wraca do skanu artykułu z zablokowanym polem wózka.

Drugi przykład, także fikcyjny: zlecenie ZWZ-26-0043 jest oznaczone jako paczkomat. Po spakowaniu formularz prosi o gabaryt, a operator wpisuje GAB_B. Formularz zapisuje wartość przy dokumencie i dopiero wtedy wywołuje zadanie. Wpisanie GAB_D kończy się komunikatem "Podaj określoną wartość - GAB_A, GAB_B lub GAB_C!".

## Co widzi operator przy błędzie

Błąd wywołania zadania pokazuje komunikat "Bład przetwarzania! Komunikat:" z treścią odpowiedzi serwera. Pisownię komunikatu podajemy tak, jak ją pokazuje program. Sposób zgłaszania błędów w formularzach opisuje artykuł o [komunikatach błędów w WMS](/komunikaty-bledow-w-wms-tekst-dzwiek-i-slownik/). Cztery komunikaty pojawiają się na drodze do zadania:

- Brak kompletacji wózka - "Brak kompletacji dla danego wózka bądź wózek nie istnieje".
- Brak zlecenia dla kodu - "Brak kodu ean w ramach zlecenia".
- Kod spoza kompletacji - "Kod EAN nie występuje w kompletacji".
- Błędny gabaryt - "Podaj określoną wartość - GAB_A, GAB_B lub GAB_C!".

## Pytania do zadania na etapie analizy integracji

Zadanie uruchamiane z formularza trzeba uzgodnić z działem IT przed startem prac. Przed wdrożeniem trzeba odpowiedzieć na cztery pytania. To pytania, a nie fakty o opisywanym wdrożeniu.

- Kto uruchamia zadanie - formularz po zapisie danych czy harmonogram usługi i w którym formularzu.
- Co ma się dziać przy błędzie - jaki komunikat zobaczy operator i czy dane są już zapisane.
- Ile jest kont - ile kont platformy sprzedażowej obsługuje magazyn i po czym zlecenie wskazuje konto.
- Co przekazuje zadanie - jakie dane o realizacji platforma ma dostać i w którym momencie.

Odpowiedzi zapisuje się w analizie przedwdrożeniowej, której zakres opisuje artykuł o [analizie przedwdrożeniowej WMS](/analiza-przedwdrozeniowa-wms-co-zawiera/). Pola i komunikaty formularzy ustala się w [specyfikacji formularzy w arkuszu](/specyfikacja-formularzy-wms-w-arkuszu/). Podobne pytania dotyczą przewoźników, o których piszemy w artykule o [integracji WMS z kurierami](/integracja-wms-z-kurierami-zamowienie-z-kolektora/).

## Czego ta strona nie opisuje

Ta strona opisuje sposób uruchamiania zadania, a nie jego treść. Kod formularza nie pokazuje, co zadanie przekazuje platformie sprzedażowej, więc tego nie opisujemy. Pomijamy też identyfikatory zadań i kody kont. Nie podajemy liczby zleceń ani wyników pracy integracji.

Opis dotyczy formularzy jednego magazynu klienta, a nie standardowej funkcji Studio WMS.net. Inny magazyn może uruchamiać zadania inaczej, na przykład harmonogramem.

## Pytania i odpowiedzi o zadaniu integracyjnym z formularza

## Słownik pojęć o zadaniu integracyjnym w WMS

Terminy używane przez dział IT i kierownika projektu, gdy formularz WMS uruchamia zadanie integracji z platformą sprzedażową.
