Import awizacji kontenerów z pliku zamienia w opisywanym wdrożeniu wiersze pliku w awizacje przez tabelę pośrednią. Procedura scala wiersze z identyczną zawartością pola numerów, rozbija listy numerów rozdzielonych przecinkiem, liczy długość okna z liczby kartonów i dobiera rampę, a brak wolnej rampy nie blokuje zapisu.
Plik z kontenerami nie trafia do kalendarza bezpośrednio. W opisywanym wdrożeniu wiersze wczytują się najpierw do tabeli pośredniej, a dopiero procedura zakładania awizacji zamienia je w zgłoszenia widoczne w kalendarzu. Całość działa w module awizacji dostaw Studio VSS.net.
Artykuł opisuje przebieg importu, a nie szablon pliku. Arkusz do ręcznego prowadzenia harmonogramu omawia strona o awizacji w Excelu i szablonie harmonogramu dostaw, a ogólne zasady dla kontenerów na placu strona o transporcie wewnętrznym i kontenerach na placu.
Od pliku do tabeli pośredniej
Awizacje importowe można wczytać hurtowo z pliku. Wiersze trafiają najpierw do tabeli pośredniej, a po wczytaniu system uruchamia procedurę zakładania awizacji i otwiera raport podsumowania importu.
Trzy pola nowych awizacji (obiekt, magazyn i brama) pochodzą z konta użytkownika, który wykonał import, a nie z pliku. Ten sam plik wczytany z konta przypisanego do innego magazynu da więc awizacje w innym magazynie.
Data i godzina awizacji są w pliku w dwóch polach, a procedura skleja je w jedno. Wiersz z terminem wcześniejszym niż chwila importu dostaje status błędu i opis, że godzina awizacji jest wcześniejsza niż bieżąca.
Awizacja z importu dostaje rodzaj importowy i transport kontener. Jej status to 1, czyli awizowana. Numeracja statusów w opisywanym wdrożeniu różni się od tabeli kodów ze strony o statusach w programie awizacyjnym, dlatego numer statusu podajemy tylko tam, gdzie opis go wymaga.
Rodzaj awizacji z importu to cross-dock albo dostawa do magazynu, zależnie od opisu dystrybucji w pliku. Pole rodzaju dostawy przepisuje tekst z pliku bez mapowania, a sposób pakowania ustawia się na kartony.
Znacznik obsługi agencji celnej ustawia się automatycznie z kolumny agencji w pliku, a każda wartość inna niż oczekiwana daje awizację bez agencji celnej. Dalszą drogę kontenera z agencją opisuje artykuł o odprawie celnej jako etapie awizacji kontenera.
Scalanie dubli i rozbijanie list kontenerów
Wiersze z identyczną zawartością pola numerów kontenerów są scalane, bo procedura porównuje cały tekst pola. Kartony i sztuki sumują się w pierwszym wierszu, a pozostałe wiersze dostają status scalony i nie tworzą osobnej awizacji.
Wiersz z numerami rozdzielonymi przecinkiem, bez spacji, jest rozbijany na osobne awizacje. Numer kontenera ma w tej procedurze 11 znaków, a wszystkie awizacje z jednego wiersza dostają ten sam termin. Nie opisujemy, ile numerów w jednym wierszu procedura obsłuży poprawnie, i nie podajemy takiego limitu.
Przy rozbiciu każda awizacja dostaje pełne ilości kartonów i sztuk z wiersza źródłowego. Ilości nie są dzielone między kontenery, więc suma kartonów w awizacjach z rozbitego wiersza przekracza liczbę z pliku.
Przykład z fikcyjnymi danymi: wiersz z numerami TEST1234567,TEST7654321 i 1 200 kartonami tworzy dwie awizacje, a każda z nich ma 1 200 kartonów. Tabela zestawia cztery typowe wiersze pliku i ich status słowami.
| Wiersz pliku | Co robi procedura | Status wiersza w tabeli pośredniej |
|---|---|---|
| Zwykły wiersz z jednym kontenerem | Zakłada awizację i nadaje numer | Zapisany |
| Pole numerów identyczne jak we wcześniejszym wierszu | Dodaje kartony i sztuki do pierwszego wiersza, nie tworzy awizacji | Scalony |
| Kilka kontenerów w jednym wierszu, rozdzielonych przecinkiem | Rozbija wiersz na osobne awizacje z tym samym terminem | Rozbity |
| Termin wcześniejszy niż chwila importu | Nie zakłada awizacji i zapisuje opis błędu | Błąd |
Raport pokazuje statusy wierszy literami, a w tym tekście opisujemy je słowami: zapisany, scalony, rozbity i błąd.
Czas okna z liczby kartonów
Długość okna zależy od liczby kartonów. Poniżej 2000 kartonów okno trwa 60 minut, a od 2000 kartonów 120 minut. Przy braku liczby kartonów procedura importu daje 30 minut, a formularz ręczny 60 minut.
Formularz ręcznej awizacji importowej stosuje ten sam próg 2000 kartonów i te same wartości 60 i 120 minut. Różnica dotyczy więc wyłącznie przypadku bez liczby kartonów.
Progi i wartości są regułami z kodu wdrożenia, a nie wynikiem pracy magazynu. Nie wynika z nich, jak szybko rozładuje się kontener, tylko ile czasu rezerwuje w kalendarzu awizacja o danej liczbie kartonów.
Numer i rampa, także gdy rampy brakuje
Każda awizacja dostaje numer z licznika systemowego, a numery nadaje pętla dla wszystkich awizacji z pliku. Numer awizacji z importu ma pięć cyfr bez roku, a numer z formularza ręcznego rok i pięć cyfr, więc numeracja nie jest jednolita.
Procedura sama dobiera rampę: pierwszą aktywną z grupy ramp gabarytowych, która nie ma awizacji w kolidującym czasie. Nie opisujemy tego jako gwarancji braku kolizji na rampie. Zasady puli ramp w formularzu lokalnym omawia artykuł o doborze rampy do towaru i pojazdu.
Gdy w grupie nie ma wolnej rampy, awizacja i tak się zapisuje. Dla wierszy zwykłych raport pokazuje wtedy komunikat: „Brak wolnej rampy - awizacja zapisana”. Dla wierszy scalonych i rozbitych raport tego komunikatu nie pokazuje.
Brak wolnej rampy nie blokuje importu. Awizacja zapisuje się bez rampy, a raport pokazuje ten przypadek.
Dzienny limit sztuk nie bierze udziału w tym przebiegu, bo sprawdza go tylko formularz awizacji lokalnej. Szczegóły opisuje artykuł o dziennym limicie sztuk w awizacjach dostaw.
Raport podsumowania importu
Po wczytaniu pliku otwiera się raport podsumowania. Tam użytkownik widzi wiersze z błędami, bo wiersze z błędem zostają w tabeli pośredniej z treścią błędu, a procedura oznacza po zakończeniu tylko te wiersze, które stały się awizacjami.
| Grupa kolumn raportu | Co pokazuje |
|---|---|
| Termin i kontenery | Termin awizacji oraz listę kontenerów z wiersza pliku |
| Dostawca | Dostawcę z pliku oraz dostawcę z kartoteki |
| Agencja celna i znacznik | Wartość z kolumny agencji oraz znacznik ustawiony przez procedurę |
| Kartony i sztuki | Ilości z wiersza, w wierszu scalonym zsumowane |
| Błąd i rampa | Treść błędu albo przydzieloną rampę |
Dla wierszy rozbitych raport pokazuje tylko pierwszą awizację wiersza, więc nie jest pełnym wykazem wszystkich awizacji powstałych z rozbicia. Pełną listę zakłada się w kalendarzu lub na liście awizacji.
Formularz ręczny dla pojedynczej awizacji
Pojedynczą awizację importową można założyć ręcznie w formularzu. Pole Rodzaj kontenera nie oznacza tam rozmiaru, tylko stan celny: odprawiony albo do odprawy. Pole jest wymagane, gdy rodzajem transportu jest kontener.
Tryb kopii awizacji importowej blokuje zapis, dopóki numer kontenera nie zostanie zmieniony względem kopiowanej awizacji. Kopia nie utworzy więc drugiej awizacji z tym samym numerem. Dane auta i kierowcy omawia artykuł o uzupełnianiu danych kierowcy w awizacji.
Pytania do analizy przed pierwszym importem
Cztery pytania wymagają rozstrzygnięcia na etapie analizy, zanim logistyka wczyta pierwszy plik.
| Pytanie | Dlaczego ma znaczenie |
|---|---|
| Kto wykonuje import i z jakiego konta? | Obiekt, magazyn i brama pochodzą z konta, które wczytuje plik, a nie z pliku. |
| Jak zapisane są numery kontenerów w jednym wierszu? | Rozbicie działa dla numerów rozdzielonych przecinkiem bez spacji, a scalanie porównuje cały tekst pola. |
| Kto przydziela rampę awizacji zapisanej bez rampy? | Raport pokazuje taki wiersz, ale wskazanie osoby należy do ustaleń wdrożenia. |
| Co oznacza brak liczby kartonów w pliku? | Procedura importu daje wtedy 30 minut, a formularz ręczny 60 minut. |