1. Konfiguracja drukarek etykiet
Drukowanie etykiet w aplikacjach Comarch WMS realizowane jest przez usługę Comarch WMS Service. Używane drukarki muszą zostać zainstalowane w systemie Windows, na komputerze, na którym została uruchomiona usługa.
1.1 Dodawanie drukarek w systemie
Drukarki lokalne, podłączone do komputera, widoczne są dla wszystkich użytkowników i nie wymagają żadnych dodatkowych operacji, natomiast drukarki sieciowe, są instalowane w systemie tylko dla konkretnego użytkownika i wymagają ich instalacji dla konta, na którym uruchamiana jest usługa Comarch WMS Service. Domyślnie usługa uruchamiana jest na Lokalne konto systemowe i drukarka musi zostać dodana dla tego konto.
Proces dodawania drukarki sieciowej przebiega dwuetapowo. Najpierw dodajemy drukarkę standardowo do systemu. Następnie uruchamiamy aplikacje „PrinterManager” z katalogu, w którym została zainstalowana aplikacja Comarch WMS Magazynier. W oknie aplikacji prezentowane są drukarki sieciowe, dodane dla aktualnie zalogowanego użytkownika. Na liście zaznaczamy drukarki, które mają zostać dodane dla Lokalnego konta systemowego, a następnie klikamy na przycisk „Dodaj/Usuń”. Aplikacja pozwala także na usunięcie wcześniej dodanej drukarki, poprzez odznaczenie jej na liście i naciśnięcia przycisku „Dodaj/Usuń”.
1.2 Obsługiwane drukarki
Comarch WMS wspiera obecnie wydruki na drukarkach obsługujących protokoły Direct Protocol (DP) oraz Datamax Programmer’s Language (DPL). Nie ma możliwości wykorzystania standardowych drukarek atramentowych/laserowych oraz drukarek zapisujących wydruki do plików. Renderowanie wydruków etykiet jest realizowane przez samą drukarkę, a nie poprzez aplikację na komputerze jak przy zwykłych drukarkach, przez co nie ma możliwości podglądu wydruku przed jego wydrukowaniem.
1.3 Budowa definicji wydruków
Definicje wydruków dla etykiet znajdują się w katalogu „Labels” w katalogu, w którym został zainstalowany Comarch WMS Magazynier. Każda definicja znajduje się w oddzielnym katalogu. Wewnątrz znajduje się plik report.xml. Zbudowany jest on z dwóch głównym sekcji: DataCommand oraz Definition. Sekcja DataCommand definiuje źródło danych, jakie zostanie wykorzystane podczas pobierania danych dla wydruku. Parametr Type może przyjmować jedną z dwóch wartości: StoredProcedure – jeżeli jako źródło danych wykorzystywana jest procedura składowana lub Text – jeżeli jako źródło danych wykorzystywane jest zapytanie SQL. Do źródła danych przekazywane są parametry zależne od kontekstu wydruku oraz jego typu. Dokładny spis parametrów przedstawia poniższa tabela. Sekcja Definition zawiera definicje samego wydruku tj. jego rozmiar, zawartość oraz wygląd. W tej sekcji możemy wykorzystać dane zwrócone przez źródło danych zwrócone przez zapytanie z sekcji DataCommand. Sekcja Definition podzielona jest na 3 podsekcje: Header – kod z tej sekcji będzie wysłany tylko raz na początku wydruku, Page – kod z tej sekcji będzie wysłany do drukarki raz dla każdej etykiety, Footer – kod z tej sekcji będzie wysłany raz na końcu wydruku. Rozmiar etykiety definiujemy poprzez parametr PageWidth oraz PageHeight. Parametr Language mówi o tym, dla jakiego protokołu zdefiniowany jest dana definicja. Dla Direct Protocol podajemy w tym miejscu DP, natomiast dla Datamax Programmer’s Language podajemy DPL.
Typ etykiety | Miejsce wydruku | Parametry | Opis |
Etykieta partii towaru | Pozycja dokumentu | @PositionId | Id pozycji dokumentu |
Położenie | @LotId | Id partii towaru | |
@LotId | Id partii towaru | ||
Etykieta jednostki logistycznej | Pozycja dokumentu | @PositionId | Id pozycji dokumentu |
Etykieta położenia | Pozycja dokumentu | @PositionId | Id pozycji dokumentu |
Położenie | @WarehouseId | Id magazynu | |
@LocalizationId | Id położenia | ||
@IsSingleInstance | Parametr mówi nam o tym, czy wydruk ma zostać wykonany w kontekście danego położenia, czy jego położeń podrzędnych. |
Dane zwrócone przez źródło danych zdefiniowane w sekcji DataCommand mogą składać się z wielu wyników, ale tylko pierwszy z nich może zawierać wiele rekordów. Każdy z rekordów zostanie przetworzony na jedną etykietę (w zdefiniowanej liczbie kopii). Dane z pierwszego wyniku pobieramy poprzez nazwę kolumny otoczoną przez podwójne nawiasy klamrowe np. {{nazwa_kolumny}}. Dane z pierwszych rekordów pozostałych wyników możemy pobrać analogicznie, poprzedzając nazwę kolumny numerem wyniku i dwukropkiem np. {{1:nazwa_kolumny}}, aby pobrać dane z pierwszego dodatkowego wyniku.
W sekcji możemy wykorzystać funkcje, przetwarzające dane dla wydruku oraz pozwalające na pozycjonowanie elementów wydruku bazując na zdefiniowanym rozmiarze etykiety. Nazwa każdej funkcji zaczyna się od znaku: @, po którym występuje jej nazwa oraz argumenty objęte w nawiasy okrągłe.
Funkcje niezależne od protokołu drukarki:
- @comment(comment) – funkcja pozwala wstawić komentarz do kodu wydruku.
- @replace-chars(value,src,dest) – pozwala na zamianę serii znaków w danych na inne.
value – Łańcuch znaków do przetworzenia
src – Znaki źródłowe
dest – Znaki docelowe - @strip-polish(value) – Zamienia polskie znaki diakrytyczne na ich odpowiedniki bez ogonków.
- @char(number) – Zwraca znak o podanym kodzie.
- @format(value, format) – Formatuje ciąg znaków, format może być dowolnym, poprawnym formatem .NET.
- @dpi(value) – Ustawia DPI dla wydruku. Funkcja wykorzystywana w sekcji Header.
Zamienia znaki x,y i z na X,Y i Z w kolumnie Warehouse
br>
Funkcje specyficzne dla protokołu DPL (Datamax Programmer’s Language):
- @num-of-pages() – Zwraca liczbę kopii w formacie 4 znaków z zerami wiodącymi.
- @image(image-name[,width[,height]]) – Przesyła obrazek do drukarki i wstawia jego nazwę w miejscu wywołania. Jeżeli dany obrazek wykorzystany jest kilkukrotnie, wysyłany jest tylko raz. Funkcja posiada opcjonalne parametry określające rozmiar obrazka.
- @module(value) – Ustawia moduł, do którego będą przesyłane grafiki (obrazki). Domyślna wartość to C.
- @width(value[,size]) – Zwraca wartość bazując na szerokości strony. Argument: size określa długość pola (domyślnie 4).
@width(20%) – odpowiada 20% szerokości
@width(50mm)
@width(2in)
- @height(value[,size]) – Analogicznie jak @width lecz bazuje na wysokości strony.
- @h-center(bazeSize,sizePerChar,value[,size]) – Zwraca pozycję od lewego brzegu strony, tak aby obiekt był wyśrodkowany w poziomie. Pozwala na wyśrodkowanie kodu kreskowego.
baseSize – stała szerokość bazowa
sizePerChar – o ile powiększa się szerokość obiektu po dodaniu jednego znaku do value
value – wartość np. kodu kreskowego
size – szerokość pola, domyślnie 4 - @v-center – Analogicznie jak @h-center tylko w pionie.
Funkcje specyficzne dla protokołu DP (Direct Protocol)
- @width(value) – Wielkość bazująca na szerokości. Wartość w punktach bazująca na DPI.
- @height(value) – Analogicznie jak @width, ale bazuje na wysokości.
- @image(image-name[,width[,height,[,posX,posY[,anchor-point]]]]) – Wysyła grafikę (obrazek) do drukarki przy użycia protokołu PRBUF.
image-name – nazwa obrazka
width – szerokość
height – wysokość
posX – pozycja w poziomie
posY – pozycja w pionie
anchor-point – punkt zaczepienia - @num-of-pages() – Zwraca liczbę stron.
@width(20%) – odpowiada 20% szerokości
@width(50mm)
@width(2in)
1.4 Wydruki standardowe
Po instalacji Comarch WMS Magazynier w katalogu „Labels” domyślnie możemy znaleźć definicje dla wszystkich typów wydruków dla obu wspieranych protokołów.
Typ etykiety | Miejsce wydruku | Protokół | Nazwa definicji |
Etykieta partii towaru | Pozycja dokumentu | DP | ArticleLotBig_Code128_DP |
DPL | ArticleLotBig_Code128_DPL | ||
Położenie | DP | ArticleLot_Code128_DP | |
DPL | ArticleLot_Code128_DPL | ||
Etykieta jednostki logistycznej | Pozycja dokumentu | DP | LogisticUnit_Code128_DP |
DPL | LogisticUnit_Code128_DPL | ||
Etykieta położenia | Pozycja dokumentu | DP | LocalizationBig_Code128_DP |
DPL | LocalizationBig_Code128_DPL | ||
Położenie | DP | Localization_Code128_DP | |
DPL | Localization_Code128_DPL | ||
Wydruk wielu etykiet jednostek logistycznych | Menu główne | DP | Barcode_Code128_DP |
DPL | Barcode_Code128_DPL |
Dodatkowo dostępne są także wydruki:
- ImageTest – przykład etykiety, na którym użyto grafikę.
- SizeTest – wydruk pozwala na test ustawień rozmiaru etykiety.
Przykładowe modele drukarek etykiet testowane z aplikacją Comarch WMS:
- Intermec PD43 (protokół DP),
- Datamax H-Class H-4310 (protokół DPL).
1.5 Wydruki standardowe
Poniżej przedstawiono typy dokumentów występujące w systemie ERP:
Symbol dokumentu | Nazwa dokumentu | Generowana dyspozycja |
Dokumenty handlowe | ||
FZ | Faktura zakupu | AWD |
FZK | Korekta faktury zakupu | AWD/ZWM |
PZ | Przyjęcie zewnętrzne | AWD |
PZK | Korekta przyjęcia zewnętrznego | AWD/ZWM |
PZI | Przyjęcie zewnętrzne importowe | AWD |
PKI | Korekta przyjęcia zewnętrznego importowego | AWD/ZWM |
FS | Faktura sprzedaży | ZWM |
FSK | Korekta faktury sprzedaży | AWD/ZWM |
FW | Faktura wewnętrzna | ZWM |
FWK | Korekta faktury wewnętrznej | AWD/ZWM |
WZ | Wydanie zewnętrzne | ZWM |
WZK | Korekta wydania zewnętrznego | AWD/ZWM |
PA | Paragon | ZWM |
PAK | Korekta paragonu | AWD/ZWM |
FSE | Faktura eksportowa | AWD/ZWM |
FKE | Korekta faktury eksportowej | AWD/ZWM |
WZE | Korekta wydania zewnętrznego eksportowego | ZWM |
WKE | Korekta wydania zewnętrznego eksportowego | AWD/ZWM |
RW | Rozchód wewnętrzny | ZWM |
RWK | Korekta wydania zewnętrznego eksportowego | AWD/ZWM |
PW | Przychód wewnętrzny | ZWM |
PWK | Korekta przychodu wewnętrznego | AWD/ZWM |
MMW | Przesunięcie międzymagazynowe wydanie | ZWM |
MMP | Przesunięcie międzymagazynowe przyjęcie | AWD/ZWM |
Zamówienia | ||
ZZ | Zamówienie zakupu | AWD |
ZS | Zamówienie sprzedaży | ZWM |
ZW | Zamówienie wewnętrzne | ZWM |
Inwentaryzacja | ||
RW | Rozchód wewnętrzny | ZWM |
PW | Przychód wewnętrzny | AWD |
Zlecenia | ||
ZP | Zlecenie produkcyjne | AWD/ZWM |
ZK | Zlecenie kompletacji | AWD/ZWM |
ZD | Zlecenie dekompletacji | AWD/ZWM |