Zamówienia z programu ERP trafiają do magazynu przez widok, który pomija numery dokumentów już zapisane w zleceniach magazynu. Procedura zapisuje zamówienie z pozycjami jedną instrukcją wstawiającą linie, a zlecenia po imporcie są nieaktywne i bez statusu. Numer paczki importu trafia do adresu listy otwieranej po imporcie.
Import zamówień z widoku programu ERP wygląda w opisywanym wdrożeniu tak: kierownik magazynu uruchamia pozycję menu „Import zleceń WZ”, potwierdza okno z pytaniem, a procedura czyta widok zamówień przez serwer połączony. Zamówienie z pozycjami trafia do magazynu jako zlecenie wydania z numerem paczki importu, a po imporcie zlecenie jest nieaktywne i bez statusu. Dla integratora oznacza to, że od programu ERP potrzebne są dwa widoki: nagłówków i pozycji zamówień.
W opisywanym wdrożeniu procedura importu czyta widok zamówień programu ERP przez serwer połączony i zapisuje linie zamówienia jako pozycje zlecenia wydania, z numerem paczki importu. Widok pomija zamówienia, których numer dokumentu jest już w zleceniach magazynu, także nieaktywnych, a po imporcie skrypt otwiera listę zaimportowanych zleceń z numerem paczki w adresie; osobna lista pokazuje zamówienia bez pozycji.
Ochrona przed ponownym wczytaniem opiera się wyłącznie na numerze dokumentu, więc nie jest szczelna; granice opisujemy w sekcji o widoku. Opis dotyczy procedury importu oraz list kierownika magazynu.
Dla Twojej firmy ważne jest, czy program ERP może wystawić widok zamówień dla magazynu i po jakim kluczu magazyn pozna zamówienie już wczytane. Pytania na końcu strony pomagają to ustalić.
Program ERP wystawia widoki nagłówków i pozycji, a magazyn tylko je czyta
Zamówienia pochodzą z widoku zbudowanego na zapytaniu przekazującym (OPENQUERY) do serwera połączonego programu ERP. Zapytanie przekazujące wykonuje treść zapytania na serwerze połączonym i zwraca magazynowi gotowy wynik. Widok ma stałą listę kolumn nagłówka.
Pozycje czyta drugi widok programu ERP, a magazyn dopisuje do niego lokalnie indeks z kartoteki asortymentowej, dobrany po identyfikatorze z programu ERP. Nagłówki czyta więc jeden widok, a pozycje drugi, i magazyn tylko je czyta.
Widok sam pomija zamówienia już zapisane w magazynie
Widok sam pomija zamówienia, których numer dokumentu jest już w zleceniach magazynu i które nie zostały usunięte, także w zleceniach jeszcze nieaktywnych. Warunek dotyczy stanu wiersza, a nie pola aktywności. Widok ma też twardy próg daty: starsze zamówienia do magazynu nie wchodzą. Odrzucenie zamówień już wczytanych dzieje się więc w widoku, zanim procedura zacznie pętlę po zamówieniach. Filtr stoi w widoku, a nie w procedurze importu, która dostaje do przejrzenia tylko to, co widok zwrócił.
Magazyn nie pyta programu ERP o zamówienie po zamówieniu: czyta widoki, a odrzucenie wczytanych dzieje się w widoku.
Kluczem filtra jest numer dokumentu, a pomijane są tylko zlecenia, które nie zostały usunięte, więc to nie jest szczelna ochrona przed ponownym wczytaniem. Zlecenie usunięte w magazynie przestaje być pomijane.
Zamówienie z pozycjami procedura zapisuje jedną instrukcją, a bez pozycji pomija
Procedura kopiuje nagłówki z widoku do tabeli tymczasowej z numeracją i przechodzi pętlą po zamówieniach; dla kolejnego zamówienia liczy jego pozycje. Zamówienie z pozycjami zapisuje jedna instrukcja, która wstawia wszystkie linie zamówienia naraz. Jedna instrukcja obejmuje linie jednego zamówienia, a import jako całość nie jest transakcją.
Zamówienie bez pozycji nie jest zapisywane. Procedura zostawia wtedy wpis w historii z tytułem „Brak pozycji zlecenia”. Pętla przechodzi po nagłówkach z tabeli tymczasowej, więc procedura zajmuje się jednym zamówieniem naraz: liczy jego pozycje i decyduje, czy je zapisać, czy tylko zostawić wpis w historii.
| Zamówienie w programie ERP | Pozycje w widoku | Numer dokumentu w magazynie | Wynik importu |
|---|---|---|---|
| ZAM-1 | 2 | nie ma | zapisane jako zlecenie nieaktywne, z numerem paczki |
| ZAM-2 | 0 | nie ma | niezapisane, wpis „Brak pozycji zlecenia”, widoczne na liście bez pozycji |
| ZAM-3 | 3 | jest | pominięte przez widok |
| ZAM-2, gdy ma już pozycję | 1 | nie ma | zapisane przy następnym imporcie |
| ZAM-5, starsze niż próg daty | 2 | nie ma | nie wchodzi do widoku |
Tabela pokazuje trzy różne powody, dla których zamówienie nie wchodzi do zleceń: jego numer dokumentu jest już w magazynie, nie ma ono pozycji albo jest starsze niż próg daty.
Klucze z programu ERP stają się numerami zlecenia i pozycji w magazynie
Numerem zlecenia jest identyfikator nagłówka zamówienia z programu ERP, a numerem pozycji identyfikator linii. Numer dokumentu z programu ERP trafia do zlecenia, a kontrahent i asortyment są powiązane po identyfikatorach z programu ERP. Ten sam numer dokumentu służy widokowi do rozpoznania zamówienia, które jest już w zleceniach magazynu.
Z linii zamówienia do zlecenia wchodzą następujące dane.
- Ilość: przepisywana z zamianą przecinka na kropkę.
- Limit liczby sztuk: przychodzi razem z linią zamówienia.
- Partia: z linii zamówienia.
- Numer linii i uwagi pozycji: z linii zamówienia.
Z nagłówka wchodzi termin dostawy. Co magazyn robi z limitem liczby sztuk przy zbiórce, opisuje artykuł o wydaniu liczonym sumą sztuk.
Numer paczki trafia do adresu listy otwieranej po imporcie
Pozycja menu „Import zleceń WZ” uruchamia import. Skrypt pokazuje okno „Czy chcesz uruchomić import?” z przyciskami NIE i TAK. Przycisk TAK pobiera numer paczki, czyli nowy numer referencyjny, i woła jedno zapytanie, które wykonuje procedurę importu z typem dokumentu i tym numerem.
Po imporcie skrypt otwiera listę „Zlecenia ZWZ zaimportowane” z numerem paczki w adresie. Zapytanie listy zawiera numer paczki, ale w definicji kolumn listy nie ma takiej kolumny, więc numer nie jest widoczny. Zestawienie ma filtr zakresu dat dokumentu, domyślnie obejmujący ostatnie dni, więc zlecenie z datą dokumentu poza zakresem nie pokaże się na liście paczki. To wniosek z kodu platformy, w interfejsie niesprawdzony.
Kierunek przeciwny, czyli przekazanie wydania do programu ERP, opisuje osobny artykuł. O tym, jak status wraca do programu ERP, pisze osobna strona.
Zamówienia bez pozycji mają osobną listę, a zlecenia czekają na aktywację
Lista „Niezaimportowane zlecenia” pokazuje nagłówki zamówień z widoku, które nie mają żadnej pozycji. Pozycja menu jest widoczna dla kierownika. Kierownik magazynu może więc zobaczyć zamówienia, które procedura pominęła z braku pozycji.
Zlecenia po imporcie są nieaktywne i bez statusu: czekają na aktywację przez kierownika magazynu. Dopóki zlecenie jest nieaktywne, terminal nie podaje go magazynierowi; opisuje to artykuł o kolejce zleceń na terminalu. Statusy zlecenia opisuje tekst o statusach zlecenia i przejściach kierownika, a inny sposób wczytywania zamówień pokazuje strona o importie przyrostowym z oknem czasu.
Przykład (dane wymyślone). W programie ERP są trzy zamówienia: dwa z pozycjami i jedno bez pozycji. Kierownik magazynu wybiera „Import zleceń WZ” i potwierdza TAK. Dwa zamówienia z pozycjami zostają zapisane jako zlecenia nieaktywne z jednym numerem paczki, a dla trzeciego procedura zostawia tylko wpis o braku pozycji. Po imporcie otwiera się lista tej paczki z dwoma zleceniami, jeśli data dokumentu mieści się w zakresie dat listy, a trzecie zamówienie widać na liście zamówień bez pozycji. Gdy trzecie zamówienie w programie ERP dostanie pozycje, następny import je wczyta, bo numeru tego dokumentu nie ma jeszcze w zleceniach magazynu.
Cztery pytania do analizy w Twojej firmie
Odpowiedzi na te pytania nie są faktami z opisywanego wdrożenia, tylko tematami do ustalenia w Twojej firmie.
- Czy program ERP w Twojej firmie może wystawić widok zamówień dla magazynu i kto utrzymuje jego treść?
- Po jakim kluczu magazyn pozna zamówienie już wczytane i co ma się stać, gdy zlecenie zostanie usunięte w magazynie?
- Co ma się stać z zamówieniem bez pozycji: pominięcie z wpisem w historii czy zatrzymanie importu?
- Kto i kiedy włącza wczytane zlecenia do pracy magazynu?