XL040 - Definiowanie i obsługa procesów
Wykorzystanie funkcjonalności: Procesy
W systemie ERP XL wprowadzono mechanizm definiowania i obsługiwania procesów. Umożliwia on zaprogramowanie następujących po sobie czynności (tworzących proces), mających na celu osiągnięcie celu założonego przez Użytkownika. Czynności, jakie będą wykonywane w trakcie procesu, mogą być czynnościami, jakie wynikają z funkcjonalności systemu ERP XL, np. wygenerowanie zamówienia sprzedaży lub też będące „czynnościami zewnętrznymi” - np. wysłanie wiadomości e-mail, albo uruchomienie programu zewnętrznego, po spełnieniu określonego warunku, itp.
Za pomocą procesów możliwe jest również regulowanie obiegu dokumentów, wskazanie osób odpowiedzialnych za realizację wyznaczonych zadań oraz monitoring czynności wykonywanych przez podległych pracowników.
Parametry związane z obsługą procesów znajdują się w Konfiguracja, zakładka: Ogólne/Parametry2.
Definiowanie procesów:
- Włącz obsługę procesów – zaznaczenie parametru spowoduje uruchomienie obsługi procesów. Do momentu tego uruchomienia, procesy mogą być definiowane, jednak nie będą zastosowane.
- Do procesu załączaj log tylko gdy wystąpiły błędy lub ostrzeżenia – Na liście załączników wyświetlone będą automatycznie załączniki typu dziennik, które zawierają loga wygenerowanego podczas wykonywania akcji kluczowej przez XL WORK AUTOMAT w procesach. W logach tych zawarta jest informacja o przyczynach niepowodzenia w wykonywanych akcjach. W przypadku zaznaczenia tego parametru procesy powinny robić wpisy do załączników tylko w przypadku gdy w logu pojawią się błędy lub ostrzeżenia.
- Uwzględnij kontekst operatora przy wykonywaniu zadań – parametr Uwzględniaj kontekst operatora przy wykonywaniu zadań zmienił zasady weryfikacji uprawnień operatorów – ogólnie chodzi o to, żeby Operator nie wykonał akcji w procesie jeśli jest przypisany do innego centrum. Dotyczy to sytuacji, gdy jako opiekuna do zadania przypiszemy nie operatora, tylko centrum np. mamy Centrum 1 i Centrum 2, do obu centrów należy operator OP1. Centrum 1 jest opiekunem akcji: Dodanie dokumentu handlowego, a Centrum 2: Potwierdzenie dokumentu handlowego. Wówczas OP1, pomimo, że należy do obu centrów to nie będzie mógł dodawać dokumentów gdy jest zalogowany w Centrum 2 czy też potwierdzać dokumentów, gdy jest zalogowany do Centrum 1.
Generowanie dokumentów w ramach obsługi procesów
Generowanie dokumentów zamówień, jako realizacja akcji kluczowych
Wprowadzono obsługę dokumentów zamówień:
- zapytań ofertowych sprzedaży/zakupu
- ofert zakupu/sprzedaży
- zamówień sprzedaży/zakupu.
Obsługa ta wyraża się w tym, że w systemie zostały predefiniowane akcje, polegające na wygenerowaniu wymienionych dokumentów. Są to tzw. akcje kluczowe.
w wierszu: Akcja kluczowa.

Generowanie innych dokumentów
Możliwe jest również zdefiniowanie i wykonanie akcji polegającej na wygenerowaniu innych niż wymienione dokumentów. Akcje te nie są jednak predefiniowane w systemie. Z tego względu, Użytkownik musi zdefiniować je samodzielnie. Należy zwrócić uwagę, że zdefiniowanie akcji polegającej na wygenerowaniu dokumentu nie obejmuje każdego dokumentu, jaki występuje w systemie i jest ograniczone do przypadków generowania dokumentów z zamówień sprzedaży i zakupu.
Definiowanie akcji polegającej na generowaniu dokumentów
Aby zdefiniować akcję polegającą na generowaniu dokumentów, należy:
- podczas definiowania procesu polegającego na obsłudze zamówienia sprzedaży/zakupu (więcej w rozdziale: Definiowanie procesu: Obsługa zamówienia zakupu) otworzyć okno: Definicja Akcji.
- W oknie: Definicja Akcji, w wierszu: Akcja kluczowa, wybrać opcję: Generowanie dokumentu z zamówienia sprzedaży (lub zakupu – w zależności od rodzaju zamówienia, dla którego definiowany jest proces). Po wybraniu akcji kluczowej, w oknie: Definicja Akcji, zostanie uaktywniona zakładka: Parametry.

- Na zakładce: Parametry, należy wprowadzić nazwę dokumentu, który ma być wygenerowany, np. w procesie polegającym na obsłudze zamówienia sprzedaży ma zostać wygenerowana z tego zamówienia faktura sprzedaży – w takim przypadku, na zakładce: Parametry, należy wpisać skróconą nazwę dokumentu: FS.

Określenie zadań w definicji procesu
Typy zadań
Zadania predefiniowane
W każdej definicji procesu znajdują się dwa zadania predefiniowane. Są to zadania: START i KONIEC. Nie możliwości modyfikacji tych zadań, ani ich usunięcia z definicji.
Do zadania START, należy przypisać czynność, która spowoduje uruchomienie procesu, natomiast zadanie: KONIEC, jest ostatnim zadaniem każdego procesu i oznacza jego zakończenie.
Zadania definiowane przez Użytkownika
Oprócz zadań predefiniowanych, w definicji procesu znajdą się zadania określone przez Użytkownika. Zadania te stanowią etapy procesu. W ich ramach definiuje się czynności, których wykonanie skutkuje przejściem procesu do następnego zadania (etapu). Liczba zadań możliwych do wprowadzenia w definicji procesu nie jest ograniczona.
Funkcjonowanie akcji kluczowych
Rodzaje akcji kluczowych
Akcje kluczowe to akcje predefiniowane w systemie. Dla każdego procesu definiowanego w systemie możliwe jest przypisanie jednej z następujących akcji kluczowych:
- Zakończenie całego procesu
- Uruchomienie innego procesu
- Wysłanie wiadomości e-mail
- Uruchomienie programu zewnętrznego
- Wykonanie skryptu SQL
- Ponadto, dla definicji procesów związanych z zamówieniami możliwe jest wykonanie innych akcji kluczowych, takich jak: Wygenerowanie dokumentu z zamówienia sprzedaży/zakupu (więcej w rozdziale: Definiowanie akcji polegającej na generowaniu dokumentów), potwierdzenie zamówienia sprzedaży/zakupu, usuwanie zamówienia sprzedaży/zakupu i innych – odpowiednio do rodzaju dokumentu, dla którego definiowany jest proces.
Określanie parametrów dla akcji kluczowych
Dla niektórych akcji konieczne jest wskazanie ich parametrów, np. dla akcji: Wysłanie wiadomości email, konieczne jest podanie w Definicji Akcji adresata wiadomości, jej tematu oraz treści. Parametry te wprowadza się na zakładce: Parametry, uaktywnianej po wybraniu odpowiedniej akcji.
Uruchomienie innego procesu
Ta akcja kluczowa pozwala na przejście do innego procesu zdefiniowanego w ERP XL. W polu Uruchamiany proces wybieramy proces, który ma zostać uruchomiony.

Na zakładce parametry powinny zostać przekazane odpowiednie dane do nowego procesu. Jest to OBITyp i OBINumer właściwe dla nowego procesu. Przykładowo w opisanym przypadku uruchamiany jest proces wysyłający mail z fakturą sprzedaży, dlatego wynik zapytania powinien zwrócić TrN_GIDTyp = 2033 (faktura sprzedaży) oraz jego TrN_GIDNumer.

Wysłanie wiadomości e-mail
Na powyższym rysunku przedstawiono sposób wprowadzania parametrów dla akcji: Wysłanie wiadomości e-mail. Należy zwrócić uwagę na format wprowadzanych danych. Powinny one zostać zapisane zgodnie z poniższym schematem:
- <DO> adres odbiorcy </DO>
- <TEMAT> temat wiadomości </TEMAT>
- <TRESC> Treść wiadomości </TRESC>
- <ZALACZNIK Wydruk=1\> – wydruk domyślny
- <ZALACZNIK Wydruk=1> Zrodlo = 0, Wydruk = 94, Format = 1 </ZALACZNIK> – wskazany wydruk
- <ZALACZNIK Wydruk=1> Zrodlo=0, Wydruk=14, Format=1, FiltrSQL=’Knt_GIDNumer = 144′ </ZALACZNIK> – wskazany wydruk wraz z FiltrSQL
- <ZALACZNIK Wydruk=0> lokalizacja np.(C:\przyklad.jpg) </ZALACZNIK> – plik z dysku
Na zakładce: Parametry, można również wprowadzić zapytanie w języku T-SQL, które umożliwia np. wysłanie wiadomości e-mail, na adres podany na karcie kontrahenta, dla którego wygenerowany został dokument. Aby wykorzystać tę funkcjonalność, należy wykonać następujące czynności:
- W pierwszym znaku wyrażenia (wpisanego w sekcję <DO>, <TEMAT>, lub <TRESC>) interpretowanego przez program, należy wstawić znak: ‘!’, np, <TRESC>!’tutaj_kod’ </TRESC>
- Wśród dostępnych prymitywów są:
- @OBITYP, @OBINUMER – reprezentujące identyfikator procesowanego obiektu
- @PRCTYP, @PRCNUMER – identyfikator pracownika
- @OPENUMER – identyfikator operatora
- @SQL – funkcja wykonująca dowolne zapytanie SQL
- @ADRESEMAILKONTRAHENTA
- @NUMERDOKUMENTU
Generowanie dokumentu z zamówienia zakupu/sprzedaż.
Na zakładce: Parametry, należy wprowadzić skróconą nazwę dokumentu, np. FS, FZ itd. Jeżeli dla jednej akcji: Generowanie dokumentu z zamówienia zakupu, na zakładce: Parametry, zostało wskazanych wiele dokumentów, wtedy domyślnie będzie generowany ten, który został wprowadzony jako pierwszy.
Uruchomienie programu zewnętrznego.
Na zakładce: Parametry, należy wprowadzić nazwę pliku inicjującego odpowiedni program, np. jeżeli ma zostać uruchomiony program MS Word, w Definicji Akcji: Uruchomienie programu zewnętrznego, na zakładce: Parametry, należy wprowadzić tekst: winword.exe.
Jeżeli w procesie chcemy przekazać np. FS do edycji przez aplikację zewnętrzną to można przekazać zmienne procesowanego obiektu.


Wykonanie skryptu SQL.
Na zakładce: Parametry, wprowadza się skrypt, jaki ma zostać wykonany.
Zmiana etapu dokumentu w obiegu.
Na zakładce: Parametry, wprowadza się treść statusu jaki ma mieć dany dokument w obiegu wg Słownika statusów zdefiniowanego w Obiegu dokumentów.

Zastosowanie akcji kluczowych
Akcje kluczowe ułatwiają definiowanie procesów i zapewniają im dużą wszechstronność funkcjonalną. Zdefiniowanie procesu, w trakcie którego wykorzystana będzie akcja kluczowa – Wykonywanie skryptu SQL, umożliwia wywołanie czynności, której nie przewiduje „tradycyjna” – dostępna z poziomu interfejsu, funkcjonalność ERP XL. Z kolei wysłanie wiadomości e – mail, umożliwia np. automatyczne informowanie wskazanej grupy osób (pracowników/kontrahentów) o wykonaniu danej czynności, czy o osiągnięciu przewidzianego celu (więcej w rozdziale: 2.3 Definiowanie procesu: Sprawdzenie wysokości sprzedaży).
Akcje kluczowe przypisane do dokumentów zamówień, usprawniają tok definiowania procesów i automatyzują wykonywanie poszczególnych czynności w ich ramach.
Akcje automatyczne
Dla procesów możliwe jest zdefiniowanie akcji automatycznych, np. wysłanie wiadomości e – mail, uruchomienie programu zewnętrznego, lub wykonanie skryptu SQL, które będą wykonywane przez System. O tym, czy akcja będzie akcją automatyczną decyduje ustawienie jako Opiekuna dla Czynności, w której przewidziano wykonanie akcji automatycznej, Opiekuna automatycznego.
Podmioty odpowiedzialne za realizację procesów
Procesy stwarzają możliwość wyznaczenia osób odpowiedzialnych za realizację poszczególnych czynności. Dzięki temu, poszczególne zadania, odpowiadające czynnościom w ERP XL mogą być przekazywane wybranym pracownikom. Wykonanie czynności (akcji) przez pracownika/operatora powoduje automatyczne przejście procesu do następnego etapu (zadania). Jako odpowiedzialnego za realizację czynności w następnym zadaniu można już wyznaczyć innego pracownika/operatora.
Wyznaczanie Opiekuna odbywa się w oknie: Definicja czynności procesu, na zakładce: Opiekunowie (więcej w rozdziałach: Przypisywanie Opiekunów do Czynności: Potwierdzenie zamówienia Przypisywanie Opiekuna do Czynności: Akcja automatyczna).
XL Work Automat
Okno: XL Work Automat, pozwala określić przedział czasowy, co jaki będą wykonywane akcje automatyczne, zdefiniowane dla aktywnych procesów. Przedział ten określa się na zakładce: Parametry.
Aby uruchomić automat, należy nacisnąć przycisk: . Naciśnięcie przycisku:
, spowoduje natychmiastowe uruchomienie przetwarzania zadań automatycznych.


Przykładowe definicje procesów
Uwagi ogólne
W systemie ERP XL możliwe jest zdefiniowanie procesu, skupionego wokół obiektu, przewidzianego w jego funkcjonalności, jak również procesu, który nie dotyczy żadnego z takich obiektów. Wyboru dokonuje się w oknie: Definicje procesów, w jego lewym panelu, w którym wyświetlone są foldery, skupiające obiekty w ERP XL (zgodnie z podziałem na moduły). Wybór ostatniego folderu: Inne procesy, umożliwia utworzenie definicji procesu, który nie dotyczy obiektu, przewidzianego w funkcjonalności systemu.

Poniżej przedstawiono scenariusze definiowania procesu – zarówno takiego, który dotyczy obiektu w systemie ERP XL (rozdział: 2.2 Definiowanie procesu: Obsługa zamówienia zakupu), jak i takiego, który takiego obiektu nie dotyczy (rozdział: 2.3 Definiowanie procesu: ).
Niezależnie od rodzaju, wszystkie procesy mają cechy wspólne:
- W definicji procesu każde zadanie poza statusem końcowym (KONIEC) musi mieć zdefiniowaną przynajmniej jedną czynność
- Aby możliwe było uruchomienie i obsługa procesu, dla czynności musi być przypisany przynajmniej jeden opiekun
- Aby proces można było uruchomić, musi być on aktywny. Aktywność procesu zależy od spełnienia dwóch warunków:
- zaznaczenia w oknie: Definicja procesu, parametru: Aktywny
- zaznaczenia w konfiguracji, na zakładce: Ogólne/Parametry 1, parametru: Włącz obsługę procesów
- Jeżeli do czynności jest przypisany więcej niż jeden opiekun, wtedy wykonanie akcji przez jednego z opiekunów, powoduje przejście procesu do następnego etapu.
Definiowanie procesu: Obsługa zamówienia zakupu
Planowany przebieg procesu
Poniżej zaprezentowano sposób określenia definicji następującego procesu, dotyczącego obsługi zamówienia zakupu.
Jako pierwsza czynność w procesie, przypisana do etapu: Start (która spowoduje jego uruchomienie), zostanie zdefiniowana: Dodanie zamówienia zakupu. Wykonanie tej czynności spowoduje przejście procesu do następnego etapu: Akceptacja zamówienia (AZ). W etapie AZ zdefiniowane będą dwie czynności: Potwierdzenie zamówienia, lub Odrzucenie zamówienia. Wykonanie jednej z tych czynności spowoduje przejście procesu do następnego etapu:
- jeżeli zamówienie zostanie potwierdzone (przyjęte), wtedy proces przejdzie do etapu: Wysłanie wiadomości e-mail o przyjęciu zamówienia
- jeżeli zamówienie zostanie odrzucone, wtedy proces przejdzie do etapu: KONIEC, który oznacza zakończenie procesu.
W etapie: Akceptacja zamówienia, przewidziano więc dwie sytuacje, a wybór jednej z nich zadecyduje o prowadzeniu procesu jedną z dwóch ścieżek. Jeżeli zamówienie zostanie potwierdzone (przyjęte), wtedy, jak już wspomniano, proces przejdzie do zadania (etapu): Wysłanie wiadomości e-mail o potwierdzeniu zamówienia. W etapie tym, czynnością, która zostanie wykonana, będzie wysłanie wiadomości e-mail. Dla czynności tej, jako opiekun, zostanie przypisany opiekun automatyczny, dzięki czemu czynność ta zostanie wykonana automatycznie, po przejściu procesu właśnie do tego zadania. Kolejnym etapem, po wysłaniu wiadomości e-mail, będzie etap: Generowanie dokumentu handlowego z zamówienia zakupu. Dokumentem tym będzie Faktura zakupu. Wykonanie czynności spowoduje przejście procesu do etapu: Koniec, który oznacza zakończenie procesu.
Przedstawiony proces jest dość uproszczony i służy pokazaniu mechanizmu definiowania i działania procesu. W ramach definicji może zostać ujętych znacznie więcej zadań i czynności. Należy jedynie pamiętać, że o ile do jednego zadania można przypisać wiele czynności, to wykonać można tylko jedną z nich. Przypisanie wielu czynności do jednego zadania jest przydatne, jeśli dla procesu przewidziano różne ścieżki, którymi może podążyć. Wtedy, na etapie danego zadania, wykonując jedną z czynności wybiera się właściwą ścieżkę – w zależności od okoliczności i proces toczy się dalej odpowiednio do przyjętego wyboru (wykonanie jednej z czynności w danym zadaniu, powoduje, że zadanie jest również traktowane jako wykonane i proces przechodzi do następnego etapu).
Poniżej przedstawiony został schemat procesu: Obsługa zamówienia zakupu, w którym wyraźnie widać dwie ścieżki, jakimi może podążyć proces w konsekwencji wykonania jednej z dwóch czynności: Potwierdzenia zamówienia (jego przyjęcia) bądź Odrzucenia zamówienia.

Otworzenie definicji procesu
Szczegóły każdego zdefiniowanego procesu znajdują się w oknie: Definicja procesu. Znajduje się w nim wykreowana przez Użytkownika lista zadań i czynności do wykonania w ramach zadań. Dwa zadania: START i KONIEC, są predefiniowane w systemie i nie ma możliwości ich modyfikacji i usunięcia (więcej w rozdziale: Określenie zadań w definicji procesu). Okno: Definicja procesu, otwiera się z poziomu okna: Definicje procesów.
Aby otworzyć okno definicji procesu: Obsługa zamówienia zakupu, należy:
- otworzyć okno: Definicje procesów, poprzez wybranie w module: Administrator, z menu: Procesy, funkcje: Definicje procesów,
- w lewym panelu okna: Definicje procesów, rozwinąć folder: Zamówienia, a po jego rozwinięciu wybrać gałąź: Zamówienie zakupu.
- Po zaznaczeniu gałęzi: Zamówienie zakupu, należy nacisnąć przycisk: [Dodaj]. Zostanie otworzone okno: Definicja procesu. W oknie należy wprowadzić nazwę procesu: Obsługa zamówienia zakupu, a także można określić priorytet dla procesu. Parametr: Aktywny, decyduje o możliwość uruchomienia procesu (więcej w rozdziale: Uwagi ogólne).

Wyznaczenie zadań w definicji procesu: Obsługa zamówienia zakupu
Aby dodać nowe zadania o definicji procesu, należy:
W otworzonym oknie: Definicja procesu (więcej w rozdziale: Otworzenie definicji procesu), należy nacisnąć przycisk: , rozwijający menu, z którego należy wybrać opcję: Dodaj zadanie.

Zostanie otworzone okno: Definicja zadania procesu.

W oknie należy wskazać kod (skróconą nazwę zadania) i jego pełną nazwę. Aby ułatwić definiowanie procesu, okno można tymczasowo zapisać, używając przycisku: [Zapisz]. W ten sposób można wyznaczyć kolejne zadania. W podanym przykładzie, do definicji procesu, zostały dodane następujące zadania:
- AZ – Akceptacja zamówienia
- WW – Wysłanie wiadomości e-mail o potwierdzeniu zamówienia
- GD – Wygenerowanie dokumentu handlowego z zamówienia
Zdefiniowanie zadań dla procesu stworzyło podstawowe elementy jego konstrukcji. Teraz, dla każdego zadania należy określić czynności jakie będą wykonywane w ramach poszczególnych etapów. Sposób przypisywania czynności do poszczególnych zadań został przedstawiony na przykładzie przypisania czynności do zadania: Akceptacja zamówienia (więcej w rozdziale: Przypisywanie czynności do zadania: Akceptacja zamówienia).
Po ich wprowadzeniu do definicji procesu, wyglądać ona będzie jak na rysunku poniżej.

Po zdefiniowaniu zadań w procesie należy określić dla nich parametry i przypisać czynności, jakie mają zostać wykonane w ich ramach. Kroki te zostały opisane w następnych rozdziałach.
Określenie parametrów zadania: Akceptacja zamówienia
Określenie parametrów dla zadania rozpoczyna się od wprowadzenia jego kodu (czyli skróconej nazwy) i pełnej nazwy zadania (więcej w rozdziale: Wyznaczenie zadań w definicji procesu: Obsługa zamówienia zakupu). W prezentowanym przykładzie, jako pierwsze zdefiniowano zadanie: Akceptacja zamówienia, stąd w pola: kod i Nazwa, wprowadzono odpowiednio wartości: AZ i Akceptacja zamówienia. Ponadto, dla zadania tego (tak jak dla innych zadań) możliwe jest określenie następujących parametrów:
Termin realizacji - dla każdego zadania można określić termin jego realizacji, czyli taki, w jakim ma zostać zrealizowane dane zadanie. Jest on liczony od momentu trafienia zadania do skrzynki pracownika. Termin można określić poprzez wskazanie ilości sekund, minut, godzin, dni, tygodni lub za pomocą warunku SQL. Warunek wprowadza się na zakładce: SQL, uaktywnionej po zaznaczeniu pola: SQL. Warunek ten powinien zwrócić zmienną w formacie timestamp. W prezentowanym przykładzie określono termin realizacji zadania jako 3 dni. Oznacza to, że w ciągu 3 dni od momentu wygenerowania zamówienia ma ono zostać potwierdzone lub odrzucone. Przekroczenie terminu nie uniemożliwia jednak zatwierdzenia lub odrzucenia zamówienia. Określenie terminu ma znaczenie dla monitorowania przebiegu procesu – w trakcie jego obsługi, zadania przeterminowane będą wyświetlane w skrzynce pracownika na czerwono. Dzięki temu zarówno pracownik, jak kierownik będą mieli możliwość kontrolowania terminowości wykonywania zadań.
Data realizacji - proponowana data realizacji zadania. Datę można określić poprzez wskazanie ilości sekund, minut, godzin, dni, tygodni lub za pomocą warunku SQL. Warunek wprowadza się na zakładce: SQL, uaktywnionej po zaznaczeniu pola: SQL. Warunek ten powinien zwrócić zmienną w formacie timestamp. Podobnie, jak w przypadku terminu realizacji zadania, przekroczenie wyznaczonej daty nie blokuje możliwości jego wykonania.
Czas realizacji - czas przewidziany na realizację zadania. Czas można określić poprzez wskazanie ilości sekund, minut, godzin, dni, tygodni lub za pomocą warunku SQL. Warunek wprowadza się na zakładce: SQL, uaktywnionej po zaznaczeniu pola: SQL. Warunek ten powinien zwrócić zmienną w formacie timestamp.
Zarówno data realizacji zadania, jak i czas realizacji są parametrami, które mają służyć Użytkownikowi, poprzez możliwość określania za ich pomocą harmonogramu wykonywania zadań, np. w danej jednostce określa się, że czas przewidziany na wykonanie danego zadania wynosi godzinę, a innego 1 dzień i zgodnie z tym wprowadza się odpowiednie zapisy w definicji zadania procesu.
Warunek wejścia - warunek, jaki musi zostać spełniony, aby nastąpiło wejście do danego statusu. Warunek ten określa się przez wykonanie zadań poprzedzających:
- przynajmniej jedno – jeżeli wykonano przynajmniej jedno zadanie (czynność) poprzedzające (dla którego wynikiem będzie to zadanie),
- wszystkie – aby nastąpiło wejście do zadania, będą musiały zostać wykonane wszystkie zadania poprzedzające (czynności).
Wskazanie tego warunku może się również odbyć za pomocą warunku SQL, wprowadzanego na zakładce: SQL, uaktywnianej po zaznaczeniu w wierszu: Warunek wejścia, parametru: SQL.
W prezentowanej definicji, dla parametru: Warunek wejścia, zaznaczono opcję: Przynajmniej jedno, gdyż etap: Akceptacja zamówienia poprzedzona jest tylko jedną czynnością: Dodanie zamówienia zakupu, przypisaną do zadania: START (więcej w rozdziale: Planowany przebieg procesu).
Po określeniu opisanych parametrów, definicja zadania procesu będzie wyglądała, jak na poniższym rysunku.

Poza wymienionymi parametrami, dla zadania przypisuje się czynność, lub czynności, przewidziane do wykonania w jego ramach. Przypisywanie czynności wymaga ich zdefiniowania, dlatego zostało opisane w rozdziale: Przypisywanie czynności do zadania: Akceptacja zamówienia.
Przypisywanie czynności do zadania: Akceptacja zamówienia
Przypisanie czynności do zadania procesu polega na określeniu działań, jakie mają zostać wykonane, gdy proces przejdzie do tego zadania (etapu) oraz podmiotów odpowiedzialnych (opiekunów) za ich wykonanie. Przypisywanie czynności do zadania odbywa się w oknie: Definicja zadania procesu, na zakładce: Czynności. Do zadania: Akceptacja zamówienia, zostaną przypisane dwie Czynności: Potwierdzenie zamówienia i Odrzucenie zamówienia. Na początek zostaje zdefiniowana Czynność: Potwierdzenie zamówienia.
Przypisanie czynności: Potwierdzenie zamówienia do zadania: Akceptacja Zamówienia
Aby przypisać czynność: Potwierdzenie zamówienia, do zadania: Akceptacja zamówienia, należy:
- W oknie: Definicja zadania procesu (AZ), wybrać zakładkę i nacisnąć przycisk: [Dodaj]. Zostanie otworzone okno: Definicja czynności procesu.

- W oknie: Definicja czynności procesu, znajdują się dwie zakładki: Ogólne i Opiekunowie. Na zakładce: Ogólne, określa się Akcję czyli działanie jakie ma zostać wykonane w ramach czynności oraz Wynik, czyli zadanie, do którego przejdzie proces po wykonaniu Akcji. Przejście procesu do określonego Wyniku może zostać obłożone warunkiem SQL, który wprowadza się w polu: Warunek. Możliwe jest również określenie wielu Wyników dla tej samej Akcji, – wtedy o tym, do którego z nich przejdzie proces po wykonaniu Akcji zadecyduje warunek SQL przypisany do odpowiedniego Wyniku. Natomiast na zakładce: Opiekunowie, określa się podmioty odpowiedzialne za realizację czynności (wykonanie Akcji).
Określenie Akcji dla Czynności: Potwierdzenie zamówienia
Określenie Akcji następuje po naciśnięciu przycisku: . Zostanie otworzone okno: Definicja procesu (Zamówienie zakupu) z zakładką: Akcje.

W otwartym oknie, definiuje się akcję, która będzie wybrana jako Akcja do wykonania w ramach definiowanej Czynności. W tym celu należy nacisnąć przycisk: [Dodaj]. Zostanie otworzone okno: Definicja Akcji.

W oknie: Definicja Akcji, w wierszu Akcja kluczowa, znajduje się rozwijalna lista akcji predefiniowanych w systemie. Uruchamia się ją po naciśnięciu przycisku: . Z listy należy wybrać akcję: Potwierdzenie zamówienia zakupu.

Po wybraniu akcji, jej nazwa zostanie wyświetlona również w polu: Nazwa. Można ją modyfikować.
Akcja: Potwierdzenie zamówienia zakupu, została zdefiniowana, wobec tego należy ją zapisać, naciskając przycisk: [Zapisz]. Zapisana akcja zostanie wprowadzona na listę w oknie: Definicja procesu (Zamówienie zakupu).

Jeżeli akcja została wprowadzona na listę, można ją przypisać do Czynności. Aby to zrobić, należy ją zaznaczyć i nacisnąć przycisk: [Wybierz]. Wybrana akcja zostanie przypisana do Czynności.

Po określeniu Akcji, należy zdefiniować Wynik, czyli zadanie, do którego przejdzie proces po wykonaniu Akcji.
Określenie Wyniku dla Czynności: Potwierdzenie zamówienia
Wynikiem dla czynności będzie jedno ze zdefiniowanych wcześniej zadań. Ponieważ zostały one już określone, wystarczy wybrać jedno z nich. Jeżeli odpowiednie zadanie nie zostałoby zdefiniowane do tego momentu, można je określić również z poziomu okna: Definicja czynności procesu.
Określenie Wyniku Akcji następuje po naciśnięciu w oknie: Definicja czynności procesu, przycisku: . Zostanie otworzone okno: Definicja czynności procesu, z zakładką: Zadania.

W oknie wyświetlone będą zadania, jakie zostały zdefiniowane do tej pory. Jeżeli zadania, które ma być wynikiem, nie ma na tej liście, można je zdefiniować po rozwinięciu za pomocą przycisku: , menu kontekstowego i wybraniu z niego opcji: Dodaj zadanie. Uruchomiony zostanie w ten sposób proces definiowania zadania.
Jeżeli natomiast na liście znajduje się zadanie, które ma być Wynikiem dla Akcji, należy je zaznaczyć i nacisnąć przycisk: . Wybrane zadanie zostanie przypisane do Czynności jako Wynik dla Akcji.
W prezentowanym przykładzie, Wynikiem dla Akcji: Potwierdzenie zamówienia zakupu, ma być zadanie: Wysłanie wiadomości e-mail o potwierdzeniu zamówienia. Zadanie takie znajduje się na liście w oknie: Definicja procesu, zakładka: Zadania (Rys. 25). W tej sytuacji należy je zaznaczyć i nacisnąć przycisk: . Zadanie: Wysłanie wiadomości e-mail o potwierdzeniu zamówienia (WW), zostanie przypisany do Czynności, jako Wynik dla Akcji: Potwierdzenie zamówienia zakupu.

Po określeniu Akcji i wskazaniu Wyniku, należy przypisać osoby odpowiedzialne – tzw. Opiekunów, za wykonanie zadania. Opis przypisywania Opiekunów do czynności znajduje się w rozdziale: Przypisywanie Opiekunów do Czynności.
Przypisywanie Opiekunów do Czynności: Potwierdzenie zamówienia
Przypisywanie Opiekunów do Czynności odbywa się na zakładce: Opiekunowie. Aby przypisać Opiekuna, należy
- w oknie: Definicja czynności procesu, wybrać zakładkę: Opiekunowie,
- na zakładce: Opiekunowie, nacisnąć przycisk, który rozwija menu kontekstowe.

- Z menu kontekstowego, należy wybrać jedną z opcji, która umożliwia wybór Opiekuna:
- ze struktury firmy
- z listy pracowników
- z listy operatorów
- opiekuna automatycznego
- opiekuna ustalonego w procesie
Wybór opcji zadecyduje o tym, jaka lista zostanie otwarta. Z otwartej listy dokonuje się wyboru odpowiedniego podmiotu, który będzie Opiekunem dla definiowanej czynności. W prezentowanym przykładzie Opiekunem zostanie wybrane centrum ze struktury podległościowej. Dzięki temu, wszyscy pracownicy tego centrum będą mogli dokonywać potwierdzenia zamówień. Aby wybrać centrum jako Opiekuna, należy z menu kontekstowego wybrać opcję: Ze struktury firmy. Zostanie otworzone okno: Struktura firmy.

W oknie: Struktura firmy, należy zaznaczyć centrum, mające zostać Opiekunem i nacisnąć przycisk: . Wybrane centrum zostanie wprowadzone na zakładkę: Opiekunowie, w oknie: Definicja czynności procesu.

Jeżeli zostały zdefiniowane: Akcja, Wynik oraz Opiekun, definicję czynności procesu można zapisać, używając przycisku: [Zapisz zmiany]. Po zapisaniu, Czynność zostanie przypisana do zadania: Akceptacja zamówienia (na zakładce: Czynności).

Przypisanie czynności: Odrzucenie zamówienia zakupu
Przypisanie czynności: Odrzucenie zamówienia zakupu, do definicji zadania procesu [AZ] przebiega w podobny sposób, jak w przypadku przypisania czynności: Potwierdzenie zamówienia zakupu. W przypadku czynności: Odrzucenie zamówienia zakupu, zostanie jednak zdefiniowana inna akcja: Odrzucenie zamówienie zakupu, dla której wynikiem będzie status: KONIEC, oznaczający zamknięcie procesu. Sposób definiowania Akcji i Wyniku został opisany w rozdziałach: Określenie Akcji Określenie Wyniku.
Po wskazaniu elementów na Czynności, jej definicja będzie wyglądała jak na rysunku poniżej.

Po zdefiniowaniu Akcji i Wyniku, do Czynności zostanie przypisany Opiekun.
Przypisywanie czynności do innych zadań w procesie
Przypisywanie czynności do innych zadań w definicji procesu przebiega podobnie, jak w przypadku zadania: Akceptacja zamówienia (więcej w rozdziale: Przypisywanie czynności do zadania: Akceptacja zamówienia). Należy zwrócić uwagę na konieczność przypisania przynajmniej jednej czynności do każdego zadania (z wyjątkiem zadania: KONIEC) oraz pamiętać o tym, że do zadania; START ma zostać przypisana czynność, która będzie uruchamiała cały proces. Czynność do tego zadania przypisuje się z poziomu okna: Definicja procesu (Zamówienie zakupu), po jego zaznaczeniu i naciśnięciu przycisku: [Dodaj] lub wybraniu z menu kontekstowego, rozwijanego przyciskiem:
, opcji: Dodaj czynność. Zostanie otworzone okno: Definicja czynności procesu, które należy wypełnić podobnie jak opisano to w rozdziale: Przypisywanie czynności do zadania: Akceptacja zamówienia, podając jako Akcję: Dodanie zamówienia zakupu, a jako Wynik – zadanie: Akceptacja zamówienia.
Po przypisaniu czynności do wszystkich zadań (zgodnie z założeniami definicji procesu opisanymi w rozdziale: Planowany przebieg procesu) definicja procesu: Obsługa zamówienia zakupu, będzie wyglądała jak na poniższym rysunku. W oknie: Definicja procesu, wyświetlone są, w układzie drzewa, zadania i przypisane do nich czynności.

Zapisanie definicji procesu
Jeżeli w definicji procesu: Obsługa zamówienia zakupu, wszystkie zadania zostały już określone i zostały do nich przypisane wszystkie wymagane czynności, można ją zapisać, używając przycisku: [Zapisz zmiany]. Zapisana definicja zostanie umieszczona w oknie: Definicje procesów.

Jak widać na powyższym rysunku, definicja procesu: Obsługa zamówienia zakupu, wyświetlona jest w kolorze szarym. Stało się tak dlatego, że definicji tej nie został nadany status aktywności – nie został zaznaczony parametr: Aktywny, w oknie: Definicja procesu. Do momentu zaznaczenia tego parametru, uruchomienie procesu w oparciu o zapisaną definicję będzie niemożliwe.
Definiowanie procesu: Sprawdzenie wysokości sprzedaży
Planowany przebieg procesu
Poniżej zostanie zaprezentowany sposób definiowania procesu, którego celem będzie wysłanie informacji za pośrednictwem poczty elektronicznej o przekroczeniu określonej wysokości sprzedaży (np. 10000 zł) w danym dniu. Na potrzeby niniejszego dokumentu, nazwa definicji tego procesu zostanie ujęta w skrócie: Sprawdzenie wysokości sprzedaży.
Pierwszą czynnością w tym procesie, przypisaną do zadania: START, będzie: Uruchomienie. Czynność ta będzie wykonywana przez wybranego pracownika i ma na celu jedynie uruchomienie procesu. Po jej wykonaniu, proces przejdzie do zadania: AKTYWNY. Do zadania tego będzie przypisana jedna czynność, w której akcją do wykonania będzie: Akcja automatyczna. W trakcie tej czynności będzie automatycznie wykonywany select, sprawdzający, czy wartość sprzedaży przekroczyła już określony próg (10000 zł) czy też nie. Dla czynności zostaną określone dwa wyniki obłożone warunkami SQL:
Pierwszy – przewidujący sytuację, gdy wartość sprzedaży przekroczy 10000 zł – wtedy Wynikiem będzie zadanie polegające na wysłaniu odpowiedniej wiadomości e-mail,
Drugi – przewidujący sytuację, gdy wartość sprzedaży nie przekroczy 10000 zł – wtedy Wynikiem będzie zadanie: Aktywny, czyli proces wejdzie ponownie w etap sprawdzania wartości sprzedaży.
Z tak zdefiniowanych warunków będzie wynikało, że proces będzie znajdował się etapie sprawdzania wartości sprzedaży, do momentu, gdy wartość ta nie zostanie przekroczona. Po jej przekroczeniu zostanie wysłana odpowiednia wiadomość e-mail.
Jeśli proces przejdzie do następnego etapu: Wysłanie wiadomości e-mail, będzie to oznaczało, że cel procesu w danym dniu został osiągnięty. Proces, po wykonaniu czynności polegającej na wysłaniu wiadomości e-mail przejdzie do zadania: Czekaj. Zadanie to polega na „czekaniu” jedną dobę na ponowne sprawdzenie wysokości sprzedaży w dniu następnym. Stąd też, następnym etapem (Zadaniem), jakie zostanie wykonane (po upływie doby) będzie znów zadanie: Aktywny, który czynność taką (sprawdzenie wartości sprzedaży) będzie uwzględniał.
Należy zwrócić uwagę, że w takiej definicji procesu nie jest wykorzystywane zadanie: KONIEC. Uruchomienie procesu spowoduje, że będzie się on toczył przez kolejne dni automatycznie, bez konieczności ingerencji Użytkownika – codziennie będzie sprawdzana wartość sprzedaży, a po jej przekroczeniu, będzie wysyłana wiadomość e-mail. Aby zamknąć proces, należy go zaznaczyć w oknie: Lista procesów i nacisnąć przycisk: [Zamknij proces].
Poniżej został przedstawiony schemat wykonywania poszczególnych czynności w procesie: Sprawdzenie wysokości sprzedaży.

Otworzenie definicji procesu
Otworzenie definicji procesu następuje w oknie: Definicje procesów. Ponieważ jest to proces bez obiektu, musi on zostać zdefiniowany z poziomu z poziomu folderu: Inne procesy i gałęzi: Proces bez obiektu.
Aby otworzyć definicje procesu: Sprawdzenie wysokości sprzedaży, należy:
w module: Administrator, wybrać z menu: Procesy, opcję: Definicje procesów.
Następnie w lewym panelu okna, rozwinąć folder: Inne procesy. Zostanie wyświetlona gałąź: Proces bez obiektu.

Po zaznaczeniu gałęzi: Proces bez obiektu, należy nacisnąć przycisk: [Dodaj]. W ten sposób zostanie otworzona definicja procesu. W oknie należy wprowadzić nazwę procesu.

Wyznaczenie zadań w procesie
Po otworzeniu definicji procesu: Sprawdzenie wysokości sprzedaży, należy określić zadania czyli etapy tego procesu. W prezentowanym przykładzie – zgodnie z przyjętym założeniem (więcej w rozdziale: Planowany przebieg procesu), zdefiniowane zostaną następujące zadania i czynności:
START – do tego zadania zostanie przypisana czynność: Uruchomienie
AKTYWNY – do tego zadania zostanie przypisana czynność automatyczna, dla której możliwe będą dwa Wyniki (w zależności od tego czy wartość sprzedaży w danym dniu przekroczyła 10000 zł czy też nie).
E – MAIL (wysłanie wiadomości e-mail) – jeżeli wartość sprzedaży w danym dniu przekroczy 10000 zł, wtedy proces przejdzie do zadania: E-MAIL, w którym zostanie wysłana odpowiednia wiadomość e-mail.
CZEKAJ – po wysłaniu wiadomości e-mail, proces w zadaniu: CZEKAJ, będzie „oczekiwał” przez wskazany czas (jedną dobę) na ponowne przejście do zadania: AKTYWNY.
Definiowanie zadań odbywa się w ten sam sposób, jak w przypadku definiowania zadań w procesie: Obsługa zamówienia zakupu (więcej w rozdziale: Wyznaczenie zadań w definicji procesu: Obsługa zamówienia zakupu).
Po wyznaczeniu zadań, definicja procesu: Sprawdzenie wysokości sprzedaży, będzie wyglądać jak poniższym rysunku.

Zdefiniowanie zadania: Czekaj
W zdefiniowaniu zadania: Czekaj, istotne jest określenie terminu jego realizacji. Z przyjętych założeń wynika, że proces w tym zadaniu oczekuje jedną dobę na ponowne uruchomienie skryptów sprawdzających wysokość sprzedaży. W związku z tym, w oknie: Definicja zadania procesu, na zakładce: Ogólne, w polu: Data realizacji, należy wskazać 1 dzień.

Należy pamiętać, że istnieje możliwość większego zoptymalizowania czasu oczekiwania na ponowne uruchomienie sprawdzenia wysokości sprzedaży. W podanym bowiem przykładzie, czas oczekiwania będzie liczony od momentu przekroczenia wysokości sprzedaży w danym dniu. Oznacza to, że jeżeli przekroczenie wysokości sprzedaży jednego dnia nastąpi o godzinie 15.00, to ponowne uruchomienie zapytań SQL, sprawdzających wysokość sprzedaży w dniu następnym, nastąpi również o godzinie 15.00.
Uruchomienie wykonywania skryptów o oznaczonej godzinie, można zdefiniować poprzez warunek SQL. W tym celu, w oknie: Definicja zadania procesu (Czekaj), należy zaznaczyć w wierszu: Data realizacji, pole: SQL i na uaktywnionej zakładce: SQL, wprowadzić odpowiedni warunek.
Przypisanie czynności do zadań
Po wyznaczeniu zadań, należy przypisać do nich czynności. Sposób przypisania czynności do zadań odbywa się tak samo, jak w przypadku przypisywania czynności do zadań definicji procesu: Obsługa zamówienia zakupu (więcej w rozdziale: Przypisywanie czynności do zadania: Akceptacja zamówienia). W niniejszym rozdziale zostanie opisany sposób definiowania czynności: Akcja automatyczna, która zostanie przypisana do zadania: AKTYWNY, który różni się od przedstawionego powyżej.
Zdefiniowanie czynności: Akcja automatyczna
W czynności: Aktywny, zostanie przewidziana akcja, wykonywana automatycznie. Jej Wynik, będzie zależał od tego, czy sprawdzana wartość wysokości sprzedaży przekroczy 10000 zł, czy też nie. Wyniki te zostaną obłożone warunkami SQL.
Otworzenie definicji czynności: Akcja automatyczna
Aby zdefiniować czynność: Akcja automatyczna, należy:
- W oknie definicji procesu: Sprawdzenie wysokości sprzedaży, zaznaczyć zadanie: AKTYWNY
- nacisnąć przycisk: [Dodaj], lub za pomocą przycisku rozwinąć menu kontekstowe i wybrać opcję: Dodaj czynność.

- Zostanie otworzone okno: Definicja czynności procesu.

Przypisanie Akcji do Czynności: Akcja automatyczna
W oknie należy nacisnąć przycisk: . Zostanie otworzone okno: Definicja procesu, z zakładką: Akcje. W oknie tym, należy zdefiniować nową akcję – Akcję automatyczną. Odbywa się to po naciśnięciu przycisku:
[Dodaj]. W otworzonym oknie: Definicja Akcji, w polu: Nazwa, wprowadzić nazwę Akcji – czyli: Akcja automatyczna. Zdefiniowaną Akcję należy zapisać, naciskając przycisk:
[Zapisz].

Akcja automatyczna zostanie wyświetlona na liście akcji w oknie: Definicja procesu. Należy ją teraz zaznaczyć i nacisnąć przycisk: [Wybierz].

W ten sposób, do czynności: Akcja automatyczna, została przypisana Akcja.

Przypisanie Wyników do Czynności: Akcja automatyczna
Należy teraz określić Wyniki dla przypisanej Akcji. Ze względu na charakter Czynności, zostaną zdefiniowane dwa Wyniki – jeden dla sytuacji, gdy wysokość wartości sprzedaży przekroczy 10000 zł, drugi – dla sytuacji, gdy wartość sprzedaży nie przekroczy tej wysokości.
Aby przypisać pierwszy Wynik, należy:
- W oknie: Definicja czynności procesu, nacisnąć przycisk: [Dodaj]. Zostanie otworzone okno: Definicja statusu wynikowego czynności.
- W oknie, należy nacisnąć przycisk: [Wynik]. Zostanie otworzone okno: Definicja procesu, z listą zadań możliwych do wybrania jako Wynik. Ponieważ zadania dla definicji procesu: Sprawdzenie wysokości sprzedaży, zostały uprzednio zdefiniowane (więcej w rozdziale: Wyznaczenie zadań w procesie), na liście należy zaznaczyć zadanie: E-MAIL i nacisnąć przycisk: [Wybierz]. Wybrane zadanie zostanie wprowadzone (jako Wynik do Czynności: Akcja automatyczna), do Definicji statusu wynikowego czynności.

- Po wskazaniu Wyniku, należy określić warunek, pod jakim, po wykonaniu Akcji, proces do niego przejdzie. Warunek ten będzie wyglądał jak na poniższym rysunku.

W ten sposób pierwszy Wynik zostanie zdefiniowany. Należy go zapisać i przystąpić do definiowania drugiego Wyniku, przewidzianego po spełnieniu warunku, gdy wysokość wartości sprzedaży nie przekroczy 10000 zł. Wynikiem tym będzie zadanie: AKTYWNY. Definiowanie odbywa się tak, jak w przypadku pierwszego Wyniku (oczywiście z uwzględnieniem funkcji przewidzianej dla drugiego Wyniku). Po zdefiniowaniu, Wynik: Aktywny, będzie wyglądał jak na poniższym rysunku.

Po zapisaniu definicji statusu wynikowego: AKTYWNY, zostanie on przypisany do Czynności: Akcja automatyczna.
Okno Czynności: Akcja automatyczna, po przypisaniu do niej Wyników: E-MAIL i AKTYWNY, będzie wyglądało jak na poniższym rysunku.

Przypisywanie Opiekuna do Czynności: Akcja automatyczna
Dla zdefiniowanej Czynności: Akcja automatyczna, należy określić Opiekuna. Ponieważ Czynność będzie wykonywana automatycznie, należy wybrać Opiekuna automatycznego.

Definicję czynności procesu należy zapisać. Zostanie ona przypisana do zadania: AKTYWNY.
W podobny sposób definiuje się kolejne czynności dla tej definicji procesu, jednak, ze względu na to, że każda z nich przewiduje jeden Wynik, zostanie on wprowadzony w oknie definicji czynności procesu, w polu: Wynik (po naciśnięciu przycisku: ).
Po przypisaniu wszystkich przewidzianych Czynności do zadań, definicja procesu: Sprawdzenie wysokości sprzedaży, będzie wyglądała jak na poniższym rysunku:

Obsługa procesu
Obsługa procesu polega na jego uruchomieniu i wykonywaniu zadań przewidzianych w jego definicji. Definicja procesu stanowi wzór, według którego może być wykonywana nieograniczona ilość procesów. Obsługa procesów w oparciu o definicję jest możliwa, gdy:
- Odpowiednia definicja procesu ma status: Aktywny (decyduje o tym zaznaczenie parametru: Aktywny, w oknie: Definicji procesu)
- W Systemie włączona jest obsługa procesów (w konfiguracji, na zakładce: Ogólne/Parametry 1, został zaznaczony parametr: Włącz obsługę procesów).
Poniżej przedstawiono obsługę dwóch procesów wykonywanych w oparciu o definicje zaprezentowane w rozdziale: Przykładowe definicje procesów.
Obsługa procesu: Obsługa zamówienia zakupu
Uwagi ogólne
Proces dotyczący obsługi zamówienia zakupu może być uruchamiany i wykonywany z poziomu:
- Skrzynki pracownika
- Obsługiwanego zamówienia (lub listy zamówień).
Obsługa z poziomu skrzynki pracownika polega na tym, że Opiekun, wybiera z listy odpowiedni proces, identyfikowany po nazwie procesu i numerze obiektu (czyli numerze zamówienia) i wykonuje akcję, przez:
wybranie przycisku: [Wykonaj akcję],
lub jeżeli w danym etapie przewidziano wykonanie jednej w wielu czynności:
rozwinięciu menu kontekstowego za pomocą przycisku: , znajdującego się obok ikony
i wybraniu odpowiedniej opcji, oznaczającej wykonanie jednej z czynności.
Rys. 50 Skrzynka pracownika z rozwiniętym menu kontekstowym umożliwiającym wybór czynności do wykonania.
Kilka procesów na jednym obiekcie
Może się zdarzyć, że dla jednego obiektu – np. zamówienia zakupu, zostanie zdefiniowanych klika definicji procesu, przewidujących różne ścieżki obiegu dokumentów. W takiej sytuacji, operując konkretnym zamówieniem, o ile istnieją wspólne punkty tych procesów można wybrać definicję, według której będzie obsługiwany dalej dany obiekt.
Wyboru definicji dokonuje się w oknie: Lista zamówień. Aby wybrać jedną z definicji do obsługi konkretnego zamówienia, należy:
- W oknie: Lista zamówień, wskazać zamówienie, dla którego zostanie wybrana odpowiednia definicja
- Nacisnąć przycisk: [Historia procesu], zostanie otworzone okno: Historia procesu,
- W oknie: Historia procesu, w polu: Proces, za pomocą przycisku: , zostanie rozwinięta lista dostępnych definicji, możliwych do wykorzystania przy obsłudze wybranego zamówienia.

Po wybraniu jednej z definicji, uruchomienie przycisku: [Wykonaj akcję] spowoduje wykonanie akcji, przewidzianej dla czynności będącej elementem tej definicji. Przycisk:
, rozwija menu kontekstowe z możliwymi opcjami wykonania akcji.

Uruchomienie procesu (zadanie START)
Proces rozpoczyna się w momencie, gdy podmiot przypisany jako Opiekun do Czynności: Dodanie zamówienia zakupu, wygeneruje zamówienie zakupu. Wygenerowanie zamówienia zakupu jest możliwe:
- Z poziomu listy zamówień – poprzez otworzenie okna: Lista zamówień i naciśnięciu przycisku: [Dodaj],
- Z poziomu Skrzynki pracownika (czyli podmiotu, będącego Opiekunem) – po otworzeniu okna: Lista zamówień i naciśnięciu przycisku: [Dodaj proces]. Zostanie wtedy otworzone okno: Procesy do uruchomienia, z której należy wybrać odpowiedni proces i nacisnąć przycisk: [Wybierz]. Po zapisaniu okna: Proces, które otwiera się w trakcie uruchamiania procesu, zostanie wygenerowane zamówienie zakupu.
Wygenerowane zamówienie zostanie zapisane, a proces przechodzi do następnego etapu: Akceptacja zamówienia.
Proces na etapie: Akceptacja zamówienia
W tym etapie, proces pojawi się skrzynkach pracowników, którzy zostali przypisani jako Opiekunowie do czynności: Akceptacja zamówienia zakupu lub Odrzucenie zamówienia zakupu. Jeżeli ten sam podmiot jest Opiekunem do jednej i drugiej czynności, wtedy z poziomu otwartego zamówienia, lub swojej skrzynki pracownika może dokonać albo przyjęcia zamówienia, albo jego odrzucenia. Wykonanie jednej z tych czynności powoduje przejście procesu do następnego etapu:
- w przypadku zatwierdzenia i przyjęcia zamówienia będzie to Wysłanie wiadomości o potwierdzeniu zamówienia (WW)
- w przypadku Potwierdzenia i odrzucenia zamówienia, będzie to etap KONIEC, który spowoduje zakończenie procesu.
Proces na etapie: Wysłanie wiadomości o potwierdzeniu zamówienia
Opiekunem na etapie: Wysłanie wiadomości o potwierdzeniu zamówienia, jest Opiekun automatyczny. Oznacza to, że czynność polegająca na wysłaniu do wskazanych podmiotów wiadomości za pośrednictwem poczty elektronicznej o pozytywnym potwierdzeniu zamówienia zostanie wykonana automatycznie, po przejściu procesu do tego etapu. Należy jednak pamiętać o odpowiednim zdefiniowaniu parametrów w konfiguracji, na zakładce: Ogólne/Parametry 2, dotyczące ustawień SMTP.
Po wysłaniu wiadomości e-mail, proces przejdzie automatycznie do następnego etapu: Wygenerowanie dokumentu handlowego z zamówienia, czyli znajdzie się w skrzynce tych pracowników, którzy zostali wybrani jako Opiekunowie do czynności polegającej na wygenerowaniu dokumentu handlowego z potwierdzonego zamówienia (GD).
Proces na etapie: Wygenerowanie dokumentu handlowego z zamówienia
Opiekunowie mogą wykonać czynność generowania dokumentu handlowego:
- Z poziomu listy zamówień (poprzez wybranie zamówienia, a następnie funkcji polegającej na generowaniu dokumentu handlowego z zamówienia).
- Z poziomu swojej skrzynki pracownika – poprzez zaznaczenie odpowiedniego procesu (identyfikowanego po nazwie procesu i numerze obiektu) i naciśnięciu przycisku: [Wykonaj akcję].
Po wykonaniu akcji, proces przejdzie do statusu KONIEC, który oznacza jego zakończenie.
Proces na etapie: KONIEC
Proces przechodzi automatycznie do statusu wynikowego: KONIEC:
- po wykonaniu czynności: Odrzucenie zamówienia, w etapie: Akceptacja zamówienia,
- po wykonaniu czynności: Wygenerowanie dokumentu handlowego, w etapie: Wygenerowanie dokumentu handlowego z zamówienia zakupu.
Status: KONIEC, oznacza zakończenie procesu. Na tym etapie nie jest wykonywana żadna czynność.
Obsługa procesu: Sprawdzenie wysokości sprzedaży
Uwagi ogólne
Proces: Sprawdzenie wysokości sprzedaży, w przeciwieństwie do procesu: Obsługa zamówienia zakupu, nie dotyczy obiektu w ERP XL. W związku z tym, jego obsługa możliwa jest tylko z poziomu okna: Skrzynka pracownika.
Uruchomienie procesu (zadanie: START)
Uruchomienie procesu następuje z poziomu skrzynka pracownika, który jest opiekunem Czynności: Uruchomienie, przypisanej do zadania: START. Odbywa się on po naciśnięciu w oknie: Skrzynka pracownika, przycisku: [Dodaj proces], który spowoduje otworzenie okna: Procesy do uruchomienia. W oknie, należy wybrać proces: Sprawdzenie wysokości sprzedaży i nacisnąć przycisk:
[Wybierz].

Po wybraniu procesu, zostanie otworzone okno: Proces, w którym podane są podstawowe dane uruchamianego procesu.

Po zapisaniu okna (przycisk: ) proces zostanie uruchomiony i przejdzie do następnego etapu: AKTYWNY.
Proces w etapie: AKTYWNY
Czynności w zadaniu: AKTYWNY, wykonywane są przez Opiekuna automatycznego. Polegają one na wykonywaniu zapytań SQL, sprawdzających czy wartość sprzedaży w danym dniu przekroczyła 10000 zł. Jeżeli warunek zostanie spełniony, wtedy proces przechodzi do etapu: E-MAIL, polegającego na wysłaniu wiadomości e-mail o przekroczeniu wartości sprzedaży 10000 zł. Jeżeli warunek nie zostanie spełniony, proces będzie dalej „wracał” do zadania: AKTYWNY, czyli zapytanie będzie dalej ponawiane.
Proces w etapie: E-MAIL
Etap: E-MAIL, polega na wysłaniu wiadomości e-mail o przekroczeniu wartości sprzedaży 10000 zł. Opiekunem dla tej czynności jest również Opiekun automatyczny, co oznacza, że zostanie ona wykonana automatycznie, po przejściu procesu do tego zadania. Treść wiadomości, jaka zostanie wysłana określona jest w definicji procesu, w oknie: Definicja Akcji, na zakładce: Parametry (więcej informacji o definiowaniu akcji: Wysłanie wiadomości e – mail znajduje się w rozdziale: Określanie parametrów dla akcji kluczowych. Po wysłaniu wiadomości, osiągnięty zostanie cel procesu. Przejdzie on zatem do etapu (zadania) CZEKAJ, w którym proces będzie „oczekiwał” 1 dobę.
Proces w etapie: Czekaj
W etapie: Czekaj, wykonywana jest akcja automatyczna, polegająca na wstrzymaniu na jedną dobę sprawdzania, czy wysokość sprzedaży została przekroczona ponad 10000 zł. Również dla tej czynności został ustalony Opiekun automatyczny, a czas oczekiwania wynika z ustawienia w oknie: Definicja zadania procesu (Czekaj), na zakładce: Ogólne, parametru: Data realizacji, na 1 dzień (więcej informacji w rozdziale: Zdefiniowanie zadania: Czekaj). Po upływie jednego dnia, proces ponownie przejdzie do zadania: AKTYWNY, w którym nastąpi sprawdzanie wysokości sprzedaży (więcej informacji w rozdziale: Proces w etapie: AKTYWNY).
Nowe funkcjonalności w procesach
Obsługa BST
Lista obiektów Systemu obsługiwana w procesach została uzupełniona o dokument Bilansu Stanu Towarów BST. Dla obiektu tego udostępnione zostały akcje kluczowe odpowiadające operacjom dokonywanym na tym dokumencie:

- Dodanie bilansu stanu towarów – Akcja odpowiada operacji dodania dokumentu z interfejsu, czyli dodany zostanie dokument BST z domyślnymi wartościami tj. Grupa towarów, dostawca, magazyn, zakres planowany.
- Potwierdzenie bilansu stanu towarów – Akcja umożliwia zatwierdzenie bilansu analogicznie do operacji zatwierdzenia z poziomu interfejsu.
- Zamknięcie bilansu stanu towarów – Akcja odpowiada operacji zamknięcia dokumentu z poziomu interfejsu. (Można zamknąć tylko zatwierdzone BST)
- Anulowanie bilansu stanu towarów – Akcja odpowiada operacji anulowania dokumentu z poziomu interfejsu
- Przelicz bilans stanu towarów – Akcja odpowiada operacji przeliczenia BST, według parametrów ustawionych na BST.
- Drukowanie bilansu stanu towarów – Akcja analogiczna do akcji drukowania innych dokumentów
- Generowanie dokumentu z bilansu stanu towarów – Akcja ma zakładkę Parametry. Na zakładce parametry można określić, jaki dokument powinien być generowany z BST.
Możliwe parametry:
- – ZZ – zamówienie zakupu
- – ZW – zamówienie wewnętrzne
- – MMW – przesunięcie MMW
- – ZP – zlecenie produkcyjne
- – ZK – zlecenie kompletacji
- – SAD
Usuwanie bilansu stanu towarów
Akcja powinna odpowiadać operacji usuwania dokumentu z poziomu interfejsu
Oprócz akcji wynikających ze specyfiki dokumentu BST, udostępnione zostały akcje ogólne, podobnie jak dla innych obiektów Systemu:
- Uruchomienie innego procesu
- Uruchomienie programu zewnętrznego
- Wykonanie skryptu SQL
- Wysłanie wiadomości e-mail
- Zakończenie całego procesu
Podczas konwersji bazy, czy też tworzenia nowej bazy System dodaje predefiniowany proces przeliczania dokumentu BST, aby z niego skorzystać, wystarczy zaznaczyć na nim parametr „Aktywny”. Po włączeniu w Systemie obsługi procesów i uruchomieniu XLWorkAutomat Użytkownik może ustawić na konkretnym dokumencie BST zadanie wykonania automatycznego przeliczenia BST w określonym czasie. Aby tego dokonać wystarczy zaznaczyć parametr „Przelicz”, ustalić żądany czas aktualizacji i zlecić jej wykonanie poprzez uruchomienie opcji „przelicz bilans”.

Obsługa Planu Produkcji
Lista obiektów Systemu obsługiwana w procesach została uzupełniona o dokument Planu Produkcji. Dla obiektu tego udostępnione zostały akcje kluczowe odpowiadające operacjom dokonywanym na tym dokumencie:

- Dodanie planu produkcji – Akcja powinna odpowiadać akcji dodania dokumentu Plany produkcji z poziomu interfejsu z danymi wejściowymi, jak przy dodawaniu nowego dokumentu z ręki.
- Zatwierdzenie planu produkcji – Akcja powinna odpowiadać zatwierdzaniu dokumentu, dokonywanego z poziomu interfejsu.
- Zamknięcie planu produkcji – Akcja powinna odpowiadać zamknięciu dokumentu planu produkcji z poziomu interfejsu.
- Usunięcie planu produkcji – Akcja powinna odpowiadać usunięciu planu produkcji z poziomu interfejsu.
- Przeliczenie planu produkcji – Akcja odpowiada operacji przeliczenia Planu produkcji, według parametrów ustawionych na planie
- Drukowanie dokumentu – Akcja analogiczna do akcji drukowania innych dokumentów.
- Generowanie dokumentu na materiały – Dla akcji udostępniono zakładkę: Parametry, określa się tam jaki dokument ma być generowany z Planu produkcji: ZZ, ZW, ZP czy MMW.
- Generowanie dokumentu na produkty – Dla akcji udostępniono zakładkę: Parametry, określa się tam jaki dokument ma być generowany z Planu produkcji: ZZ, ZW, ZP czy MMW
Dla obiektu Planu produkcji dostępne będą również akcje wspólne dla wszystkich obiektów:
- Uruchomienie innego procesu
- Uruchomienie programu zewnętrznego
- Wykonanie skryptu SQL
- Wysłanie wiadomości e-mail
- Zakończenie całego procesu
Podczas konwersji bazy, czy też tworzenia nowej bazy System dodaje predefiniowany proces przeliczania dokumentu Planu produkcji, aby z niego skorzystać, wystarczy zaznaczyć na nim parametr „Aktywny”. Po włączeniu w Systemie obsługi procesów i uruchomieniu XLWorkAutomat Użytkownik może ustawić na konkretnym dokumencie Planu produkcji zadanie wykonania automatycznego przeliczenia planu w określonym czasie. Aby tego dokonać wystarczy zaznaczyć parametr „Przelicz”, ustalić żądany czas aktualizacji i zlecić jej wykonanie poprzez uruchomienie opcji „Przeliczenie Plan produkcji”.

Obsługa wiązania zasobów z rezerwacjami
Została udostępniona akcja kluczowa w procesach: „Rezerwowanie zasobów”, dostępna dla procesu podpiętego do gałęzi procesów bez obiektu. Akcja ta będzie wyzwalała operację przypisywania zasobów do aktywnych, ważnych rezerwacji sprzedażowych.
Podczas kreacji i konwersji bazy zostanie dodany predefiniowany proces „Przypisywanie zasobów do rezerwacji” z użyciem ww. akcji, który wystarczy aktywować (zaznaczyć checkbox „Aktywny”) oraz uruchomić (wykonać 1-wsze zadanie), aby uzyskać funkcjonalność automatycznego wiązania zasobów za pomocą procesu. Operatorem „wykonującym” zadanie Rezerwowania zasobów w ww. predefiniowanym procesie jest automat, a efekt „cykliczności” i powtarzalności ww. operacji uzyskany został na nim poprzez przypisanie jako czynności „wynikowej” dla Rezerwowania zasobów tej samej czynności. Zmiany częstotliwości powtarzania akcji Użytkownik może dokonać poprzez zmianę parametrów zadania (edycja definicji zadania, sekcja Data realizacji, Termin realizacji).

Akcję kluczową Rezerwowanie zasobów można wykorzystywać także w innych procesach. Parametrami funkcji definiowanymi na zakładce Parametry są:
- Typ dokumentu źródłowego (dokumentu tworzącego rezerwację np. ZS, ZW)
- Magazyn (wartość „Wszystkie”, lub kolejne kody magazynu rezerwacji, dla których ma być wykonana operacja)
- Centrum (wartość Wszystkie, lub kolejne nazwy centrum – właścicieli rezerwacji, dla których ma być wykonana operacja)

Procesy w Produkcji
W systemie Comarch ERP XL udostępniono funkcjonalność procesów dla wybranych operacji wykonywanych w module Produkcja. Dla grupy obiektów: Produkcja, dla istniejących już obiektów: Zlecenie produkcyjne i Harmonogram projektu dodane zostały nowe predefiniowane akcje kluczowe:

- Dodanie zlecenia produkcyjnego – Akcja odpowiada dodaniu, z poziomu interfejsu systemu,
- Planowanie zlecenia produkcyjnego – Akcja odpowiada planowaniu ZP z poziomu interfejsu systemu. Wymaga ona dodatkowej parametryzacji. Na zakładce: Parametry, należy podać odpowiedni numer, oznaczający wybrany sposób planowania zleceń.

- 1024 – Planowanie zgrubne
- 1280 – Planowanie uproszczone
- 1536 – Planowanie szczegółowe
- 1792 – Planowanie wszystkie zasoby
- 2048 – Planowanie całościowe zgrubne
- 2304 – Planowanie całościowe uproszczone
- 2560 – Planowanie całościowe szczegółowe
- 2816 – Planowanie całościowe wszystkie zasoby
Przeplanowanie zlecenia produkcyjnego – Akcja odpowiada przeplanowaniu ZP z poziomu interfejsu systemu. Akcja ta wymaga dodatkowej parametryzacji. Na zakładce: Parametry, na definicji tej akcji, należy podać odpowiedni numer, oznaczający wybrany sposób przeplanowania zleceń:
- 4096 – Przeplanowanie zgrubne
- 4352 – Przeplanowywanie uproszczone
- 4608 – Przeplanowywanie szczegółowe
- 4864 – Przeplanowywanie wszystkie zasoby
- 8192 – Przeplanowywanie konfliktów zgrubne
- 8448 – Przeplanowywanie konfliktów uproszczone
- 8704 – Przeplanowywanie konfliktów szczegółowe
- 8960 – Przeplanowywanie konfliktów wszystkie zasoby
- 16896 – Dobierz zasoby szczegółowo
- 17152 – Dobierz zasoby wszystkie
Aktualizacja rezerwacji - Akcja odpowiada dostępnej z poziomu interfejsu systemu, funkcji: Aktualizacja rezerwacji
Realizacja zlecenia produkcyjnego - Akcja odpowiada wykonaniu realizacji całego dokumentu ZP.
Generowanie dokumentów ze zlecenia produkcyjnego - za pomocą akcji możliwe będzie automatyczne wygenerowanie z ZP dokumentów RW lub PW. Akcja wymaga dodatkowej parametryzacji. Na zakładce: Parametry, na definicji tej akcji, należy podać, jaki rodzaj dokumentu ma być generowany za pomocą akcji:
- RW 1 – parametr będzie oznaczał generowanie RW z planu
- RW – parametr będzie oznaczał generowanie RW
- PW – parametr będzie oznaczał generowanie PW
Rozliczanie zlecenia produkcyjnego - Akcja odpowiada funkcji: Rozliczanie zleceń, dostępnej z poziomu interfejsu systemu.
Zamykanie zlecenia produkcyjnego - Akcja odpowiada zamknięciu ZP z poziomu interfejsu systemu. Akcja ta wymaga dodatkowej parametryzacji. Na zakładce: Parametry, na definicji tej akcji należy podać odpowiedni numer, oznaczający wybrany sposób zamykania zleceń:
- 7 – Zamknięcie zlecenia
- 8 – Zamknięcie niezrealizowanego zlecenia
- 9 – Zamknięcie bez rozliczenia
- 10 – Zamknięcie niezrealizowanego zlecenia bez rozliczenia
Uwaga! Dla obiektu : Harmonogram operacji, wprowadzono analogicznie, jak ww. akcje kluczowe. Dodatkowo udostępniono w systemie predefiniowane definicje procesów, które mogą stanowić wzór do budowania nowych procesów w Produkcji:

Od wersji 2018.1 w definicji procesów, do obiektu: Plan produkcji, dodano nową akcję kluczową: Generowanie rekomendacji na podstawie wzorca.
Akcja ta odpowiada operacji generowania rekomendacji na podstawie wzorca i jest ona parametryzowana. W oknie definicji Akcji, na zakładce [Parametry], należy podać Id wzorca, na podstawie którego mają być generowane rekomendacje. Jeśli nie zostanie wskazany nr Id wzorca, wówczas rekomendacje będą generowane na podstawie wzorca domyślnego.
Dodatkowo, dla grupy obiektów: Produkcja, w definicji procesów, wprowadzono nowe obiekty: Rekomendacja do produkcji i Rekomendacja do zakupu ze standardowymi akcjami: Uruchomienie innego procesu, Uruchomienie programu zewnętrznego, Wykonanie skryptu SQL, Wysłanie wiadomości e-mail, Zakończenie całego procesu.
Procesy na AWD i ZWM
Od wersji 2018.1 udostępniono funkcjonalność procesów dla dokumentów magazynowych: AWD, ZWM.
Do nowego obiektu poza standardowymi udostępniono nowe akcje kluczowe:
- Zatwierdzenie dokumentu magazynowego – akcja odpowiada odznaczeniu parametru Do bufora i zapisaniu dokumentu AWD
- Realizacja dokumentu magazynowego – akcja odpowiada dodaniu, z poziomu interfejsu systemu, realizacji dla pozycji na dokumencie AWD
- Zamykanie dokumentu magazynowego – akcja odpowiada zaznaczeniu parametru Zamknięte i zapisaniu dokumentu AWD
Akcje jw. przy wskazaniu na dokumencie magazynu z włączoną obsługą WMS, operują na dokumentach (W)AWD, (W)ZWM. Dla tychże dokumentów, ze względu na inną ich koncepcje, procesy powinny być trochę inaczej definiowane. Należy tu mieć na uwadze m.in.:
- Zatwierdzenie dokumentu magazynowego – akcja odpowiada zaznaczeniu parametru Realizuj w WMS i zapisaniu dokumentu
- Realizacja dokumentu magazynowego – akcja nie dotyczy dokumentów WMS
- Zamykanie dokumentu magazynowego – akcja odpowiada zaznaczeniu parametru Zamknięte i zapisaniu dokumentu; przy czym zachowana zostaje blokada zamknięcia dla dokumentu zatwierdzonego, tzn. przekazanego do realizacji w WMS
Generowanie spinacza
W wersji 2019.0 lista akcji kluczowych w Procesach została wzbogacona o akcję Generowanie spinacza, pozwalającą na utworzenie faktury typu spinacz z wydania zewnętrznego/przyjęcia zewnętrznego. Akcja ta jest alternatywą dla dostępnej już od wielu wersji akcji Dołączenie do spinacza. W przypadku akcji dołączenia do spinacza, jak sama nazwa akcji wskazuje System dołącza dokument do niezatwierdzonego spinacza, dopiero jeżeli takowego nie ma w Systemie, wówczas tworzy nowy spinacz. W przypadku akcji generowania spinacza System zawsze tworzy nowy spinacz dla danego dokumentu wydania/przyjęcia. Rodzaj spinacza, który ma zostać utworzony w tej akcji należy zdefiniować na zakładce [Parametry] tej akcji, przykładowo będzie to dla WZ:
- (s)FS – spinacz elementów
- FS – spinacz nagłówkowy
Generowanie dokumentów magazynowych w procesach w oparciu o parametry
W procesach dostępnych dla dokumentów handlowych do akcji kluczowej służącej do generowania dokumentów magazynowych, została dodana zakładka [Parametry], gdzie należy określić, jaki typ dokumentu w danym kroku powinien powstać, czyli czy ma to być PM/WM, AWD/ZWM czy ich odpowiedniki dla magazynów WMS. Jest to działanie analogiczne do generowania dokumentów handlowych w procesach, gdzie na definicji akcji jest możliwość ustawienia za pomocą parametrów, czy generowanym dokumentem ma być np. FZ czy PZ.
Oczywiście nadal zachowana jest zasada, że dla danej konfiguracji w Systemie nie będzie możliwe utworzenie np. dokumentów WM/PM na magazyny WMS, więc użytkownicy powinni odpowiednio zdefiniować swój proces warunkując wykonanie danego zadania od rodzaju magazynu na dokumencie źródłowym.
W konwersji dotychczasowych procesów, w których występuje zadania generowania dokumentów magazynowych parametry zostały ustawione tak, aby zachowane było dotychczasowe działanie Systemu. Oznacza to, że symbole dokumentów uzupełnione zostaną zależnie od typu dokumentów źródłowych, dla których akcja została dodana:
-
- Dokumenty handlowe przychodu – pojawią się symbole: PM, AWD, WM, ZWM
- Dokumenty handlowe rozchodu – pojawią się symbole: WM, ZWM, PM, AWD
Jako pierwsze zostaną ustawione symbole dokumentów PM i WM, ponieważ dotychczas to one były generowane w akcjach ręcznych lub automatycznych, więc zachowane zostanie dotychczasowe działanie dla istniejących procesów.
Należy pamiętać o tym, że ustawienie w definicji procesu określonego parametru wpływa również na inne operacje w Systemie, jak opisano poniżej.
- Dla operacji ręcznego generowania dokumentów magazynowych z handlowych z listy dokumentów (czyli przycisk pod listą lub menu kontekstowe) sprawdzane jest prawo operatora do wykonania zadania uwzględniając informacje z zakładki [Parametry]. Czyli aby operator przypisany do procesu mógł utworzyć wybrany przez siebie dokument, to na tej zakładce musi być przypisany jego symbol.
- Dla operacji automatycznego generowania dokumentów magazynowych z handlowych przy zatwierdzaniu handlowego przez operatora przypisanego do zadania w procesie, sprawdzane są zapisy na zakładce [Parametry] i następuje próba wygenerowania dokument o symbolu, który jest pierwszy na liście. Tutaj będzie więc różnica w stosunku do obecnego działania, w którym generowanie zawsze było wykonywane na podstawie typu dokumentu ustalanego zgodnie z konfiguracją Systemu. Należy więc sprawdzić definicje istniejących procesów i ewentualnie przedefiniować je tak, aby ustalić w odpowiednich miejscach właściwe symbole dokumentów. Bez tej zmiany może okazać się, że utworzenie dokumentu magazynowego się nie powiedzie.
W bazie są dwa rodzaje magazynów: zwykłe i WMS. Chcemy, aby dla magazynów zwykłych generowały się dokumenty PM lub WM, ale dla magazynów WMS też powstawały odpowiednie dla nich dokumenty magazynowe. Gdyby do kroku procesu, w którym jest generowany dokument magazynowy dodać w parametrach: WM,ZWM, to nie utworzy się dokument magazynowy dla magazynów WMS. Jeśli parametry zapiszemy w odwrotnej kolejności: ZWM,WM, to nie utworzy się dokument magazynowy WM dla magazynów zwykłych. Konieczne jest więc dodanie do czynności procesu warunku na rodzaj magazynu.
Należy wiec zdefiniować kolejne kroki procesu, np:
- Dodanie dokumentu
- Potwierdzenie dokumentu, po którym ma nastąpić generowanie dokumentu magazynowego, więc tutaj musi zostać dodany warunek na rodzaj magazynu i w zależności od niego będzie wykonany jeden z poniższych kroków:
- Wygenerowanie dokumentu magazynowego z parametrem WM
- Wygenerowanie dokumentu magazynowego z parametrem ZWM.

- Podczas wykonywania zadania generowania dokumentów magazynowych jako realizacja zadania ze skrzynki pracownika lub poprzez XLWork Automat wybierany do generowania jest zawsze dokument podany jako pierwszy na zakładce [Parametry].
Szczególnym przypadkiem jest generowanie dokumentów magazynowych, jeśli na źródłowym dokumencie handlowym są różne magazyny. W takich sytuacjach System będzie dążył do wygenerowania w jednym zadaniu wszystkich dokumentów magazynowych możliwych do utworzenia i dopiero wtedy zadanie zostanie uznane za wykonane. Jeśli np. z powodu braku ilości na magazynie nie powstanie dokument do jakichś pozycji, ale przy generowaniu zostanie utworzony chociaż jeden dokument, to zadanie trafi do wykonanych. A tylko wtedy, gdy nie będzie możliwe utworzenie żadnego dokumentu, to będzie ono nadal do wykonania. Mogą tu wystąpić następujące scenariusze:
- Źródłowym dokumentem jest dokument handlowy z pozycjami na różne magazyny i zadanie z czynnością Generowanie dokumentu magazynowego wykonywane jest ze Skrzynki pracownika lub poprzez XLWork Automat. Wówczas powstaną dokumenty zgodnie z ustawionymi parametrami:
- Tylko parametr PM lub WM – utworzą się tylko dokumenty PM lub WM na zwykłe magazyny;
- Tylko parametr AWD lub ZWM – utworzą się dokumenty AWD lub ZWM na zwykłe magazyny i dokumenty (W)AWD lub (W)ZWM na magazyny WMS;
- Parametry PM,AWD lub WM,ZWM – tutaj będzie decydowała kolejność wpisanych dokumentów, czyli przy takim zapisie utworzą się dokumenty PM lub WM na zwykłe magazyny, ale nie utworzą się dokumenty (W)AWD lub (W)ZWM na magazyny WMS; przy odwrotnej kolejności parametrów utworzą się dokumenty (W)AWD lub (W)ZWM na magazyny WMS, ale nie utworzą się dokumenty PM lub WM na zwykłe magazyny. Żeby powstały dokumenty PM i (W)AWD lub WM i (W)ZWM na wszystkie pozycje, to muszą być dwa osobne zadania w procesie: jeden na dokumenty PM lub WM, a potem warunek na magazyn WMS i do niego zadanie z parametrami AWD lub ZWM, czyli analogicznie jak w powyższym przykładzie.
- Parametry AWD,PM lub ZWM,WM – utworzą się dokumenty AWD lub ZWM na zwykłe magazyny i dokumenty (W)AWD lub (W)ZWM na magazyny WMS.
- Jeśli źródłowym dokumentem jest dokument handlowy, na którym znajdują się pozycje na różne magazyny, to przy zatwierdzaniu takiego dokumentu, jeśli mają być automatycznie generowane dokumenty magazynowe nastąpi próba ich tworzenia zgodnie ze standardem, czyli:
- Jeśli w konfiguracji jest włączony parametr Obsługa AWD/ZWM, to będą się tworzyły dokumenty AWD lub ZWM na zwykłe magazyny i dokumenty (W)AWD lub (W)ZWM na magazyny WMS, pod warunkiem, że na zakładce [Parametry] w procesie będzie dodany symbol AWD lub ZWM (bez względu, na którym miejscu zostanie wpisany). W przeciwnym razie będzie błąd procesu związany z brakiem praw operatora.
- Jeśli w konfiguracji nie jest włączony parametr Obsługa AWD/ZWM, to będą się tworzyły dokumenty PM/WM na zwykłe magazyny, pod warunkiem, że na zakładce [Parametry] w procesie będzie dodany symbol PM lub WM (bez względu, na którym miejscu zostanie wpisany).
Proces jako usługa
Od wersji 2017.0 działa mechanizm, który będzie tworzył działającą usługę XLWFLService samodzielnie przez aplikację.
Służy do tego parametr Obsługa procesów za pomocą usługi. Warunkiem jest aby Operator Systemu Operacyjnego Windows miał uprawnienia do logowania w trybie usługi i pracy w trybie wsadowym. Podczas tworzenia usługi moduł musi być uruchomiony jako administrator (prawy przycisk myszy > "Uruchom jako administrator").


Graficzna prezentacja definicji procesu
Od wersji 2019.0 możliwa jest graficzna prezentacja procesu. Takie wyświetlenie procesu wpłynie na czytelność
i pozwoli zweryfikować poprawność jego definicji.
Na formatkach związanych z procesami jest dostępny przycisk umożliwiający podgląd graficzny wykresu.
Podgląd graficzny wykresu umożliwia:
- wyświetlanie drzewa procesu czyli zadania powiązane czynnościami/akcjami do ich wykonania
- wyświetlanie informacji kontekstowych dla zadania procesu – akcje możliwe do wykonania, opiekunowie zadania
- wyświetlanie informacji kontekstowych dla czynności (akcji procesu)
- dowolne przemieszczenie składowych procesu wg potrzeb Operatora
- eksport układu do pliku
- jednoczesną prezentację powiązanych procesów – połączonych za pomocą akcji Uruchomienie innego procesu

Graf zawiera dwie główne sekcje:
- Główną część, w której wyświetlony jest diagram procesu
- Sekcję informacyjną, po prawej stronie okna, w której wyświetlane są kontekstowo informacje dla elementu procesu na zaznaczonego na diagramie.
Dla wyświetlania elementów procesu przyjęto następujące zasady domyślne:
- W kolorze zielonym – są wyświetlane: początek i koniec procesu
- W kolorze niebieskim – są wyświetlane zadania w definicji procesu
- W kolorze szarym – wyświetlane są czynności do wykonania w ramach procesu
- W kolorze pomarańczowym – wyświetlane są czynności, uruchamiające kolejny proces
- Podświetlenie na żółto – stosowane jest po zaznaczeniu w prawej sekcji odpowiadającego mu elementu procesu
Domyślną kolorystykę można dowolnie modyfikować za pomocą panelu: Wybór kolorów, znajdującego się w dolnej części diagramu.
Obsługa operacji KSeF w Procesach
Od wersji 2024.0 komunikacja z KSeF została obsłużona w definiowanych Procesach. Za ich pomocą można dokonać:
- wysyłki faktury do KSeF
- pobrania UPO
- importu faktur zakupu z KSeF
Jak w przypadku każdej metody komunikacji z KSeF, również w Procesach do dokonania ww. operacji konieczne jest uwierzytelnienie w KSeF. W przypadku Procesu uruchomionego w trybie wsadowym jedynym narzędziem uwierzytelnienie jest token. Uwierzytelnienie odbędzie się więc wyłącznie, jeżeli Operator ma włączone prawo do używania tokena i token został przypisany na pieczątce firmy.
W przypadku Procesów działających w trybie interakcyjnym uwierzytelnianie odbywa się w sposób standardowy tj., jeżeli Operator ma włączone prawo do używania tokena, wówczas na podstawie tokena z pieczątki firmy, jeżeli Operator nie ma tego prawa, wówczas za pomocą wskazanego przez niego certyfikatu.
Obsługa wysyłki faktur oraz pobrania UPO w Procesach
Lista akcji kluczowych definiowalnych procesów została wzbogacona o dwie nowe akcje:
- Wysłanie dokumentu do KSeF
- Pobranie UPO z KSeF
Ww. akcje dostępne są dla dokumentów, które podlegają wysyłce do KSeF, a więc dla faktur sprzedaży, faktur eksportowych, faktur zaliczkowych sprzedaży oraz korekt tych dokumentów.

Warunkowa wysyłka faktur do KSeF
Użytkownicy, którzy rejestrują zarówno faktury podlegające wysyłce do KSeF jak i takie, które rejestrowane są poza systemem KSeF mogą korzystać z akcji wysyłania faktury w sposób warunkowy. Poniżej umieszczono propozycje definicji procesu na okoliczność ww. scenariuszy:
- Propozycja nr 1:
- Zdefiniowanie procesu: Dodanie FS- Potwierdzenie FS- Wysłanie FS do KSeF – Koniec
- W procesie jw. w definicji zadania Wysłanie do KSeF dodanie warunku j.n., aby zadanie to było wykonywane wyłącznie dla FS z Trn_KSeFWyslij=1: select @Wynik = TrN_KSeFWyslij from CDN.TraNag where TrN_GIDNumer = @ObiNumer

- Propozycja nr 2:
- Na formatce czynności Potwierdzanie dokumentu handlowego” dodać Status wynikowy czynności z warunkiem na Trn_KSeFWyslij=1, przy którym jest przejście do zadania Wysłanie dokumentu do KSeF

Akcja pobrania UPO
Podczas akcji pobrania UPO wywołanej w kontekście konkretnego dokumentu System pobiera UPO dla tego dokumentu oraz innych dokumentów wysłanych w ramach danej sesji KSeF, a co za tym idzie wykonuje w ten sposób również zadania pobrania UPO dla tych pozostałych faktur, jeżeli takowe zostały wygenerowane i jeżeli Operator ten jest opiekunem takich zadań.
W ramach sesji XXX wysłano do KSeF: FS-1; FS-6, FS-12, FSE-15; FSL-16. Zgodnie z definicją procesu wygenerowane zostały zadania j.n. których opiekunem jest operator OPE_1 i Automat: - Zad1: Pobranie UPO dla FS-1 - Zad2: Pobranie UPO dla FS-6 - Zad3: Pobranie UPO dla FS-12 - Zad4: Pobranie UPO dla FSE-15 - Zad5: Pobranie UPO dla FSL-16 Operator OPE_1(lub Automat) wykonuje zadanie Zad3, w wyniku czego System pobiera UPO do wszystkich ww. dokumentów, a co za tym idzie wszystkie ww. zadania zostają wykonane.
Obsługa pobierania faktur z KSeF
Dodana została akcja kluczowa Pobieranie faktur z KSeF, dostępna dla procesów definiowanych w gałęzi Inne procesy/Proces bez obiektu. Za pomocą tej akcji można dokonać importu z KSeF faktur, na których Nabywcą jest Firma będąca Użytkownikiem Systemu. Operacja dokonywana jest wg zasad jak dla opcji Nowe dokonywanej z interfejsu, tj. System importuje faktury z datą przyjęcia w KSeF równą i większą od największej z dat dotąd zaimportowanych dokumentów, a jeżeli dotąd takiego importu nie dokonano, wówczas z datą przyjęcia w KSeF należącą do bieżącego miesiąca i miesiąca go poprzedzającego.
Podczas kreacji i konwersji bazy System dodaje predefiniowany proces, służący do dokonywania takiego importu Aby z takiego procesu skorzystać wystarczy go aktywować, włączając parametr Aktywny. Jeżeli Użytkownik zechce go zmodyfikować zmieniając np. godzinę wykonywania czynności wystarczy takie proces wyeksportować, a następnie zaimportować i na tak utworzonym nowym procesie dowolnie zmieniać jego parametry.

Ww. akcja Pobieranie faktur z KSeF traktowana jest pod kątem prawa do jej wykonania w standardowy sposób tj., jeżeli aktywny jest proces z akcją pobrania faktur z KSeF, wówczas System kontroluje, aby Użytkownik inny niż przypisany do takiej akcji nie mógł wykonać operacji Import/Nowe, czy to poprzez próbę wykonania zadania procesu, czy to opcją na liście faktur zakupu z KSeF. Dla akcji importu Za okres oraz importu konkretnego numeru KSeF operacja nie jest blokowana. Jako akcja procesu Pobierania faktur z KSeF rozumiana jest wyłącznie operacja Nowe. Jeżeli więc w Firmie uruchomiony jest ww. proces i dany Operator ma mieć możliwość wykonywania operacji importu/nowe, wówczas Operatora tego należy dodać do aktywnego procesu pobierania faktur jako wykonującego tą czynność.
Jeżeli utworzone zostało zadanie Pobieranie faktur z KSeF na konkretny dzień/godzinę i uprawniony do tego Operator dokona operacji import/nowe przed tą datą/godziną, wówczas zadanie procesu nadal pozostaje do wykonania. Dzięki temu operacja importu dokonywana jest automatycznie o określonej godzinie, nawet, jeżeli taka operacja została wykonywana przez jakiegoś Użytkownika w trakcie dnia. Jeżeli zaś Operator wykona zadanie procesu w danym terminie, czy też po nim, wówczas zadanie procesu zostaje wykonane i pojawia się kolejne np. na kolejny dzień i określoną godzinę, jeżeli tak ten proces zdefiniowano.
XL001 - Parametry dynamiczne
Wykorzystanie parametrów dynamicznych
Parametry dynamiczne to zmienne, zdefiniowane przez Użytkownika, wykorzystywane w trakcie pracy z programem poprzez ich wstawienie w definicje zmiennych. W zależności od rodzaju tekstu, którym definiowane są parametry istnieją parametry dynamiczne:
- Filtrów (tekstem jest najczęściej fragment pewnej klauzuli: WHERE)
- Wykresów i Szybkich raportów (tekstem jest treść zapytania lub parametrów graficznych definicji wykresu)
- Wydruków (parametry dynamiczne Runtimes przekazywane do wydruku)
Składnia parametrów dynamicznych
Uwagi ogólne
Ogólna składnia parametru dynamicznego jest następująca:
?@[H]Picture[(_Q|_NQ)]|[Nazwa|]Prompt:Default[@?] (PD) albo ?@EOL (PD) albo ?@ABC(‘Tekst’) (PD) gdzie: @[H]Picture - format parametru. Jeśli w formacie zostanie użyty opcjonalny przełącznik ukrycia parametru (H), wówczas kontrolka odpowiadająca parametrowi nie jest kreowana, a wartość parametru pozostaje stała (dziedziczona lub Default - owa). Przełącznik ukrycia parametru H jest dostępny zawsze dla wszystkich formatów (dla uproszczenia – w dokumencie będzie on pomijany).Dostępne formaty
- Standardowe (predefiniowane) formaty Clarionowe (np. @S20, @N-14.2, @N3, @D17, @T1,…)
- Dodatkowe formaty, zdefiniowane specjalnie dla obsługi parametrów dynamicznych:
Elementy składni
- Nazwa – kod, po którym klasa identyfikuje i wiąże parametr (np. rozpoznaje, która dana z kolejki wynikowej wykresu / zmienna dynamiczna z aplikacji odpowiada temu parametrowi). Niedozwolonymi znakami w nazwie są pipe (separator nazwy od promptu) i dwukropek (separator promptu od wartości).
- Prompt – prompt pojawiający się przy kreowanych dynamicznie kontrolkach parametrów.Niedozwolonymi znakami w prompcie są pipe (separator nazwy od promptu) i dwukropek (separator promptu od wartości). Można natomiast używać znaku & (akcelerator).
- Default – domyślna (początkowa) wartość parametru (w przypadku parametrów posiadających sekwencję zakończenia @? można nie stosować otaczających stringowy Default ciapek). Jeśli Default nie zostanie podany – klasa przyjmie jego wartość jako pustą (0 lub ”, w zależności od typu parametru, określonego przez Picture). W wartości domyślnej można używać wyrażeń. Nie można natomiast stosować odwołań do parametrów dynamicznych (brak możliwości zagnieżdżania (z jednym wyjątkiem, opisanym przy omawianiu formatu lookupu)).
- Składnia typu: ?@EOL, służy do wstawienia w danym miejscu pustej linii.
Opcjonalna sekwencja zakończenia parametru: @?
W przypadku braku sekwencji zakończenia parametru (@?) należało przyjąć jakieś inne kryterium zakończenia. Kryterium to jest następujące:
Jako koniec parametru dynamicznego w przypadku braku sekwencji zakończenia przyjmujemy:
- Znak poprzedzający pierwsze wystąpienie któregokolwiek z poniższych znaków (sekwencji):
- koniec tekstu. (SZ 2)
Modyfikatory otaczania apostrofami _Q i _NQ
Wymuszają otaczanie (_Q) lub nieotaczanie (_NQ) wstawianej wartości parametru apostrofami.
Jeśli parametr jest stringowy (@Picture=@S...) – jego wartość przy wstawianiu zostaje domyślnie otoczona apostrofami. Chcąc z tego zrezygnować używamy modyfikatora _NQ (użycie w tym przypadku modyfikatora _Q jest ignorowane).
Jeśli parametr jest niestringowy (@Picture<>@S...) – jego wartość przy wstawianiu nie zostaje domyślnie otoczona apostrofami. Chcąc wymusić otoczenie apostrofami takiego parametru używamy modyfikatora _Q (użycie w tym przypadku modyfikatora _NQ jest ignorowane).
Wstawianie pustych linii pomiędzy parametrami
Jeśli chcemy wstawić linię przerwy pomiędzy kontrolkami parametrów – można w tym celu zadeklarować pomiędzy nimi specjalny, ukryty parametr (może być to również parametr, który nie będzie nigdzie indziej używany). Ukrycie należy wprowadzić wykorzystując deklarację parametru z opcją ukrycia @H[IDE]. Opcja ukrycia powinna być w tym przypadku bezparametrowa (@HIDE()) lub zawierać wyrażenie ewaluujące się zawsze do prawdy (np. @HIDE(1=1)).
Powyższe rozwiązanie ma wadę w postaci pojawiania się na moment kontrolki parametru a także ze względu na konieczność wpisywania członów składni, które nigdzie nie są wykorzystywane.
Wobec powyższego rozwiązanie to należy traktować jako przestarzałe.
Aby łatwo wstawić pustą linię, należy zastosować drugi wariant składni (PD), a więc: ?@EOL, jak w przykładzie 3:
Powtarzanie parametrów w tekście
Jeśli w tekście mamy kilka wystąpień parametru o takiej samej nazwie – wszystkie one generują jeden, wspólny parametr (wiązanie po nazwie), którego wartość za każdym razem jest wstawiana we wszystkie miejsca definicji tego parametru. Wartość domyślna parametru jest zczytywana z pierwszego wystąpienia.
Wobec powyższego powtarzanie pełnej definicji parametru w tekście jest zbyteczne. Aby uprościć wstawianie w kilku miejscach tego samego parametru została zaimplementowana składnia tzw. odwołań skróconych.
Zagnieżdżanie parametrów
Niedopuszczalne.Typy parametrów
Każdy parametr ma określony typ. O typie decyduje człon: Picture, definicji parametru. W zależności od typu dla parametru, kreowana jest jedna lub więcej kontrolek, których ustawienia są standardowe (generyczne). Ustawienia te można zmienić, używając odpowiednich opcji w deklaracji parametru (poza obrębem jego definicji).
Typ stringowy S (typ standardowy CW)
Składnia?@[H]S... – gdzie: …, oznacza odpowiedni fragment każdego clarionowego członu: Picture, odpowiedniego typu. Kontrolki
PROMPT + ENTRY Atrybuty standardowe:
- dla kontrolki ENTRY: OVR, LEFT.
- dla kontrolki ENTRY: brak.
Wartość otoczona apostrofami (lub nieotoczona apostrofami, jeśli użyto modyfikatora _NQ).
Typ numeryczny N (typ standardowy CW)
Składnia?@[H]N... – gdzie: …, oznacza odpowiedni fragment każdego clarionowego członu: Picture, odpowiedniego typu. Kontrolki
PROMPT + SPIN Atrybuty standardowe dla kontrolki SPIN: INS, RIGHT, STEP=1, RANGELOW = (9999999999999|0), RANGEHIGH=9999999999999. Akcje standardowe kontrolki SPIN: brak. Rozwinięcie
Wartość (dodatkowo otoczona apostrofami, jeśli użyto modyfikatora _Q).
Typ datownikowy D (typ standardowy CW)
Składnia?@[H]D... – gdzie: …, oznacza odpowiedni fragment każdego clarionowego członu: Picture, odpowiedniego typu. Kontrolki
PROMPT + SPIN Atrybuty standardowe dla kontrolki SPIN: INS, RIGHT, STEP=1, RANGELOW=Date(1,1,1900), RANGEHIGH= Date(1,1,2100). Akcje standardowe kontrolki SPIN:
- Prawy klawisz myszy – wywołanie kalendarza pozwalającego wybrać datę.
W zależności od kontekstu:
- wynik funkcji modyfikatora (np. Long2YMD), jeśli w odwołaniu skróconym użyto modyfikatora (np. _YMD_) albo
- wartość LONG clarionowej daty (dodatkowo otoczona apostrofami jeśli użyto modyfikatora _Q), jeśli wstawiony zostanie parametr do dowolnego tekstu w CDN XL albo do filtra TPS z KF lub parametrów wydruku RW w Optimie, albo
- wynik funkcji Long2DateTimeSQL (lub Long2DateTimeSQLQ jeśli użyto modyfikatora _Q) w pozostałych przypadkach.
Typ czasowy T (typ standardowy CW)
Składnia?@[H]T... – gdzie: …, oznacza odpowiedni fragment każdego clarionowego członu: Picture, odpowiedniego typu. Kontrolki
PROMPT + SPIN Atrybuty standardowe dla kontrolki SPIN: INS, RIGHT, STEP= 60*100(1 min.), RANGELOW=1 (północ), RANGEHIGH=24*3600 (północ). Akcje standardowe kontrolki SPIN: brak. Rozwinięcie
W zależności od kontekstu:
- wynik funkcji modyfikatora (np. Long2HMS) jeśli w odwołaniu skróconym użyto modyfikatora (np. _HMS_), albo
- wartość LONG clarionowego czasu (dodatkowo otoczona apostrofami jeśli użyto modyfikatora_Q)
- wynik funkcji LongT2DateTimeSQL (lub LongT2DateTimeSQLQ jeśli użyto modyfikatora _Q) w pozostałych przypadkach.
Typ dataczasowy DT (typ dodatkowy)
Składnia?@[H]DT Wartość początkowa
Może być podana w postaci YYYY-MM-DD HH:MM:SS lub YYYYMMDDHHMMSS (bez separatorów i spacji). Można też użyć wyrażenia zawierającego zabindowane funkcje; najczęściej używanym w tym kontekście funkcjami są:
- Now()
- DT(_Year, _Month, _Day, _Hour, _Minutes, _Seconds) Zwraca podaną parametrami datę i czas w postaci YYYY-MM-DD HH:MM:SS
- DT(_DateExpr, _IgnoredValue, _IgnoredValue, _Hour, _Minutes, _Seconds)
Ustalony moment: @PAR ?@DT|dt1|Termin &ostateczny:2003-03-25 16:30:00 @? PAR@ lub @PAR ?@DT|dt1|Termin &ostateczny:20030325163000 @? Bieżący moment: @PAR ?@DT|dt2|&Teraz:{Now()} @? PAR@ Ustalony moment: @PAR ?@ DT|dt3|t&3:2003-03-20 18:00:00@? PAR@ Początek m-ca o 7.15: @PAR ?@DT|dtm1|&Pocz.mc.7.15:{DT({DateClwFirstDay('M')}, 0, 0, 7, 15, 0)} @? PAR@ Koniec m-ca o 16.30: @PAR ?@DT|dtm2|&Kon.mc.16.30:{DT({DateClwLastDay('M')}, 0, 0, 16, 30, 0)} @? PAR@ Początek roku, północ: @PAR ?@DT|dty1|&Początek roku:{DT({DateClwFirstDay('Y')}, 0, 0, 0, 0, 0)} @? PAR@ Koniec roku, północ: @PAR ?@DT|dty2|&Koniec roku:{DT({DateClwLastDay('Y')}, 0, 0, 0, 0, 0)} @? PAR@ 15. nast. m-ca o 13.45: @PAR ?@DT|dtx|&15. nast. m-ca o 13.45:{DT({Date(Month(Today())+1, 15, Year(Today()))}, 0, 0, 13, 45, 0)} @? PAR@
PROMPT + ENTRY Atrybuty standardowe kontrolki ENTRY: INS, LEFT, format @P####-##-## ##:##:##P (YYYY-MM-DD HH:MM:SS), INS, RIGHT. Akcje standardowe kontrolki ENTRY:
- Prawy klawisz myszy – wywołanie kalendarza pozwalającego wybrać datę (czas pozostaje bez zmian).
W zależności od kontekstu:
- wartość w formacie YYYY-MM-DD HH:MM:SS (dodatkowo otoczona apostrofami jeśli użyto modyfikatora _Q) jeśli w odwołaniu skróconym użyto modyfikatora (np. _YMDHMS_), albo
- wartość w formacie YYYY-MM-DD HH:MM:SS (dodatkowo otoczona apostrofami jeśli użyto modyfikatora_Q)
- wynik funkcji YMDHMS2DateTimeSQL (lub YMDHMS2DateTimeSQLQ jeśli użyto modyfikatora _Q) w pozostałych przypadkach.
Typ logiczny X (typ dodatkowy)
Składnia?@[H]X Wartość początkowa
Jedna z wartości {0, 1}. Jeśli nie podano – zostanie podstawione 0. Kontrolki
CHECK Atrybuty standardowe kontrolki CHECK: TRUEVALUE=1, FALSEVALUE=0. Akcje standardowe kontrolki CHECK: brak. Rozwinięcie
Wybrana wartość TRUEVALUE lub FALSEVALUE.
Typ wyboru opcji O (typ dodatkowy)
Składnia@O(RadioPrompt:RadioValue{[|rPrompt:rValue]...}) Wartość początkowa
Jedna z wartości: RadioValue - jeśli nie podano, żadne radio nie będzie podświetlone, chyba że któreś z nich ma przypisaną wartość zero lub pustą.
KontrolkiOPTION{RADIO,…} Atrybuty standardowe kontrolki OPTION: BOXED. Akcje standardowe kontrolki OPTION: brak. Rozwinięcie
Wartość wybranej opcji: rValue (dodatkowo otoczona apostrofami, jeśli użyto modyfikatora _Q).
UwagiZaleca się używać list rozwijanych zamiast opcji; jest to podyktowane tym, iż kontrolka opcji zajmuje dużo miejsca na ekranie (w pionie tyle, co dwa inne parametry) i teksty radio są najczęściej obcinane z powodu braku miejsca. Customizować można tylko całą kontrolkę OPTION (zmiana właściwości kontrolek RADIO nie jest przewidywana).
Typ wyboru z listy rozwijanej R (typ dodatkowy)
Składnia@R(Zapytanie) - gdzie Zapytanie musi być tak zbudowane, aby zwracało przynajmniej dwie kolumny. Te dwie pierwsze kolumny mogą być stringowe lub całkowite w układach Str-Int lub Int-Str; najczęściej zwracają one odpowiednio Id i Kod (albo Kod i Id) pobranych rekordów. W dropdownie wyświetlana jest kolumna stringowa, a jako wartość parametru wstawiana jest kolumna całkowita.
Zapytanie nie zawsze musi odwoływać się do jakiegokolwiek obiektu w bazie SQL; dropdowny można z powodzeniem wykorzystywać zamiast „ekranożernych” opcji, np.: @PAR ?@R(SELECT 1, 'Radio1' UNION SELECT 2, 'Radio2' UNION SELECT 3, 'Radio3')|DD|&DD:Radio2 @? PAR@
Wartość początkowaWartość jest postaci: Id|Kod.
Jeśli defaultowy Kod odpowiada istniejącemu w recordsecie rekordowi, wtedy zostanie pobrany odpowiedni Id.
Jeśli defaultowe Id odpowiada istniejącemu w recordsecie rekordowi, wtedy zostanie pobrany odpowiedni Kod.
Jeśli recordset zawiera choć jeden rekord, wtedy zostanie pobrany Kod i Id pierwszego rekordu.
Jeśli jako Kod zostanie podstawiona wartość: brak, wtedy jako Id – wartość pusta.
KontrolkiPROMPT + DROPDOWN Atrybuty standardowe kontrolki DROPDOWN: DROP=5, VSCROLL, LEFT, FROM=kolejka wynikowa recordsetu Zapytania. Akcje standardowe kontrolki DROPDOWN: brak. Rozwinięcie
Jeśli nie użyto modyfikatora – wstawiana jest wartość Id wybranej pozycji rValue (dodatkowo otoczona apostrofami, jeśli użyto modyfikatora _Q). Użycie modyfikatora _RES2_ powoduje wstawienie wartości pola Kod.
Typ wyboru z listy wywoływanej L – LOOKUP (typ dodatkowy)
Składnia@L(s|n)…(Biblioteka.dll|CallLookupFunkcjaU[(ParametryCallLookupFunkcjaU)])
Typ odpowiada lookupowi do funkcji Funkcja z użyciem przesiadki CallLookupFunkcjaU z biblioteki Biblioteka.dll, która to przesiadka dostaje parametry określające typ akcji (‘INIT’|‘BUTTON’|’ENTRY’), ID (zwykłe ID, GID itp.) i kod (string określający obiekt w sposób jednoznaczny, najczęściej kod, akronim itp.) obiektu i na podstawie tych parametrów wywołuje funkcję wyświetlającą odpowiednią listę w trybie lookup a następnie zwraca wartości dotyczące wybranego przez użytkownika rekordu (szczegóły – analogicznie, jak w rozdziale Lookupy).
Wybór s|n decyduje jedynie o formie wyświetlania wartości parametru (ENTRY|SPIN).
Wartość początkowa
Jest postaci Id|Kod. Jeśli defaultowy Kod odpowiada istniejącemu w bazie rekordowi – zostanie pobrany odpowiedni Id, w przeciwnym razie zostanie wykonana próba pobrania rekordu o podanym Id. Jeśli rekord zostanie znaleziony – zostanie podstawiony odpowiedni Kod, jeśli nie – obiekt zasygnalizuje błąd (to przy inicjalizacji kontrolki parametru, natomiast przy akceptacji nieznalezionej wartości wywoła lookup).
Jeśli chcemy z aplikacji wysłać zmienną dynamiczną inicjalizującą wartość początkową parametru typu lookup to możemy, ale nie musimy użyć składni [Id]|[Kod] (z pipem). Podanie samego Id jest też poprawne (klasa wykresów w przypadku stwierdzenia braku pipe-a w wartości związanej z parametrem typu lookup doklei go na koniec wartości, a więc zainicjalizuje parametr wartością:’|Id’).
Opcjonalne parametry ParametryCallLookupFunkcjaU mogą zawierać odwołania do wartości innych parametrów dynamicznych; jest to jedyny obsługiwany przypadek zagnieżdżania parametrów (obsługiwany tylko w wyższej warstwie, tj. przez klasę operującą na kontrolkach). Składnia odwołania jest następująca:
?#[_Q]NazwaInnegoParametru#?.
Przykład: BZp_BRpID=?@Ls30_NQ(OP_KASAI.DLL|CALLLOOKUPBRPLISTA({_Q'BRA,'&?#_QRachunekID#?}))|RaportID|&Raport:0|@?.
PROMPTBUTTON + (ENTRY|SPIN) Atrybuty standardowe kontrolki ENTRY/SPIN: takie, jak dla standardowego typu stringowego/numerycznego. Akcje standardowe kontrolki PROMPTBUTTON:
- Lookup do funkcji lookupowej i podstawienie wartości (Id|Kod) wybranego rekordu
- Akcje standardowe kontrolki ENTRY/SPIN:
- Sprawdzenie poprawności Kod-u/Id; jeśli Kod /Id nie jest poprawny – lookup do funkcji lookupowej i podstawienie wartości (Id|Kod) wybranego rekordu
Jeśli nie użyto modyfikatora – wstawiana jest bieżąca wartość: Id (dodatkowo otoczona apostrofami, jeśli użyto modyfikatora _Q). Użycie modyfikatora _RES2_ powoduje wstawienie wartości pola Kod.
Typ wyboru pliku lub katalogu F - FILE(DIR)DIALOG (typ dodatkowy)
Składnia@Fs…(F[ile]|D[irectory]][,[O[pen]|S[ave]][,Maski][,MaskaDomyslna][,Flagi]) Typ odpowiada dialogowi systemowemu pozwalającemu wybrać plik lub katalog. Kontrolki
PROMPTBUTTON + ENTRY - gdzie znaczenie opcjonalnych atrybutów jest następujące:
- Maski (istotne tylko dla wyboru pliku) składa się z ciągu oddzielonych pipami (|) par Opis typu (maska typu) | Maska typu. Ciąg ten musi być otoczony apostrofami. Jeśli nie podano – przyjmuje się ‘Wszystkie pliki (*.*)|*.*’
- MaskaDomyslna (istotne tylko dla wyboru pliku) odpowiada jednej z wymienionych w atrybucie Maski masek.Jeśli nie podano – przyjmuje się *.*
- Flagi określa tryb otwarcia dialogu, jest to suma bitowa następujących flag:
Jeśli nie podano – przyjmuje się OFN_NOCHANGEDIR + OFN_PATHMUSTEXIST + OFN_FILEMUSTEXIST - dla otwierania pliku, OFN_NOCHANGEDIR + OFN_PATHMUSTEXIST – dla zapisu pliku i OFN_NOCHANGEDIR + OFN_PATHMUSTEXIST dla otwarcia katalogu.
Atrybuty standardowe kontrolki ENTRY:
jak dla standardowego typu stringowego.
Akcje standardowe kontrolki PROMPTBUTTON:
File Dialog lub Dir Dialog
Akcje standardowe kontrolki ENTRY:W trybie wyboru katalogu doklejanie backslash-a na końcu wartości, jeśli wartość kończy się innym znakiem.
Rozwinięcie
Wartość otoczona apostrofami (lub nieotoczona apostrofami, jeśli użyto modyfikatora _NQ). Przykłady
@PAR ?@Fs255(File, Open, 'Pliki tekstowe (*.txt)|*.txt|Wszystkie pliki (*.*)|*.*', *.txt)|FileOpen|&File open:d:\app @? PAR@ @PAR ?@Fs255(, , 'Pliki tekstowe (*.txt)|*.txt|Wszystkie pliki (*.*)|*.*', *.txt)|FileOpen|&File open:d:\app@? @PAR ?@Fs255(File,Save)|FileSave|&File save:d:\app @? PAR@ @PAR ?@Fs255(Dir)|Dir|&Dir:d:\app @? PAR@
Typ pusty EOL – wstawienie wolnego miejsca (typ dodatkowy)
Składnia?@EOL
Parametr tego typu jest interpretowany tylko w procesie wyświetlania kontrolek parametrów dynamicznych. Jego deklaracja jest usuwana z tekstu, a używanie odwołań – niemożliwe (brak nazwy parametru).
Kontrolkibrak Rozwinięcie
Usunięcie deklaracji z tekstu.
Typ tekstowy ABC – wstawienie zadanego tekstu na oknie (typ dodatkowy)
Składnia?@ABC(‘Tekst do wyświetlenia’)
Parametr tego typu jest interpretowany tylko w procesie wyświetlania kontrolek parametrów dynamicznych. Jego deklaracja jest usuwana z tekstu, a używanie odwołań – niemożliwe (brak nazwy parametru).
brak Rozwinięcie
Usunięcie deklaracji z tekstu. Uwagi
Jeśli parametr ma być przez całą szerokość panelu – należy umieścić go po lewej stronie, a po prawej stronie (jako sąsiadujący parametr) wstawić parametr EOL.
Przykłady@PAR ?@ABC('To jest tylko taki testowy tekst żeby wypróbować nowy typ parametru dynamicznego (typ ''ABC'').')@? PAR@
Odwołania do parametrów, rozwijanie parametrów
Rozwijanie parametrów, to wstawianie ich aktualnych wartości w miejsce odwołań do tych parametrów. Istnieją dwa rodzaje odwołań do parametru:- Definicja parametru – umieszczając w tekście kilka definicji tego samego parametru
- Skrócone odwołanie do parametru – składnia skróconego odwołania do parametru:
Zalecanym odwołaniem jest odwołanie skrócone – jest ono prostsze w użyciu a zarazem daje większe możliwości (modyfikatory). Odwołanie pełne (poprzez definicję parametru) jest pozostawione jedynie dla kompatybilności wstecz. Zalecanym sposobem jest utworzenie w jednym miejscu deklaracji wszystkich parametrów, a następnie stosowanie w dowolnych miejscach tylko odwołań skróconych.
Jest to zdecydowanie bardziej ergonomiczny sposób: nie musimy wpisywać wiele razy ustawień parametru, które i tak (poza pierwszym) będą zignorowane. Ustawienia będą oczywiście pobrane z pierwszego wystąpienia parametru o nazwie Nazwa, zgodnego z pełną składnią (PD).
Ponadto tylko w odwołaniach skróconych można stosować modyfikatory. Ograniczeniem tego rozwiązania jest niedopuszczenie spacji w Nazwie parametru.
Ponieważ odwołanie skrócone nie posiada sekwencji zakończenia – jego koniec ustalany jest podobnie, jak w przypadku zwykłego parametru bez sekwencji zakończenia (tj. po Nazwie musi występować jeden ze znaków określonych w zbiorze automatycznej sekwencji zakończenia parametru) z tą różnicą, że terminatorem może być dodatkowo znak ‘{‘.
Deklaracje parametrów
Podana na początku składnia definicji parametru dynamicznego (PD) może zostać umieszczona wewnątrz tzw. deklaracji parametru. Składnia deklaracji parametru dynamicznego jest następująca:
@PAR Definicja Opcje PAR@ (PD-DEKL)gdzie Definicja ¬oznacza definicję parametru, określoną wzorem (PD) natomiast Opcje - ciąg opcji określających dodatkowe własności kontrolki parametru, oddzielonych spacjami:
Opcje = @Opcja([WarunekLubWartosc]) [@Opcja([WarunekLubWartosc])...] (PD-DEKL-O)
gdzie Opcja – jedna z opcji określających dodatkowe własności kontrolki parametru, WarunekLubWartosc - wyrażenie określające warunek zastosowania Opcji (np. dla disablowania) lub wartość opcji (np. wartość tip-u). W tej chwili dostępne są następujące opcje:
Opcja = (D[ISABLE] | H[IDE] | U[PPER] | (RL|RANGE LOW) | (RH|RANGE HIGH) | S[TEP] | T[IP] | M[SG] | COND | CONDMSG) (PD-DEKL-O-O) W WarunekLubWartosc mogą występować wyrażenia. Jeśli WarunekLubWartosc nie zostanie otoczony nawiasami {} – nawiasy te zostaną automatycznie dodane, co spowoduje ewaluację WarunekLubWartosc jako wyrażenia. W przypadku pominięcia WarunekLubWartosc – uznaje się, że dana opcja ma występować bezwarunkowo lub ma wartość pustą. Jeżeli WarunekLubWartosc dotyczy opcji COND to jest on sprawdzany w oparciu o bieżące wartości wszystkich parametrów dynamicznych. Warunek jest sprawdzany:- przy akceptacji kontrolki danego parametru (jeśli walidacja nie powiedzie się – wyświetlany jest komunikat i przywracana jest poprzednia wartość akceptowanego parametru),
- przy akceptacji całego tekstu (np. przed wykonaniem wykresu, zastosowaniem filtra itp.). Jeśli walidacja nie powiedzie się – jest tylko wyświetlany komunikat – błędna wartość jest pozostawiana.
- ustalenie kolejności kontrolek parametrów innej niż kolejność definicji w tekście (bez deklaracji),
- określenie dodatkowych opcji dotyczących kontrolek parametrów (takich, które nie mogą być podane w definicji, np. warunki disablowania i hidowania kontrolek, case,…),
- walidację wartości parametrów (z odpowiednimi komunikatami),
- logiczne zgrupowanie parametrów w jednym miejscu tekstu (np. na początku).
XL017 - Wykorzystanie API ERP XL
Wprowadzenie
System Comarch ERP XL może pracować jako serwer aplikacji udostępniając innym aplikacjom swoje funkcje. Dzięki zaimplementowaniu funkcji API (Application Programming Interface) dowolna aplikacja może w prosty sposób korzystać z mechanizmów, którymi dysponuje Comarch ERP XL. Daje to niespotykaną w rozwiązaniach konkurencyjnych otwartość systemu, pozwalając zarówno na integrację ze standardowymi narzędziami programistycznymi, (np. Microsoft Office i Visual Basic) jak i możliwość integracji z dowolnym systemem informatycznym eksploatowanym w firmie.
System Comarch ERP XL oferuje kilkadziesiąt funkcji pozwalających na zdalną pracę w systemie. Funkcje te są zgromadzone w bibliotece CDN_API.DLL, która jest instalowana łącznie z całym systemem Comarch ERP XL.
Hermetyczność
Duży nacisk przy tworzeniu funkcji XL API położony został na bezpieczeństwo i integralność danych wprowadzanych poprzez te funkcje. Wynikiem tego jest funkcja weryfikująca Użytkownika (XLLogin) oraz wewnętrzny mechanizm Comarch ERP XL kontrolujący poprawność zakończenia działania funkcji API.
Program Comarch ERP XL bardzo dokładnie śledzi wszelkie zmiany w bazie, dokonywane przy pomocy funkcji API. Jeżeli wystąpi błąd, który spowoduje niepoprawne przerwanie działania aplikacji wykorzystującej API, to wszystkie zmiany przez nią wprowadzone, które nie zostały poprawnie zakończone, zostają bezwzględnie wycofane. Warunkiem poprawności zmian wprowadzanych przez API jest albo zakończenie wprowadzania obiektu, który stanowi logiczną całość albo wylogowanie się z systemu funkcją XLLogout.
Wersjonowanie
Ponieważ zakładamy, iż funkcjonalność XL API będzie stale rozszerzana, funkcje te zostały wyposażone w mechanizm wersjonowania. Zapewni on kompatybilność z poprzednimi wersjami API, czyli pozwoli na uniknięcie sytuacji, w których po zmodyfikowaniu (rozszerzeniu) funkcji API Użytkownicy i Integratorzy byliby zmuszeni do wprowadzania odpowiednich zmian w napisanych przez siebie aplikacjach wspomagających.
Ponieważ Comarch ERP XL musi zawsze działać na najnowszych strukturach danych, mechanizm wersjonowania będzie pełnił rolę translatora pomiędzy strukturami API przekazanymi z zewnętrznej aplikacji, a strukturami wykorzystywanymi wewnątrz Comarch ERP XL. Po wartości przekazanej w polu: Wersja, zostanie rozpoznana struktura przekazana do funkcji i dokonane zostanie odpowiednie przepisanie wartości do struktury wewnętrznie wykorzystywanej przez Comarch ERP XL. W momencie, gdy struktury wewnętrzne i zewnętrzne są różne, pola niewykorzystywane zostaną wypełnione domyślnymi wartościami.
Ponieważ struktury danych wykorzystywane przez API służą również do zwracania danych z programu Comarch ERP XL, mechanizm wersjonowania jest mechanizmem działającym w obie strony (dokonana zostanie odpowiednia translacja danych wewnętrznych do struktury przekazywanej na zewnątrz).
Dzięki temu aplikacje napisane w aktualnej wersji API będą działały poprawnie również w kolejnych wersjach Comarch ERP XL, bez potrzeby dokonywania w nich przeróbek (z wyjątkiem sytuacji, w której chcemy rozszerzyć funkcjonalność aplikacji o nowe możliwości Comarch ERP XL API).
Po każdorazowej zmianie struktur, publikowana będzie nowa wersja XL API oznaczona kolejnym numerem. Numer ten będzie nadawany równolegle dla wszystkich struktur API niezależnie od tego, czy została ona zmieniona (np. zmiana tylko w strukturze XLLoginInfo spowoduje zmianę numeru wersji dla wszystkich pozostałych struktur API).
Algorytm postępowania
Typowy scenariusz wykorzystujący funkcje XL-API najprościej jest prześledzić na przykładzie faktury sprzedaży.
Kolejność wywoływanych funkcji jest następująca:
- XLLogin - inicjalizacja bibliotek Comarch ERP XL, login operatora do bazy danych;
- XLNowyDokument – otwarcie nagłówka nowego dokumentu; powoduje zapisanie w bazie danych otwartego nagłówka dokumentu (w omawianym przypadku jest to faktura sprzedaży);
- XLDodajPozycje – dodanie pozycji do faktury; wywołanie tej funkcji może nastąpić wielokrotnie, jeżeli do dokumentu chcemy dopisać więcej niż jedną pozycję;
- XLDodajPlatnosc – zapis płatności do tworzonej faktury; wywołanie tej funkcji jest opcjonalne – jeżeli nie zostanie wywołana, system automatycznie wygeneruje płatność domyślną przy zamykaniu faktury; funkcja może być wołana wielokrotnie – np. w przypadku specyfikacji płatności ratalnej;
- XLZamknijDokument – zakończenie edycji i zamknięcie dokumentu; dokument może być zamykany w trybie normalnym (zapis bez możliwości późniejszej modyfikacji) lub w trybie „do bufora";
- XLLogout – w obrębie jednej sesji otwartej funkcją XLLogin możemy wystawić dowolną ilość dokumentów. Wystawienie każdego z nich powinno zaczynać się wywołaniem funkcji XLNowyDokument i kończyć wywołaniem funkcji XLZamknijDokument.
Przykłady zastosowań
Import dokumentu z pliku .TXT
Jest to szczególnie istotne dla firm wprowadzających bardzo długie transakcje zakupu. Często wraz z towarem jego dostawca dostarcza plik ze specyfikacją dostawy. Korzystając np. z programu Microsoft Excel można napisać prosty program wczytujący taki plik tekstowy do arkusza, a następnie łączący się poprzez XL API z systemem Comarch ERP XL i generujący odpowiedni dokument zakupu.Wsadowy import transakcji
Firmy wielooddziałowe często importują poprzez łącza modemowe transakcje ze swoich oddziałów do centrali, gdzie mają one być następnie wprowadzone do bazy danych. Program importujący transakcje może za pośrednictwem XL API połączyć się z systemem Comarch ERP XL i zapisywać w jego bazie danych zaimportowane z oddziałów dokumenty.Przykładowe kody
Poniżej przedstawione zostały przykładowe kody wykorzystujące XL API.Dadanie ZS z jednym elementem (VBA)
Sub Dodaj_Zamowienie() Dim Sesja As Long Dim Wynik As Long Dim Login As XLLoginInfo_12 Dim IDDokumentu As Long Dim Naglowek As XLDokumentZamNagInfo_12 Dim Element As XLDokumentZamElemInfo_12 Dim Zamkniecie As XLZamkniecieDokumentuZamInfo_12 Sesja = 0 IDDokumentu = 0 With Login.Wersja = 12
.programID = "TestXL"
.Baza = "CDNXL_Test"
.OpeIdent = "ADMIN"
.OpeHaslo = ""
End With Wynik = XLlogin_12(Login, Sesja) If Wynik <> 0 ThenMsgBox("Błąd logowania: " & Wynik)
End If With Naglowek.Wersja = 12
.Typ = 6
.Akronim = "Test"
End With Wynik = XLNowyDokumentZam_12(Sesja, IDDokumentu, Naglowek) If Wynik <> 0 ThenMsgBox("Błąd dodawania nagłówka: " & Wynik)
End If With Element.Wersja = 12
.Ilosc = 10
.CenaKatalogowa = 1
.Towar = "Test"
End With Wynik = XLDodajPozycjeZam_12(IDDokumentu, Element) If Wynik <> 0 ThenMsgBox("Błąd dodawania pozycji: " & Wynik)
End If With Zamkniecie.Wersja = 12
.TrybZamkniecia = 2
End With Wynik = XLZamknijDokumentZam_12(IDDokumentu, Zamkniecie) If Wynik <> 0 ThenMsgBox("Błąd zamykania nagłówka: " & Wynik)
End If Wynik = XLlogout_12(Sesja) If Wynik <> 0 ThenMsgBox("Błąd wylogowania: " & Wynik)
End If
End SubW wersji 2024.1 dokonano zmian w obsłudze funkcji XLDodajPlatnoscZam w zakresie waluty ustalanej na dodawanej płatności zamówienia. Dotychczas, pomimo podawania wartości dla pola Waluta System ustalał każdorazowo na płatności walutę systemową. Niedogodność ta została usunięta i odtąd honorowana jest waluta przekazana do tej funkcji.
Jeżeli Użytkownik nie przekaże waluty do ww. funkcji, wówczas System ustali na płatności walutę zgodną z walutą nagłówka zamówienia.
Przekształcenie ZS do FS (VBA)
Public Sesja As Long Public IDDokumentu As Long Public Wynik As Long Public ElemInfo As XLDokumentElemInfo_12 Sub Zaloguj()Dim Login As XLLoginInfo_12
Sesja = 0
Wynik = 0
With Login
.Wersja = 12
.ProgramId = "X:VBA"
.Baza = "CDN_XL_Test"
.OpeIdent = ""
.OpeHaslo = ""
End With
Wynik = XLLogin_12(Login, Sesja)
If Wynik <> 0 Then
Wynik = MsgBox("Błąd logowania: " & Wynik)
Exit Sub
End If
End Sub Sub DodajNaglowek()Dim NagInfo As XLDokumentNagInfo_12
Worksheets("Nagłówek ZS").Select
Wersja = 12
With NagInfo
.Wersja = 12
.Typ = 4
.ZamFirma = Range("b2").Value
.ZamNumer = Range("c2").Value
.ZamTyp = Range("a2").Value
End With Wynik = 0 Wynik = XLNowyDokument_12(Sesja, IDDokumentu, NagInfo) If Wynik <> 0 ThenWynik = MsgBox("Błąd dodawania nagłówka: " & Wynik)
Exit Sub
End If
End Sub Sub ZamknijNaglowek()Dim ZamkniecieInfo As XLZamkniecieDokumentuInfo_12
ZamkniecieInfo.Wersja = 12
ZamkniecieInfo.Tryb = 0
Wynik = 0
Wynik = XLZamknijDokument_12(IDDokumentu, ZamkniecieInfo)
If Wynik <> 0 Then
Wynik = MsgBox("Błąd zamykania nagłówka: " & Wynik)
Exit Sub
Else
Wynik = MsgBox("Poprawnie dodano dokument WZ.")
End If
End Sub Function Pierwszy_wolny_rekord() As IntegerDim licznik As Long
licznik = 2
Do
If Range("A" & licznik).Value = "" Then
Pierwszy_wolny_rekord = licznik
Exit Function
Else
licznik = licznik + 1
End If
Loop
Stop
End Function Sub DodajPozycje() Worksheets("Pozycja ZS").Select licznik = Pierwszy_wolny_rekord() For x = 2 To licznik - 1With ElemInfo
.Wersja = 12
.ZamFirma = Range("b" & x).Value
.ZamTyp = Range("a" & x).Value
.ZamNumer = Range("c" & x).Value
.ZamLp = Range("d" & x).Value
End With
Wynik = 0
Wynik = XLDodajPozycje_12(IDDokumentu, ElemInfo)
If Wynik <> 0 Then
Wynik = MsgBox("Błąd dodawania pozycji: " & Wynik)
Exit Sub
End If
Next x
End Sub Sub Wyloguj()Wynik = 0
Wynik = XLLogout_12(Sesja)
If Wynik <> 0 Then
Wynik = MsgBox("Błąd wylogowywania: " & Wynik)
Exit Sub
End If
End Sub Sub Przeksztalc_ZS()Zaloguj
DodajNaglowek
DodajPozycje
ZamknijNaglowek
Wyloguj
End SubDodaj Kontrahenta (.NET)
Dla programistów wykorzystujących platformę MS .NET został przygotowany plik assembly, zawierający deklaracje struktur oraz funkcji używanych w XL API. Plik jest dostępny na stronie Comarch (w zasobach Comarch ERP XL). Obecna wersja jest wersją testową, ciągle rozwijaną. Plik należy dołączyć w referencjach projektu (w Microsoft Visual Studio .NET można to zrobić wybierając w menu Project/Add Reference). using System; using cdn_api; namespace XLNowyKontrahent{
class APIDodajKontrahenta
{
[STAThread]
static void Main(string[] args)
{
XLLoginInfo_12 Login = new XLLoginInfo_12();
Login.Wersja = 12;
Login.ProgramID = "API.NET";
Login.Baza = "maciek4n";
Login.OpeIdent = "ADMIN";
Login.OpeHaslo = "";
Int32 SesjaID = 0;
Int32 KontrahentID = 0;
int LoginResult = cdn_api.cdn_api.XLLogin(Login, ref
SesjaID);
if (LoginResult == 0)
{
XLKontrahentInfo_12 Kontrahent = new XLKontrahentInfo_12();
Kontrahent.Wersja = 12;
Kontrahent.Akronim = "Nowy Kontrahent";
int KontrahentResult =
cdn_api.cdn_api.XLNowyKontrahent(SesjaID,ref KontrahentID,Kontrahent);
}
cdn_api.cdn_api.XLLogout(SesjaID);}
}
}Wskazówki do API w C8
Ogólne wytyczne w zakresie konfiguracji
1. Do sprawdzenia są elementy związane z wymogami systemowymi.- Zainstalowany i włączony .NET 4.0.
- Baza systemu ERP XL musi być podpięta dla wszystkich użytkowników komputera
- Musi być wpisany klucz HASP
- Ścieżka do systemu ERP XL musi być w globalnej zmiennej środowiskowej PATH -widzianej przez wszystkich użytkowników systemu, a w szczególności przez ASPNET
- Operator, na którego jest logowanie przez API nie może mieć pustego hasła
- Wymagania związane z użytkownikami Windowsów:
try
{
AttachThreadToClarion(1);
}
catch (Exception){}
} } Powyższe AttachThreadToClarion trzeba wołać przy każdym podnoszeniu nowego wątku. 6. W zmiennej środowiskowej Path powinno być wskazanie w ścieżce na jeden folder z systemem ERP XL (jeżeli jest zawarte odwołanie do innych folderów z wcześniejszymi wersjami należy je usunąć a następnie zapisać zmiany i zrestartować komputer). 7. Trzeba wołać attachthread wg wskazań w dokumentacji (lub jak powyżej) do każdego nowego wątku i nie używać async'a. Jeżeli XLLogin jest wołane w innym wątku niż pozostałe funkcje API to ten wątek musi pozostać aktywny tak długo jak wołamy funkcje API – nie można po jego zakończeniu wołać funkcji API. 8. AttachThreadToClarion woła się 1 raz po utworzeniu wątku .net ( w tymże utworzonym wątku) – czyli 1 raz na wątek (teoretycznie nie ma ograniczenia na ilość wywołań AttachThread). Po wywołaniu AttachThreadToClarion wątek .net i wątek Clariona to jest jeden i ten sam wątek, nie ma więc operacji odwrotnej do AttachThreadToClarion. Jak zakończy się wątek utworzony w .net to zakończy się również w Clarionie i obiekty wątkowe zostaną zwolnione.Plik Konfiguracyjny
Plik konfiguracyjny aplikacji nie pojawia się automatycznie po stworzeniu projektu i należy go dodać samodzielnie. Wystarczy kliknąć prawym przyciskiem myszy na projekt, do którego chcemy dodać plik z konfiguracjami, następnie wybrać opcję "Add New Item" i w oknie wyboru typu pliku zaznaczyć "Application Configuration File". Dalej podaje się jego nazwę - standardowo App.config i potwierdza wybór.Logowanie do API poprzez usługę
Podczas startowania usługi ( np. realizacja zamówienia ZS dokumentem WZ) wołany jest XLLogin, czyli są ustawiane obiekty globalne m.in. kolekcje rodzajów kontrahentów, definicje dokumentów itd. (wszystkie rzeczy konfiguracyjne XL’a). Potem startuje nowy wątek, w którym są wystawiane dokumenty np. WZ. Podczas gdy startuje nowy wątek to część danych konfiguracyjnych kopiuje z wątku głównego (robiona jest kopia żeby wątki się nie blokowały na czas dostępu do danych w wątku głównym). Należy zwrócić uwagę na specyficzne zachowanie usług (jeżeli usługa zawiera metody OnStart, OnStop, AutoResetEvent, WaitOne) – przy jej uruchamianiu wołana jest metoda OnStart (jeśli w niej byłoby umieszczone logowanie do API) to wątek w którym OnStart został wywołany może być za chwilę zakończony, co pociąga za sobą zwolnienie obiektów globalnych ładowanych przy XLLogin. Od tego momentu nowo tworzone wątki generujące np. WZ nie mają skąd skopiować danych konfiguracyjnych. Rozwiązaniem jest w metodzie OnStart uruchomienie nowego wątku, w którym jest logowanie do API i ustawienie po zalogowaniu aby wątek nie zakończył się. Można to zrobić za pomocą statycznego obiektu klasy AutoResetEvent i metody WaitOne. W metodzie OnStop usługi trzeba wtedy zawołać metodę Set na tym obiekcie (po wylogowaniu z API).API a aplikacje działające w oparciu o webserwis
W architekturze serwera opartego o WCF i klienta, problemem dla clariona jest kończenie wątku głównego gdy proces się nie kończy – czyli z punktu widzenia systemu operacyjnego wszystko jest poprawnie, jest wątek główny samej usługi. Wątek ten nie jest jednak związany z clarionem, więc w clarionie dopiero wątek w którym następuje logowanie do API jest wątkiem głównym – po wylogowaniu wątek ten się kończy mimo iż proces nadal działa – czy z punktu widzenia clariona sytuacja niemożliwa do uzyskania – nie ma czegoś takiego jak proces bez żadnego wątku, dlatego tez z tego powodu co jakiś czas zgłaszane mogą być wyjątki. Rozwiązaniem będzie przy starcie usługi wydzielenie jednego wątku, związanie go z clarionem (AttachThread…) i pozostawieniem aktywnym przez cały czas działania usługi. W wątku tym trzeba wywołać od razu XLLogin. I teraz można zrobić od razu XLLogout, lub pozostawić tą sesję aktywną i w niej wystawiać dokumenty z wątków tworzonych na żądanie klientów – będzie szybciej działać. Czyli teraz nie byłoby już wołania XLLogin,XLNowyDokument…, XLLogout za każdym razem, ale jedynie XLNowyDokument z ID sesji ustalonym w wątku pierwszym. Trzeba tak zmodyfikować dodatek, żeby choć jeden wątek procesu był podłączony do wątku clarionowego, tak aby nie było sytuacji, w której proces jest aktywny a żaden wątek nie jest połączony z clarionem. To wymaganie nie dotyczy okresu aktywności przed pierwszym wywołaniem AttachThreadToClarion. Możliwe problemy do weryfikacji:- czy IIS po wylogowaniu z API od razu zamknie wątek czy zostawi w puli na pewien czas
- czy podczas pracy w innym wątku na API IIS nie zamknie takiego zużytego wątku z puli, bo już tam długo tkwił (wtedy zwolnione zostaną obiekty globalne z których może chcieć korzystać pracujący wątek – one pracują w ramach jednego procesu w3wp)
Connection string
Po zmianach w API XLPolaczenie nie zwraca automatycznie danych odnośnie połączenia. Funkcja API zwraca niezbędne dane do połączeń w aplikacji uzupełnione w tabeli cdn.Konfig i Kon_Numer = -137, Kon_Komentarz = ‘ConnectionString’. Od wersji 2019.0 XLPolaczenie zwraca dane z funkcji skalarnej CDN.PodajDodatokwyConnectString – co pozwala na dynamiczną weryfikację połączenia, w przeciwieństwie do stałej danej wpisanej w CDN.Konfig.Debugowanie od wersji XL 2021
Od wersji 2021.0 podłączenie się pod procesy XL debugerem zostało standardowo zablokowane ze względu na zalecenia działu bezpieczeństwa. W celu debugowania należy zastosować pakiet deweloperski dostępny na stronach walidowanych dla partnerów w sekcji dodatki dla wersji XL 2021 ( pliki z pakietu należy wgrać do katalogu XL następnie uruchomić rejestr.bat).Funkcje API wspierające operacje KSeF
W wersji 2024.0 przygotowany został szereg funkcji API, służących do komunikacji z KSeF.
Funkcje API do komunikacji z KSeF | ||
Nazwa funkcji | Obsługa | |
XLKSeFOtworzSesje | Funkcja służąca do nawiązywania sesji KSeF | |
XLKSeFZamknijSesje | Funkcja służąca do zamykania sesji KSeF | |
XLKSeFDodajDokumentyDoWyslania | Funkcje służące do wysyłania faktury/faktur do KSeF. Pierwsza z nich służy do podania listy dokumentów, które mają zostać wysłana, druga zaś do wysyłki tej listy dokumentów | |
XLKSeFWyslijDokumenty | ||
XLKSeFPobierzUPO | Funkcja służąca do pobierania UPO do wskazanej sesji/dokumentu | |
XLKSeFUstalStatusDokumentu | Dodanie rekordu KSeFDokumenty | Funkcje służące do dodawania/modyfikacji/usuwania rekordów tabeli KSeFDokumenty, tj. zapisania w Systemie informacji o: - Dla faktur sprzedaży: o dokonanej wysyłce faktur/pobranym UPO dokonanym poza Systemem Comarch ERP XL - Dla faktur zakupu: o fakturze KSeF na podstawie której zarejestrowano dany dokument zakupu, dla przypadków, kiedy faktury te nie były importowane wprost do Systemu, ale poza nim |
XLKSeFZmienStatusDokumentu | Zmiana rekordu KSeFDokumenty | |
XLKSeFUsunStatusDokumentu | Usunięcie rekordu KSeFDokumenty | |
XLKSeFSpinajZDokumentem | Funkcja służąca do spięcia faktury zaimportowanej z KSeF z dokumentem zakupu zarejestrowanym w Comarch ERP XL | |
XLKSeFRozłaczZDokumentem | Funkcja służąca do rozłączania faktury zaimportowanej z KSeF z dokumentem zakupu zarejestrowanym w Comarch ERP XL | |
XLKSeFPobierzDokumenty | Funkcja służąca do pobrania faktur zakupu z KSeF |
Funkcja służąca do otwierania sesji KSeF
Za pomocą funkcji XLKSeFOtworzSesje Operator może nawiązać sesję KSeF, w ramach której po użyciu kolejnej funkcji API czy to wyśle faktury do KSeF, czy to pobierze UPO. Operator może podać Systemowi informację o sposobie w jaki ma być dokonane uwierzytelnienie w KSeF w następujący sposób:
- Jeżeli Użytkownik wskaże, że ma to być token i poda ten token, wówczas to za jego pomocą dokonane zostanie uwierzytelnienie. Jeżeli token nie zostanie podany, wówczas System dokona uwierzytelnienia za pomocą tokena z pieczątki firmy, o ile Operator na karcie ma włączone używanie tokena, w przeciwnym razie do uwierzytelnienia nie dojdzie, więc i sesja KSeF nie zostanie nawiązania
- Jeżeli Użytkownik wskaże, że uwierzytelnienie ma się odbyć przy użyciu certyfikatu, wówczas System podniesie listę certyfikatów w trybie do wyboru i uwierzytelni za pomocą wskazanego certyfikatu. Będzie to miało miejsce wyłącznie przy trybie interaktywnym pracy Operatora, w przypadku trybu wsadowego uwierzytelnienie się nie uda, więc i sesja KSeF nie zostanie nawiązana
- Jeżeli Użytkownik nie wskaże sposobu uwierzytelnienia, wówczas będzie to oznaczało, że System ma go dokonać wg domyślnych ustawień
- Jeżeli na karcie Operatora włączone jest używanie tokena, wówczas dokonane zostanie uwierzytelnienie tokenem podanym do funkcji API lub tokenem z pieczątki firmy, jeżeli w API go nie podano. Jeżeli token nie zostanie zidentyfikowany, wówczas nastąpi próba uwierzytelniania przy pomocy certyfikatu, ale wyłącznie, jeżeli Użytkownik pracuje w trybie interaktywnym.
- Jeżeli na karcie Operatora wyłączone jest używanie tokena, wówczas nastąpi próba uwierzytelniania przy pomocy certyfikatu, ale wyłącznie, jeżeli Użytkownik pracuje w trybie interaktywnym.
Zachowanie Systemu w zakresie uwierzytelnienia zależne jest dodatkowo od rodzaju sesji, którą nawiązuje Operator (plik wsadowy/wysyłka interaktywna). Nawiązanie sesji wsadowej KSeF możliwe jest wyłącznie przy pomocy certyfikatu.
Funkcja służąca do zamykania sesji KSeF
Udostępniona została funkcja XLKSeFZamknijSesje pozwalająca na zamknięcie danej sesji KSeF. Jeżeli Operator poda numer sesji, wówczas to ona zostanie zamknięta, wywołanie funkcji bez podania numeru sesji będzie zaś oznaczało, że System ma zamknąć sesję utworzoną w XLKSeFOtworzSesje.
Za pomocą tej funkcji można zamknąć dowolną sesję, również innego Operatora, nawiązaną z innego modułu.
Funkcje służące do wysyłania dokumentów do KSeF
Udostępnione zostały funkcje służące do wysyłania faktury/faktur do KSeF. Funkcja XLKSeFDodajDokumentyDoWyslania służy do podania listy dokumentów, które mają zostać wysłane, funkcja XLKSeFWyslijDokumenty zaś do wysyłki tej listy dokumentów.
Aby wysłać dokumenty do KSeF Operator powinien wykonać poniższe działania:
- XLKSeFOtworzSesje – nawiązanie sesji z KSeF
- XLKSeFDodajDokumentyDoWyslania – wskazanie dokumentu/dokumentów do wysłania
- XLKSeFWyslijDokumenty – wysłanie ww. dokumentów do KSeF
- XLKSeFZamknijSesje – zamknięcie ww. sesji KSeF
Funkcja służąca do pobierania UPO
Pobrania UPO można dokonać za pomocą funkcji XLKSeFPobierzUPO. Użytkownik może w niej podać numer sesji, dla której ma zostać pobrane UPO lub GID dokumentu, dla którego ma zostać pobrane UPO. W tym ostatnim przypadku System samodzielnie ustali numer sesji, w ramach której został wysłany podany dokument i pobierze UPO dla tego dokumentu oraz wszystkich pozostałych dokumentów wysłanych w ramach tej sesji.
Aby możliwe było pobranie UPO dla danej sesji, taka sesja musi być zamknięta. Podczas pracy przy użyciu funkcji API System samodzielnie nie dokonuje zamknięcia sesji, dla której wywołane zostanie pobranie UPO, takiego zamknięcia musi dokonać Użytkownik. Z kolei każda komunikacja ze środowiskiem KSeF odbywa się po nawiązaniu sesji KSeF. Powyższe determinuje określony model pracy Użytkownika korzystającego z funkcji API.
- Scenariusz 1: wysłanie faktur do KSeF i pobranie dla nich UPO
- XLKSeFOtworzSesje – nawiązanie sesji z KSeF (sesja S1)
- XLKSeFDodajDokumentyDoWyslania i XLKSeFWyslijDokumenty – wysłanie dokumentu do KSeF (w ramach sesji S1)
- XLKSeFZamknijSesje – zamknięcie ww. sesji S1
- XLKSeFOtworzSesje – nawiązanie sesji z KSeF (S2)
- XLKSeFPobierzUPO – pobranie UPO (dla sesji S1 lub wysłanego dokumentu)
- XLKSeFZamknijSesje – zamknięcie ww. sesji S2
- Scenariusz 2: pobranie UPO dokonywana z opóźnieniem, dokumenty wysłane w ramach sesji S1, sesja S1 zamknięta:
- XLKSeFOtworzSesje – nawiązanie sesji z KSeF (sesja S2)
- XLKSeFPobierzUPO – pobranie UPO (dla sesji S1 lub wysłanego dokumentu)
- XLKSeFZamknijSesje – zamknięcie ww. sesji S2
- Scenariusz 3: pobranie UPO dokonywana z opóźnieniem, dokumenty wysłane w ramach sesji S1, sesja S1 nie jest zamknięta:
- XLKSeFOtworzSesje – nawiązanie sesji z KSeF (sesja S2)
- XLKSeFZamknijSesje – wykonywana dla S1
- XLKSeFPobierzUPO – pobranie UPO (dla sesji S1 lub wysłanego dokumentu)
- XLKSeFZamknijSesje – zamknięcie ww. sesji S2
- Scenariusz 4: Operator zatwierdza dokument z automatyczną jego wysyłką a następnie pobiera dla niego UPO
- Operator loguje się do API a następie dodaje FS i zamyka z XLZamknijDokument: KSeF=4 (System nawiązuje sesję S1, wysyłka w ramach sesji S1)
- XLKSeFZamknijSesje – wywołana dla S1
- XLKSeFPobierzUPO – pobranie UPO (dla sesji S1 lub wysłanego dokumentu)
- XLKSeFZamknijSesje – zamknięcie ww. sesji S2
Funkcje dodawania/zmiany/usuwania rekordu w tabeli KSeFDokumenty
Ideą ww. funkcji jest tworzenie/modyfikacja rekordów tabeli KSeFDokumenty, tj. zapisanie w Systemie informacji j.n.:
- Dla faktur sprzedaży: o dokonanej wysyłce faktur/pobranym UPO dokonanym poza Systemem Comarch ERP XL
- Dla faktur zakupu: o fakturze KSeF na podstawie, której zarejestrowano dany dokument zakupu, dla przypadków, kiedy faktury te nie były importowane wprost do Systemu, ale poza nim
- XLKSeFUstalStatusDokumentu – dodanie rekordu do KSeFDokumenty
- XLKSeFZmienStatusDokumentu – zmiana rekordu KSeFDokumenty
- XLKSeFUsunStatusDokumentu – usunięcie rekordu KSeFDokumenty
Funkcje służące do spinania/rozłączania faktury zakupu z fakturą KSeF
Za pomocą funkcji XLKSeFSpinajZDokumentem Użytkownik może dokonać spięcia faktury zaimportowanej z KSeF z dokumentem zakupu zarejestrowanym w Comarch ERP XL, za pomocą funkcji XLRozłaczZDokumentem zaś dokonać rozłączenia tych obiektów.
Funkcja pobierania faktur z KSeF
Funkcja XLKSeFPobierzDokumenty służy do pobrania faktur zakupu z KSeF. Za jej pomocą Operator może dokonać importu tych faktur, w których Nabywcą jest firma będąca Użytkownikiem Systemu Comarch ERP XL. Import ten może się odbyć według identycznych kryteriów, jak te dostępne z interfejsu tj. można w ten sposób zaimportować fakturę o konkretnym numerze KSeF, faktury zarejestrowane w podanym okresie czasu lub dokonać importu nowych faktur tj. faktur z datą równą i większą od najpóźniejszego z dotąd zaimportowanych dokumentów.
XL133 - Dokumentacja znaczników XML pliku synchronizacyjnego ERP XL - Comarch Mobile
Struktura plików synchronizacyjnych z bazy mobilnej




Sekcja informacyjna (INFOBLOK)
Tabela 1 Sekcja informacyjna i odpowiednik pól w tabelach bazy ERP XLAtrybut | Opis | ERP XL |
<INFOBLOK/> | Sekcja informacyjna | PicoKonfig |
OddzialID | ID oddziału Mobile | PcK_PicoID |
CentrumID | ID centrum będącego oddziałem | PcK_CentrumID |
WersjaPliku | Wersja pliku | |
Kierunek | Kierunek synchronizacji (1 – plik dla oddziału, 2 – plik od oddziału) |
Kontrahenci (KNTI)
Tabela 2 Sekcja z kontrahentami i odpowiednik pól w tabelach bazy ERP XL<KNTI/> | Opis | ERP XL |
<KNT/> | Sekcja z kontrahentami | KntKarty, KntOpisy |
GIDTyp | Identyfikator kontrahenta | Knt_GIDTyp |
GIDNumer | Identyfikator kontrahenta | - |
KnANumer | Identyfikator aktualnego adresu | - |
Adres | Dodatkowe pole adresu | Knt_Adres |
Wojewodztwo | Nazwa województwa | Knt_Wojewodztwo |
Pesel | Pesel kontrahenta | Knt_Pesel |
Akwizytor | Czy kontrahent jest akwizytorem? | Knt_Akwizytor |
PlatnikVAT | Czy kontrahent jest płatnikiem VAT? | Knt_PlatnikVAT |
Status | Status kontrahenta
|
Knt_Status |
Typ | Czy kontrahent jest dostawcą/odbiorcą? 08 – dostawca 16 – odbiorca 24 – dostawco-odbiorca | Knt_Typ |
Oddzialowy | Czy kontrahent został przesłany do oddziału? 0 – NIE, 1 – TAK | Knt_Oddzialowy |
KodP | Kod pocztowy | Knt_KodP |
Miasto | Adres kontrahenta | Knt_Miasto |
Ulica | Adres kontrahenta | Knt_Ulica |
Regon | Nr REGON kontrahenta | Knt_Regon |
Telefon1 | Telefon do biura | Knt_Telefon1 |
Telefon2 | Telefon domowy | Knt_Telefon2 |
Fax | Połączenia telefoniczne | Knt_Fax |
Telex | Połączenia telefoniczne | Knt_Telex |
Adres poczty elektronicznej | Knt_Email | |
Modem | Połączenia telefoniczne | Knt_Modem |
URL | Adres strony w internecie | Knt_URL |
Symbol | Symbol waluty | Knt_Symbol |
Dewizowe | Czy kontrahent dewizowy? | Knt_Dewizowe |
Knt_MSTwrGrupaNumer | Identyfikator grupy towarów dla Comarch Mobile | Knt_MSTwrGrupaNumer |
Nazwa1 | Pierwsza część nazwy kontrahenta | Knt_Nazwa1 |
Nazwa2 | Druga część nazwy kontrahenta | Knt_Nazwa2 |
Nazwa3 | Trzecia część nazwy kontrahenta | Knt_Nazwa3 |
Cena | Rodzaj ceny sprzedaży – domyślny dla dokumentów | Knt_Cena |
FormaPl | Forma płatności (sprzedaż) | Knt_FormaPl |
LimitOkres | Maksymalny okres odroczenia płatności | Knt_LimitOkres |
SposobDostawy | Domyślny sposób dostawy dla kontrahenta w transakcjach | Knt_SposobDostawy |
CechaOpis | Opis przepisywany na dokument | Knt_CechaOpis |
DataUtworzenia | Data utworzenia karty kontrahenta | Knt_DataUtworzenia |
Rodzaj | Rodzaj kontrahenta | Knt_Rodzaj |
Osoba | Domyślna osoba kontrahenta | Knt_Osoba |
Akronim | Skrócona nazwa kontrahenta | Knt_Akronim |
NipE | NIP prezentowany na ekranie | Knt_NipE |
Nip | NIP bez kresek | Knt_Nip |
NipPrefiks | Prefiks numeru NIP | Knt_NipPrefiks |
OpeTyp | Operator zakładający kartę | Knt_OpeTyp |
OpeNumer | Operator zakładający kartę | Knt_OpeNumer |
FrsID | Identyfikator centrum struktury praw | Knt_FrsID |
Opis | Treść opisu karty kontrahenta | KnO_Opis |
Adresy kontrahenta (KNAI)
Tabela 3 Sekcja z adresami kontrahenta i odpowiednik pól w tabelach bazy ERP XL<KNAI/> | Opis | ERP XL |
<KNA/> | Sekcja z adresami kontrahenta | KntAdresy |
GIDTyp | Identyfikator zapisu | KnA_GIDTyp |
GIDNumer | Identyfikator zapisu | - |
Akronim | Skrócona nazwa kontrahenta | KnA_Akronim |
Wysylkowy | Ten adres jest adresem wysyłkowym | KnA_Wysylkowy |
Nazwa1 | Pierwsza część nazwy kontrahenta | KnA_Nazwa1 |
Nazwa2 | Druga część nazwy kontrahenta | KnA_Nazwa2 |
Nazwa3 | Trzecia część nazwy kontrahenta | KnA_Nazwa3 |
KodP | Kod pocztowy | KnA_KodP |
Miasto | Adres kontrahenta | KnA_Miasto |
Ulica | Adres kontrahenta | KnA_Ulica |
Telefon1 | Telefon do biura | KnA_Telefon1 |
Telefon2 | Telefon zastępczy | KnA_Telefon2 |
Fax | Połączenia telefoniczne | KnA_Fax |
Telex | Połączenia telefoniczne | KnA_Telex |
Adres poczty elektronicznej | KnA_Email | |
URL | nieużywane | - |
Modem | Połączenia telefoniczne | KnA_Modem |
LastModL | Data ostatniej modyfikacji lokalnej | KnA_LastModL |
Domyslny | Adres domyslny | KnA_Domyslny |
Nip | Nip bez kresek | KnA_Nip |
NipE | Nip prezentowany na ekranie | KnA_NipE |
NipPrefiks | Prefiks numeru NIP | KnA_NipPrefiks |
Regon | Numer REGON kontrahenta | KnA_Regon |
Osoby kontrahenta (KNSI)
Tabela 4 Sekcja z osobami kontrahenta i odpowiednik pól w tabelach bazy ERP XL<KNSI/> | Opis | ERP XL |
<KNS> | Sekcja z opisami kontrahenta | KntOsoby |
GIDNumer | Identyfikator kontrahenta,z którym zapis jest związany | - |
RolaDecyzyjna | Id roli decyzyjnej osoby ze słownika “rola decyzyjna” | KnS_RolaDecyzyjna |
Stanowisko | Stanowisko zajmowane przez osobę | KnS_Stanowisko |
Notatki | Adnotacje o osobie | KnS_Notatki |
Nazwa | Imię I nazwisko osoby | KnS_Nazwa |
KntLp | Kolejny numer osoby | KnS_KntLp |
Telefon | Telefon prywatny | KnS_Telefon |
Adres poczty elektronicznej | KnS_Email | |
Fax | Połączenia telefoniczne | KnS_Fax |
TelefonK | Numer telefonu komórkowego | KnS_TelefonK |
LastModL | Data i czas ostatniej modyfikacji | KnS_CzasModyfikacji |
Archiwalny | Flaga określająca, czy osoba jest archiwalna | KnS_Archiwalny |
Upowazniona | Czy osoba jest upoważniona do odbioru FA | KnS_Upowazniona |
UpowaznionaZam | Czy osoba jest upoważniona do składania zamówienia | KnS_UpowaznionaZam |
Dzial | Dział, w którym pracuje osoba | KnS_Dzial |
Tytul | Tytuł osoby | KnS_Tytul |
HasloChk | Litery kontrolne hasła | KnS_HasloChk |
HasloOsoby | Hasło osoby | KnS_HasloOsoby |
UpoDoK | Osoba upoważniona do kontaktów | KnS_UpoDoK |
CzyDomyslna | Czy osoba jest domyślna dla kontrahenta? | - |
Atrybuty kontrahenta (ATRI*)
<ATRI/> | Opis | ERP XL |
<ATR> | Sekcja z atrybutami kontrahenta | Atrybuty, AtrybutyWartosci |
Id | ID atrybutu | |
ObiTyp | GID obiektu, do którego przypisany jest atrybut | Atr_ObiTyp |
ObiNumer | GID obiektu, do którego przypisany jest atrybut | - |
ObiLp | GID obiektu, do którego przypisany jest atrybut | Atr_ObiLp |
ObiSubLp | - | - |
AtkId | Id klasy atrybutu | Atr_AtkId |
Modyfikuj | - | |
Wartosc | Wartość atrybutu | Atr_Wartosc |
Załączniki kontrahenta (DABI*)
<DABI/> | Opis | ERP XL |
<DAB> | Sekcja z załącznikami kontrahenta | DaneBinarne |
ZewnetrznyId | Identyfikator załącznika z Comarch Mobile | DAB_ZewnetrznyId |
DAB_Id | ID załącznika w systemie | - |
Id | - |
Zamówienia (ZANI)
Tabela 7 Sekcja z zamówieniami i odpowiednik pól w tabelach bazy ERP XL<ZANI/> | Opis | ERP XL |
<ZAN> | Sekcja z nagłówkami zamówień | ZamNag, ZaNOpisy |
DokumentNr | Numer zamówienia z oddziału | ZaN_ZamRok, ZaN_ZamMiesiac, ZaN_ZamSeria, ZaN_ZamNumer |
GIDTyp | GIDTyp zamówienia | ZaN_GIDTyp |
OpeNumer | Identyfikator operatora wystawiającego | ZaN_OpeNumerW |
GIDNumer | Identyfikator rekordu | - |
OddDokID | Identyfikator dokumentu nadany w oddziale | ZaN_OddDokID |
DataWystawienia | Data wystawienia oferty/zamówienia | ZaN_DataWystawienia |
GodzinaWystawienia | Godzina wystawienia dokumentu | ZaN_GodzinaWystawienia |
Url | url | ZaN_Url |
WgStatusu | ||
Stan | Stan dokumentu Możliwe wartości: Stan_zrealizowane = 21 - maska_archiw + w_realizacji, Stan_odrzucone = 19 - maska_archiw + potwierdzone, Stan_anul_potwierdzone = 35 - maska_anulowane + potwierdzone, Stan_maska_archiw = 16, Stan_maska_anulowane = 32, Stan_w_realizacji = 5, Stan_zaakceptowane = 4, Stan_potwierdzone = 3, Stan_zamowienie = 2, Stan_oferta = 1, Stan_zapytanie = 0. | ZaN_Stan |
Blokuj | ||
Modyfikuj | ||
DokumentObcy | Oznaczenie oferty/zamówienia u kontrahenta | ZaN_DokumentObcy |
RodzajCeny | ||
KntTyp | Identyfikator kontrahenta | ZaN_KntTyp |
KntNumer | Identyfikator kontrahenta | ZaN_KntNumer |
KnDTyp | GID odbiorcy | ZaN_KnDTyp |
KnDNumer | GID odbiorcy | ZaN_KnDNumer |
AdWNumer | Identyfikator adresu wysyłkowego | ZaN_AdWNumer |
KnPTyp | Identyfikator płatnika | ZaN_KnPTyp |
KnPNumer | Identyfikator płatnika | ZaN_KnPNumer |
Rabat | Rabat globalny (% lub kwotowy) | ZaN_Rabat |
FlagaNB | Flaga netto/brutto | ZaN_FlagaNB |
FormaNr | Numer formy płatności 10 – Gotówka 20 – Przelew 30 – Kredyt 40 – Czek 50 – Karta 60 – Inne | ZaN_FormaNr |
TerminPlatnosci | Termin płatności | ZaN_TerminPlatnosci |
Waluta | Symbol waluty | ZaN_Waluta |
WspolnaWaluta | Czy wspólna waluta na zamówieniach | ZaN_WspolnaWaluta |
KursL | Licznik kursu | ZaN_KursL |
KursM | Mianownik kursu | ZaN_KursM |
ZamSeria | Seria zamówienia | ZaN_ZamSeria |
ZamTyp | Typ zamówienia/oferty oferta na zakup (dostawcy), 768 - oferta sprzedaży (nasza), 1152 - zamówienie na zakup (do dostawcy), 1280 - zamówienie sprzedaży (od klienta), 2688 - zapyt. ofert. na zakup, 2816 - zapyt. ofert. na sprzedaż, Powstały w wyniku sklejenia masek: 1024 - zamówienie, 512 - oferta, 2048 - dokument pomocniczy (zapytanie lub potwierdzenie), 256 - na sprzedaż, 128 - na zakup. | ZaN_ZamTyp |
ZamNumer | Numer zamówienia | ZaN_ZamNumer |
ZamRok | Rok zamówienia | ZaN_ZamRok |
ZamMiesiac | Miesiąc zamówienia | ZaN_ZamRok |
Rodzaj | Rodzaj transakcji 0-krajowa; 1-inna zagr., VAT 0%; 2-inna zagr., VAT dowolny; 6-ww dostawa, VAT 0%; 7-ww dostawa, VAT dowolny; 8-ww dostawa trójstronna, VAT 0%; 9-ww dostawa trójstronna, VAT dowolny; 10-ww nabycie, VAT 0%; 11-ww nabycie, VAT dowolny; 12-ww nabycie trójstronne, VAT 0%; 13-ww nabycie trójstronne, VAT dowolny; | ZaN_Rodzaj |
RokMiesiac | Rok i miesiąc dokumentu | ZaN_RokMiesiac |
FrsID | Identyfikator miejsca w strukturze firmy | ZaN_FrsID |
OpiTyp | Opiekun | ZaN_OpiTyp |
OpiNumer | Opiekun | ZaN_OpiNumer |
CechaOpis | Cecha zamówienia | ZaN_CechaOpis |
MagTyp | Identyfikator magazynu domyślnego | ZaN_MagTyp |
MagNumer | Identyfikator magazynu domyślnego | ZaN_MagNumer |
DataRealizacji | Przewidywana data realizacji zamówienia | ZaN_DataRealizacji |
RealWCalosci | Czy realizacja zamówienia ma być tylko w całości | ZaN_RealWCalosci |
Opis | Opis zamówienia | ZnO_Opis |
WtrID | Identyfikator promocj iwartościowej | ZaN_WtrID |
WtrProgId | Identyfikator progu promocji wartościowej | ZaN_WtrProgId |
ExpoNorm | Rodzaj transakcji 0-krajowa; 1-inna zagr., VAT 0%; 2-inna zagr., VAT dowolny; 6-ww dostawa, VAT 0%; 7-ww dostawa, VAT dowolny; 8-ww dostawa trójstronna, VAT 0%; 9-ww dostawa trójstronna, VAT dowolny; 10-ww nabycie, VAT 0%; 11-ww nabycie, VAT dowolny; 12-ww nabycie trójstronne, VAT 0%; 13-ww nabycie trójstronne, VAT dowolny; | ZaN_ExpoNorm |
Elementy zamówienia (ZAEI)
Tabela 8 Sekcja z elementami zamówienia i odpowiednik pól w tabelach bazy ERP XL<ZAEI/> | Opis | ERP XL |
<ZAE> | Sekcja z elementami zamówienia | ZamElem |
GIDTyp | Identyfikator nagłówka | ZaE_GIDTyp |
Pozycja | Pozycja elementu na dokumencie | ZaE_Pozycja |
OddElemId | Id elementu w oddziale | ZaE_OddElemId |
GIdLp | Identyfikator nagłówka | ZaE_GIDLp |
Modyfikuj | ||
DataPotierdzeniaDostawy | Data potwierdzenia przyjęcia dostawy | ZaE_DataPotwierdzeniaDostawy |
MagNumer | Identyfikator magazynu domyślnego | ZaE_MagNumer |
JmZ | Jednostka pomocnicza | ZaE_JmZ |
PrzeliczM | Mianownik przelicznika jednostki miary | ZaE_PrzeliczM |
PrzeliczL | Licznik przelicznika jednostki miary | ZaE_PrzelicznL |
TwrNumer | Identyfikator towaru | ZaE_TwrNumer |
Wartosc | ||
GrupaPod | Grupa podatku (A,B,C itd.) | ZaE_GrupaPod |
StawkaPod | Stawka VAT | ZaE_StawkaPod |
CenaSpr | Cena sprzedaży | ZaE_CenaSpr |
Rabat | Procent udzielonego rabatu | ZaE_Rabat |
CenaKatalogowa | Cena z karty towaru | ZaE_CenaKatalogowa |
Ilosc | Ilość na jaką opiewa transakcja | ZaE_Ilosc |
IloscJmZ | ||
FlagaNB | Flaga NB N – linia od netto B – linia od brutto | ZaE_FlagaNB |
Opis | Opis elementu zamówienia | ZnO_Opis |
Gratis | Rodzaj elementu promocji pakietowej 0 – element, 1 – gratis | ZaE_Gratis |
PakietID | Identyfikator promocji pakietowej | ZaE_PakietID |
PakietProgID | ||
Waluta | Symbol waluty | ZaE_Waluta |
KursL | ZaE_KursL | |
KursM | ZaE_KursM |
Dokumenty handlowe (TRNI)
Tabela 9 Sekcja z dokumentami handlowymi i odpowiednik pól w tabelach bazy ERP XL<TRNI/> | Opis | ERP XL |
<TRN> | Sekcja z nagłówkami dokumentów handlowych | TraNag |
GIDTyp | Identyfikator rekordu 1521 - FZ 1529 - FZK 1489 - PZ 1497 - PZK 1490 - PZI 1498 - PKI 2033 - FS 2041 - FSK 2036 - FW 2044 - FWK 2001 - WZ 2009 - WZK 2034 - PA 2042 - PAK 2035 - RA 2043 - RAK 1968 - TF 2039 - RS 2047 - RSK 2003 - KK 2037 - FSE 2045 - FKE 2005 - WZE 2013 - WKE 1312 - FZL 1824 - FSL 1828 - FEL 1836 - KEL 1616 - RW 1624 - RWK 1617 - PW 1625 - PWK 1603 - MMW 1604 - MMP 1600 - MM | TrN_GIDTyp |
GIDNumer | ID dokumentu w bazie mobilnej | TrN_GIDNumer |
OddDokID | ID dokumentu w bazie mobilnej | TrN_OddDokId |
SpiTyp | GID Spinacza | TrN_SpiTyp |
SpiNumer | GID Spinacza | TrN_SpiNumer |
Data2 | Data wystawienia dokumentu | TrN_Data2 |
Data3 | Data sprzedaży/zakupu | TrN_Data3 |
DataVat | - | - |
DataMag | Data przyjęcia/wydania towaru | TrN_DataMag |
Url | url | TrN_Url |
DokumentObcy | Numer dokumentu obcego | TrN_DokumentObcy |
RodzajCeny | - | - |
KntTyp | GID Kontrahenta | TrN_KntTyp |
KntNumer | GID Kontrahenta | TrN_KntNumer |
KnDTyp | GID Kontrahenta docelowego | TrN_KnDTyp |
KnDNumer | GID Kontrahenta docelowego | TrN_KnDnumer |
AdWNumer | GID adresu wysyłkowego | TrN_AdWNumer |
KnPTyp | GID płatnika | TrN_KnPTyp |
KnPNumer | GID Płatnika | TrN_KnPNumer |
FlagaNB | Flaga netto/brutto N – netto B – brutto | TrN_FlagaNB |
FormaNr | Forma płatności 10 – Gotówka 20 – Przelew 30 – Kredyt 40 – Czek 50 – Karta 60 – Inne | TrN_FormaNr |
Termin | Domyślny termin płatności | TrN_Termin |
DokumentNr | - | - |
TrNTyp | Typ transakcji 1-faktura zakupu; 2-przyjęcie zewnętrzne; 3-faktura sprzedaży; 4-wydanie zewnętrzne; 5-rozchód wewnętrzny; 6-przychód wewnętrzny; 7-przesunięcie międzymagazynowe; 10-paragon 12-AVista zakupu 13-AVista sprzedaży 19-Korekta kosztu 20-Faktura Eksportowa 21-Wydanie zewnętrzne eksportowe 22-Faktura wewnętrzna | TrN_TrNTyp |
TrNSeria | Seria dokumentu | TrN_TrNSeria |
TrNNumer | Numer dokumentu | TrN_TrNNumer |
TrNRok | Rok dokumentu | TrN_TrNRok |
TrNMiesiac | Miesiąc dokumentu | TrN_TrNMiesiac |
FrsID | Identyfikator centrum-właściciela dokumentu | TrN_FrsID |
Fiskalny | Czy wydrukowano fiskalnie?
0 – sprzedaż zwykła
|
TrN_Fiskalny |
OpeNumer | GID operatora wystawiającego | TrN_OpeNumer |
OpiTyp | Opiekun kontrahenta | TrN_OpiTyp |
OpiNumer | Opiekun kontrahenta | TrN_OpiNumer |
CechaOpis | Wartość cechy transakcji | TrN_CechaOpis |
Waluta | Symbol waluty | TrN_Waluta |
Opis | Opis dokumentu | TnO_Opis |
MagazynZ | Akronim magazynu źródłowego | |
WtrId | Identyfikator promocji wartościowej | TrN_WtrId |
WtrProgId | Identyfikator progu promocji wartościowej | TrN_WtrProgId |
ExpoNorm | Rodzaj transakcji 1-krajowa; 2-inna zagr., VAT 0%; 3-inna zagr., VAT dowolny; 4-inna zagr., korekta VAT dowolny -> VAT 0%; 5-inna zagr., korekta VAT 0% -> VAT dowolny; 6-ww dostawa, VAT 0%; 7-ww dostawa, VAT dowolny; 8-ww dostawa trójstronna, VAT 0%; 9-ww dostawa trójstronna, VAT dowolny; 10-ww nabycie, VAT 0%; 11-ww nabycie, VAT dowolny; 12-ww nabycie trójstronne, VAT 0%; 13-ww nabycie trójstronne, VAT dowolny; 14-inna zagr., VAT 0%, dla FW (import usług); 15-inna zagr., VAT dowolny, dla FW (import usług); 16-ww dostawa, korekta VAT dowolny -> VAT 0%; 17-ww dostawa, korekta VAT 0% -> VAT dowolny; 18-ww dostawa trójstronna, korekta VAT dowolny -> VAT 0%; 19-ww dostawa trójstronna, korekta VAT 0% -> VAT dowolny; 20-podatnikiem jest nabywca; 21-ww dostawa, VAT dowolny, transakcja opodatkowana poza terytorium kraju; 22-tax free; 23-inna zagr., VAT dowolny, transakcja opodatkowana poza terytorium kraju; | TrN_ExpoNorm |
CWENumer | ||
ZewnetrznyId | ||
ZewnetrznySys | ||
CWELp |
Elementy dokumentu handlowego (TREI)
Tabela 10 Sekcja z elementami dokumentu handlowego i odpowiednik pól w tabelach bazy ERP XL<TREI/> | Opis | ERP XL |
<TRE> | Sekcja z elementami dokumentu handlowego | TraElem, TraSElem |
NiePrzeliczaj | ||
GIDTyp | GID Elementu transakcji | TrE_GIDTyp |
GIDLp | Numer kolejny elementu transakcji | TrE_GIDLp |
SubGIDLp | - | - |
Pozycja | Pozycja elementu na dokumencie | TrE_Pozycja |
JmZ | Jednostka pomocnicza | TrE_JmZ |
PrzeliczM | Mianownik przelicznika | TrE_PrzeliczM |
PrzeliczL | Licznik przelicznika | TrE_PrzeliczL |
TwrNumer | GID towaru | TrE_TwrNumer |
Wartosc | ||
Cena | Cena początkowa | TrE_Cena |
GrupaPod | Symbol grupy podatkowej | TrE_GrupaPod |
StawkaPod | Stawka podatku | TrE_StawkaPod |
CenaSpr | Cena domyślna dla transakcji | TrE_CenaSpr |
Poczatkowa | Cena początkowa | TrE_Poczatkowa |
Rabat | Procent udzielonego rabatu | TrE_Rabat |
Ilosc | Ilość na jaką opiewa transakcja | TrE_Ilosc |
Opis | Opis elementu | TeO_Opis |
DstNumerO | GID dostawy | TrS_Dstnumer |
DstNumer | GID dostawy | TrS_DstNumer |
Gratis | Rodzaj elementu promocji pakietowej 0 – element, 1 – gratis | TrE_Gratis |
PakietID | Identyfikator promocji pakietowej | TrE_PakietID |
PakietProgID | ||
Zlom | Element traktowany jako odwrotne obciążenie 0 – element, 1 – odwrotne obciążenie | TrE_Zlom |
Dokumenty magazynowe (MANI)
Tabela 11 Sekcja z dokumentami magazynowymi i odpowiednik pól w tabelach bazy ERP XL<MANI/> | Opis | ERP XL |
<MAN> | Sekcja z nagłówkami dokumentów magazynowych | MagNag |
Typ | Identyfikator rekordu | MaN_GIDTyp |
GIDTyp | Identyfikator rekordu | MaN_GIDTyp |
GIDNumer | GID dokumentu w bazie mobilnej | MaN_OddDokId |
OddDokID | GID dokumentu w bazie mobilnej | MaN_OddDokId |
MaN_ZewnetrzneId | Identyfikator dokumentu w systemie zewnętrznym | MaN_ZewnetrzneId |
MaN_ZewnetrznySys | Identyfikator systemu zewnętrznego | MaN_ZewnetrznySys |
Data | Data wystawienia dokumentu | MaN_Data3 |
Rok | Rok transakcji | MaN_TrNRok |
Miesiac | Miesiąc transakcji | MaN_TrNMiesiac |
Numer | Numer transakcji | MaN_TrNNumer |
MAG_GIDNumer | GID magazynu docelowego | MaN_MagDNumer |
Cecha | Cecha transakcji | MaN_CechaOpis |
Knt_GIDNumer | Identyfikator kontrahenta | MaN_KntNumer |
SER_GIDnumer | GID serii dokumentu | MaN_TrNSeria |
Opis | Opis dokumentu | MnO_Opis |
OpeId | Identyfikator operatora | MaN_OpeNumer |
FrsID | Identyfikator centrum – właściciela dokumentu | MaN_FrsID |
Element dokumentu magazynowego (MAE)
Tabela 12 Sekcja z elementem dokumentu magazynowego i odpowiednik pól w tabelach bazy ERP XL<MAE/> | Opis | ERP XL |
Sekcja z elementami dokumentu magazynowego | MagElem | |
TwrNumer | Identyfikator towaru | MaE_TwrNumer |
Ilosc | Ilość w jednostce podstawowej | MaE_Ilosc |
JmZ | Jednostka pomocnicza | MaE_JmZ |
PrzeliczL | Licznik przelicznika | MaE_PrzeliczL |
PrzeliczM | Mianownik przelicznika | MaE_PrzeliczM |
Opis | Opis elementu | MnO_Opis |
Subelement elementu dokumentu magazynowego (MAS)
Tabela 13 Sekcja z subelementem dokumentu magazynowego i odpowiednik pól w tabelach bazy ERP XL<MAS/> | Opis | ERP XL |
Sekcja z subelementami dokumentu magazynowego | MagSElem, MagPElem | |
Ilosc | Ilość na jaką opiewa transakcja | MaS_Ilosc |
DstNumer | Identyfikator dostawy | MaS_DstNumer |
Reklamacje (RLNI)
Tabela 14 Sekcja z reklamacjami i odpowiednik pól w tabelach bazy ERP XL<RLNI/> | Opis | ERP XL |
<RLN> | Sekcja z nagłówkami reklamacji | ReklNag |
DokumentNr | - | |
Id | GID reklamacji w bazie mobilnej | RLN_OddDokId |
OddDokID | GID reklamacji w bazie mobilnej | RLN_OddDokId |
Typ | GIDTyp reklamacji 3584 – RLS | RLN_Typ |
KntTyp | Gid Kontrahenta | RLN_KntTyp |
KntNumerC | GID kontrahenta | RLN_KntNumer |
KnDTyp | GID Kontrahenta docelowego | RLN_KnDTyp |
KnDNumer | GID kontrahenta docelowego | RLN_KnDNumer |
KnDLp | GID Kontrahenta docelowego | RLN_KnDLp |
AdWNumer | GID adresu wysyłkowego | RLN_AdWNumer |
AdWTyp | GID adresu wysyłkowego | RLN_AdWTyp |
FrsID | Identyfikator właściciela dokumentu | RLN_FrsID |
DataWyst | Data wystawienia dokumentu | RLN_DataWyst |
Rok | Rok reklamacji | RLN_Rok |
Miesiac | Miesiąc reklamacji | RLN_Miesiac |
Seria | Seria reklamacji | RLN_Seria |
Numer | Numer reklamacji | RLN_Numer |
Stan | Stan dokumentu 1- niepotwierdzona, 2-niepotwierdzona po reedycji, 6-reklamacja anulowana, 10- potwierdzono, 20- w realizacji, 21- w realizacji po reedycji, 30- rozpatrzona, 31- rozpatrzona po reedycji, 40- zamknięta | RLN_Stan |
Status | Status reklamacji | RLN_Status |
OpeNumer | GID operatora wystawiającego | RLN_OpeNumer |
CechaOpis | Wartość cechy transakcji | RLN_CechaOpis |
Opis | Opis transakcji | RLN_Opis |
Url | url | RLN_Url |
DokumentObcy | Numer dokumentu obcego | RLN_DokumentObcy |
Elementy reklamacji (RLEI)
Tabela 15 Sekcja z elementami reklamacji i odpowiednik pól w tabelach bazy ERP XL<RLEI/> | Opis | ERP XL |
<RLE> | Sekcja z elementami reklamacji | ReklElem |
Id | Id rekordu w bazie mobilnej | RLE_OddElemId |
OddElemId | Id rekordu w bazie mobilnej | RLE_OddElemId |
ZrdTyp | GID elementu dokumentu żródłowego na podstawie, którego reklamowany jest dany towar | RLE_ZrdTyp |
ZrdNumer | GID elementu dokumentu żródłowego na podstawie, którego reklamowany jest dany towar | RLE_ZrdNumer |
ZrdLp | GID elementu dokumentu żródłowego na podstawie, którego reklamowany jest dany towar | RLE_ZrdLp |
DokNumer | Numer dokumentu z pól: RKE_ZrdGID lub tekst, jaki wprowadzi ręcznie operator w polu Numer. | RLE_DokNumer |
TwrTyp | GID towaru | RLE_TwrTyp |
TwrNumer | GID towaru | RLE_TwrNumer |
Ilosc | Ilość na jaką opiewa transakcja | RLE_Ilosc |
JmFormat | Miejsca po przecinku | RLE_JmFormat |
Zadanie | Żądanie reklamującego | RLE_Zadanie |
Status | 0 – rozpatrywana, 1 – Uznana, 2- Odrzucona | RLE_Status |
Przyczyna | Przyczyna reklamacji | RLe_Przyczyna |
Rozpatrzenie | Rozpatrzenie reklamacji | RLE_Rozpatrzenie |
Wizyty Handlowe (CWNI)
Tabela 16 Sekcja z wizytami handlowymi i odpowiednik pól w tabelach bazy ERP XL<CWNI/> | opis | ERP XL |
<CWN> | Sekcja z nagłówkami wizyt handlowych | CRMWizytyNag |
ID | - | |
ZewnetrznyId | Identyfikator wizyty w bazie mobilnej | CWN_ZewnetrznyId |
OpeNumer | Numer operatora wystawiającego | CWN_OpeNumerW |
Renumeruj | - | |
FrsId | Identyfikator centrum – właściciela dokumentu | CWN_FrsId |
ZewnetrznySys | Identyfikator systemu zewnętrznego | CWN_ZewnetrznySys |
WzNumer | Wzorzec wizyty | CWN_WzNumer |
Opis | Opis wizyty | CWN_Opis |
Jednorazowa | Czu wizyta jest jednorazowa 0 – NIE, 1 – TAK | CWN_Jednorazowa |
CZyZMobile | - | |
NrKursu | Numer kursu | CWN_NrKursu |
Stan | Stan wizyty 1 - Niepotwierdzona, 2 - Potwierdzona, 3 - Anulowana, 4 - Zakończona, 5 - W realizacji | CWN_Stan |
Zakonczono | Czy wizyta jest zakończona 0 - nie, 1 - zakończona/wykonana, 2 - zakończona/niewykonana, 3 - zakończona/odrzucona | CWN_Zakonczono |
DataWystawienia | Data wystawienia | CWN_DataWystawienia |
Rok | Rok wystawienia dokumentu | CWN_Rok |
Miesiac | Miesiąc dokumentu | CWN_Miesiac |
TypId | Typ wizyty (wartość ze słownika kategorii) | CWN_TypId |
Seria | Seria dokumentu | CWN_Seria |
Nazwa | Nazwa wizyty | CWN_Nazwa |
Numer | Numer dokumentu | CWN_Numer |
KntNumer | Numer kontrahenta głównego | CWN_KntNumer |
KntTyp | Typ kontrahenta głównego | CWN_KntTyp |
KnANumer | Numer adresu kontrahenta głównego | CWN_KnANumer |
KnATyp | Typ adresu kontrahenta głównego | CWN_KnATyp |
KntOsobaLp | Osoba z karty kontrahenta | CWN_KntOsobaLp |
TerminOd | Planowana data/godzina rozpoczęcia wizyty | CWN_TerminOd |
TerminDo | Planowana data/godzina zakończenia wizyty | CWN_TerminDo |
Obsluga | Identyfikator pracownika obsługującego | CWN_Obsluga |
DataZakonczenia | Data/godzina zakończenia realizacji wizyty | CWN_DataZakonczenia |
DataZakonczeniaOd | Data/godzina rozpoczęcia wizyty | CWN_DataZakonczeniaOd |
Element wizyty handlowej (CWE)
Tabela 17 Sekcja z elementem wizyty handlowej i odpowiednik pól w tabelach bazy ERP XL<CWE/> | Opis | ERP XL |
Sekcja z elementami wizyt handlowych | CRMWizytyElem | |
GIDLp | GIDLp rekordu | CWE_GIDLp |
Wykonano | Czy wykonano 0 nie, 1 – tak | CWE_Wykonano |
Kod | Kod elementu wizyty | CWE_Kod |
Nazwa | Nazwa elementu wizyty | CWE_Nazwa |
Pozycja | Pozycja elementu wizyty | CWE_Pozycja |
Opis | Opis elementu wizyty | CWE_Opis |
Wymagany | Czy wymagany do wykonania 0 – nie, 1 tak | CWE_Wymagany |
RodzajId | Identyfkator rodzaju elementu wizyty | CWE_RodzajId |
sekcja zwracająca obiekty dla wizyty, jak np. Załączniki (CWOI)
Dokument powiązany z elementem wizyty (CDL)
Tabela 18 Sekcja z dokumentem powiązanym z elementem wizyty i odpowiednik pól w tabelach bazy ERP XL<CDL/> | Opis | ERP XL |
Sekcja z dokumentami powiązanymi z wizytą handlową | CRMDokumentyLinki | |
DokTyp | GIDTyp powiązanego dokumentu | CWD_DokTyp |
DokNumer | - | |
DokZewNumer | Numer dokumentu w bazie mobilnej | - |
Raporty (KRPI)
Tabela 19 Sekcja z raportami kasowymi i odpowiednik pól w tabelach bazy ERP XL<KRPI/> | opis | ERP XL |
<KRP> | Sekcja z raportami kasowymi | Raporty |
GIDNumer | GID raportu w bazie mobilnej | KRP_ZewnetrznyId |
Rok | Rok raportu | KRP_Rok |
Numer | Numer raportu | KRP_Numer |
Seria | Seria (skrót nazwy kasy/banku) | KRP_Seria |
RaportNr | Pełny numer raportu | - |
DataOtwarcia | Data otwarcia raportu | KRP_DataOtwarcia |
DataZamkniecia | Data zamknięcia raportu | KRP_DataZamkniecia |
CzasOtwarcia | Data i godzina otwarcia raportu | KRP_CzasOtwarcia |
CzasZamkniecia | Data i godzina zamknięcia raportu | KRP_CzasZamkniecia |
OpeNumer | GID operatora księgującego raport | KRP_OpeNumerKs |
OpeNumerZam | GID operatora zamykającego raport | KRP_OpeNumerZam |
Zapisy kasowe/bankowe (KAZI)
Tabela 20 Sekcja z zapisami kasowymi i odpowiednik pól w tabelach bazy ERP XL<KAZI/> | Opis | ERP XL |
<KAZ> | Sekcja z zapisami kasowymi | Zapisy |
GIDNumer | GID zapisu w bazie mobilnej | KAZ_ZewnetrznyId |
OpeNumer | GID operatora wpisującego do raportu | KAZ_OpeNumerRm |
OpeNumerR | GID operatora wpisującego do raportu | KAZ_OpeNumerR |
OpeNumerB | GID operatora wpisującego do bufora | KAZ_OpeNumerB |
KntTyp | GID kontrahenta/pracownika | KAZ_KntTyp |
KntNumer | GID Kontrahenta/pracownika | KAZ_KntNumer |
NumerDokumentu | Numer dokumentu | KAZ_NumerDokumentu |
DataZapisu | Data dokumentu kasowego | KAZ_DataZapisu |
CzasZapisu | Data i czas zapisu dokumentu kasowego | KAZ_CzasZapisu |
DataDokumentu | Data dokumentu źródłowego | KAZ_DataDokumentu |
Kwota | Kwota zapisu | KAZ_Kwota |
KRPLp | Lp LONG dla uniknięcia przepełn. buforów | KAZ_KRPLp |
Opis | Opis zapisu | KAZ_Opis |
Tresc | Treść zapisu | KAZ_Tresc |
Seria | Seria (skrót nazwy kasy) | KAZ_Seria |
RP | Rozchód/przychód | KAZ_RP |
Rozliczenia (ROZI)
Tabela 21 Sekcja z rozliczeniami i odpowiednik pól w tabelach bazy ERP XL<ROZI/> | Opis | ERP XL |
<ROZ> | Sekcja z rozliczeniami | Rozliczenia |
ID | Identyfikator rozliczenia/rozrachunku | R2_ID |
Info | - | - |
Dok1Typ | GIDTyp dokumentu 1 | R2_Dok1Typ |
Dok1Numer | GIDnumer dokumentu 1 w bazie mobilnej | R2_Dok1Numer |
Dok1NumerO | - | - |
Dok1Lp | GIDLp dokumentu 1 | R2_Dok1Lp |
Seria1 | - | - |
Dok2Typ | GIDTyp dokumentu 2 | R2_Dok2Typ |
Dok2Numer | GIDnumer dokumentu 2 w bazie mobilnej | R2_Dok2Numer |
Dok2NumerO | - | - |
Dok2Lp | GIDLp dokumentu 2 | R2_Dok2Lp |
Seria2 | - | - |
Kwota | Kwota rozliczenia/rozrachunku | R2_KwotaWal1, R2_KwotaWal2, R2_KwotaSys |
XL137 - Instalacja i konfiguracja ERP XL- Comarch POS
Informacje ogólne
Od wersji 2019.2.1 została udostępniona możliwość współpracy z Comarch POS.Wersja Comarch ERP XL | Comarch POS |
---|---|
od wersji 2019.2.1 do wersji 2020.0 | 2019.0 |
od wersji 2020.1 do 2020.2.0 | 2019.5.1 |
2020.2.2 | 2019.5.4 |
2021.0 | 2021.0 |
od wersji 2021.01 do wersji 2021.0.2 | 2021.1 |
2021.1 | 2021.6 |
od wersji 2022.0 do wersji 2022.0.1 | 2022.0 |
2022.0.2 | 2022.1 |
2022.1 | 2022.5 |
2023.0 | 2023.0 |
2023.1 | 2023.0 |
2023.2 | 2023.5 |
2024.0 | 2024.0 |
2024.1 | 2024.5 |
2025.0 | 2024.5 |
Instalacja Comarch POS
Comarch POS instaluje się z wykorzystaniem narzędzia Comarch ERP Auto Update. Instrukcja instalacji Comarch POS znajduje się w dokumentacji na stronie https://pomoc.comarch.pl/pos/ Po otworzeniu narzędzia Comarch ERP Auto Update należy wskazać wybraną wersję do instalacji.



- Nazwa serwera – nazwa serwera wraz z instancją, na którym zostanie utworzona baza danych
- Nazwa bazy danych – domyślnie podpowiada się POSDB_[kod_profilu]
- Dane do logowania – Login, Hasło
- Przycisk [Test połączenia] umożliwia sprawdzenie nawiązania połączenia ze wskazanym serwerem.

Konfigurowanie Usługi synchronizacji POS
Synchronizacja ze stanowiskami POS odbywa się automatycznie za pomocą usługi synchronizacji POS. Definiowanie usługi należy wykonać wybierając z Panelu głównego w module Administrator Oddziałów opcję Konfiguracja logowania automatu synchronizacji. Po wybraniu opcji j.w. należy wybrać przycisk: Synchronizacja jako usługa, który otworzy listę usług. Na liście należy wybrać opcję z menu rozwijanego przy przycisku plusa: Dodaj usługę synchronizacji POS. Na wyświetlonym oknie należy uzupełnić następujące dane:- Nazwa usługi – dowolna nazwa własna usługi (nie należy stosować polskich znaków, znaków specjalnych oraz spacji).
- Konto usługi – należy wpisać nazwę użytkownika domenowego oraz hasło.
- Klucz sprzętowy – należy podać nazwę serwera SQL, na którym zainstalowany jest serwis klucza oraz podać numer klucza posiadającego licencje na Comarch POS.
- Port – numer portu, na którym będzie pracować usługa- wprowadzony numer portu nie może być używany aktualnie w systemie.


Usługa Comarch POS Agent
Usługa Comarch POS Agent (POS Agent) dostarcza aktualne informacje o stanach magazynowych na każdym stanowisku, podczas wystawiania dokumentów. Informacje te prezentowane są z uwzględnieniem poszczególnych magazynów. Wszystkie procesy w magazynie będą mogły zachodzić w trybie off-line z centralą, dzięki czemu korzystanie z tej usługi zapewni pełną autonomię sklepu, poprzez zagwarantowanie, że stan towaru będzie zawsze aktualny. Każdy oddział Comarch POS zdefiniowany w Systemie XL musi podsiadać własną usługę POS Agent.
Usługa POS Agent to miejsce, w którym przechowywane są stany magazynowe towaru wraz z rezerwacjami zasobowymi w podziale na magazyny. Usługa POS Agent działa jako samodzielna usługa z własną bazą danych na tym samym komputerze co baza Comarch POS lub osobnym. Aktualizuje stany towarów na podstawie dokumentów wystawianych na wszystkich stanowiskach obsługiwanych przez daną usługę.Rejestracja usługi POS Agent
Po poprawnym skonfigurowaniu POS Agent oraz POS Agent Broker należy zrestartować usługę XLDataService (Menadżer zadań/Usługi). W następnej kolejności należy zarejestrować usługę POS Agent. W tym celu należy otworzyć katalog instalacyjny POS Agent i uruchomić aplikację POSAgentConfigurator.exe. Przy pierwszym uruchomieniu pojawi się błąd informujący o tym, że usługa jest odinstalowana:

- Adres IP usługi POS Agent – adres IP komputera, na którym została zainstalowana usługa POS Agent
- Port usługi POS Agent – domyślnym portem jest 8098
- Adres serwera usługi XLDataService np. http://localhost:8099/DataService/ gdzie 8099 jest numerem portu, na którym działa usługa
- Kod POS Agenta – kod POS Agent wprowadzony w Comarch ERP XL
- GUID – wartość nadawana automatycznie
Comarch POS Agent Broker
Komponent Comarch POS Agent Broker (POS Agent Broker) wykorzystywany jest do komunikacji z usługą Comarch POS Agent (POS Agent) jako broker wiadomości. Pozwala na aktualizowanie stanów towaru oraz rezerwacji po wystawieniu w Systemie XL dokumentu wpływającego na stany towaru/rezerwacje w magazynach oddziału POS. W przypadku pracy online (połączenie z centralą) stany towaru na oddziałach POS aktualizowane są natychmiast. W przypadku pracy offline (brak połączenia z centralą) komponent agreguje kolejkę wiadomości, przekazując aktualizację stanów magazynowych do właściwego POS Agenta. Aktualizowanie informacji o stanach następuje bezpośrednio po wystawieniu dokumentów w Comarch ERP XL poprzez:- wprowadzenie do kolejki wiadomości informacji o zwiększeniu stanów, gdy zostanie wystawiony dokument, który zwiększa stany towaru
- wprowadzenie do kolejki wiadomości informacji o zmniejszeniu stanów, gdy zostanie wystawiony dokument, który pomniejsza stany towaru
- wprowadzenie do kolejki wiadomości informacji o zmianach w rezerwacjach zasobowych
Konfigurowanie komponentu POS Agent Broker
W Konfiguracji systemu została dodana zakładka [POS], na której należy uzupełnić adres brokera wiadomości, czyli usługi POS Agent Broker.
W polu Adres usługi kolejki wiadomości należy wprowadzić adres usługi Comarch POS Agent Broker oraz numer portu. Domyślnym portem jest 80, pole przyjmuje 64 znaki- W przypadku korzystania z głównego profilu programu Comarch ERP Auto Update należy wprowadzić adres: http://localhost/POSAgentBroker
- Przycisk Test konfiguracji służy do sprawdzenia, czy POS Agent Broker został poprawnie skonfigurowany
- Otworzyć Menedżer internetowych usług informacyjnych (IIS)
- W widoku Połączenia rozwinąć Witryny -> Default Web Site
- Wskazać pozycję zawierającą w nazwie ‘POSAgentBroker‘
- W widoku Akcje wybrać Przeglądaj *:80 (http)
- W domyślnej przeglądarce w pasku adresu znajdzie się poprawny link do usługi POS Agent Broker
Konfiguracja Oddziału/Stanowiska POS
Kreator nowego Oddziału POS
Konfiguracja oddziału/stanowiska POS realizowana jest w module Administrator oddziałów. Przed rozpoczęciem kreowania nowego oddziału należy dodać rejestry, które w kolejnych krokach będą przypisywane do oddziału POS.



- w Panelu głównym przejść na zakładkę [Oddziały] i wybrać opcję: Kreator nowego oddziału Comarch POS,
- lub w Panelu głównym przejść na zakładkę [Ogólne], wybrać opcję: Oddziały, na otwartej liście oddziałów w polu typ wskazać Comarch POS a następnie przyciskiem plusa rozpocząć kreowanie nowego oddziału.



- Sposób wyszukiwania dokumentów: Lokalnie/Globalnie, wyszukiwanie globalne polega na możliwości przeszukania dokumentów w bazie Comarch ERP XL i pobranie na stanowisko POS.
- Logowanie, podpowiadanie nazwy użytkownika – zaznaczenie parametru spowoduje, że podczas logowania do aplikacji Comarch POS będzie możliwe wybieranie operatorów z listy a po rozpoczęciu wpisywania loginu będą podpowiadane kody operatorów, którzy mogą pracować na danym stanowisku.
- Logowanie za pomocą karty, dodano ułatwienie opcji logowania za pomocą karty.
- Zezwalaj na generowanie faktury do paragonu po terminie– odznaczenie parametru powoduje blokadę wygenerowania faktury do paragonu na stanowisku POS, po upływie trzech miesięcy (90 dni) od końca miesiąca kalendarzowego, w którym wystawiono paragon.
- Automatyczne zamykanie okna płatności- parametr umożliwia ustalenie, czy okno płatności ma być automatycznie zamykane, czy ręcznie zamykane. W przypadku odznaczonego parametru, po zatwierdzeniu płatności, okno pozostanie otwarte. Parametr domyślnie zaznaczony.
- Przeliczaj dokumenty handlowe bez pytania- parametr pozwala na przeliczanie wartości na dokumencie handlowym bez wyświetlania komunikatu w przypadku zmiany kontrahenta, usuwaniu pozycji lub ilości artykułu.
- Kopiuj ilość z zamówienia sprzedaży (na FS, PA)- po zaznaczeniu parametru przy generowaniu dokumentu handlowego z zamówienia będą przenoszone ilości z zamówienia, pomniejszone o ilości wcześniej zrealizowane, gdy parametr będzie odznaczony ilości będą zerowe.
- Zezwalaj na minimalizację aplikacji- zaznaczenie tego parametru pozwala na możliwość minimalizacji okna programu POS, w przypadku braku zaznaczenia, nie mamy możliwości minimalizacji okna, aby przejść np. do okna widoku XL należy zamknąć okno widoku POS-tym samym wymuszając zakończenie pracy.
- Blokada otwarcia wielu dokumentów handlowych- uniemożliwia otworzenie więcej niż jednego dokumentu handlowego na stanowisku POS, tj. paragonu, faktury itd.
- Wymagana autoryzacja dla ujemnego stanu kasy- jeżeli jest zaznaczony, to próba osiągnięcia ujemnego stanu kasy wywołuje komunikat blokujący.
- Generuj PW na brakujące towary- automatyczne generowanie dokumentu PW, gdy brak danego towaru na stanie
- Obsługa inwentaryzacji- parametr odpowiedzialny za wykonanie operacji inwentaryzacji w oddziałach.
- Ostrzegaj podczas dodawania inwentaryzowanego towaru na dokument- przy dodawaniu towaru który znajduje się na arkuszu pojawi się stosowny komunikat.
- Automatyczne naliczanie promocji pakietowych- przy wystawianiu dokumentów promocje będą naliczane automatycznie po spełnieniu progów.
- Ignoruj termin płatności ustawiony na dokumencie ZS- przy generowaniu faktury będzie ignorowany termin płatności z zamówienia.
- Blokada wystawienia faktury bez numeru NIP- brak możłiwości wystawienia faktury dla podmiotu gospodarczego bez numeru NIP.


Ustawienia oddziału Comarch POS
Zakładka [Ogólne] prezentuje Centrum powiązane z danym oddziałem, nadane ID oddziału oraz datę Ostatniej synchronizacji

Grupy szybkiej sprzedaży- Po lewej stronie znajduje się lista Grupy szybkiej sprzedaży, gdzie można dodawać grupy z listy grup wysyłanych do POS. Po wybraniu opcji Dodaj grupę zostanie wyświetlona lista grup, zawężona do grup wysyłanych do POS, czyli ta część drzewa, która jest wskazana w polu Wysyłaj towary z grupy.



Ulubione towary- Po prawej stronie znajduje się lista towarów ulubionych, które w POS będą widoczne po wybraniu specjalnego kafelka o nazwie Ulubione. Do listy ulubionych można dodawać dowolne towary lub produkty, które są wysyłane do POS. Podczas dodawania towaru do listy, system sprawdza czy towar zawiera się w drzewie grup przesyłanym do POS, zgodnie z ustawieniem w polu Wysyłaj towary z grupy. Sprawdzane jest powiązanie towaru z grupą domyślną i jeśli grupa domyślna towaru nie jest wysyłana do POS, wówczas towar nie będzie mógł trafić na listę ulubionych.
Po naciśnięciu opcji Dodaj towar zostanie wyświetlona lista wszystkich towarów, gdzie można wskazać jeden lub więcej towarów i dodać je do listy. Na liście towarów ulubionych możliwe jest ustawianie kolejności wyświetlania towarów w POS za pomocą przycisków: Przesuń o jedną pozycję w dół lub w górę . Dodane towary można usuwać pojedynczo lub zbiorczo zaznaczając pozycje. W każdym momencie można też wzbogacić listę o nowe pozycje. Ustawiona kolejność towarów przesyłana jest na wszystkie stanowiska POS.Przesyłanie powiązania towaru z wszystkimi grupami towarów
Do tej pory towary były przesyłane na stanowiska POS wg grupy domyślnej ustawionej na karcie towaru. Aktualnie towary przesyłane są również wówczas, gdy należą do grupy lub podgrupy przesyłanej do POS bez względu na to, czy jest to grupa domyślna czy dodatkowa danego towaru. Przesyłane są również wszystkie powiązania towaru z grupami, które są przesyłane do POS. Na podglądzie towaru w POS można zobaczyć powiązanie towaru z grupami.

- Obsługa limitu kredytowego – po zaznaczeniu tej opcji limity będą wysyłane do POS i kontrolowane podczas sprzedaży
- Maksymalny czas od ostatniej synchronizacji (m) – możliwość ustawienia maksymalnego czasu w minutach, w którym możliwe będzie korzystanie z lokalnie zapisanych limitów w sytuacji, gdy połączenie POS z centralą nie będzie aktywne.
- Prezentacja dostępnego limitu – parametr ten posiada trzy opcje decydujące o tym, jak limity mają być prezentowane podczas sprzedaży:
- Odejmuj wartość dokumentu – wartość dodawanych pozycji będzie automatycznie zmniejszała wartość dostępnego limitu
- Nie odejmuj wartości dokumentu – dostępny limit nie będzie się zmniejszał wraz z dodawaniem kolejnych pozycji do dokumentu.
- Nie prezentuj – kwota limitu nie będzie prezentowana, jednak podczas zatwierdzania dokumentu system sprawdzi limit i zostanie wyświetlone ostrzeżenia bądź blokada zgodnie z ustawieniami definicji dokumentu.
Przesyłanie maski dla kodu pocztowego
Przesyłana jest odpowiednia konfiguracja, dzięki której w POS kontrola poprawności zapisu kodu pocztowego na adresie kontrahenta odnosi się tylko do kontrahentów polskich. W przypadku wyboru kraju innego niż PL brak walidacji kodu pocztowego w formacie 00-000. Na zakładce [Waluty] należy ustawić walutę domyślną, w jakiej będzie pracował POS oraz waluty wraz z kursem, które będą konieczne np. w przypadku wysyłania cenników w walucie innej niż domyślna. Od wersji Comarch ERP XL 2024.1 umożliwiono pobieranie i ustawianie kursów walut z precyzją do 10 miejsc po przecinku. Przy ustawieniu opcji Kurs z tabeli kursów, kursy pobierane są z precyzją zapisaną w tabeli kursów. Minimalnie prezentowane są 4 miejsca po przecinku, w przypadku większej precyzji, prezentowane są wszystkie cyfry znaczące. Przy ręcznym uzupełnianiu kursu możliwe jest wpisanie do 5 miejsc przed przecinkiem i do 10 miejsc po przecinku.




Blokada wystawiania faktur bez numeru NIP. Po jego zaznaczeniu nie będzie możliwe wystawienie faktury dla podmiotu gospodarczego bez uzupełnienia numeru NIP. Równocześnie w przypadku wystawiania faktury dla kontrahenta detalicznego pojawi się komunikat o konieczności rejestracji paragonu a następnie wystawienia faktury do paragonu. Jeśli jednak numer NIP zostanie przesłany dla kontrahenta detalicznego z XLa, możliwe będzie wystawienie faktury bezpośrednio (bez konieczności rejestrowania paragonu).


Wybór typu aplikacji i rodzaju licencji
Na oknie konfiguracji stanowiska POS oddano dwa nowe pola związane z konfigurowaniem typu aplikacji i rodzaju licencji. W zależności od tego na jakiego typu aplikacji pracuje stanowisko istnieje możliwość wybrania rodzaju licencji pomiędzy:- POS
- mPOS
- Front Office
- Back Office
- Front Office + Back Office
- Typ aplikacji: POS
- Licencja: Front Office + Back Office

- Generowanie KP/KW na różnicę przy otwarciu/zamknięciu dnia- parametr umożliwia wybór czy system ma automatycznie generować dokumenty KP/KW jeśli system wykryje różnicę w stanie gotówki na otwarciu/zamknięciu dnia
- Zezwalaj na otwarcie/zamknięcie dnia bez podania stanu rzeczywistego- podczas otwierania aplikacji POS ukazuje nam się okno otwarcia dnia na którym widnieje podany stan początkowy kasy, waluta oraz stan rzeczywisty i różnica pomiędzy początkowym a rzeczywistym. Parametr zaznaczony daje możliwość zatwierdzenia otwarcia dnia bez podania stanu rzeczywistego w kasie.

- Automatyczne zamknięcie dnia – umożliwia automatyczne zamknięcie dnia przez aplikację bez zliczania kasy na stanowisku sprzedażowym.
- Godzina zamknięcia dnia – pozwala na ustalenie, o jakiej godzinie nastąpi automatyczne zamknięcie dnia. Domyślnie jest to 23:59.59. Pole jest aktywne, jeżeli parametr Automatyczne zamknięcie dnia jest zaznaczony.
- Wydruk raportów zmianowych na drukarce fiskalnej – pozwala na drukowanie na drukarce fiskalnej raportów zmianowych przy zamykaniu zmiany lub dnia, a także przy podglądzie zapisanej zmiany kasjera lub raportu dziennego.
- Wyświetlanie tylko dostępnych – pozwala na wyświetlanie na stanowisku POS tylko tych artykułów, które są aktualnie dostępne na magazynie.
- Domyślnie korzystaj z przycisków szybkiej sprzedaży – Aby podczas sprzedaży w Comarch POS domyślnie ustawiały się kafelki szybkiej sprzedaży należy zaznaczyć parametr, czyli oznacza to, że podczas sprzedaży w POS domyślne prezentowane będą skonfigurowane w Comarch ERP XL przyciski a nie zwykła lista towarów. Jeśli operator nie znajdzie odpowiedniego towaru wśród dostępnych kafelków wówczas będzie mógł przełączyć się na standardową listę towarów za pomocą kontrolki Wyszukaj artykuł.
- Otwieranie i zamykanie raportów kasowych na podstawie otwarcia i zamknięcia sesji w POS – Standardowo parametr ten jest zaznaczony w celu zachowania poprzedniej funkcjonalności. Jeśli użytkownik nie będzie chciał, aby raporty były tworzone na podstawie sesji, powinien odznaczyć powyższy parametr. Po jego odznaczeniu zapisy kasowe będą trafiały do aktualnie otwartego raportu. W przypadku gdy nie będzie żadnego otwartego raportu, do którego można dodać zapis, będzie otwierany nowy raport z data i godziną przesłania pierwszego dokumentu lub zapisu do danego rejestru. Zamykanie raportu należy realizować ręcznie po stronie Comarch ERP XL. Po zamknięciu raportu, w przypadku przesłania kolejnych dokumentów czy zapisów, system otworzy kolejny raport.
- Codzienne otwieranie raportów kasowych podczas importu pierwszego dokumentu – Po zaznaczeniu tego parametru, każdego dnia podczas importu pierwszego dokumentu lub zapisu, otwierany będzie raport z godziną otwarcia 00:00:00. Raporty będą otwierane każdego dnia bez względu na to czy raport z poprzedniego dnia został zamknięty, czy nie. Zamykanie raportu należy realizować ręcznie po stronie Comarch ERP XL. Po zamknięciu raportu, w przypadku przesłania kolejnych dokumentów czy zapisów, system otworzy kolejny raport w danym dniu.

- Z poziomu stanowiska POS


- Z poziomu karty Operatora


- Z poziomu listy operatorów


- kod, nazwę i serię oddziałową
- Nazwy, rejestry i parametry dla poszczególnych form płatności (udostępnionych w Centrum POS)
- Parametry związane z operacjami kasowymi
- Ustawieni drukarki fiskalnej i szuflady
- Operatorów, którzy będą mogli logować się do POSa. Pierwsze logowanie z hasłem: admin, następnie klient może zmienić hasło z poziomu POSa
- Listę dostępnych wydruków
Konfiguracja Centrum
Na definicji Centrum w module Administrator, oprócz elementów zdefiniowanych podczas kreacji oddziału i dodawania stanowiska POS można dodać cenniki inne niż domyślne, oraz magazyny inne niż domyślne.Parametry operatorów (moduł Administrator)
Prawa operatorów można przesyłać do stanowiska POS tylko w kontekście grup operatorów. W związku z tym prawa związane z operatorami należy definiować na wzorcu operatora, do którego jest przypięty. Uprawnienia operatorów zapisywane są na zakładce [POS] na wzorcu operatora.
- Dostęp do konfiguracji – pozwala na otwarcie okna konfiguracji na stanowisku POS.
- Konfiguracja interfejsu – jeżeli operator nie posiada tego uprawnienia to nie może modyfikować widoków okien na stanowisku POS.
- Ręczne otwarcie szuflady – Pozwala na otwarcie szuflady specjalnym przyciskiem w dowolnym momencie a nie tylko podczas zatwierdzania dokumentów
- Drukowanie raportu fiskalnego dobowego – umożliwia drukowanie raportu fiskalnego dobowego za pomocą przycisku [Raport dobowy], który znajduje się w oknie Raporty fiskalne na stanowisku POS wybraniu Rozliczenia→ Raporty fiskalne.
- Drukowanie raportu okresowego – operator nieposiadający tego uprawnienia nie może korzystać z przycisku [Raport okresowy], który widoczny jest po wybraniu Rozliczenia → Raporty fiskalne.
- Dodawanie i edycja kontrahenta – jeśli operator nie posiada tego uprawnienia to nie ma możliwości dodawania i edytowania kontrahentów na liście kontrahentów oraz dokumentach na stanowisku POS.
- Edycja dokumentów innych operatorów – jeżeli operator nie posiada tego uprawnienia, to nie może edytować dokumentów wystawionych przez innych operatorów, które znajdują się na liście dokumentów niezatwierdzonych (nawet jeśli ma do nich dostęp).
- Zmiana statusu realizacji na zamówieniu- możliwość zmiany statusu.
- Zmiana statusu płatności na zamówieniu- możliwość zmiany statusu płatności.
- Otwarcie zmiany z różnicą stanu kasy – umożliwia otwarcie zmiany, gdy występuje różnica pomiędzy stanem kasy w systemie, a stanem rzeczywistym podanym przez użytkownika. Jeśli uprawnienie jest nadane, to podczas otwierania zmiany będzie możliwość zatwierdzenia okna otwarcia zmiany bez względu na kwotę różnicy między stanem kasy wyliczonym przez system, a stanem rzeczywistym wprowadzonym przez użytkownika.
- Zamknięcie zmiany bez wypłaty – zamknięcie zmiany odbywa się z domyślnie wpisaną kwotą wypłaty równą 0,00.
- Przekroczenie limitu stanu kasy – operator ma możliwość przekroczenia limitu stanu kasy, w przypadku uruchomionej obsługi limitu stanu kasy (minimalnego, maksymalnego, ujemnego stanu kasy), (parametr obecnie nieobsługiwany)
- Oznaczenie dokumentów jako zafiskalizowane – funkcja używana do testów albo w przypadku awarii połączenia z drukarką w przypadku gdy paragon się wydrukował a ta informacja o fiskalizacji nie wróciła do POS, istnieje możliwość aby dokument oznaczyć jako zafiskalizowany lub ponownie go wydrukować (zafiskalizować).
- Prawo do uzgadniania stanów magazynowych- operator po zaznaczeniu parametru ma możliwość uzgadniania stanów w Comarch POS
- Dostęp do inwentaryzacji
- Zamykanie arkuszy
- Podgląd listy raportów (odczytów)
- Modyfikacja raportów (odczytów) innych użytkowników
Maksymalny rabat na dokumentach sprzedaży
Wystawiając dokument w Comarch POS weryfikowane jest ustawienie z karty operatora logującego się do Comarch POS dotyczące maksymalnego rabatu na dokumentach.Zmiany w konfiguracji oddziałów Comarch POS
Wprowadzenie na Oddziale zakładki POS Agent
Dla każdego istniejącego oddziału Comarch POS należy zdefiniować Agenta. Aby to zrobić należy przejść do konfiguracji oddziału Comarch POS, następnie na zakładce [POS Agent] uzupełnić pole kod POS Agenta. Kod POS Agenta powinien być ciągiem znaków (litery i/lub cyfry) bez spacji. Dla każdego oddziału należy ustalić inny kod POS Agenta. W przypadku nowych oddziałów system pilnuje, aby kod został uzupełniony przed zapisaniem oddziału. Pola Host, Port oraz GUID zostaną uzupełnione automatycznie po zarejestrowaniu usługi POS Agent.
Przycisk Resetuj ustawienia POS Agenta służy do usunięcia ustawień POS Agenta w sytuacji, gdy koniczna jest jego ponowna rejestracja.
Na zakładce [POS Agent] definiuje się również magazyny przypisane do danego oddziału Comarch POS.

W przypadku nowych oddziałów na zakładce [POS Agent] pojawi się magazyn wskazany podczas kreacji oddziału. Jeśli w sklepie jest więcej niż jeden magazyn należy go przypisać do POS Agenta (wcześniej musi zostać dodany do Centrum powiązanego z oddziałem Comarch POS). W związku z powyższym przywrócono możliwość dodawania wielu magazynów do Centrum powiązanego z oddziałem Comarch POS. Magazyn przypisany do jednego POS Agenta nie może zostać przypisany do innego POS Agenta.
W przypadku gdy oddział był kreowany w poprzednich wersjach, podczas konwersji magazyn domyślny zostanie przypisany do POS Agenta. Jeśli ten sam magazyn był przypisany do wielu oddziałów Comarch POS, wówczas zostanie on usunięty z konfiguracji wszystkich oddziałów i konieczne będzie przypisanie magazynów domyślnych dla każdego oddziału na nowo.
Uzgadnianie stanów magazynowych w Comarch POS
Przy poprawnie zainstalowanej i działającej usłudze stany towaru są na bieżąco aktualizowane. Ponieważ stany towaru nie są już zapisywane w bazie Comarch POS, lecz w bazie POS Agent, użytkownicy, którzy posiadali oddziały Comarch POS w poprzednich wersjach Systemu muszą dokonać operacji uzgodnienia stanów. Prawo do uzgadniania stanów magazynowych zostało dodane na wzorcu operatorów na zakładce [POS]. Tylko operatorzy z zaznaczonym prawem Prawo do uzgadniania stanów magazynowych mogą aktualizować stany z poziomu Comarch POS. Operacji uzgodnienia stanów dokonuje się z poziomu aplikacji Comarch POS. Z menu głównego należy wybrać opcję Back office, a następnie przycisk Uzgadnianie stanów magazynowych.
Sprzedaż z wielu magazynów
Comarch POS umożliwia sprzedaż towaru z kliku magazynów. Gdy na domyślnym magazynie braknie towaru, wówczas pobierany jest on z kolejnych magazynów. Możliwe jest również wskazanie konkretnego magazynu na poziomie pozycji dokumentu (wymaga zmian w konfiguracji interfejsu w POS). Informacje o tym z jakiego magazynu został pobrany towar przesyłane są na poziomie subelementów pozycji dokumentu. Informacja o magazynie/magazynach poszczególnych pozycji dokumentu jest uwzględnia podczas importu i odpowiednio zapisywana na dokumentach. W przypadku braków towaru, automatyczne PW dodaje towar do właściwego magazynu.Podgląd stanów magazynowych w innych sklepach
W ERP XL obsłużono funkcję podglądu towaru w innych sklepach. W Comarch POS na liście towarów oraz na podglądzie towaru znajduje się przycisk Dostępność w sklepach. Standardowo przycisk ten jest ukryty, dlatego najpierw należy go odkryć z poziomu konfiguracji interfejsu w POS. Po wybraniu przycisku Dostępność w sklepach zostanie otwarte okno, w którym prezentowany jest stan danego towaru w magazynach innych sklepów Comarch POS w ramach danej instalacji. Stany towarów sprawdzane są on-line, dlatego do uruchomienia tej opcji potrzebne jest aktywne połączenie z Comarch ERP XL czyli działająca usługa XLDataService.Konfigurowanie i przesyłanie domyślnego kontrahenta
Umożliwiono przesyłanie domyślnego kontrahenta innego niż Jednorazowy. Aby na dokumentach w POS domyślnie podpowiadał się inny kontrahent niż Jednorazowy należy na definicji dokumentu PA (w kontekście centrum powiązanego z danym oddziałem POS), na zakładce [Inne] wybrać odpowiedniego kontrahenta, który należy do grupy wysyłanej do Comarch POS. Aby przywrócić kontrahenta Jednorazowego wystarczy usunąć wskazanego wcześniej kontrahenta z definicji dokumentu PA.
Obsługa podzielonej płatności – MPP
Obsługa podzielonej płatności została obsłużona w następującym zakresie:- Przesyłanie informacji o obsłudze MPP na podstawie parametru w Konfiguracji XLa
- Przesyłanie ustawienia na karcie towaru dot. podzielonej płatności (MPP)
- Ustawianie na zaimportowanej fakturze parametru związanego z podzieloną płatnością (zakładka [Płatności]) zgodnie z informacjami przesłanymi z Comarch POS.
Import wartości atrybutów na dokument
Do POS przekazywane są klasy atrybutów związane z definicją dokumentów, jak również elementów dokumentów. Wartość dla danego atrybutu może być uzupełniona w trakcie wystawiania dokumentu w POS. Podczas importu dokumentów wartości atrybutów dokumentu i elementów dokumentu są odczytywane i odpowiednio zapisywane na transakcjach.Przesyłanie kodów kreskowych związanych z jednostkami pomocniczymi
Jeśli dla towaru zostaną zdefiniowane dodatkowe jednostki miary i do tych jednostek zostaną przypisane kody kreskowe, to zostaną one przesłany do POS. Przesyłane kody to kody własne, które widoczne są na zakładce [Jednostki i kody]/[Kody kreskowe]. Dzięki temu możliwe będzie wyszukiwanie towarów na liście towarów oraz dodawanie do dokumentu z wykorzystaniem dodatkowego kodu EAN. Na pozycji dokumentu automatycznie ustawi się jednostka miary powiązana z danym kodem kreskowym.
Blokada zatwierdzania RA do PA z niezgodnym NIP
Został również obsłużony parametr Blokada zatw. RA do PA z niezgodnym NIP, ustawienie znajduje się na definicji dokumentu faktury sprzedaży w kontekście centrum powiązanego z oddziałem Comarch POS.Przesyłanie informacji o domyślnej jednostce dla sprzedaży
Do POS przesyłamy ustawienia z karty towaru decydujące o tym, która jednostka ma być jednostka domyślną na transakcjach. Jeśli na karcie towaru, na zakładce [Jednostki i kody]/[Opakowanie], dla wybranej jednostki pomocniczej zostanie ustawiony parametr Ustaw jako jednostkę proponowaną: sprzedaży, jednostka ta zostanie przesłana do POS jako jednostka domyślna.
Podgląd historii kontrahenta
W POS możliwe jest wyświetlanie historii transakcji dokonywanych z danym kontrahentem. Informacje te pobierane są z systemu Comarch ERP XL, aby mogły pojawić się wszystkie transakcje wystawione również na innych stanowiskach POS. Do uruchomienia podglądu Historii konieczna jest praca on-line, czyli musi być uruchomiona usługa XLDataService. Historia kontrahenta dostępna jest z poziomu podglądu karty kontrahenta po przyciskiem Historia Transakcji. Historia prezentowana jest wg artykułów z podaniem daty i numeru transakcji, ilości sprzedanych bądź zwróconych towarów, ceny, wartości udzielonego rabatu. Dla transakcji wystawionych na danym stanowisku możliwe jest wykonanie korekty przez wybranie opcji Korekta na wybranej pozycji historii.Przyjmowanie towaru w POS za pomocą dokumentów przesunięć międzymagazynowych MMW/MMP
Podczas kreowania nowego oddziału Comarch POS możliwe jest wskazanie czy na stanowisku mają być wystawiane dokumenty MMW i MMP. W przypadku użytkowników, którzy posiadają już skonfigurowane oddziały Comarch POS (poprzednio Comarch POS), koniecznym jest zaznaczenie na definicji dokumentów MMW oraz MMP w centrum firmy, z którym jest powiązany oddział Comarch POS, parametru Wystawianie i edycja.Wystawianie MMW w celu przesunięcia towarów do POS
Aby przesunąć towar z magazynu Centrali na magazyn POS należy wystawić po stronie Comarch ERP XL dokument MMW, gdzie magazynem docelowym będzie magazyn oddziału Comarch POS. Do MMW nie może być wygenerowany dokument MMP – przyjęcia towaru na magazyn POS. Aby ułatwić kontrolowanie generowania MMP, na formatce magazynu dodano parametr Generowanie MMP po stronie Comarch POS. Po zaznaczeniu tego parametru, dokument MMP nie będzie tworzony automatycznie a podczas próby jego wygenerowania pojawi się stosowny komunikat. Parametr można zaznaczyć tylko na magazynach przypisanych do POS Agenta (oddziału Comarch POS).
Przyjęcie towaru po stronie stanowiska POS
Wystawiony dokument przesunięcia magazynowego (MMW) trafia na stanowisko POS, gdzie może zostać przyjęty. Opcja przyjęcia towaru znajduje się w menu Back Office, pod przyciskiem Przyjęcie dostawy. Po wejściu na listę dostaw wyświetlają się dokumenty MMW wystawione w XLu na magazyny POS, które nie zostały jeszcze przyjęte na stan. Możliwe jest podejrzenie dokumentu MMW przyciskiem Podgląd lub przyjęcie przyciskiem Przyjmij. Użytkownik może przyjąć wszystkie pozycje w ilościach jakie zostały przesłane lub może wprowadzić ilości ręcznie zgodnie ze stanem faktycznym. Możliwe jest też skanowanie przyjmowanych pozycji za pomocą czytnika. Po zatwierdzeniu przyjęcia przyciskiem Zatwierdź, generowany jest dokument MMP (przyjęcie na magazyn POS), gdzie ilości dla pozycji są zgodne z dokumentem MMW oraz dokument PRP – protokół przyjęcia (rozbieżności), gdzie zapisano ilości rzeczywiście przyjęte na stanowisku POS. Po wygenerowaniu powyższych dokumentów, trafiają one do Comarch ERP XL. Dokument MMP widoczny jest na liście dokumentów wewnętrznych, zakładka [MMP], natomiast raport rozbieżności jest dostępny z poziomu podglądu MMP lub MMW za pomocą przycisku PRP dostępnego na prawym pasku okna jak przedstawiono poniżej.

MMW a partie towaru
Jeśli na MMW znajdą się towary, które pochodzą z różnych partii wówczas po stronie POS na dokumencie MMW każda partia będzie widoczna jako oddzielna pozycja. Również na dokumencie PRP towary i rozbieżności dla nich będą prezentowane oddzielnie dla każdej partii.Atrybuty, opis dokumentu
Na dokumentach MMW i MMP wystawianych w POS można uzupełnić opis oraz wartości atrybutów nagłówka i pozycji, jeśli zostały określone do tych obiektów. Informacje te są przekazywane na importowane MMW i MMP na zasadach analogicznych jak dla innych dokumentów.Anulowanie dokumentów magazynowych
Nie jest możliwe anulowanie dokumentów MMW wystawionych w Comarch ERP XL i wysłanych do oddziału POS. Przy próbie anulowania pojawi się komunikat: Anulowanie dokumentu MMW-8/21/10 nie jest możliwe. Nie jest możliwe anulowanie dokumentów MMP wygenerowanych podczas przyjęcia towaru w POS i przesłanych do XL. Przy próbie anulowania pojawi się stosowny komunikat. Anulowanie dokumentu MMP możliwe jest z poziomu stanowiska POS. Informacja o anulowaniu przesyłana jest do Comarch ERP XL gdzie dokument jest również anulowany. Po anulowaniu dokumentu MMP możliwe jest ponowne przyjęcie towaru na stanowisku POS.Zwrot towaru do centrali
Aby możliwy był zwrot towarów z oddziału Comarch POS do magazynu Centrali konieczne jest przypisanie magazynów do Centrum powiązanego z oddziałem Comarch POS. Tylko magazyny przypisane do Centrum mogą być magazynami docelowymi, na które może być dokonywany zwrot towaru. Zwrot towaru realizowany jest poprzez wystawienie w Comarch POS dokumentu zwrotu w postaci MMW z magazynu sklepu do magazynu Centrali. Aby wystawić dokument przesunięcia zwrotu towaru w POS należy wybrać opcję Back Office, a następnie przycisk Wydanie towarów i kolejno opcje Przygotowanie wysyłki i Przesuniecie ręczne. Podczas dodawania zwrotu konieczne jest wskazanie magazynu źródłowego, z którego ma zostać wydany towar oraz magazynu docelowego, na który ma trafić zwracany towar. POS Agent kontroluje ilość towaru ma magazynach POS i nie pozwoli na zwrot towaru, którego nie ma na stanie magazynu POS. Po zatwierdzeniu dokumentu, MMW trafia do sytemu Comarch ERP XL a następnie jest do niego generowany dokument MMP. To, czy dokument MMP zostanie wygenerowany automatycznie, czy też nie zależy od ustawień na definicji dokumentu MMW, na zakładce [Inne] j.n.
Anulowanie dokumentów zwrotu
Dokumenty MMW wystawione w POS nie mogą być anulowane z poziomu Comarch ERP XL. Przy próbie anulowania pojawi się komunikat: Anulowanie dokumentu MMW-11/21/P5/10 nie jest możliwe. Możliwe jest natomiast anulowanie MMW z poziomu stanowiska POS, gdzie taki dokument został wystawiony. Po anulowaniu w POS następuje anulowanie dokumentu po stronie XL, o ile nie ma do niego wygenerowanego dokumentu MMP. W przypadku gdy taki dokument został już wygenerowany, najpierw należy anulować MMP w XL a następnie MMW w POS.Przesunięcia towaru między magazynami sklepu
Jeśli sklep prowadzi więcej niż jeden magazyn możliwe będzie przesuwanie towaru pomiędzy jego magazynami. Każdy magazyn sklepu musi zostać przypisany do oddziału Comarch POS na zakładce [POS Agent]. Aby wystawić dokument przesunięcia magazynowego w Comarch POS należy wybrać opcję Back Office, a następnie przycisk Przesunięcia wewnętrzne. Po wybraniu magazynu źródłowego i docelowego należy wskazać towary do przesunięcia oraz ich ilości. POS Agent kontroluje ilość towaru ma magazynach POS i nie pozwoli na przesuniecie towaru, jeśli nie ma wystarczającej ilości na stanie magazynu. Po zatwierdzeniu dokumenty MMW i MMP przesyłane są do Comarch ERP XL i można je podejrzeć z poziomu listy dokumentów – dokumenty wewnętrze.Anulowanie przesunięć międzymagazynowych
Dokumenty MMW i MMP wystawione w POS nie mogą być anulowane z poziomu Comarch ERP XL. Przy próbie anulowania pojawi się komunikat: Anulowanie dokumentu MMW-11/21/P5/10 nie jest możliwe. Możliwe jest natomiast anulowanie dokumentów przesunięć z poziomu stanowiska POS, gdzie taki dokument został wystawiony. Po anulowaniu dokumentów w POS następuje anulowanie dokumentów MMW i MMP po stronie XL.Przesunięcia towaru pomiędzy sklepami (oddziałami) Comarch POS
- Odblokowano możliwość dodawania magazynów przypisanych do innych oddziałów w Centrum powiązanym z oddziałem POS. Dzięki temu w Comarch POS możliwe będzie wykonanie przesunięcia towarów pomiędzy różnymi sklepami (oddziałami POS).
- Przesunięcia pomiędzy różnymi sklepami można realizować w Comarch POS z poziomu menu Back Office/ Wydanie towarów/ Przygotowanie wysyłki/ Przesuniecie ręczne. Po dodaniu nowego dokumentu należy wskazać magazyn oddziału, z którego będzie realizowane przesuniecie (lokalny magazyn sklepu) oraz magazyn docelowy innego sklepu, na który zostaną przesunięte dodane do dokumentu towary.
- Jeśli na definicji dokumentu MMW w kontekście Centrum powiązanego z oddziałem POS zostanie niezaznaczony parametr dotyczący automatycznego generowania dokumentów MMP, wówczas MPP nie zostanie utworzone a dokument MMW może zostać pobrany na stanowisko oddziału, do którego zostały przesunięte towary. Standardowo przyjęcie towaru na drugim oddziale może być realizowane z poziomu opcji Back Office> Przyjęcie dostawy. Jeśli ww. parametr będzie zaznaczony wówczas dokument MMP zostanie utworzony w XLu a stany towarów na magazynie docelowym zostaną zaktualizowane.
Zamówienia wewnętrzne
Zmiany w kreatorze oddziału
Podczas kreowania nowego oddziału możliwe jest wskazanie jest czy na stanowisku mają być wystawiane dokumenty ZW. W przypadku użytkowników, którzy posiadają już skonfigurowane oddziały Comarch POS, koniecznym jest zaznaczenie na definicji dokumentów ZW w Centrum firmy, z którym jest powiązany oddział Comarch POS, parametru Wystawianie i edycja.Przyjmowanie zamówień z oddziałów Comarch POS
Obsłużono scenariusz, w którym operator POS składa zmówienie w oddziale a następnie zamówienie to trafia do Centrali w Comarch ERP XL, gdzie może zostać zrealizowane. Aby wystawić dokument zamówienia wewnętrznego w Comarch POS należy wybrać opcję Back Office, a następnie przycisk Zamówienia wewnętrzne. Podczas dodania zamówienia należy wskazać magazyn źródłowy, na który trafi składane zamówienie oraz magazyn docelowy, na który mają trafić zamawiane towary. Zamówienie przesłane z Comarch POS do Comarch ERP XL może zostać po stronie XL:- Potwierdzone
- Anulowane
- Odrzucone
- Zamknięte
- Zrealizowane
- Otwierane – po próbie otwarcie dokumentu pojawi się komunikat w logu: Nie można otworzyć dokumentu Dokument wystawiony w Comarch POS
- Korygowane – przycisk korekty dla ZW pochodzących z POS jest niedostępny
- Niedostępna też jest opcja Ustal termin na pozycji zamówienia przesłanego z POS
Realizacja zamówień w Comarch ERP XL
Realizacja zamówienia polega na wystawieniu do niego dokumentu MMW z magazynu Centrali do magazynu POS. Zamówienie nie musi być od razu realizowane w całości. Można dokonywać częściowej realizacji zamówień, wówczas zamówienie zyskuje status w realizacji. MMW wystawione do zamówień trafiają do POS wraz z informacją, do jakich ZW zostały wygenerowane. Informacja ta widoczna jest w POS zarówno z poziomu listy zamówień wewnętrznych jaki dokumentów przyjęć magazynowych w kolumnie Dokumenty powiązane. We współpracy z Comarch POS nie jest możliwe wystawianie jednego MMW do wielu dokumentów ZW, dlatego podczas zaznaczenia wielu dokumentów ZW pochodzących z POS lub dokumentów pochodzących i niepochodzących z POS w logu pojawi się stosowna informacja: Dokument MMW nie może zostać wygenerowany. Zaznaczono więcej niż jeden dokument ZW i wygenerowanie dokumentu MMW nie powiedzie się. Zamówienia, które trafiły do XL z Comarch POS mogą być edytowane po stronie XL w zakresie zmiany ilości na pozycjach, bądź usuwania pozycji. Zmiany te przesyłane są do POS gdzie zamówienia są odpowiednio aktualizowane.Sposoby dostawy, atrybuty, opis
Do Comarch POS przesyłana jest lista sposobów dostawy, dzięki czemu operator na etapie składania zamówienia może określić jaki sposób dostawy preferuje. Na zamówieniu można też uzupełnić opis oraz wartości atrybutów nagłówka i pozycji, jeśli zostały określone do tych obiektów. Informacje te są przekazywane na importowanych zamówieniach na zasadach analogicznych jak dla innych dokumentów.Zamówienia sprzedaży
Zmiany w kreatorze oddziału
Podczas kreowania nowego oddziału możliwe jest wskazanie jest czy na stanowisku mają być wystawiane dokumenty ZS. W przypadku użytkowników, którzy posiadają już skonfigurowane oddziały Comarch POS, koniecznym jest zaznaczenie na definicji dokumentów ZS w Centrum firmy, z którym jest powiązany oddział Comarch POS, parametru Wystawianie i edycja. Dodatkowo na zakładce [Magazyny] należy ustawić magazyn źródłowy, z którego będą wystawiane dokumenty zamówienia sprzedaży w POS.Uprawnienia operatorów
Na wzorcu operatora zakładka [POS] dodano dwa parametry określające prawo do ustalania/zmiany statusów realizacji i płatności na dokumentach ZS, Zmiana statusów realizacji na zamówieniu oraz Zmiana statusu płatności na zamówieniu. Przesyłane są uprawnienia do edycji, dodawania, kasowania, podglądu zamówień na podstawie zakazów ustalanych na zakładce [Zakazy] karty wzorca operatora.Słowniki dla Zamówienia sprzedaży
W słowniku kategorii dodano dwie nowe pozycje, które wykorzystywane są na zamówieniach wystawianych w POS.- Statusy realizacji zamówienia (moduł Administrator, Listy/Słowniki kategorii/Transport)
- Statusy płatności na zamówieniu w POS (moduł Administrator, Listy/Słowniki kategorii/Transakcje)
Zmiany na formularzu dokumentu ZS
Na formularzu dokumentu ZS dodano nową zakładkę o nazwie [Realizacja], gdzie są prezentowane statusy realizacji zamówienia i płatności. Status realizacji zamówienia może być dowolnie zmieniany, natomiast status płatności z POS jest zawsze ustalany na stanowiskach oddziału POS i nie można go zmienić po stronie XLa.Rodzaje zamówień/ sposoby rezerwacji towaru
Zamówienia wystawiane zarówno w XLu jak i w POS mogą w różny sposób rezerwować towar. Działanie rezerwacji na zamówieniach zależy od ustawień definicji dokumentu ZS w kontekście Centrum powiązanego z oddziałem Comarch POS. Jeśli na definicji dokumentu nie zostanie zaznaczony żadne parametr dotyczący rezerwacji, wówczas nie będą tworzone żadne rezerwacje na towar dodany do zamówienia. Jeśli na definicji dokumentu zostanie zaznaczony parametr Rezerwacje blokują towar na magazynie, wówczas rezerwacje są traktowane jako ilościowe i nie pomniejszają w POS dostępnego stanu towarów. Jeśli zaznaczono parametr Rezerwuj zasoby, wówczas rezerwacje traktowane są jako zasobowe i pomniejszają ilość dostępną towaru na magazynie. Na stanowisku POS ilość zarezerwowana jest prezentowana w kolumnie Rezerwacje na podglądzie towaru lub partii towaru pod przyciskiem Zasoby.Synchronizacja zamówień pomiędzy systemami
Import zamówień z Comarch POS
Wszystkie zamówienia wystawiane na stanowiskach oddziałów Comarch POS, trafiają do bazy systemu Comarch ERP XL. Przenoszone są informacje o odbiorcy i nabywcy, o zarezerwowanych towarach wraz z informacją czy rezerwacja jest ilościowa, zasobowa lub jest to zamówienie bez rezerwacji, ustalona forma płatności, termin realizacji zamówienia i płatności, statusy realizacji i płatności, atrybuty pozycji i nagłówka oraz opis. Zamówienie wystawione na jednym stanowisku POS może być przesłane na inne stanowiska sprzedaży. Zamówienie trafia na listę zamówień sprzedaży na innym stanowisku POS po naciśnięciu przycisku Odśwież oraz w trakcie wykonywania pełnej synchronizacji.Eksport zamówień do Comarch POS
Zamówienia wystawione w Comarch ERP XL również mogą być wysyłane na stanowiska POS. Warunkiem przesłania zamówienia do systemu Comarch POS jest ustawienie na zamówieniu magazynu wykorzystywanego w danym oddziale Comarch POS, czyli dodanym na oknie konfiguracji oddziału na zakładce [POS Agent]. Magazyn POS musi być ustawiony zarówno na nagłówku jak i elementach, i rezerwacjach zamówienia. Do POS przesyłane są zamówienia Potwierdzone, natomiast nie są wysyłane zamówienia Niepotwierdzone oraz zamówienia Odrzucone. Zamówienia wystawione w innej walucie niż systemowa, również nie będą wysyłane do POS. Comarch ERP XL pilnuje również czy kontrahenci i towary ustawione na zamówieniu są przesyłane do POS. Jeśli nie są, wówczas całe zamówienie nie jest przesyłane.Modyfikacja zamówień oraz ich realizacja
Zamówienia sprzedaży mogą być modyfikowane zarówno na stanowiskach POS jak i w centrali, czyli w systemie Comarch ERP XL. Modyfikacje realizowane w POS trafiają automatycznie do bazy XLa, zamówienia modyfikowane po stronie XLa są aktualizowane na stanowiskach POS naciśnięciu przycisku Odśwież na liście zamówień lub podczas pełnej synchronizacji. Podczas otwierania zamówienia w POS, zmiany statusów, zamykania, anulowania czy realizacji zamówienia następuje sprawdzenia stanu zamówienia on-line w bazie XLa. Jeśli zamówienie jest otwarte w systemie XL lub na innym stanowisku, wówczas wyświetlana jest stosowna informacja i system nie pozwala na wykonanie żadnej akcji na tym zamówieniu. Dodatkowo dzięki usłudze sprawdzania zamówień on-line, przed jego modyfikacją pobierana zawsze aktualna wersja zamówienia, tak aby wykonywana modyfikacja czy realizacja zamówienia odbywała się zawsze na aktualnej wersji dokumentu. Zamówienie może być realizowane zarówno po stronie POS jak i po stronie XLa za pomocą faktury lub paragonu. W Comarch POS faktura czy paragon mogą być wystawiane tylko do jednego zamówienia, a zamówienie nie musi być realizowane w całości, lecz wieloma dokumentami sprzedaży. Po wystawieniu faktury lub paragonu do zamówienia, dokument sprzedaży wysyłany jest do XLa a dokument zamówienia jest aktualizowany (status w realizacji lub zrealizowany). Dokumenty ZS i FS lub PA są ze sobą powiązane co widoczne jest zarówno po stronie XLa jak i POS. Informacja o stanie realizacji zamówienia jest przekazywana również na inne stanowiska pod warunkiem wykonania tam opcji Odśwież lub pełnej synchronizacji. Podczas synchronizacji realizowanego zamówienia pochodzącego z innego stanowiska nie są przesyłane powiązane dokumenty handlowe, lecz informacja o statusie zamówienia (w realizacji lub zrealizowany).Aktualizacja stanów
Zamówienia zasobowe wpływają na stany towaru dostępnego do sprzedaży i są widoczne na liście zasobów w kolumnie Rezerwacje. Bez względu na to czy zamówienie zasobowe ZS zostało wystawione w POS czy w XLu (na magazyn POS), zamówienia od razu wpływają na stany towaru. Dzięki usłudze Comarch POS Agent, aktualna dostępna ilość towaru jest widoczna od razu na wszystkich stanowiskach bez konieczności synchronizacji tych dokumentów na inne stanowiska. Aby zamówienia wystawiane w XLu również na bieżąco aktualizowały stany towaru w POS Agencie, konieczne jest skorzystanie z usługi Comarch POS Agent Broker. Zamówienia ilościowe oraz zamówienia bez rezerwacji nie wpływają na stany dostępne w POS.Korekty zasobów na stanowisku Comarch POS- RW/PW
Funkcja korekty zasobów umożliwia ręczną aktualizację stanów magazynowych przy pomocy rozchodu wewnętrznego (RW) i przychodu wewnętrznego (PW). Korektę zasobów przy użyciu dokumentów PW i RW dokumentów można zastosować np. w przypadkach:- zniszczenia towaru
- znalezienia pustych opakowań
- kradzieży
- korekty stanów magazynowych
- korekty przyjęć towarów/paczek
Zmiany w kreatorze oddziału RW/PW
Podczas kreowania nowego oddziału możliwe jest wskazanie czy na stanowisku mogą być wystawiane dokumenty PW oraz RW. Odpowiednie typy dokumentów należy zaznaczyć w kroku 1 kreacji nowego oddziału.

- schematem numeracji tych dokumentów
- powiązaniem typu dokumentu z magazynami
- wydrukami dedykowanymi dla danych dokumentów
- uprawnieniami do wystawiania, anulowania, podglądu dokumentów – przesyłane są uprawnienia na podstawie zakazów ustawianych na wzorcu operatora
Wystawianie dokumentów PW i RW na stanowisku POS
Aby dokonać korekty zasobów na stanowisku POS za pomocą dokumentów PW lub RW w Comarch POS należy wybrać opcję Back Office, a następnie przycisk Korekty zasobów. Po wybraniu opcji Nowa korekta zasobów należy wybrać opcję wystawienia RW lub PW. Opcja korekty zasobów dostępna jest też na podglądzie konkretnych artykułów pod przyciskiem Nowa korekta zasobów. Podczas tworzenia dokumentu PW i RW należy wskazać magazyn, dla którego będzie wykonywana korekta zasobów oraz powód wystawienia takiej korekty. Określenie magazynu oraz powodu korekty jest obowiązkowe. Korekty zasobów mogą być realizowane w kontekście magazynów danego oddziału, czyli tych magazynów, które zostały określone na zakładce [POS Agent] na formatce Oddziału Comarch POS w XL. Aby możliwe było określenie powodu korekty w Comarch ERP XL został wprowadzony nowy słownik kategorii, który jest przesyłany do oddziałów POS.
Import dokumentów do Comarch ERP XL
Dokumenty wystawione na stanowisku POS są importowane do XLa. Na dokumentach RW pobierane są dostępne zasoby i partie wskazane podczas wystawiania dokumentu w POS. Przy imporcie dokumentów PW cena nie jest przekazywana, dlatego na pozycjach dokumentów PW cena jest ustawiana na podstawie ostatniej ceny zakupu. Generowanie dokumentów magazynowych do PW, RW uzależnione jest od ustawień na definicji dokumentów. Na definicji dokumentu PW, na zakładce [Inne] należy wybrać opcję Zezwalaj dla ustawienia: Zatwierdzanie dokumentów z pozycjami o wartości zerowej. W przeciwnym wypadku, dokument może nie zostać zaimportowany, jeśli w XLu nie zapisano ceny zakupu (nie było dostaw towaru).
Przyczyna korekty, atrybuty, opis
Do Comarch POS przesyłana jest lista przyczyn korekty (wystawienia PW, RW), dzięki czemu operator może określić przyczynę podczas wystawiania dokumentów. Informacja o przyczynie korekty przesyłana jest do XL i zapisywana na zakładce [Nagłówek], w sekcji Transakcja w polu Cecha. Na zamówieniu można też uzupełnić opis oraz wartości atrybutów nagłówka i pozycji, jeśli klasy atrybutów zostały przypisane do tych obiektów. Informacje te są przekazywane na importowanych dokumentach na zasadach analogicznych jak dla innych dokumentów.Dodawanie nowego słownika kategorii
W module Administrator w menu Listy/Słowniki kategorii w gałęzi Transakcje dodano nowy słownik Przyczyna wystawienia PW, RW w POS. Lista domyślnie nie zawiera żadnych wpisów, dlatego przed wystawieniem pierwszego dokumentu PW lub RW w POS należy dodać przynajmniej jedną pozycję do listy. Przyczyna wystawienia korekty może być przeznaczona tylko dla PW, tylko dla RW lub dla obu dokumentów. Można o tym decydować przez zaznaczenie odpowiednich opcji na formatce przyczyny.Przyjmowanie dostaw bezpośrednio na stanowisku POS za pomocą dokumentów PZ
W określonych branżach czy sklepach istnieje potrzeba przyjmowanie towarów bezpośrednio na stanowisku POS bez konieczności oczekiwania na przyjęcie towaru w Centrali. Czasami towar trafia bezpośrednio do sklepu, dlatego umożliwiono wprowadzanie dokumentów PZ bezpośrednio na stanowiskach Comarch POS. Aby móc korzystać z opcji wystawiania dokumentów PZ, podczas dodawania nowego oddziału POS należy zaznaczyć opcję obsługi dokumentów PZ w danym oddziale.

- Sprzedaż z magazynów: wszystkich
- Parametr Generuje płatności na zakładce [Parametry] odznaczony.
Dla dokumentów PZ wysyłane są następujące dane:
- Schemat numeracji – dokumenty PZ wprowadzane będą z serią przypisaną do stanowiska POS analogicznie jak inne dokumenty.
- Wydruki – dodano standardowy wydruk dostępny na zakładce [Wydruki] na stanowisku POS.
- Uprawnienia operatorów – na podstawie zakazów ustawionych na wzorcach/grupach operatorów.
- Atrybuty – możliwość wysyłania klas atrybutów przypisanych do nagłówka lub pozycji dokumentu PZ wraz z określeniem ich wymagalności.
Wystawianie dokumentów PZ w POS
Po zaznaczeniu parametru Wystawianie i edycja na definicji PZ w XLu, w Comarch POS w menu Back Office/Przyjęcie dostawy pojawi się przycisk Dodaj ręczny PZ.
- Wybranie magazynu sklepu, na który realizowane jest przyjęcie
- Ustalenie dostawcy oraz kontrahenta dodatkowego wraz z adresami
- Dodawanie towarów wraz z ilością (w przypadku wskazania konkretnej partii towaru, w XL ustalana jest odpowiednia partia na zakładce [Dostawy])
- Wprowadzenie ceny zakupu na podstawie otrzymanego dokumentu (to, czy ceny mają być wprowadzane w wartości netto czy brutto zależy od definicji dokumentu ustalonej w Comarch ERP XL)
- Dodanie informacji o numerze zamówienia, do którego realizowane jest przyjęcie – informacja ta zapisywana jest w XLu w polu Zamówienie na zakładce [Nagłówek]
- Dodanie numeru powiązanego dokumentu – informacja ta zapisywana jest w polu Faktura na zakładce [Nagłówek]
- Dodanie opisu
- Dodanie atrybutów nagłówka i pozycji
Rejestrowanie reklamacji sprzedaży na stanowiskach POS
Podczas dodawania nowego oddziału POS można zaznaczyć opcje obsługi dokumentów RLS w danym oddziale.

Przesyłanie do POS przyczyn reklamacji oraz żądań reklamującego
W module Administrator w Słowniku kategorii (Listy/Słowniki kategorii/Transakcje) został dodany nowy słownik Przyczyny reklamacji w POS. Słownik ten domyślnie nie zawiera żadnych pozycji, należy uzupełnić go wg własnych potrzeb. Dodane pozycje zostaną przesłane na stanowiska POS. W przypadku niezdefiniowania przyczyn, w POS można wybrać opcję <INNA>. Odznaczenie parametru Aktywny na dodanej pozycji spowoduje, że nie będzie ona dostępna do wybrania po stronie POS. Do Comarch POS wysyłane będą również pozycje słownika Żądania reklamującego dostępnego również w Słowniku kategorii (Listy/Słowniki kategorii/Transakcje).Dla dokumentów RLS wysyłane są następujące dane:
- Schemat numeracji – dokumenty RLS wprowadzane będą z serią przypisaną do stanowiska POS analogicznie jak inne dokumenty.
- Wydruki – dodano standardowy wydruk dostępny na zakładce [Wydruki] na stanowisku POS.
- Uprawnienia operatorów – na podstawie zakazów ustawionych na wzorcach/grupach operatorów.
- Atrybuty – możliwość wysyłania klas atrybutów przypisanych do nagłówka lub pozycji dokumentu RLS wraz z określeniem ich wymagalności.
Wystawianie dokumentów RLS w POS i przesyłanie do XLa
Na stanowiskach Comarch POS możliwe jest wystawianie dokumentów reklamacji zarówno z listy reklamacji jak i bezpośrednio z dokumentu faktury lub paragonu, do którego wystawiana jest reklamacja. Reklamacja może być też wystawiona jako niepowiązana z dokumentem handlowym ze wskazaniem towaru, którego dotyczy. Jeden dokument reklamacji dotyczy zawsze jednego towaru lub jednej pozycji dokumentu handlowego. Na dokumencie RLS wystawianym w POS należy określić:- Kontrahenta oraz odbiorcę wraz z adresami
- Reklamowany towar/usługę wraz z ilością
- Termin rozpatrzenia reklamacji (domyślnie pobierany z definicji dokumentu w XLu)
- Datę usterki – data powstania/zauważenia usterki
- Przyczynę reklamacji – wybór z listy dostępnych przyczyn zdefiniowanych w XLu
- Żądanie reklamującego – wybór z listy dostępnych żądań zdefiniowanych w XLu
- Opis usterki
- Atrybuty towaru i dokumentu

Realizacja reklamacji w Comarch POS
Po wysłaniu RLS do bazy XLa, reklamacja może być nadal uznawana bądź odrzucana na stanowisku POS. Po wykonaniu tej akcji informacja o zmianie stanu jest przesyłana do bazy XLa. Stany i statusy są odpowiednio aktualizowane; na pozycji reklamacji a na zakładce [Realizacja] pojawia się nowa pozycja: uznanie lub odrzucenie. Reklamacja, która jest rozpatrzona może zostać zamknięta przez operatora POS, po czym następuje aktualizacja stanu reklamacji w Xlu na Zamknięta. Reklamacja złożona w Comarch POS nie może być anulowana ani na stanowisku POS, ani z poziomu XLa. Jedyna droga to odrzucenie i zamknięcie reklamacji.Realizacja reklamacji w Comarch ERP XL
Rozpatrzenie i realizacja reklamacji mogą następować również w systemie Comarch ERP XL. Do POS przesyłane są następujące akcje wykonane w XLu:- Uznanie
- Odrzucenie
- Zamknięcie
- Otwarcie
Bony we współpracy z POS
Opis działania bonów
Opis konfigurowania, generowania i obrotu bonami został opisany w punkcie: Obsługa bonów towarowych. Rodzaje bonów, które mogą być obsługiwane w Comarch POS muszą zostać przypisane do Centrum powiązanego z oddziałem Comarch POS na zakładce [Rodzaje bonów]. Tylko bony z przypisanych rodzajów zostaną przesłane do oddziału Comarch POS. Do POS będą przesyłane bony, które mogą być sprzedane (stan: przyjęte na stan) lub wykorzystywane do rozliczenia (stan: wydane lub w realizacji). Nie zostaną przesłane bony zrealizowane oraz zablokowane.Przesyłanie do POS nowej formy płatności: bon
Aby płatność Bon została przesłana do Comarch POS konieczne jest zaznaczenie na płatności na definicji Centrum powiązanego z oddziałem Comarch POS, na zakładce [Formy Płatności], parametru Dostępna w oddziale. Na definicji każdego stanowiska POS konieczne jest powiązanie formy płatności Bon z rejestrem kasowo- bankowym. Możliwe jest wskazanie tego samego rejestru, który jest wykorzystywany dla gotówki lub dodanie nowego rejestru przeznaczonego tylko dla płatności bonem. Oznaczenie parametru Bez KP/KW będzie oznaczało, że dla płatności kartą nie będą tworzone dokumenty wpłat. Oznaczenie parametru Wyczyść po zamknięciu sesji będzie oznaczało, że kwoty z zapłaty bonami nie będą się kumulować, lecz będą zerowane po każdym zamknięciu sesji. Podczas przypisywania rejestru kasowego/bankowego do płatności typu Bon sprawdzane jest ustawienie parametru Bony na operacji przychodowej przypisywanej do rejestru. Do wybieranego rejestru musi być przypisana przynajmniej jedna operacja przychodowa z zaznaczonym parametrem Bony. Jeśli warunek nie zostanie spełniony, rejestr nie będzie mógł być przypisany. Należy wówczas wybrać inny rejestr lub zmienić ustawienie powyższego parametru.Sprzedaż bonów
Bony towarowe mogą być sprzedawane na dokumentach handlowych (fakturze lub paragonie) lub za pomocą not memoriałowych. To czy bon będzie sprzedawany za pomocą dokumentów handlowych czy też za pomocą not memoriałowych zależy od tego czy na rodzaju bonu został przypisany rodzaj noty. Aby bon mógł być sprzedany w POS musi nastąpić przyjęcie towaru i partii odpowiadającej numerowi bonu. Można to zrobić na kilka sposobów:- Przyjęcie bonów bezpośrednio na magazyn w POS za pomocą dokumentu przychodowego np. PW czy PZ
- Przesunięcie bonów dokumentem MMW z magazynu, na który bony zostały przyjęte na magazyn POS. Przyjęcie bonów na magazyn POS odbywa się analogicznie jak przyjęcie towarów w menu Back Office, Przyjęcie dostawy
Sprzedaż za pomocą faktury lub paragonu
Jeśli do rodzaju bonu nie został przypisany rodzaj noty wówczas standardowo sprzedaż bonów będzie realizowana wybranym dokumentem handlowym. Do sprzedaży bonów konieczne jest połączenie on-line z Comarch ERP XL. W przypadku gdy takiego połączenia nie ma, system POS wyświetli komunikat: Brak połączenia z serwisem bonów. W momencie sprzedaży bonu serwis bonów sprawdza stan bonu. Do sprzedaży może być przekazany tylko bon o stanie: Przyjęty na stan. Dodatkowo sprawdzany jest stan ilościowy dla partii odpowiadającej numerowi bonu i jeśli na magazynie, z którego wystawiana jest faktura/paragon brak ilości dla bonu, sprzedaż również nie będzie możliwa. Informacja o sprzedaży bonu trafia do XL wraz z zaimportowanym dokumentem sprzedaży. Po zaimportowaniu dokumentu do XL, stan bonu zmienia się na Wydany.Sprzedaż za pomocą not memoriałowych
Aby możliwa była sprzedaż za pomocą not memoriałowych konieczne jest odpowiednie skonfigurowanie systemu.- Podczas kreacji oddziału Comarch POS oraz podczas konwersji baz z istniejącymi oddziałami zostanie dodana nowa seria do listy serii not memoriałowych oznaczona nowym parametrem Oddziałowa. Seria dla not będzie taka sama jak dla dokumentów handlowych. Serii tej nie będzie można wykorzystywać podczas wystawiania not z poziomu XL, podczas próby wybrania pojawi się stosowny komunikat
- Konieczne jest dodanie nowej definicji noty memoriałowej oznaczonej parametrem Bony jak opisano w punkcie: Zmiany w definicji noty memoriałowej
- Na definicji rodzaju bonu należy przypisać dowolną definicję noty oznaczoną parametrem Bony

- paragon na towary i bony niepowiązane z notami
- notę na bony powiązane z definicją noty

Płatność za pomocą bonu
Do rozliczenia płatności mogą być wykorzystywane bony, które posiadają stan Wydany lub W realizacji, które równocześnie nie są przeterminowane. Do zapłaty bonem konieczne jest połączenie on-line z Comarch ERP XL, gdyż serwis bonów sprawdza w momencie zapłaty stan bonu w XL. W przypadku braku takiego połączenia, po wpisaniu numeru bonu zostanie wyświetlony komunikat: Brak połączenia z serwisem bonów i zapłata bonem nie będzie możliwa. Serwis bonów sprawdza stan bonu, jego wartość (lub wartość pozostałą do wykorzystania), oraz termin ważności. Jeśli bo nie może zostać wykorzystany do zapłaty jest to sygnalizowane odpowiednim komunikatem. Podczas zapłaty bonem należy wskazać formę płatności Bon oraz wpisać numer bonu. Jeśli bon jest możliwy do wykorzystania zostaje przypisany do płatności typu Bon. W przypadku bonu jednorazowego, po jego wykorzystaniu na płatności dokumentu, staje się on bonem zrealizowanym i nie może być użyty powtórnie, nawet wówczas, gdy płatność opiewała na wartość mniejszą niż wartość bonu. W przypadku bonów wielokrotnych po wpisaniu numeru bonu i dodaniu go do płatności, wyświetlana jest informacja o pozostałej kwocie bonu. Bon może zostać wykorzystany w kolejnych transakcjach. Po zaimportowaniu dokumentów sprzedaży do XL następuje aktualizacja stanu bonu. Możliwe stany to: W realizacji (bon wielokrotny, wykorzystany częściowo), Zrealizowany (jednokrotny lub wielokrotny rozliczony w całości). Jeśli zgodnie z konfiguracją płatności na stanowisku POS, w XL zostanie utworzony zapis kasowy lub bankowy do płatności typu bon, na zapisie zostanie dodana informacja o numerze bonu wykorzystanym na płatności. Numer bonu widoczny będzie na zapisie w polu: Bon na zakładce [Ogólne]. Informacja o numerze bonu zapisywana jest również na Płatności do dokumentu w polu: Bon na zakładce [Ogólne].Aktualizacja stanu bonu w momencie jego wykorzystania podczas zapłaty za dokument w POS
Wprowadzono usługę, która aktualizuje stan bonu on-line czyli od razu w momencie zapłaty w POS. Bon jednorazowy zostaje od razu ustawiony jako zrealizowany natomiast dla bonu wielokrotnego jest ustalana nowa wartość pomniejszona o kwotę użytą podczas rozliczenia. Tak wiec, zanim dokument sprzedaży, który został opłacony bonem trafi do XLa, bon jest zaktualizowany i nie istnieje ryzyko, aby został użyty ponownie.Obsługa usług
Umożliwiono przesyłanie kart towarowych o typie usługa. Dla usług przesyłane są również cenniki, jednostki pomocnicze, kody kreskowe, atrybuty oraz zdjęcia.Obsługa klawiatury numerycznej w POS
Na stanowisku POS dodano nowy parametr Obsługa klawiatury numerycznej, który odpowiada za włączenie odpowiedniej obsługi po stronie Comarch POS. Po zaznaczeniu parametru i synchronizacji ustawień, na oknie sprzedaży na stanowisku POS dostępna będzie numeryczna klawiatura ekranowa, która umożliwia łatwe wpisywanie danych liczbowych za pomocą ekranów dotykowych.Synchronizacja towarów powiązanych i zamienników
Towary powiązane i zamienniki są to obiekty rejestrowane na kartach towarów, na zakładce [Zamienniki]. Jest to rodzaj powiązania pomiędzy towarami, które pozwala na lepsze zarządzenie sprzedażą, proponowanie dodatkowych towarów bądź zamienników. Rodzaje powiązań pomiędzy towarami można definiować w słownikach kategorii w module Administrator. Wszystkie rodzaje powiazań (łącznie z zamiennikami) wysyłane są do Comarch POS.
Warunki przesyłania towarów powiązanych i zamienników
Do Comarch POS przesyłane są te powiązania, które na zakładce [Miejsca w strukturze firmy] mają dodane centrum powiązane z oddziałem Comarch POS lub centrum nadrzędne w stosunku do powyższego.

- Towary powiązane
- Powiązanie towaru z innym towarem przesyłane jest pod warunkiem, że towary należą do drzewa grup towarów przesyłanych do POS.
- Powiązanie nie będzie widoczne w POS, jeśli dany typ powiązania zostanie oznaczony w słownikach kategorii jako nieaktywny.
- Zamienniki
- zamiennik jednostronny lub obustronny (nie są przesyłane zamienniki: równoważne wszystkim)
- przelicznik towaru do zamiennika jest równy 1:1
- zaznaczono rodzaj dokumentów: Rozchodowe
Po usunięciu lub modyfikacji zamiennika/towaru powiązanego w Comarch ERP XL, zmiany przesyłane są do POS i aktualizowane.
Widoczność towarów powiązanych i zamienników w POS
- Podgląd karty towaru (artykułu) w Comarch POS
- Menu Artykuły > Podgląd > zakładka [Artykuły powiązane]

- Podczas dodawania towaru do faktury lub paragonu
Produkty proponowane, zamienniki i inne towary powiązane widoczne są kontekstowo dla każdej dodawanej do dokumentu pozycji.

Z listy widocznych towarów powiązanych można wybrać dowolny produkt i dodać go do dokumentu sprzedaży.
Obsługa limitów kredytowych
Wprowadzono możliwość obsługi limitów kredytowych we współpracy z Comarch POS. Limity są wysyłane na poszczególne stanowiska POS i kontrolowane podczas sprzedaży. Kontrahenci mogą mieć limit nieograniczony, ograniczony do określonej wysokości lub mogą korzystać z limitów innego kontrahenta. Obsłużono również możliwość korzystania z opcji kontroli limitów akwizytora.
Konfiguracja działania limitów we współpracy z POS
Na oknie konfiguracji oddziału Comarch POS, na zakładce [Kontrahenci] dodano następujące parametry:
- Obsługa limitu kredytowego – po zaznaczeniu tej opcji limity będą wysyłane do POS i kontrolowane podczas sprzedaży
- Maksymalny czas od ostatniej synchronizacji (m) – możliwość ustawienia maksymalnego czasu w minutach, w którym możliwe będzie korzystanie z lokalnie zapisanych limitów w sytuacji, gdy połączenie POS z centralą nie będzie aktywne.
- Prezentacja dostępnego limitu – parametr ten posiada trzy opcje decydujące o tym, jak limity mają być prezentowane podczas sprzedaży:
- Odejmuj wartość dokumentu – wartość dodawanych pozycji będzie automatycznie zmniejszała wartość dostępnego limitu
- Nie odejmuj wartości dokumentu – dostępny limit nie będzie się zmniejszał wraz z dodawaniem kolejnych pozycji do dokumentu.
- Nie prezentuj – kwota limitu nie będzie prezentowana, jednak podczas zatwierdzania dokumentu system sprawdzi limit i zostanie wyświetlone ostrzeżenia bądź blokada zgodnie z ustawieniami definicji dokumentu.

Przesyłanie ustawień związanych z limitami
Wymagane płatności bezgotówkowe
Aby działały funkcjonalności związane z limitami konieczne jest przesyłanie na stanowisko POS przynajmniej jednej płatności, która nie jest płatnością gotówkową, czyli nie tworzy zapisów kasowo-bankowych podczas zatwierdzania dokumentu. Tylko dla takich płatności stosowane są zabezpieczenia przed przekroczeniem limitu.
Na stanowisku POS należy dodać przynajmniej jedną płatność, która ma zaznaczoną opcję w kolumnie Bez KP/KW jak przedstawiono poniżej.

Czy w limicie uwzględniać dokumenty nie generujące płatności
To ustawienie przesyłane jest na podstawie definicji dokumentu FS w centrum głównym. W Comarch POS ustawienie to jest wspólne dla wszystkich dokumentów oraz dla wyświetlania na karcie kontrahenta. W Comarch ERP XL jest definiowane dla każdego dokumentu oddzielnie. Ze względu na fakt, że limity mają najczęściej zastosowanie na fakturach, przyjęto, że ustawienie to będzie pobierane z definicji faktury sprzedaży.

Sposób reakcji na przekroczenie limitu
To ustawienie przesyłane jest na podstawie definicji poszczególnych dokumentów (FS, PA) w centrum powiązanym z oddziałem Comarch POS. W zależności od ustawienia parametrów jak niżej podczas zatwierdzania dokumentu forma płatności niegotówkową może pojawić się ostrzeżenie lub nastąpić blokada zatwierdzenia dokumentu. Możliwe jest również pomijanie informacji o limicie w przypadku wybrania opcji Zezwalaj.

Przesyłanie limitów
Dla każdego kontrahenta wysyłane są wszystkie aktualne ustalone dla niego limity kredytowe. Nie są wysyłane limity, które są już przeterminowane. Każda zmiana wielkości limitu jest aktualizowana a usunięcie limitu powoduje jego usunięcie na stanowisku POS.
- W przypadku zaznaczenia na karcie kontrahenta, zakładce [Limity kredytowe] parametru Limit nieograniczony, limity nie będą wysyłane do POS a limit nie będzie kontrolowany.
- Jeśli wymieniony wyżej parametr nie będzie zaznaczony, ale limity nie zostaną ustalone wówczas na stanowisku POS będzie wyświetlana informacja o braku przyznanego limitu kredytowego.
- W przypadku dodania limitu kredytowego na zakładce [Limity kredytowe], limity będą odpowiednio wyświetlane i kontrolowane.
- Jeśli na karcie kontrahenta, zakładka [Handlowe] zostanie wskazany inny płatnik oraz zaznaczony parametr: Forma i termin płatności oraz limit kredytowy z karty płatnika, wówczas limit kredytowy będzie sprawdzany dla ustawionego dla kontrahenta płatnika.

Kontrola on-line limitów
Bardzo ważne jest, aby podczas sprzedaży możliwe było ustalenie najbardziej aktualnego wykorzystania limitu kredytowego, gdyż limit może być wykorzystany na innym stanowisku lub w systemie Comarch ERP XL. W momencie wyświetlenia danych kontrahenta w POS limit zostanie pobrany z XLa i wyświetlana zostanie aktualna wartość całkowita oraz dostępna limitu. Podobnie podczas wystawiania dokumentów sprzedaży prezentowany będzie dostępny i całkowity limit kontrahenta lub jego płatnika a przy zatwierdzaniu dokumentu FS czy PA z płatnością niegotówkową nastąpi kontrola bądź ostrzeżenie w przypadku przekroczenia limitu lub jego braku.
Jeśli z jakiegokolwiek powodu połączenie on-line nie będzie możliwe, wówczas z limitu można korzystać przez określony czas, którego długość ustala się w konfiguracji oddziału.
Limity akwizytora
Jeśli w Konfiguracji na zakładce [Sprzedaż]/[Parametry2] zostanie zaznaczony parametr: Sprawdzaj limit akwizytora, wówczas do POS będą wysyłane limity ustawione na karcie kontrahenta oznaczonego jako akwizytor, na zakładce [Limity akwizytora]. Limit akwizytora ustalany jest oddzielnie dla każdego centrum, dlatego, aby limit trafił do oddziału Comarch POS musi zostać przypisany do odpowiedniego centrum powiązanego z danym oddziałem.

Aby dla danego kontrahenta zadziałał limit akwizytora, konieczne jest przypisanie akwizytora na karcie kontrahenta, na zakładce [Inne]. Akwizytor musi być wybrany z listy kontrahentów (nie może być pracownikiem).

Limit akwizytora traktowany jest jak limit innego płatnika, to znaczy, że jeśli do kontrahenta zostanie przypisany akwizytor, a na karcie akwizytora zostanie ustalony limit, to na karcie kontrahenta oraz podczas sprzedaży dla tego kontrahenta, będzie sprawdzany limit przypisanego akwizytora.
W przypadku stosowania limitów akwizytora (włączony parametr Sprawdzaj limit akwizytora), nie są obsługiwane inne limity kontrahentów.
Zasady przesyłania, kontroli i kontroli on-line limitów akwizytora są takie same jak limitów kontrahenta/płatnika.
Wyszukiwanie kontrahentów w GUS i VIES
Umożliwiono wyszukiwanie i weryfikowanie kontrahentów w serwisach GUS i VIES. W tym celu przekazywany jest do systemu Comarch POS zaszyfrowany numer klucza ustawionego na definicji Usługi synchronizacji z POS. Aby wyszukiwanie w GUS i VIES było możliwe, serwis klucza musi być aktywny a klucz musi posiadać ważną gwarancję.Rozliczanie płatności w walucie obcej z równoczesnym wydaniem reszty w PLN (w walucie systemowej)
W Comarch POS możliwe jest przyjmowanie zapłaty za fakturę lub paragon w walucie obcej. Jeśli płatność walutowa zostanie przyjęta formą płatności gotówkową, wówczas system automatycznie wyliczy kwotę do wydania klientowi w walcie systemowej, czyli w PLN. Przy imporcie tak rozliczonych dokumentów do Comarch ERP XL tworzone są dwie płatności – jedna jako należność w wysokości wpłaty walutowej a druga jako zobowiązanie na wartość stanowiąca różnicę pomiędzy zapłatą w walucie obcej przeliczoną na PLN a wartością dokumentu (reszta wydana klientowi w PLN). To, czy do płatności zostaną wygenerowane dokumenty zapłaty (rozliczenia) zależy od ustawienia parametru Bez KP/KW na definicji płatności na stanowisku POS. Wyliczenie kwoty do zwrotu (reszty) realizowane jest po stronie Comarch POS wg określonego kursu (ustawienia kursu dla Comarch POS dostępne są na definicji Oddziału POS na zakładce [Waluty]).Inwentaryzacja
Wprowadzono możliwość realizowania inwentaryzacji we współpracy z Comarch POS, gdzie odczyty (spis towarów z natury) mogą być realizowane na stanowiskach POS. Dodanie dokumentu inwentaryzacji będzie realizowane po stronie XLa. Następnie do dokumentu inwentaryzacji należy wygenerować arkusze inwentaryzacyjne, które zostaną przesłane na stanowiska POS. Po stronie stanowisk POS będą generowane odczyty, które po zamknięciu arkuszy w POS trafią do XLa. Zatwierdzenie całej inwentaryzacji i wykonanie korekt inwentaryzacyjnych realizowane będzie po stronie Comarch ERP XL.Ustawienia i uprawnienia
Na oknie konfiguracji oddziału Comarch POS oraz w kreatorze oddziału dodano nowe parametry związane z inwentaryzacją. Aby móc wykonywać operacje związane z inwentaryzacją w oddziałach Comarch POS konieczne jest zaznaczenie parametru Obsługa inwentaryzacji. Dodatkowo dodano parametr Ostrzegaj podczas dodawania inwentaryzowanego towaru na dokument. Po jego zaznaczeniu, podczas wystawiania dokumentów w POS na towary znajdujące się na arkuszach inwentaryzacyjnych pojawi się stosowny komunikat informujący o trwającej inwentaryzacji. Komunikat będzie się pojawiał do czasu zatwierdzenia arkusza, na którym znajduje się towar. Należy pamiętać, że zamknięcie arkusza w Comarch POS spowoduje aktualizację stanów w POS i przesłanie arkuszy do Comarch ERP XL, natomiast po stronie systemu XL inwentaryzacja do czasu jej zamknięcia nadal będzie blokować sprzedaż i wystawianie innych dokumentów. Na wzorcu operatora na zakładce [POS] również dodano parametry związane z inwentaryzacją. Są to parametry związane z uprawnieniami operatorów.Typy inwentaryzacji
Przed przystąpieniem do pierwszej inwentaryzacji należy dodać odpowiedni typ inwentaryzacji w POS. W tym celu w module Administrator należy przejść do opcji Listy/ Słowniki Kategorii/ Transakcje/ Typy inwentaryzacji POS. W słowniku tym należy dodać przynajmniej jeden typ inwentaryzacji, który jest niezbędny przy realizowaniu inwentaryzacji w Comarch POS. Na każdym z typów możliwe jest określenie kodu i nazwy typu oraz parametrów dotyczących sposobu realizacji inwentaryzacji. Jeden z typów można ustawić jako domyślny, wówczas automatycznie zostanie ustawiony no nowej inwentaryzacji. Można również dezaktywować wybrany typ za pomocą odznaczenia parametru Aktywny.Przygotowanie inwentaryzacji w Comarch ERP XL
Inwentaryzację należy dodać standardowo w module Sprzedaż w menu Zestawienia/Inwentaryzacja. Następnie należy wybrać jeden z magazynów POS, dla którego ma być przeprowadzona inwentaryzacja. Dla każdego magazynu inwentaryzacja musi być przeprowadzona oddzielnie tzn. należy wygenerować oddzielny dokument inwentaryzacyjny. Po dodaniu magazynu POS, zostanie aktywowany parametr Realizuj w Comarch POS. Po jego zaznaczeniu w polu Typ inwentaryzacji POS ustawi się domyślny typ inwentaryzacji. Jeśli żaden z typów nie został określony jako domyślny, obowiązkowo należy wybrać typ inwentaryzacji. Dla inwentaryzacji realizowanych po stronie POS konieczne jest przekazanie numeru dokumentu. W tym celu dodano pole Nazwa/Numer, którego uzupełnienie jest wymagane tylko w przypadku inwentaryzacji realizowanych w Comarch POS.Parametry inwentaryzacji
Na oknie inwentaryzacji niektóre parametry nie są dostępne do edycji i ich ustawienie jest domyślne.- Rodzaj odczytów – ustawienie to pobierane jest z typu inwentaryzacji.
- Generowanie arkuszy z podziałem na partie – opcja zaznaczona ze względu na to, że Comarch POS operuje na partiach towarów.
- Ilość inwentaryzowana – zaznaczona opcja handlowa, gdyż do Comarch POS wysyłane są stany handlowe towarów.
Dodawanie arkuszy inwentaryzacji
Aby inwentaryzacja została przesłana do Comarch POS należy wygenerować przynajmniej jeden arkusz. Podczas dodawania towarów do arkusza, system pilnuje, aby dodawane towary należały do grupy towarów wysyłanych do danego oddziału POS. Jeśli zostaną wskazane towary nie wysyłane do danego oddziału POS, z którego pochodzi magazyn na inwentaryzacji, nie zostaną one dodane do arkusza. Można również przygotować puste arkusze, wówczas towary można będzie dodawać podczas wykonywania spisu towarów na stanowiskach POS. Po zapisaniu formularza inwentaryzacji może on zostać przesłany do POS. Pobranie dokumentu inwentaryzacji inicjowane jest po stronie stanowiska POS podczas wejścia na listę dokumentów inwentaryzacji i wybranie opcji Odśwież. Po dodaniu kolejnych arkuszy, zostaną one dodane do inwentaryzacji w POS po odświeżeniu listy. Arkusze przekazane do Comarch POS nie mogą być usuwane ani aktualizowane w systemie XL, nie mogą być też dodawane do nich odczyty. Spisywanie towarów i generowanie odczytów możliwe będzie po stronie stanowisk POS.Realizacja inwentaryzacji na stanowiskach POS
Dokument inwentaryzacji oraz przesłane arkusze mają ustawiony stan otwarty i są gotowe do spisywania towaru. Do każdego arkusza może być generowanych wiele raportów (odczytów). Stany spisywanych towarów są sumowane lub nadpisywane w zależności od typu inwentaryzacji. Podczas spisywania towarów możliwe jest dodanie towaru, którego nie ma na arkuszu, w takim przypadku towar zostanie dodany do arkusza zarówno w POS jak i w XLu. Po skończonym spisie towarów należy zamknąć arkusz na stanowisku POS. Po jego zamknięciu arkusz wraz z odczytami zostanie przesłany do systemu XL i nie będzie możliwości kontynuowania spisu towarów będących na danym arkuszu. Odczyty przygotowywane na stanowiskach POS otrzymują nazwę wg schematu: Kod stanowiska_data i godzina dodania odczytu.Zamykanie inwentaryzacji
Po zamknięciu i przesłaniu do XLa wszystkich arkuszy można zamknąć inwentaryzację w systemie Comarch ERP XL. Zamknięcie inwentaryzacji w XLu spowoduje wygenerowanie dokumentów różnicowych na braki i nadwyżki zgodnie ze standardowym działaniem inwentaryzacji w Comarch ERP XL. Przed zamknięciem system zapyta czy na pewno proces inwentaryzacji po stronie Comarch POS został zakończony i czy na pewno zamknąć inwentaryzację.
Sprzedaż i inne dokumenty wpływające na stan towaru podczas inwentaryzacji
Istnieje różnica pomiędzy działaniem inwentaryzacji w Comarch ERP XL a Comarch POS polegająca na tym, że w XLu nie można wystawiać dokumentów na inwentaryzowane towary, podczas gdy w POS jest to możliwe. Oznacza to, że dokumenty wystawione na stanowiskach POS na inwentaryzowane towary lub na cały magazyn podlegający inwentaryzacji nie będą mogły być zaimportowane do czasu zamknięcia inwentaryzacji. Jeśli na dokumencie inwentaryzacji został zaznaczony opcja Inwentaryzacja blokuje cały magazyn, wówczas żadne dokument nie zostanie zaimportowany. Jeśli zostanie wybrana opcja Inwentaryzacja blokuje tylko inwentaryzowane towary, wówczas nie zostaną zaimportowane tylko te dokumenty, na których znajdą się inwentaryzowane towary. Blokada dotyczy magazynu, którego dotyczy inwentaryzacja. Na pozostałych magazynach można dokonywać sprzedaży czy wystawiać inne dokumenty. Przy włączonym parametrze Ostrzegaj podczas dodawania inwentaryzowanego, podczas dodawania towaru na dokument pojawi się stosowne ostrzeżenie o trwającej inwentaryzacji.Uzgadnianie stanów towarów podczas trwania inwentaryzacji w POS
W Comarch POS istnieje funkcjonalność polegająca na uzgodnieniu stanów towarów na podstawie stanów w Comarch ERP XL. Po wybraniu opcji Uzgadnianie stanów magazynowych w menu Aktualizacja danych stany towarów są ustalane na zgodne ze stanami w bazie systemu Comarch ERP XL. W trakcie trwania inwentaryzacji stany w Comarch POS aktualizowane są po zamknięciu arkusza, natomiast w Comarch ERP XL standardowo dopiero po zamknięciu inwentaryzacji i wygenerowaniu dokumentów na różnice inwentaryzacyjne. Wykonanie akcji Uzgodnienie stanów magazynowych doprowadziłoby do przywrócenia stanów sprzed rozpoczęcia inwentaryzacji. Nie należy wykonywać akcji Uzgodnienie stanów magazynowych podczas trwania inwentaryzacji w POS, gdyż doprowadzi to do niezgodności w stanach magazynowych pomiędzy systemami. Dodano wydruki do Inwentaryzacji (Inwentaryzacja, Wykaz rozbieżności inwentaryzacji, Arkusz inwentaryzacji, Raport inwentaryzacji). Wydruki widoczne są na formularzu stanowiska POS na zakładce [Wydruki].Wyszukiwanie globalne dokumentów w POS oraz możliwość wystawienia do nich korekt i reklamacji
Globalne wyszukiwanie dokumentów na stanowiskach POS
Obsłużono parametr globalne wyszukiwanie dokumentów na stanowiskach POS wg ustawienia na konfiguracji oddziału POS, zakładka [Parametry]. Wyszukiwanie globalne polega na możliwości przeszukania dokumentów w bazie Comarch ERP XL i pobranie na stanowisko POS. W przypadku, gdy po wpisaniu numeru poszukiwanego dokumentu (faktury lub paragonu) na liście dokumentów na stanowisku POS nie zostanie on odnaleziony w bazie lokalnej POS, System zadaje pytanie: Czy chcesz kontynuować wyszukiwanie również w systemie ERP?. Po wybraniu opcji Szukaj wysyłane jest zapytanie o konkretny numer dokumentu do Comarch ERP XL. W przypadku gdy dokument zostanie odnaleziony następuje jego pobranie i zapisanie w lokalnej bazie POS.Pobieranie dokumentów handlowych (faktur i paragonów) wystawionych na innych stanowiskach POS
Wystawianie korekt i reklamacji do dokumentów pobranych z innych stanowisk i oddziałów
Do pobranego paragonu możliwe będzie wygenerowanie faktury, wystawienie korekty oraz wystawienie dokumentu reklamacji na takich samych zasadach jak dla dokumentów wystawionych lokalnie. Do pobranych faktur możliwe będzie wystawienie korekty lub reklamacji na takich samych zasadach jak dla dokumentów wystawionych lokalnie.Współpraca z Comarch webPOS
Comarch webPOS jest wysoce skalowalnym rozwiązaniem, hostowanym w Comarch Cloud. Zadaniem aplikacji jest realizacja procesów biznesowych sprzedaży detalicznej. Aplikacja przeznaczona jest dla sprzedawców pracujących na stanowiskach kasowych. Jej głównym zadaniem jest wykonanie operacji związanych z obsługą klienta. Od wersji 2024.0 umożliwiono integrację Comarch ERP XL ze stanowiskami obsługi klienta Comarch webPOS. Aby możliwa była praca na stanowiskach webPOS, w konfiguracji Oddziału POS na zakładce [POS] dodano pole do wpisania kodu webPOS. Kod webPOS może być dowolnym ciągiem znaków, który posłuży do identyfikacji bazy danych, na której zarejestrowane są oddziały POS ze stanowiskami webPOS.
Logowanie do Comarch webPOS
W Comarch webPOS wykorzystywany jest adres e-mail operatora do powiązania użytkowników z kontem SSO, gdzie adres e-mail jest loginem. Oznacza to, że dla każdego operatora należy przesyłać adres mailowy. W tym celu zostanie wykorzystany adres e-mail pracownika powiązanego z operatorem przesyłanym do webPOS. W związku z powyższym wymaganiem należy każdemu operatorowi, który może pracować na wersji webowej POS przypisać konto pracownika, na którym należy uzupełnić adres mailowy w polu E-mail na zakładce [Ogólne]. Podczas przypisywania pracownika do operatora system pilnuje, aby ten sam pracownik nie został przypisany do kilku operatorów wykorzystywanych w oddziałach POS, dlatego nie istnieje ryzyko, że ten sam pracownik zostanie dodany do kilku operatorów. Każdy pracownik powinien mieć przypisany inny adres mailowy, pole to nie jest walidowane w systemie XL, dlatego należy zwrócić uwagę, aby adresy e-mail były unikalne.Nowy typ stanowiska
W konfiguracji Oddziałów Comarch POS dodano możliwość definiowania stanowisk z przeznaczeniem do pracy na platformie webPOS. Podczas dodawania stanowiska pojawiła się możliwość wskazania w polu Typ aplikacji opcji webPOS. Po wybraniu typu aplikacji webPOS, w polu Licencja automatycznie ustawi się opcja FrontOffice, bez możliwości zmiany, ze względu na to, że webowa wersja Comarch POS umożliwia na chwilę obecną obsługę sprzedaży i kasy. Stanowiska webowe mogą być mieszane z innymi typami aplikacji, tak więc w ramach jednego oddziału mogą pracować stanowiska POS, mPOS i webPOS. Podczas synchronizacji z platformą webPOS wysyłane są dane związane z wszystkimi stanowiskami webPOS dodanymi w dowolnym oddziale zarejestrowanym w XLu. Dokumenty wystawiane po stronie webPOS trafiają automatycznie do bazy XLa, po ich wystawieniu na stanowiskach webPOS.
Inne zmiany
Import korekty wystawionej do faktury wystawionej do paragonu
Umożliwiono przesyłanie do Comarch ERP XL korekt wystawionych do faktury, która została wystawiona do paragonu w Comarch POS. Korekta do faktur wystawionej do paragonu tworzona jest jako spinacz RAK. Aby możliwe było utworzenie korekty po stronie Comarch ERP XL spinacza korekty do faktury, generowany jest po stronie XLa dokument korekty do paragonu a następnie tworzony spinacz korekty, spinający korektę. Korekta paragonu wystawiana jest po stronie systemu XL w centrum głównym. Numer dokumentu nadawany jest po stronie XLa, zgodnie z ustawieniami centrum głównego.Przesyłanie pełnej nazwy kontrahenta
Umożliwiono przesyłanie wszystkich trzech linii nazwy kontrahenta do Comarch POS, jak również zapisywanie nazwy przesłanej z POS do Comarch ERP XL we wszystkich liniach aż do wyczerpania miejsca. Po stronie XLa nazwa może zostać zapisana w trzech liniach (2 linie po 50 znaków, w trzeciej linii 250 znaków). Podczas wysyłania kontrahentów do Comarch POS zawartość poszczególnych linii łączona jest przy pomocy spacji, podczas importu do Comarch ERP XL dane zapisywane są tak, aby słowa nie zostały podzielone w środku.Przesłanie numeru karty kontrahenta
W Comarch ERP XL na karcie towaru na zakładce [Ogólne] znajduje się pole Karta, w którym można zapisać numer karty kontrahenta. Wraz z uzupełnieniem numeru karty wybierany jest też typ karty. Jeśli nie zostanie wybrany typ karty, wówczas domyślnie zostanie ustawiona opcja Własna karta. Numery kart będą wysyłane wraz z typem do Comarch POS, dzięki czemu możliwe będzie wyszukiwanie kontrahentów wg numeru karty. Jeśli dla danego numeru karty kontrahenta zostanie wygenerowany kod kreskowy i przygotowana fizycznie karta, wówczas wyszukiwanie kontrahenta możliwe będzie z użyciem czytnika kodów kreskowych.
Przesyłanie jednostek wagi i miary towaru

Uruchomienie stanowiska POS
Po zainstalowaniu aplikacji Comarch POS należy uruchomić aplikację. Podczas pierwszego uruchomienia następuje łączenie stanowiska w Comarch POS ze stanowiskiem POS zdefiniowanym w Comarch ERP XL.- Kod stanowiska POS ustalony w XL (kod można zweryfikować w module Administartor Oddziałów, konfiguracja oddziału, zakładka stanowiska POS)
- Adres i numer portu, na którym pracuje usługa synchronizacji.

Przesyłanie danych do stanowisk POS
Na stanowiska POS wysyłane są następujące informacje:- Operatorzy przypisani do stanowiska
- Parametry operatorów zdefiniowane na wzorcu operatora
- Profile POS
- Magazyny przypisane do stanowiska
- Parametry zdefiniowane na stanowisku
- Parametry zdefiniowane na oddziale
- Waluty zdefiniowanie na oddziale wraz z kursami
- Jednostki miary
- Stawki VAT
- Kontrahenci z grupy wskazanej na oddziale – pod uwagę brana jest grupa domyślna kontrahenta
- Osoby kontrahenta
- Adresy kontrahenta
- Towary z grupy wskazanej na oddziale
- Atrybuty i zdjęcia towarów
- Cenniki
- Stany magazynowe
- Partie
- Drzewa grup towarów i kontrahentów
- Definicje dokumentów wraz z przypisaną serią
- Pieczątka firmy
- Rejestr kasowy i bankowy
- Formy płatności
- Wydruki
- Dokumenty MMW/ZS
Odbieranie danych ze stanowisk POS
Stanowiska POS pracują w trybie on-line co oznacza, że dokumenty wystawione w POS bądź też nowo dodany kontrahent trafiają od razu do bazy Comarch ERP XL. W przypadku braku połączenia informacje zostaną uzupełnione po ponownym nawiązaniu połączenia z XL. Na POS współpracującym z XL można wystawiać paragony, faktury, korekty do paragonu i faktury, faktury do paragonów oraz dokumenty kasowe. Do XL importowane są następujące dane:- Nowo dodani kontrahenci lub zmiana danych kontrahenta wraz z osobami i adresami
- Zgody kontrahenta
- Dokumenty handlowe (faktura, paragon, korekty do faktury i paragonu) – nie są obsługiwane korekty ręczne
- Dokumenty kasowe
- Dokumenty MMW/MMP
- Dokumenty RW/PW
- Dokumenty PZ
- Reklamacje
- Dokumenty ZW/ZS
- Dokumenty handlowe - POS można wystawiać tylko faktury i paragony, korekty do nich oraz spinacze do paragonów
- Faktury mogą być wystawiane od netto (zależne od definicji dokumentu )
- Numeracja dokumentów jest zgodna z ustawieniami w XL i zawsze z serią przypisaną do stanowiska (wspólna numeracja dla dokumentów i korekt!)
- Zapisy kasowe – wpłaty i wypłaty ręczne, dokumenty otwarcia i zamknięcia dnia, automatyczne KP/KW do dokumentów tworzone po stronie Xla (ustawienie na stanowisku POS)
- Sprzedaż poniżej stanów – możliwa jeśli zaznaczony jest parametr -automatyczne tworzenie PW
- Sprzedaż wg partii – towar widoczny kilka razy na liście towarów.
Przesyłanie podstawowych promocji do oddziałów Comarch POS
Rabaty przesyłane do Comarch POS- KNT (upusty globalne dla kontrahentów)
- KNU (upusty na towary, grupy towarów dla kontrahenta)
- PRM (promocje dla towaru)
- WTR (promocje od wartości dokumentu)
- Promocje pakietowe stałe i elastyczne
- Podstawowym kryterium jest Centrum, do którego przypięta jest promocja
- Kryterium kontrahentów

- Kryterium towarów

- Ograniczenia ze względu na formy płatności oraz sposoby dostawy
- Ograniczenia ze względu na magazyn
- Ograniczenia ze względu na rodzaj dokumentów
- Inne ograniczenia
- nazwa promocji
- typ promocji
- priorytety promocji
- sposób łączenia z poprzednią; do wyboru: dodaj lub mnóż
- ustawienie parametru: Pomijaj kolejne rabaty
Promocja KNT
Rabaty zapisywane na karcie kontrahenta na zakładce [Handlowe] zebrane są do jednej promocji o typie KNT i będą przesyłane do określonych oddziałów Comarch POS. Dla promocji KNT dla każdego wskazanego w promocji kontrahenta przesyłana jest wysokość rabatu do wykorzystania w oddziale. Rabat ten dotyczy wszystkich towarów i łączy się z innymi rabatami.Promocja WTR
Promocja na całą wartość dokumentu przesyłana jest do określonych oddziałów Comarch POS po warunkami opisanymi wyżej. Promocja może być zdefiniowana dla pojedynczych kontrahentów lub dla grup kontrahentów. Aby promocja naliczała się dla wszystkich kontrahentów wysyłanych do oddziału Comarch POS, konieczne jest wskazanie na zakładce [Kontrahenci] grupy zdefiniowanej jako grupa do eksportu kontrahentów do oddziału POS.Promocja PRN i KNU
Promocje PRN i KNU są to promocje elementowe, które dotyczą konkretnych towarów lub grup towarowych i naliczane są na pozycjach dokumentów. Ze względu na wymogi modułu rabatowego Comarch POS nie wszystkie elementy rabatów będą mogły zostać wysłane.- Typy promocji
- Rabaty progowe

Promocja pakietowa stała i elastyczna
Wprowadzono możliwość przesyłania promocji pakietowych stałych i elastycznych do systemu Comarch POS. Naliczanie promocji pakietowych w Comarch POS będzie analogiczne jak w Comarch ERP XL, przy czym w POS nie ma możliwości wyboru promocji pakietowych, lecz zostanie naliczony pierwszy pakiet spełniający warunku wg ustawień kolejności na liście promocji pakietowych. Nie wszystkie ustawienia promocji mogą zostać przesłane do Comarch POS ze względu na różnice w działaniu modułów rabatowych w obu systemach, co zostało opisane w kolejnych punktach.Warunki przesyłania promocji pakietowych
Do Comarch POS przesyłamy promocje pakietowe stałe i elastyczne pod określonymi warunkami. Do Comarch POS przesyłane są promocje pakietowe, które:- Zostały potwierdzone
- Data końcowa jest większa lub równa dacie bieżącej lub jest nieograniczona
- Data początkowa jest mniejsza lub równa dacie bieżącej lub jest nieograniczona
- W parametrze Rodzaj dokumentów wskazano opcję Wszystkie lub Rozchodowe
- Nie mają zaznaczonego parametru: Ważna w godzinach
- Nie mają zaznaczonego parametru: Powtarzać co
- Są przeznaczone dla Comarch POS ze względu na Centrum:
- Zostały udostępnione dla Centrum, z którym powiązany jest oddział Comarch POS
- Zostały udostępnione dla Centrum nadrzędnego w stosunku do powyższego
- Zostały udostępnione dla Centrum Głównego
- Na zakładce [Magazyny] wybrano opcję Wszystkie lub magazyny ustawione dla Oddziału POS
- Na zakładce [Formy płatności] wybrano opcję Wszystkie
- Na zakładce [Sposób dostawy] wybrano opcję Wszystkie
- Zostały zdefiniowane na dowolną grupę kontrahentów wysyłanych do POS lub przynajmniej jeden kontrahent przypisany na zakładce [Kontrahenci] jest wysyłany do POS
- Wszystkie towary na promocji należą do drzewa grup wysyłanego do POS – zakładka [Towary]
Automatyczne naliczanie promocji pakietowych
To czy promocja zostanie naliczona automatycznie na dokumentach wystawianych na stanowisku POS czy też będzie konieczne wybranie przycisku Nalicz promocje zależy od parametru, który ustawiany jest na oknie Konfiguracji oddziału Comarch POS na zakładce [Parametry].Kolejność naliczania promocji na stanowisku POS
W Systemie Comarch ERP XL możliwe jest ustalanie kolejności promocji pakietowych za pomocą przycisków Przesuń w dół pozycję na liście i Przesuń w górę pozycję na liście. Kolejność promocji możliwa jest do ustalenia osobno w obrębie promocji pakietowych i osobno w obrębie promocji PRM. Ustalenie kolejności promocji pakietowych jest przesyłane do Comarch POS, nie ma natomiast wpływu na wyświetlanie kolejności promocji podczas wystawiania dokumentów w Comarch ERP XL.
Informacje dodatkowe
Z powodu różnic pomiędzy działaniem promocji pakietowych w Comarch ERP XL a działaniem modułu rabatowego w Comarch POS mogą występować pewne odstępstwa w naliczaniu promocji.- Limity ilości pakietów
- Inne rabaty a promocje pakietowe
- Parametry dla gratisów
- Naliczenie pakietów dla innej jednostki niż podstawowa
- Promocja pakietowa stała
-
- Promocja pakietowa elastyczna
- Promocja pakietowa elastyczna towar wymagany
Informacja o pakiecie na dokumentach importowanych z Comarch POS
Na dokumentach importowanych z POS widoczna będzie informacja o zastosowanym pakiecie, a pozycje wchodzące w skład pakietu będą stosownie oznaczone. Również w oknie Struktura udzielonego rabatu prezentowana będzie informacja o pakietach oraz strukturze rabatu.Przesyłanie promocji progowych typu stała cena
Umożliwiono przesyłanie rabatów progowych typu stała cena, czyli promocji, gdzie dla danego towaru ustalono różne ceny w zależności od progu. Nie jest jednak możliwe przesyłanie promocji mieszanych, czyli takich, gdzie dla jednego progu ustalono rabat a dla innego stałą cenę w ramach tej samej promocji. Dla poszczególnych progów typ ceny powinien być taki sam, jeśli na jednym z progów zostanie ustawiony typ netto a na innym brutto to dla wszystkich cen stałych w tej promocji zostanie ustalony typ jak na pierwszej pozycji. Ograniczenia te wynikają z różnic w działaniu modułu rabatowego w obu systemach.Naliczanie rabatów od promocji typu stała cena
Istnieje możliwość naliczania dodatkowych rabatów do promocji typu stała cena. Zależy to od parametru globalnego ustawianego w konfiguracji systemu System/ Konfiguracja /Sprzedaż /Rabaty i promocje Naliczaj inne promocje/ rabaty.
Pytania i odpowiedzi
Czy można wystawić korektę do Paragonu do którego jest wystawiona Faktura? Rozwiązanie do wersji wcześniejszych niż ERP XL 2024. W POS można wystawić jedynie korektę do Faktury, inaczej niż w XL, gdzie korektę wystawiamy do Paragonu. Wystawiając więc korektę do faktury w POS nie zostanie ona przesłana do XL. Można skorzystać z rozwiązania zastępczego: Sposób A- Zmiana na rejestrze flagi oddział poprzez update update cdn.Rejestry set KAR_Oddzial=0 where KAR_GIDNumer=xxx
- Dodanie zapisu kasowego uzupełniając pola: wartość, treść, kontrahent, opis
- Dodanie PAK do synchronizowanego paragonu, można dodać nową serię specjalnie dla takich dokumentów
- Powiązanie dodanego zapisu z płatnością na PAK
- Utworzenie spinacza korekt RAK np. z nową serią
- Przywrócenie na rejestrze flagi oddział poprzez update update cdn.Rejestry set KAR_Oddzial=1 where KAR_GIDNumer=xxx
- Dokument FSK wygenerowany na stanowisku POS na formę i rejestr taki sam jak sprzedaż PA
- Dodanie PAK do synchronizowanego paragonu, można dodać nową serię specjalnie dla takich dokumentów
- Dodanie zapisu -rejestr zwrotów z POS, powiązany z PAK
- Utworzenie spinacza korekt RAK np. z nową serią
- Saldo uzgadniać biorąc pod uwagę salda dwóch rejestrów – oddziałowego i dedykowanego zwrotom na oddziale, porównywać z saldem rejestru na POS
- Przy tworzeniu korekty FS gdzie dodany jest PA, zmiana formy płatności na np. rejestr zwrotów z POS-gdzie dodany jest rejestr np. bankowy
- Dodanie PAK do synchronizowanego paragonu, można dodać nową serię specjalnie dla takich dokumentów
- Dodanie zapisu -rejestr bankowy zwrotów z POS, powiązany z PAK
- Utworzenie spinacza korekt RAK np. z nową serią
- Saldo uzgadniać biorąc pod uwagę salda dwóch rejestrów – oddziałowego i dedykowanego zwrotom na oddziale, porównywać z saldem rejestru na POS
Numer błędu i komunikat | Przyczyna | Rozwiązanie |
---|---|---|
XLDodajRaport zwróciła błąd:-1 | Najprawdopodobniej została wycięta sesja operatora, na którego założona na którego ustawiona jest synchronizacja | W tabeli Documents.TradeDocumentsdla pola WasSentToERP ustawić wartość 0 dla tych dokumentów które nie przeszły i wykonać restart usługi synchronizacji. |
XLOtworzRaport zwróciła błąd:8148 | błędna data otwarcia pokrywa się z innym raportem | Należy zmodyfikować daty na raporcie |
XLZamknijRaport zwróciła błąd:8034 | komunikat wskazuje, że raport został już zamknięty | Należy otworzyć raport, aby dokumenty przeszły do XLa |
XLDodajZapis zwróciła błąd:8007 | Komunikat 8007 oznacza: nie znaleziono bieżącego okresu obrachunkowego | Należy dodać bieżący okres obrachunkowy; System/Konfiguracja/Księgowość/Okresy obrachunkowe, oraz wskazać konto księgowe na rejestrze kasowym ; Administrator/Firma/Rejestry kasowe/Ogólne/ |
XLLogin zwrócił błąd:-3 | Niepoprawnie wystartowała usługa do synchronizacji Nie podano nazwy programu | Można ponownie podłączyć bazę w Menedżerze Baz, uruchamiając CDNMGR spod prawego jako administrator, kolejno podłączyć bazę po autoryzacji na serwerze sql, dostępną dla wszystkich użytkowników. Należy usunąć usługę i dodać ją ponownie. |
XLLogin zwróciła błąd:-6 | Niepoprawnie wystartowała usługa do synchronizacji Nie podano hasła lub brak operatora -na stanowisku nie było logowania do XLa na operatora do synchronizacji, a w między czasie mogło zostać zmienione hasło do Xla (związane z błędem w TFS=432188, gdy usługa tworzona jest na inne konto domenowe niż zalogowany użytkownik) -TFS=443789 błąd w działaniu jednej usługi na kilku oddziałach | - błędne hasło na operatorze do synchronizacji przy tworzeniu usługi i na operatorze na oddziale zakładka Synchronizacja -błędna ścieżka w Path - centrum domyślne wskazane jako centrum oddziałowe, a powinno być centrum XL nie powiązane z oddziałem |
XLNowyDokument zwróciła błąd:-39 | - Wystąpił niezidentyfikowany Błąd najprawdopodobniej jest spowodowany złym działaniem otoczenia programu, niestandardowe triggery lub dodatki. | Należy zweryfikować niestandardowe triggery i dodatki na bazie oraz ponowić synchronizacje dokumentu |
XLNowyDokument zwróciła błąd:33 | Nie udało się wymusić numeru dokumentu. Numer dokumentu, który wyświetlany jest w POS (seria i numeru) może jest już dodany do XL Usługa synchronizacji ustawiona jest dla kilku oddziałów, na zakładce synchronizacja dla każdego oddziału powinna mieć wskazanego innego operatora, jeśli będzie ten sam pojawi się komunikat w logach XLNowyDokument zwróciła błąd:33 | Nazwy dokumentów w POS znajdują się w NumberString w tabeli Documents.TradeDocuments. W XL można odfiltrować cdn.TraNag po serii POSowej w TrN_TrNSeria i numerze TrN_TrNNumer . Zmiana operatora na oddziale zakładka synchronizacja, moduł musi zostać uruchomiony jako administrator, aby zmienić operatora i hasło |
XLNowyDokument zwróciła błąd:66 | -Próba wystawienia korekty do dokumentu, który nie może być korygowany, błąd | Do takiego dokumentu nie można wygenerować korekty |
XLNowyDokument zwróciła błąd:71 | -Oryginał korekty w buforze | Należy sprawdzić czy dokument do którego generowana jest korekta w XLu nie jest w buforze, jeśli tak i płatność została dodana można taki dokument zatwierdzić w XLu i ponowić synchronizacje korekty |
XLNowyDokument zwróciła błąd:81 | -Brak licencji (nie udało się pobrać licencji a wymagana przez procedurę) | Należy sprawdzić czy są dostępne licencje na kluczu następnie wykonać restart usługi synchronizacji |
XLNowyDokument zwróciła błąd:234 | -Brak uprawnień do wystawiania tego typu dokumentu (NowyDokument-234). - Brak uprawnień; ustawienie na definicji dokumentu, problem z magazynem lub serią. - Zakaz na operatorze do wystawiania dokumentu | Należy sprawdzić wskazane uprawnienia |
XLOtworzDokument zwróciła błąd:122 | - Dokument jest edytowany na innym stanowisku | Należy sprawdzić czy dokument nie jest wyświetlony na czerwono w XLu |
XLOtworzDokument zwróciła błąd:339 | Błąd podczas ponownej fiskalizacji dokumentu handlowego - Niezidentyfikowany błąd (problem związany z ponowną fiskalizacją) | Wykonano ponowna fiskalizację dokumentu |
XLZamknijDokument zwróciła błąd:-1 | Błąd może mieć różne przyczyny: -Wskazuje na błąd wersji API bądź API nie zostało aktywowane - problem z fiskalizacją, jeżeli fiskalizacja z jakichś powodów się nie powiedzie Błąd TFS=403898 W przypadku, gdy była wykonana ponowa fiskalizacja dokumentu w POS, pojawiał się komunikat w logach Wystąpił błąd podczas ponownej fiskalizacji dokumentu handlowego | Sprawdzić ścieżkę Path czy na pierwszym miejscu jest do tej wersji, z której aktualnie korzystamy (jeśli nastąpi zmiana ścieżki wymagany jest restart komputera) TFS nieprawidłowość naprawiona w wersji od 2020.1.0 |
XLZamknijDokument zwróciła błąd:106 | -Wystąpił DeadLock (błąd DeadLock zgłaszany jest przez serwer bazy danych, gdy nie może zrealizować zleconego zadania obsługa tego typu błędu polega najczęściej na ponownym wywołaniu procedury) | Należy ponowić synchronizacje dokumentu |
XLDodajPozycje zwróciła błąd:17 | Zabrakło ilości (przy trybie wsadowym musi być w pełni zaspokojona) Brak ilości na dany towar | -Aby dokument przeszedł do XL na oddziale należy zaznaczyć Generuj PW na brakujące towary - należy zwrócić uwagę czy towar nie ma wprowadzonej daty ważności. Zasób z inną datą ważności jest inną partią, co widać w tabeli cdn.TwrPartie, gdzie pozycje o różnym TPa_DataW są oddzielnie wykazane. - czy są dostępne ilości handlowe-partie na te towary z paragonów, czyli z uwzględnieniem cechy, EAN-u, daty ważności |
XL ZmienAdres zwróciła błąd:53 | Podano niepoprawny kod pocztowy. Dla kontrahenta krajowego kod pocztowy powinien mieć postać ##-### Wskazuje na błędny format kodu pocztowego. Nie można zapisać dokumentu bez miasta NIPu i nazwy | Jeśli będą wpisy; że nie odnaleziono aby taki kontrahent miał taki GUID, należy np. na jednym z tych dokumentów, który nie przechodzi sprawdzić jaki jest wybrany kontrahent potem w cdn.KntKarty wykonać update na ten guid który jest podany w logu pola KnT_GuidDane (jeśli dokument jest w XLu w buforze to go usunąć i wykonać dla tego dokumentu update na tabeli Documents.TradeDocuments WasSenttoERP=0) |
- Błąd przy pierwszej synchronizacji Brak kodu stanowiska w konfiguracji
- Czy przycisk ,,Sprawdź połączenie” wyświetla błąd ,,Brak połączenia z serwisem danych”?
- Czy w Usługach jest uruchomiona usługa Comarch XL POS … ? Jeśli usługa nie jest uruchomiona proszę ją uruchomić.
- Czy w zmiennych środowiskowych / Path, wersja XL jest ustawiona na pierwszym miejscu? Należy zweryfikować czy dana wersja XL współpracuje z dana wersją POS?
- Czy przy próbie zalogowania / sprawdzenia połączenia pobierana jest licencja z klucza
- Przy wyłączonym parametrze generuj PW na brakujące towary mimo dostępnej ilości towaru generuje się PW:
- Czy doszło do dodania prawidłowej partii (takiej jakiej wymaga XL na PA)
- W tabeli cdn.PicoLogElem wyszukujemy dokument dla którego wyświetlony został komunikat odnośnie braku ilości
- w tabeli Documents.TradeDocuments odszukujemy Id dla tego dokumentu, takie samo ID będzie w tabeli Documents.TradeDocumentItems, w polu LotId będzie podany numer partii
- w tabeli cdn.TwrPartie wyszukujemy czy jest taka partia w XLu LotId=TpA_Id
- kolejno w cdn.Dostawy patrzymy czy jest dostępna jeszcze doatwa z tą partią czyli TpA_Id=Dst_TpAId
- Wystąpił błąd podczas importu dokumentu handlowego (…). W bazie XL nie znaleziono kontrahenta. Knt_GuidDane=…
- Czy nie została wycięta sesja na operatora odpowiedzialnego za synchronizację
- Kolejno wymusić ponowne przesynchronizowanie kontrahentów lub adresu do XLa
- Gdyby dokumenty były dodane w XLu jako do bufora to należy usunąć taki dokument i ponownie wymusić synchronizację
- Brak widoczności przyczyn korekty sprzedaży w POS
- Czy są wpisy w tabeli GenericDirectoryValues dla DirectoryId=5
- Czy w tabeli cdn.Slowniki jest kategoria SLW_Kategoria jako ‘Przyczyna korekty sprzedaży’ czy ‘Przyczyna korekty sprzedaż’, poprawna to Przyczyna korekty sprzedaż i należy ją zmodyfikować w tej tabeli od strony bazy i ponowić synchronizację z POS
XL002 - Wykresy
Wykresy – uwagi ogólne
Wykresy umożliwiają stworzenie jednolitego, spójnego mechanizmu pozwalającego m.in. na wygodne definiowanie wykresów (inaczej: analiz) prezentujących graficznie i/albo tabelarycznie wybrane dane z bazy, podłączanie wykresów w przewidzianych (przez programistę) punktach programu i wykonywanie. Wykresy posiadają cechę aktywności.
Integracja modułu wykresów z resztą systemu polega na udostępnieniu przez moduł wykresów mechanizmu podobnego, jak w przypadku wydruków. Przyciski związane z wykresami działają kontekstowo: w momencie wykonania na nich akcji przez użytkownika najpierw zostają odczytane aktualne dane kontekstu wywołania, a następnie, w oparciu o te dane, zostaje wykonana akcja.
Z punktu widzenia użytkownika wykresy są zwykle dostępne w tych samych punktach programu (tzw. punkty wywołania wykresów, w skrócie: wywołania), co wydruki. Do każdego wywołania można podłączyć dowolną ilość wykresów (tzw. wykresów startowych), z których jeden jest domyślny (domyślność wykresów można zmieniać przez przełączanie specjalnej flagi określonej na poziomie podłączenia a w przypadku nie ustawienia tej flagi na żadnym z wykresów startowych domyślnym wykresem jest pierwszy w kolejności lp. – kolejność tą można zmieniać wykorzystując mechanizm bąbelkowania).
Wykresy mogą być zagnieżdżane tzn. każdy wykres może mieć dowolną ilość podłączonych do niego (pod)wykresów (dzieci). Z drugiej strony ten sam wykres może być równocześnie podłączony do dowolnej ilości (nad)wykresów (ojcowie). Zagnieżdżanie wykresów może zawierać zapętlenia, tzn. wykres A może mieć podwykres B, który z kolei posiada podwykres A (co więcej, wykres może być podłączony nawet do samego siebie).
Edycja (dodawanie, modyfikacja, testowanie, usuwanie) wykresów, ich podłączanie (także warunkowe) do wywołań oraz do siebie nawzajem, ustalanie domyślności i kolejności, a także różne inne operacje są dostępne z poziomu specjalnego drzewa hierarchii wykresów.
Wykresy, podobnie jak wydruki, są podzielone na dwie grupy:
- wykresy standardowe (dostarczane przez Comarch ERP XL w pliku cdn_wykr.tps),
- wykresy użytkownika (definiowane w bazie SQL).
To czy wykres jest wykresem standardowym czy użytkownika określamy mianem: bazy wykresu.
Edycja wykresów standardowych przez użytkownika jest bardzo ograniczona – sprowadza się do zmiany dostępności wykresu (globalny / operatora lub stanowiska), zmiany ustawień opcji wysyłania wyniku oraz przełączania domyślności wykresów.
Wyniki wykonania wykresów (ich graficzna postać i/albo dane tabelaryczne składające się na serie danych wykresu) są umieszczane na specjalnym oknie wynikowym analiz. Okno to stanowi dla użytkownika właściwe środowisko pracy z analizami. To tu użytkownik widzi wyniki analizy, może zmieniać parametry i przeliczać wykres, tu także może nawigować po grafie wykresów (eksplorować wykresy, czyli przechodzić do podwykresów i wracać z powrotem) i wykonywać inne, pomocnicze operacje (np. drukowanie wyników, ich zapis do pliku w wybranym formacie czy wysyłanie wyników do innych programów).
Wykresy – cechy
Aktywność
Aktywność wykresu polega na możliwości jego interakcji z użytkownikiem, w tym także na możliwości wykonania wykresu podrzędnego po kliknięciu przez użytkownika w wybrany punkt. Interakcja następuje po wykonaniu przez użytkownika odpowiedniej akcji na bieżącym wykresie i może mieć postać:
- Eksploracji wykresu. Eksploracja polega na wybraniu jednego z punktów bieżącego wykresu i zagłębieniu się w niego to znaczy wykonaniu wykresu podrzędnego dla danych pobranych z tego punktu. Można np. kliknąć na fragmencie wykresu, obrazującym łączne obroty na wybranym rejestrze kasowym/bankowym i dostać podwykres obrazujący rozbicie wartości tego fragmentu na obroty poszczególnych raportów. Mamy tu do czynienia z tzw. akcją drill-down. Następnie można wybrać jeden z raportów i, klikając w punkt jemu odpowiadający, wyświetlić listę zapisów składających się na obroty tego raportu (ta z kolei akcja, polegająca na wyświetleniu listy a nie podwykresu jest nazywana drill-through).
- Oczywiście mamy możliwość powrotu z eksploracji do poprzedniego wykresu (tzw. nadwykresu; jest to tzw. akcja drill-up) aż do wykresu, od którego zaczęliśmy. Całość przypomina więc surfowanie po stronach WWW – nieprzypadkowo zatem, jak się przekonamy później, okno wynikowe z wykresami posiada wiele analogii do przeglądarki internetowej.
- Przeładowania (odświeżenia) danych na wykresie. Po zmianie przez użytkownika parametrów wpływających na dane na wykresie jest możliwe przeładowanie tych danych, a więc powtórne wykonanie wykresu. Odświeżenie wykresu może również być wykonane (na żądanie) bez zmiany jakichkolwiek wartości parametrów (np. ze względu na możliwość zmian dokonanych w bazie w związku z normalną pracą tej albo innych stacji roboczych).
- Zmiany parametrów graficznych wykresu. Wśród możliwych do zmiany parametrów mogą się także znajdować parametry graficzne nie wpływające na same dane wykresu, ale określające jego postać graficzną (np. powiększenie, typ wykresu, wymiarowość: 3D/2D,…). Te parametry również można zmieniać na bieżąco z poziomu okna z wykresem.
- Wydrukowania wykresu na drukarce graficznej. Wydruk wykresu jest realizowany standardowym mechanizmem wydruków. Będzie o tym mowa w rozdziale poświęconym wydrukom wykresów.
- Zapisu danych z wykresu do pliku (z opcjonalnym przekazaniem pliku do innego programu) Zapis danych z wykresu do pliku może być dokonywany w jednym ze standardowych formatów (COMMA, XLS, WMF, XML/XSL). Lokalizację pliku docelowego podaje użytkownik. Taki plik może być następnie podany do otwarcia innemu programowi (np. Notepad.exe, Excel.exe itp.).
Wykresy startowe, domyślny i bieżący wykres startowy
Do każdego wywołania można podłączyć dowolną ilość wykresów – są to tzw. wykresy startowe danego wywołania. Wykresy te są odpowiednio posortowane (wg lp) a jeden z nich jest domyślnym wykresem startowym danego wywołania. Domyślność wykresu oznacza dla użytkownika najprostszą możliwość wykonania wykresu – poprzez jeden klik lewym przyciskiem myszy w główny przycisk analiz. Każdy inny wykres startowy w tym punkcie może być wykonany tylko poprzez jego wybór z menu kontekstowego.
Określanie domyślnego wykresu startowego danego punktu wywołania przebiega wg następującego algorytmu:
1.Sprawdzamy czy do wywołania (np. kontekstu) jest podłączony wykres użytkownika z zaznaczoną flagą: Domyślny. Jeśli tak – wykres ten jest domyślnym wykresem startowym – kończymy poszukiwanie.Jeśli nie:
2.Sprawdzamy czy do kolejnych gałęzi nadrzędnych wywołania (np. procedury, potem roota) jest podłączony wykres użytkownika z zaznaczoną flagą: Domyślny. Jeśli tak – wykres ten jest domyślnym wykresem startowym – kończymy poszukiwanie.Jeśli nie:
3. Sprawdzamy czy do wywołania (np. kontekstu) jest podłączony wykres standardowy z zaznaczoną flagą: Domyślny. Jeśli tak – wykres ten jest domyślnym wykresem startowym – kończymy poszukiwanie.Jeśli nie:
4. Sprawdzamy czy do kolejnych gałęzi nadrzędnych wywołania (np. procedury, potem roota) jest podłączony wykres standardowy z zaznaczoną flagą: Domyślny. Jeśli tak – wykres ten jest domyślnym wykresem startowym – kończymy poszukiwanie.Jeśli nie:
5. Pobieramy pierwszy w kolejności lp wykres startowy użytkownika podłączony do wywołania, a w przypadku jego braku do kolejnych gałęzi nadrzędnych wywołania. Jeśli taki wykres znajdziemy – wykres ten jest domyślnym wykresem startowym – kończymy poszukiwanie.Jeśli nie:
6. Pobieramy pierwszy w kolejności lp wykres startowy standardowy podłączony do wywołania, a w przypadku jego braku do kolejnych gałęzi nadrzędnych wywołania. Jeśli taki wykres znajdziemy – wykres ten jest domyślnym wykresem startowym – kończymy poszukiwanie.Obsługa przycisków wykresu jest analogiczna jak w przypadku wydruków; do wyboru są trzy akcje:
- Wykonaj domyślny wykres startowy (przycisk główny wykresów),
- Wybierz wykres startowy z menu kontekstowego i wykonaj go (dodatkowy przycisk wykresów; z ikoną strzałki) oraz
- Edycja węzła wykresów (Ctrl + lewy klawisz myszy na przycisku głównym).
Po wykonaniu domyślnego lub wybranego wykresu startowego jest otwierane okno wynikowe analiz. Obiekt wykresu po aktywacji (otwarcie okna z wykresem) widzi tylko węzeł narysowanego wykresu a więc, mimo że do danego wywołania możemy mieć podłączoną dowolną ilość wykresów startowych – tylko jeden z nich jest bieżącym wykresem startowym.
Wykresy startowe mogą być filtrowane przez zastosowanie dynamicznych warunków, które decydują czy w danej sytuacji (przy bieżących ustawieniach przez aplikację zmiennych występujących w warunku podłączenia wykresu) dany wykres startowy ma być widoczny w danym kontekście czy też nie. W warunkach można umieszczać zmienne i funkcje zabindowane przez aplikację (moduł wykresów nie robi PUSHBIND) a także standardowe funkcje Clariona (np. Today()).
Zagnieżdżanie wykresów
Każdy wykres (w szczególności także wykresy startowe dla danego wywołania) może mieć dowolną ilość wykresów podrzędnych (podwykresów), podłączonych do niego w uporządkowany sposób; jeden z tych podwykresów jest traktowany jako domyślny (decyduje ustawienie flagi: Domyślny podłączenia a w przypadku jej wyzerowania dla wszystkich podwykresów - kolejność podwykresów wg lp; kolejność tą można zmieniać na drzewie hierarchii wykresów używając mechanizmu bąbelkowania).
Z drugiej strony każdy wykres może być podłączony do dowolnej ilości wykresów nadrzędnych w stosunku do niego.
Nie ma tu ograniczenia, aby wykresy „nie zapętlały się” tzn. aby dla żadnego łańcucha wykresów nie zachodziła sytuacja, że jakiś wykres występuje w tym łańcuchu więcej niż jeden raz.
Graf wykresów – nawigacja w czasie wykonywania
Ciąg wykonań wykresów danego punktu wywołania, począwszy od bieżącego wykresu startowego nazywamy historią wykonań wykresów. Zapis wykonania wykresu do historii następuje przy wczytywaniu bieżącego wykresu startowego a następnie przy wykonywaniu akcji: Eksploruj. W odpowiednich zmiennych zapamiętywane są dane pozwalające odtworzyć wyświetlony uprzednio wykres w niezmienionej postaci (z dokładnością do zmian wynikających z odświeżenia wyników); dane te, to oczywiście zapytanie i wartości parametrów ostatnio użyte w tych zapytaniach oraz ostatnie wartości parametrów graficznych. Na każdym wykresie (poza bieżącym startowym dla opcji: Na początek), na specjalnych przyciskach, są dostępne dodatkowo cztery opcje: Na początek (powrót do bieżącego wykresu startowego), Wstecz (powrót do poprzednio wykonanego wykresu), Wprzód (przejście do następnego „historycznie” wykresu) i Na koniec (przejście do ostatniego „historycznie” wykresu).
Opcja: Wstecz (także: Na początek) nie pojawia się w przypadku, gdy jesteśmy na bieżącym wykresie startowym. Wszystkie parametry wykresu (z zapytania i graficzne), do którego się cofamy są odtwarzane na podstawie odpowiednich zmiennych, ale dane wykresu są przeładowywane.
Analogiczne uwagi dotyczą opcji: Wprzód, którą dodatkowo trzeba odróżniać od opcji: Eksploruj, także w tym sensie, że nawet, jeśli opcja: Wprzód, powoduje przejście do podrzędnego wykresu (tak jak opcja: Eksploruj), to po pierwsze niekoniecznie jest to ten sam wykres podrzędny (jeśli jest ich więcej) a po drugie opcja: Eksploruj, dotyczy klikniętego w momencie jej wybrania punktu, a opcja: Wprzód, bierze pod uwagę punkt poprzednio kliknięty, tj. kliknięty w trakcie wykonywania opcji: Eksploruj, które wprowadziło dany wykres do historii.
Edycja wykresów
Do wygodnego podłączania wykresów startowych do wywołań oraz wykresów do wykresów (zagnieżdżanie) zostało utworzone specjalne wielopoziomowe drzewo (korzeń, procedura, kontekst, wykresy startowe, wykresy podrzędne). Poza podstawowymi operacjami takimi jak dodawanie, podłączanie i odłączanie wykresów, ich edycja (w tym testowanie) i usuwanie dostępne są także różne funkcje pomocnicze, np. włączanie/wyłączanie flagi domyślności, bąbelkowanie, szukanie wykresu zawierającego w definicji podany ciąg znaków i inne.
Źródła danych do wykresów
Zapytanie SQL i dane w bazie
Jest to podstawowy rodzaj źródła danych dla wykresów.
Przez zapytanie rozumiemy tu ciąg dowolnych (niezmieniających struktury ani zawartości bazy danych) instrukcji T-SQL, w którym ostatnią jest instrukcja SELECT o strukturze zgodnej ze strukturą specjalnej kolejki z danymi, predefiniowanej w module Prefix_GRPH:
t_op_qWykresyDane QUEUE,TYPE
Id LONG !ID punktu, służy do jednoznacznej identyfikacji punktu wykresu
nX DECIMAL(20,4) !Wartość X punktu (dla wykresów nie ‘XY’ równa ID)
sNazwa STRING(50) !Nazwa punktu (dla wykresów ‘XY’ równa nX)
nY DECIMAL(20,4) !Wartość Y punktu
sW1 STRING(255) !Inne dane punktu, wartość 1
...
sW20 STRING(255) !Inne dane punktu, wartość 20
END
Struktura ta, w przypadku gdy mamy do czynienia z prawdziwym wykresem a nie tylko z tabelą wynikową, nakłada pewne ograniczenia na typy i zawartość pierwszych trzech kolumn zapytania:
- pierwsza kolumna numeruje wiersze wyniku, zatem musi być całkowita, a jej wartości unikalne,
- druga kolumna określa wartości na osi X – musi więc być rzeczywista lub całkowita, a jej wartości unikalne,
- trzecia kolumna określa opisy osi X – powinna być znakowa, a jej wartości unikalne choć akurat te wymagania są tylko zaleceniami a nie formalnymi wymogami.
W przypadku wykresów typu: tylko tabela, powyższe ograniczenia nie obowiązują.
Zapytanie nie musi zwracać wszystkich wartości w kolejce t_op_qWykresyDane - ważna jest tylko zgodność typów poszczególnych kolumn (z dokładnością do clarionowej konwersji typów) i zgodność merytoryczna (np. druga kolumna zapytania powinna określać wartości na osi X a czwarta – wartości na osi Y, chyba, że w parametrach graficznych umieszczono jawnie parametr /@Series określający kolumnę/kolumny zapytania stanowiącą/ce źródło wartości osi Y).
Zapytanie jest wykonywane przez ADO. Rezygnacja z klasy SqlQuery na rzecz ADO ma miejsce z dwóch powodów:
- aby móc wykonywać dowolne skrypty (np. zawierające deklaracje kursorów, tworzenie tabel tymczasowych itp.) zwracające recordset – będzie to potrzebne chociażby przy implementacji po stronie serwera tzw. poziomu odcięcia.
- ADO zwraca także nazwy kolumn z zapytania tak jakby je wypisał QA (nie trzeba więc parsować zapytania uwzględniając składnię PodID=Knt_KntID czy Knt_KntID AS PodID – w obu przypadkach ADO zwróci PodID).
W tekście zapytania w definicji wykresu mogą występować tzw. parametry dynamiczne, których wartości są wyliczane i wstawiane w miejsce definicji (odwołań do) tych parametrów przed przesłaniem wynikowego zapytania na serwer. Poza parametrami dynamicznymi w zapytaniu można umieszczać wyrażenia, zmienne tekstowe, wstawki tekstowe i wiele innych konstrukcji, które przed podaniem zapytania do serwera SQL są rozwijane bądź wyliczane i podstawiane wartościami. Język użyty w zapytaniu wykresu jest połączeniem T-SQL i specjalnego języka obsługi parametrów dynamicznych, tzw. DPL.
Wynika stąd wiele możliwości, np. komentarze w zapytaniu wykresu mogą być wstawiane jako komentarze SQL-owe: -- (jednak język DPL nie interpretuje komentarzy SQL-owych stąd też np. wstawienie odwołania do parametru dynamicznego w komentarzu SQL spowoduje wstawienie wartości tego parametru do zapytania przed wysłaniem go na serwer ale nie ma to oczywiście wpływu na wynik zapytania).
Kolejka globalna wypełniona przez aplikację
Dane serii wykresu mogą także pochodzić ze specjalnych kolejek globalnych wypełnianych przez aplikację w różny sposób. Ma to miejsce w przypadkach, gdy aplikacja dysponuje już danymi (często uzyskanymi w inny sposób niż wykonanie instrukcji SQL-owych; np. niektóre browsy po kolejce). Kolejki te są wypełniane przez aplikację a następnie przepisywane przez obiekt wykresu do wewnętrznej kolejki wynikowej (property wskaźnika na kolejkę o strukturze t_op_qWykresyDane) przed wykonaniem wykresu.
Wywołanie procedury
Wykonanie wykresu może polegać nie tylko na uzyskaniu wyników i ich graficznej i/albo tabelarycznej prezentacji (wykresy normalne / wykresy typu: tylko tabela), ale także na wywołaniu procedury (tzw. drill-trough). W tym przypadku składnia zapytania nie ma nic wspólnego z SQL-em – wywołanie procedury następuje zgodnie ze składnią języka DPL.
Parametry dynamiczne wykresów
Parametrem dynamicznym wykresu (w skrócie: parametrem) nazywamy zmienną występującą w zapytaniu lub parametrach graficznych (można np. sparametryzować tytuł wykresu), której wartość jest ustalana i wstawiana w miejsce definicji parametru w czasie wykonywania wykresu (tzw. runtime).
Przed wykonaniem bieżącego wykresu startowego lub potomnego po raz pierwszy w danej sesji wywołania obiekt przeszukuje zapytanie i parametry graficzne wykresu w poszukiwaniu parametrów dynamicznych. Po znalezieniu wszystkich parametrów, przed wykonaniem wykresu obiekt stara się ustalić ich wartości:
- Jeśli mamy do czynienia z bieżącym wykresem startowym – przeszukiwane są parametry przekazane z aplikacji. Wiązanie odbywa się po Nazwie parametru. Dotyczy to tylko parametrów dynamicznych zdefiniowanych w zapytaniu.
- Jeśli wykonujemy opcję: Eksploruj – najpierw sprawdzane jest zapytanie wykresu nadrzędnego (dokładniej kolekcja Fields jego wynikowego recordsetu) w poszukiwaniu kolumn o nazwie zgodnej z Nazwą parametru. Jeśli taka kolumna zostanie znaleziona – jest pobierany kliknięty rekord z kolejki z danymi nadrzędnego wykresu a następnie w miejsce parametru wstawiana jest wartość z odpowiedniej kolumny tego rekordu. Dotyczy to zarówno parametrów zapytania jak i graficznych. Jeśli szukana kolumna nie zostanie znaleziona – jest przeszukiwana kolejka parametrów dynamicznych nadwykresu (czyli eksplorowanego wykresu). Jeśli w kolejce tej zostanie znaleziony parametr o nazwie Nazwa – następuje odziedziczenie wartości. Oczywiście dla parametrów zdefiniowanych w zapytaniu przeszukiwana jest kolejka parametrów dynamicznych „nadzapytania”, a dla parametrów zdefiniowanych w parametrach graficznych – kolejka parametrów dynamicznych „nadparametrów” graficznych.
- Jeśli mamy do czynienia z parametrem dynamicznym zdefiniowanym w parametrach graficznych, niezależnie od wyników poprzednich poszukiwań, następuje próba odziedziczenia wartości tego parametru z parametru dynamicznego o takiej samej nazwie, zdefiniowanego w zapytaniu bieżącego wykresu. Mamy tu zatem do czynienia z bezwarunkowym dziedziczeniem wartości graficznych parametrów dynamicznych z wartości zapytaniowych parametrów dynamicznych bieżącego wykresu.
- W obu przypadkach, jeśli poszukiwania nie dadzą rezultatu – wartość parametru jest ustalana na podstawie jego Defaultu (odczytanej z definicji parametru).
Wszystkie parametry danego wykresu, łącznie z ustalonymi wartościami zapisywane są w odpowiedniej kolejce. Na podstawie tej kolejki kreowane są dynamicznie kontrolki parametrów i od razu rysowany wykres.
Przed wykonaniem wykresu, który już wcześniej został wczytany (Na początek, Wstecz, Wprzód Na koniec, Odśwież) następuje wykreowanie kontrolek parametrów tego wykresu z wartościami ostatnio użytymi i narysowanie wykresu w oparciu o te wartości. Teraz użytkownik może manipulować wartościami parametrów poprzez kontrolki – wartości te są zapisywane do kolejki w momencie wykonania akcji: Odśwież.
Zmienne dynamiczne przekazywane z aplikacji do bieżącego wykresu startowego
Zmienne dynamiczne mają za zadanie zainicjalizować wybrane parametry dynamiczne wykresu wartościami przekazanymi z aplikacji. Wartości tych zmiennych są ustalane w czasie wykonywania programu (runtime) i przesyłane do bieżącego wykresu startowego.
Klasa wykresów korzysta z przekazanych jej zmiennych dynamicznych przy ustalaniu wartości początkowych parametrów dynamicznych zapytania i grafiki bieżącego wykresu startowego (nadpisanie wartości początkowych odczytanych z definicji parametru). Wiązanie parametru ze zmienną odbywa się po nazwie.
Wyrażenia
Wyrażenia to ciągi znaków występujące w zapytaniach oraz w parametrach graficznych wykresu ewaluowane (czyli takie, których wartości są obliczane) clarionową instrukcją EVALUATE przed wykonaniem wykresu. W wyrażeniach mogą występować m.in. odwołania do parametrów dynamicznych, a także funkcje systemowe clarionowe oraz zabindowane w Clarionie zmienne i funkcje. Wyrażeń używa bardzo często do określania wartości początkowych parametrów dynamicznych (np. bieżąca data).
Składnia wyrażenia jest następująca:
{ciąg_znaków} (W)
Makra
Przed parsowaniem zapytania i parametrów graficznych wykresu w poszukiwaniu parametrów dynamicznych jest przeprowadzany tzw. preparsing polegający na znalezieniu i rozwinięciu makr występujących w zapytaniu. Makro jest specjalnym ciągiem znaków, który jest rozpoznawany przez preparser i zamieniany na tzw. rozwinięcie makra. Najczęściej makra są rozwijane do definicji parametrów dynamicznych, szczególnie do lookupów. Pozwala to w prosty, szybki i standardowy sposób definiować podobne lub identyczne parametry w różnych zapytaniach. Obecnie jednak do tworzenia deklaracji/definicji lookupów (oraz innych parametrów dynamicznych) zamiast makr zalecane jest stosowanie wizardów.
Preparser jest w praktyce metodą klasy operującej na parametrach dynamicznych. Metoda ta jest wirtualna, co pozwala rozwijać makra w sposób zależny od różnych uwarunkowań, np. od projektu (Optima, XL itp.). Ze względu na wirtualność preparsera nie można zdefiniować ogólnej składni makra – może ona być różna dla różnych przegięć metody. Możemy jednak podać składnię makra, jaka obowiązuje w preparserze Opt!my:
@MAKRO(Typ,Kod,Default) (MD)
Makra z Szybkich Raportów
Przed rozwijaniem makr opisanych poprzednio zapytanie wykresu jest przeszukiwane pod kątem występowania w nim specjalnych sekwencji używanych przez Szybkie Raporty XL. Sekwencje te są odpowiednio rozwijane:
{FILTRSQL} Jest rozwijane do wartości wpisanej przez programistę w template GraphButton-a i przechowywanej w dodatkowym property GraphManagerClass.sFiltrSQL (jeśli puste – rozwija się do ‘1=1’)
{FILTRLINK} Jest rozwijane do wartości wpisanej przez programistę w template GraphButton-a i przechowywanej w dodatkowym property GraphManagerClass.sFiltrLink (jeśli puste – rozwija się do ‘1=1’)
{OPCJEAPP} Jest rozwijane do wartości wpisanej przez programistę w template GraphButton-a i przechowywanej w dodatkowym property GraphManagerClass.cOpcjeApp.
Oczywiście rozwijanie makr SR nie ma większego sensu w przypadku podwykresów (szybkich raportów nie można było zagnieżdżać). Jednak, jeśli ktoś świadomie umieścił takie makro w zapytaniu to trzeba je rozwinąć (na odpowiedzialność użytkownika).
Predefiniowane wstawki tekstowe
Wstawki tekstowe
Stosując predefiniowane wstawki tekstowe, zmiana jakiejkolwiek własności kontrolki powoduje zmianę w jednym miejscu (nie ma potrzeby dokonywania zmian we wszystkich odpowiednich wykresach). Dzięki temu powtarzające się w wielu miejscach analogiczne kontrolki występują tak samo. Podobnie ma się rzecz, jeśli chodzi o parametry graficzne, które, poza tytułem, typem wykresu i wyborem serii powinny być w zasadzie identyczne dla wszystkich wykresów.
Wyodrębnienie wspólnych części wykresów polega na tym, że jeżeli mamy kilka wykresów o bardzo podobnej konstrukcji (różniących się tylko detalami) to za pomocą predefiniowanych wstawek tekstowych można jak gdyby stworzyć jedną, sparametryzowaną definicję wykresu. Oczywiście, formalnie rzecz biorąc, definicji będzie kilka, tyle tylko, że będą one posiadały jedynie wywołanie odpowiedniej, wspólnej wstawki z różnymi parametrami.
Pierwszą czynnością, jaką wykonuje moduł wykresów po wczytaniu definicji wykresu z bazy, jeszcze przed podaniem tekstów (zapytanie i grafika) do preparsingu, jest poszukiwanie w tych tekstach deklaracji predefiniowanych wstawek tekstowych (PWT) i ich rozwijanie.
Deklaracja PWT w tekście zapytania bądź grafiki ma następującą składnię:
@INS Nazwa||[Parametry] [ParametryX] INS@ (PWT0)
gdzie Nazwa jest unikalną (w ramach bazy wykresu) nazwą wstawki (NO CASE) a opcjonalne człony Parametry i ParametryX posiadają następującą składnię:
Parametr[, Parametr...] (PWTP)
^NazwaParametruX=WartoscParametruX [^NazwaParametruX=WartoscParametruX,...] (PWTPX)
gdzie Parametr jest dowolnym ciągiem znaków (NO CASE) , niezawierającym przecinka (seperator parametrów), znaku ^ (definicja parametru typu X) ani ciągu znaków ‘ INS@’ (spacja, INS@ - terminator PWT). Parametry typu X muszą występować po parametrach zwykłych i nie mogą być z nimi wymieszane. Zostaną one omówione w dalszej części tego rozdziału.
Parametry są przekazywane do definicji wstawki i decydują o wstawianiu do niej tekstów warunkowych (patrz następny rozdział) i wstawek podrzędnych (tzw. podwstawek).
Definicja wstawki jest traktowana jak normalny tekst – wynika stąd, że wstawki mogą być zagnieżdżone. Deklaracja (pod)wstawki we wstawce ma postać:
@INS Nazwa|[Warunek]|[Parametry] INS@ (PPWT)
gdzie Nazwa jest unikalną (w ramach bazy wykresu) nazwą wstawki podrzędnej (NO CASE), a opcjonalny człon Warunek posiada następującą składnię:
Segment[,Segment...] (PWTW)
gdzie Segment jest dowolnym ciągiem znaków (NO CASE), nie zawierającym przecinka (seperator segmentów) ani ciągu znaków ‘INS@’ (spacja, INS@ - terminator PWT). Ponieważ podwstawka może zostać wywołana z parametrami (deklaracja w tekście nadrzędnym) – sprawdzamy czy parametry te spełniają Warunek wstawienia podwstawki. Jeśli Warunek jest spełniony - następuje zamiana deklaracji podwstawki na jej rozwinięcie, jeśli nie – usunięcie deklaracji podwstawki. Walidacja warunku odbywa się w następujący sposób:
jeśli Warunek jest pusty – uznaje się, że jest spełniony jeśli Warunek nie jest pusty – uznaje się, że jest spełniony, jeśli dla co najmniej jednego z jego członów (Segment) istnieje odpowiednik (równość NO CASE) wśród przekazanych do podwstawki parametrów zwykłych (nie typu X).
Teksty warunkowe
Tekst warunkowy jest dowolnym ciągiem znaków, który może zostać wstawiony do definicji wstawki przy spełnieniu określonych warunków.
Tekst warunkowy może występować jedynie w definicji predefiniowanej wstawki tekstowej a jego składnia jest następująca:
@IF(Warunek) Tekst IF@(TW)
gdzie Warunek jest analogiczny jak w definicji (PPWT) a Tekst jest dowolnym ciągiem znaków nie zawierającym sekwencji zakończenia ‘IF@’ (spacja, IF@). Ponieważ TW może występować jedynie w definicji PWT – są określone parametry przekazane do definicji PWT z jej deklaracji w tekście nadrzędnym. Parametry te pozwalają na walidację warunku Warunek (mechanizm dokładnie taki sam jak w przypadku PPWT).
Uzupełniającym elementem składni tekstu warunkowego jest zaprzeczony tekst warunkowy:
@IFNOT(Warunek) Tekst IFNOT@(TWNOT)
różni się on od TW tylko tym, że tekst jest wstawiany jeśli warunek jest pusty albo żaden jego człon nie ma odpowiednika wśród przekazanych parametrów.
Analogicznie do powyższych zostały wprowadzone teksty warunkowe:
@IFAND(Warunek) Tekst IFAND@ (TWAND)
oraz
@IFANDNOT(Warunek) Tekst IFANDNOT@ (TWANDNOT)
różniące się od opisanych jedynie sposobem sprawdzania Warunku, który w tym przypadku uważa się za spełniony tylko wtedy, gdy jest pusty lub dla wszystkich jego członów (Segment) istnieje odpowiednik (równość NO CASE) wśród przekazanych do podwstawki parametrów zwykłych (nie typu X).
Rozszerzone parametry tekstowe (parametry typu X)
Opisany wyżej mechanizm nie pozwala na parametryzowanie wstawek tekstowych. Przypuśćmy, że chcemy zdefiniować wstawkę wstawiającą zakres dat. Wstawki tej chcemy użyć zarówno w analizie a1 gdzie wartości domyślne dat mają być odpowiednio Today() i Today()+1 i w analizie a2 z wartościami domyślnymi Date(Month(Today()), 1, Year(Today())) i Today(). Aby wstawka mogła zrealizować oba te zadania – musi obsługiwać parametry rozszerzone.
Składnia rozszerzonego parametru tekstowego wstawianego do wstawki jest następująca:
@INSP(Nazwa) (INSP)
gdzie Nazwa jest nazwą parametru przekazanego z tekstu nadrzędnego (zapytania, grafiki bądź podwstawki).
Składnia przekazania w/w parametru tekstowego jest określona przez (PWTPX). We wzorze tym NazwaParametruX odpowiada Nazwie w (INSP) (równość jest typu NO CASE). Wartość parametru może być ustalona, ale może też zawierać element @INSP().
Parametry graficzne wykresu
Aby nie zmieniać struktury tabeli z wykresami przy dodawaniu w przyszłości obsługi kolejnych parametrów graficznych wprowadzamy jedną, parsowaną kolumnę stringową ParametryGraficzne. Kolumna ta powinna zawierać ustawienia wszystkich potrzebnych parametrów graficznych danego wykresu w postaci:
/@SymbolGr[=WartoscGr(BezApostrofów)] (PG)
gdzie SymbolGr jest nazwą parametru graficznego a WartoscGr jego wartością początkową. Kolumna ParametryGraficzne jest parsowana przez klasę przy wczytywaniu definicji wykresu i składana przy zapisie.
Opcjonalna wartość WartoscGr jest wartością parametru, z którą wykres jest rysowany pierwszy raz; wartość ta może zostać zmieniona w trakcie oglądania wykresu przez edycję odpowiedniej kontrolki dynamicznej, wykreowanej na podstawie parametru dynamicznego wykresu dotyczącego wartości danego parametru graficznego. Wartość WartoscGr może bowiem zawierać parametry dynamiczne.
W wartościach parametrów graficznych obu typów mogą występować wyrażenia.
Oto najważniejsze symbole dostępnych parametrów graficznych:
Default jest wartością, która jest podstawiana, gdy w parametrach graficznych dany parametr w ogóle nie występuje i PodstawDefault=1. Gdy w parametrach graficznych dany parametr w ogóle nie występuje i PodstawDefault=0, to wartość parametru nie jest w ogóle podstawiana. Default(*) jest wartością, która jest podstawiana, gdy w parametrach graficznych dany parametr występuje, ale nie ma podstawionej wartości (np. /@3D, /@PokazujEtykietyDanych) i PodstawDefault(*)=1. Gdy w parametrach graficznych dany parametr występuje, ale nie ma podstawionej wartości i PodstawDefault(*)=0, to wartość parametru nie jest w ogóle podstawiana. Boldem zaznaczono parametry graficzne niemające swoich odpowiedników we własnościach obiektu Insight.
Graficzne stałe symboliczne
Graficzne stałe symboliczne to stałe postaci @NAZWASTAŁEJ, występujące w parametrach graficznych wykresu, których wartości podstawiane są do parametrów graficznych przed narysowaniem wykresu, ale już po załadowaniu wyników. Poniższa tabela zawiera wszystkie obsługiwane w tej chwili stałe:
Nazwa stałej | Opis (wartość) |
RECORDS | Zwraca ilość rekordów wyniku zapytania. Przykład użycia: /@ShowXLabelsEvery={@Records/3} |
Przekazywanie do wykresów zaznaczonych pozycji
Moduł analiz posiada możliwość odwoływania się do pozycji zaznaczonych na liście. Mogą to być nie tylko zaznaczenia na konkretnej liście, ale dowolny ciąg identyfikatorów rekordów, które to identyfikatory w dalszej części będziemy nazywać zaznaczeniami. Idea obsługi zaznaczeń jest następująca:
MANAGER WYKRESÓW.
Jeśli wykres jest zbudowany w oparciu o tabelę zaznaczeń (flaga na definicji wykresu), przed wykonaniem zapytania (w metodzie .Wykonaj) generuje unikalny, 50-znakowy GUID i zapisuje przekazane wcześniej z aplikacji zaznaczenia do SQL-owej tabeli WkrZaznaczenia2.
Wszystkie zapisywane rekordy mają ustawiony wspólny (wygenerowany wyżej) GUID (WkZ2_GUID). Wartość ta jest także przekazywana do wykresu za pośrednictwem parametru dynamicznego ZazGUID.
Identyfikator zaznaczonego rekordu zapisuje się w polach WkZ2_GIDTyp, WkZ2_GIDFirma, WkZ2_GIDNumer i WkZ2_GIDLp. W zależności od potrzeb można podstawić pełny GID (XL) lub tylko ID (Opt!ma); w tym drugim przypadku ID zaznaczonego rekordu podstawia się pod WkZ2_GIDNumer.
Po wykonaniu wykresu odpowiednie rekordy z tabeli WkrZaznaczenia2 są usuwane.
W procedurze, która dopuszcza obsługę wykresów z zaznaczeniami (najczęściej listy), przed wykonaniem wykresu (np. w przegięciu metody GraphButtonClass.ObliczParametry), następuje wywołanie metody:
GraphManagerClass.WypelnijKolejkeZaznaczen(ZaznaczoneQueue _qZaz)
z podaniem kolejki identyfikatorów (kolejka ta to najczęściej templatowa kolejka zaznaczeń browse’a).
PROGRAMISTA w tempalte GraphButton-a wpisuje nazwę kolejki z zaznaczeniami (dokładnie na takiej samej zasadzie jak w przypadku wydruków).
UŻYTKOWNIK ustawia na wykresie flagę: Wykres oparty o tabelę zaznaczeń (nowe pole w tabelach WkrDefinicje i WkrDefinicje2) oraz w definicji wykresu:
Deklaruje ukryty parametr dynamiczny @PAR ?@Hs50|ZazGUID|ZazGUID:’’ PAR@
W zapytaniu wykonuje JOIN do tabeli WkrZaznaczenia2 (np. ... JOIN WkrZaznaczenia2 ON BNa_BNaID = WkZ2_GIDNumer ...).
W filtrze zapytania umieszcza warunek na (odziedziczony ze zmiennej dynamicznej) GUID (WkZ2_GUID = ??_QZazGUID)
Wysyłanie wyników wykresu
Wyniki wykonania analizy (wykres w postaci graficznej oraz tabela z wynikami) są zawsze (o ile nie jest to wynik skalarny) zapisywane do pliku. Plik ten (tzw. plik wynikowy) może mieć jeden z następujących formatów:
COMMA (dane tabelaryczne)
Excel (dane tabelaryczne)
XML (dane tabelaryczne)
Jest tu możliwość zastosowania podanego szablonu XSL.
WMF (grafika)
W przypadku formatu COMMA istnieje możliwość dopisywania danych do istniejącego pliku.
W/w plik jest zapisywany z podaną nazwą (lub systemową nazwą tymczasową, jeśli nie podano nazwy docelowej) i w podanym katalogu (lub systemowym katalogu tymczasowym, jeśli nie podano katalogu docelowego).
Edycja wykresów
Formularz wykresu
Do edycji wykresu służy formularz definicji wykresu.

W oknie znajdują się przyciski:
[Testuj wykres] - służy do testowania edytowanego wykresu. Dokładniej przycisk ten służy do wykonania testu edytowanego wykresu z zastosowaniem bieżących ustawień na formularzu. Po jego naciśnięciu jest wykonywany w trybie testowym edytowany wykres. Tryb testowy polega na tym, że bezpośrednio przed przesłaniem zapytania na serwer zapytanie to (ze wstawionymi bieżącymi wartościami parametrów dynamicznych) jest podawane do edycji użytkownika. Po wykonaniu wykresu jest możliwa normalna nawigacja począwszy od węzła odpowiadającego edytowanemu wykresowi. Wykonaniu każdego wykresu w trybie testowym towarzyszy okno pozwalające na edycję zapytania przed przesłaniem go do serwera.

W takim przypadku definicja zostanie odblokowana i będzie również możliwa zmiana hasła (w tym jego wyczyszczenie, czyli odbezpieczenie definicji).
Pozostałe kontrolki są albo standardowe albo ich opis w pełni wyjaśnia zastosowanie. Dlatego tutaj ograniczymy się tylko do nadmienienia o jednej istotnej sprawie. Mianowicie w celu ułatwienia posługiwania się językiem stosowanym w definicji wykresu (połączenie SQL i języka parametrów dynamicznych) opracowano system zagnieżdżonych wizardów. Wizardy te pozwalają tworzyć i edytować deklaracje i odwołania do parametrów dynamicznych, wyrażenia, zmienne tekstowe, szablon zapytania SQL itp. Są one dostępne po kliknięciu prawym klawiszem myszy tekstu zapytania lub parametrów graficznych wykresu.
Poniżej przedstawiono dwie pozostałe zakładki formularza.



Lista wykresów
Do wyboru wykresu, który chcemy podłączyć, jak również do edycji wykresów zaimplementowano listy wykresów (Rysunek 5 przedstawia listę wykresów standardowych; wykresy użytkownika posiadają analogiczną listę). Lista ta może służyć również do edycji wykresów niepodłączonych do żadnego wywołania.

Lista wstawek tekstowych do wykresów
Do edycji wstawek tekstowych służą listy wstawek tekstowych do wykresów (Rysunek 6 przedstawia listę wstawek do wykresów standardowych; wstawki użytkownika posiadają analogiczną listę).

Formularz wstawki tekstowej do wykresu
Formularz wstawki tekstowej do wykresu wygląda następująco (Rysunek 7 przedstawia formularz wstawki standardowej; wstawki użytkownika posiadają analogiczny formularz).

Okno operacyjne wykresów
Głównym elementem modułu wykresów jest tzw. okno operacyjne wykresów. Okno to, zaraz po otwarciu, wyświetla wykres startowy, a następnie pozwala na nawigację po grafie wykresów i zmianę parametrów dynamicznych wykonywanych wykresów.
Głównym elementem okna jest kontrolka REGION zawierająca wykres. Pod wykresem dostępne są przyciski nawigacyjne, przycisk odświeżania wykresu oraz panel z kontrolkami parametrów dynamicznych.
Na drugiej zakładce umieszczone zostały kontrolki dynamicznych parametrów graficznych wykresu (jeśli ich brak – zakładka ta nie pokazuje się) a na trzeciej – lista z danymi serii wykresu przedstawionymi w formie tabelarycznej. Czwarta zakładka w całości dotyczy opcji wysyłania danych wynikowych. Na toolbarze okna są dostępne przyciski obsługujące wydruki wykresu i eksport danych do Excela. Wydruk z poziomu pierwszych dwóch zakładek produkuje plik .wmf (którego link jest wstawiany do definicji wydruku) a z trzeciej i czwartej zakładki – kolejkę z danymi serii wykresu (wydruk tu podłączony powinien więc operować na kolejce).
Eksport danych do Excela obejmuje dane serii wykresu, a więc dane z listy na trzeciej zakładce.
Jedną z podstawowych akcji wykonywanych na wykresie jest eksploracja do wykresu podrzędnego. Następuje to przez kliknięcie lewym klawiszem myszy w wybrany punkt wykresu (wykonanie podwykresu domyślnego) lub kliknięcie prawym klawiszem myszy w wybrany punkt wykresu i wybór z menu podwykresu, który chcemy wykonać.
Umieszczone pod wykresem przyciski nawigacyjne służą do poruszania się po historii wykonanych wykresów od startowego począwszy. Odpowiada to analogicznym przyciskom w internetowych browserach. Należy jednak zwrócić uwagę, że wykonanie każdej akcji nawigacji (Wstecz, Wprzód itp.) wiąże się z odświeżeniem danych (powtórne załadowanie – brak cache’owania wyniku).
Jak powiedziano wcześniej, bieżący wykres startowy zostaje po raz pierwszy wykonany z wartościami początkowymi parametrów dynamicznych (nadpisanymi ewentualnie wartościami zmiennych dynamicznych przekazanych z aplikacji). Po zmianie któregokolwiek z parametrów przycisk odświeżenia zmienia ikonę na: , co ma sygnalizować, że dane na wykresie nie odpowiadają bieżącym nastawom parametrów. Aby uzgodnić dane
z parametrami należy wykonać odświeżenie. Sytuacja taka nie występuje, jeśli w parametrach graficznych wykresu użyto parametru /@AutoRefresh – wówczas dane odświeżają się automatycznie po każdej zmianie dowolnego parametru.




XL013 - Komunikaty definiowalne
Komunikaty definiowalne
W Comarch ERP XL istnieje możliwość dodawania definiowalnych komunikatów wyświetlanych przez aplikację pochodzących z triggerów w bazie MSSQL.
Dotychczas komunikaty wyświetlane na skutek działania triggerów były błędami krytycznymi. W większości przypadków komunikat zwracany przez trigger znajdował się na zakładce Przyczyna. Powodowało to spore utrudnienie w odnalezieniu właściwego komunikatu z serwera MSSQL. Często intencją autora triggera było wyświetlenie innego komunikatu niż błąd krytyczny oraz umieszczenie odpowiedniej treści w głównym oknie komunikatu.
Definiowalne komunikaty umożliwiają określenie priorytetu oraz zdefiniowanie treści komunikatu, a także informacji wyświetlanej na zakładkach Przyczyna oraz Remedium.
Definiowanie komunikatu w triggerze
Komunikaty w triggerze jest wyświetlany za pomocą funkcji RAISERROR(). Funkcja ta generuje komunikat oraz błąd na podstawie zadanych parametrów. Błąd ten jest przechwytywany przez system, który wyświetla odpowiedni komunikat, zawierający w swej treści komunikat błędu wygenerowany przez serwer MSSQL. W dotychczasowym działaniu użytkownik nie miał żadnego wpływu na typ oraz treść wyświetlanego komunikatu. Definiowanie komunikatu będzie polegało na umieszczeniu w jego treści, konkretnie w wywołaniu funkcji RAISERROR(), odpowiednich znaczników określających priorytet komunikatu (informacja, błąd, błąd krytyczny), znaczników określających treść komunikatu oraz treść zakładki Przyczyna i Remedium.
Znaczniki określające priorytet komunikatu
Znacznikami określającymi priorytet komunikatu są:
- #CDN_INFO/#
- #CDN_BLAD/#
- #CDN_BLADK/#
Znaczniki te mogą być umieszczone w dowolnym miejscu w treści komunikatu. Dla zwiększenia czytelności kodu proponujemy umieszczanie tych znaczników na początku treści.
Znaczniki określające treść komunikatu
Komunikat podzielony jest na treść właściwą oraz zakładki Przyczyna i Remedium. Definiowana treść powinna zaczynać się od jednego z poniższych znaczników:
- #CDN_1= – ogólna treść komunikatu
- #CDN_2= – zakładka Przyczyna
- #CDN_3= – zakładka Remedium
Znacznikiem kończącym treść danej części komunikatu są znaki /#.
Przykłady
Poniżej przedstawiono przykładowe wywołanie funkcji RAISERROR() z definiowanym komunikatem:
- RAISERROR(‘#CDN_INFO/# #CDN_1=Test aktualizacji kontrahenta/# #CDN_2=Przyczyną jest trigger/# #CDN_3=Wyłącz trigger/#’,16,1)
- RAISERROR(‘#CDN_BLAD/# #CDN_1=Test aktualizacji kontrahenta/# #CDN_2=Przyczyną jest trigger/# #CDN_3=Wyłącz trigger/#’,16,1)
- RAISERROR(‘#CDN_BLADK/# #CDN_1=Test aktualizacji kontrahenta/# #CDN_2=Przyczyną jest trigger/# #CDN_3=Wyłącz trigger/#’,16,1)
Przykład triggera ze zdefiniowanym komunikatem
Poniżej został przedstawiony prosty trigger blokujacy zmianę nazwy towaru, ze zdefiniowanym komunikatem.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER CDN.ZmianaNazwyTowaru
ON CDN.TwrKarty
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON
IF UPDATE(Twr_Nazwa)
BEGIN
IF EXISTS (SELECT * FROM deleted WHERE deleted.Twr_Nazwa<>'')
BEGIN
RAISERROR('#CDN_BLAD/# #CDN_1=Próba zmiany nazwy indeksu towarowego!/# #CDN_2=Nie masz uprawnień do wykonania tej operacji./# #CDN_3=Skontaktuj się z Twoim administratorem./#',16,1)
ROLLBACK TRAN
RETURN
END
END
END
SET NOCOUNT OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Jako informacja ogólna pojawi się komunikat: Próba zmiany nazwy indeksu towarowego!
W informacjach szczegółowych będą widniały następujące treści:
- Zakładka Przyczyna: Nie masz uprawnień do wykonania tej operacji.
- Zakładka Remedium: Skontaktuj się z Twoim administratorem.
- Zakładka Zaawansowane: pełna treść komunikatu.

XL003 - Hydra
Mała Hydra
Przez Małą Hydrę rozumiemy mechanizm, który pozwala na ukrycie, wyłączenie lub ustawienie wymagalności dla kontrolek na istniejących oknach. Callbacki zarówno Małej jak i Dużej Hydry są widoczne na Liście dodatków. Lista ta umożliwia importowanie i eksportowanie callbacków, zmianę ich stanu, dodawanie, usuwanie oraz edycję.

Na liście dodatków znajdują się następujące przyciski:
Nowy dodatek – użycie funkcji rozpocznie proces dodawania nowego callbacka.
Importuj – funkcja umożliwia zaimportowanie zdefiniowanego callbacka ze wskazanej lokalizacji.
Eksportuj - funkcja umożliwia wyeksportowanie callbacka do wskazanej lokalizacji.
Odśwież – odświeżenie listy dodatków.
Odśwież w programie - funkcja odświeżania w całym programie, np. w przypadku usunięcia callbacka, zostanie on usunięty ze struktury firmy i innych obiektów w systemie dopiero po jej użyciu.
Dodaj - funkcja aktywna po dodaniu callbacka. Umożliwia jego szczegółowe zdefiniowanie.
Edytuj - umożliwia edycję zdefiniowanego callbacka.
Usuń – usuwa callbacka zaznaczonego na liście.
Aby dodać nowy dodatek Małej Hydry należy uruchomić funkcję Nowy dodatek. Zostanie podniesione okno Edycja dodatku.

Nazwa - w polu należy wprowadzić nazwę callbacka.
Wersja - wersja „Hydry”, w jakiej został utworzony callback; pole wypełniane jest automatycznie.
Przeznaczony dla wersji - wersja systemu Comarch ERP XL, w której callback będzie funkcjonował; pole wypełniane automatycznie.
Autor - autor callbacka; pole wypełniane automatycznie - wartością wprowadzaną domyślnie będzie zalogowany operator.
Data utworzenia - data utworzenia callbacka; pole wypełniane automatycznie.
Data dodania - data dodania callbacka do systemu; pole wypełniane automatycznie.
Operator - operator dodający callback do systemu; pole wypełniane automatycznie.
Stan - zaznaczenie wybranej opcji zadecyduje o aktywności callbacka w systemie. Aby callback funkcjonował w systemie, musi mieć zaznaczoną opcję: Aktywny.
Opis - w polu można wprowadzić opis callbacka.
Aby skonfigurować callbacka należy zaznaczyć dodatek i uruchomić funkcję Dodaj. W efekcie zostanie podniesione okno Edycja grupy procedur. W tym miejscu istnieje możliwość zdefiniowania dodatkowego warunku, na zakładanym callbacku. Warunek musi być zdefiniowany zgodnie ze składnią języka C# i musi zwracać wartość logiczną. W przypadku zwrócenia wartości true callback zostanie wykonany, w przypadku zwrócenia wartości false działanie callbacka zostanie zablokowane. W programie możemy definiować dwa rodzaje złożonych warunków callbacka:
Warunek oparty o zmienne słownikowe – warunek można skonstruować w oparciu o zmienne zawarte w ConfigurationDictionary.
Warunek oparty o bufor tabeli – warunek może być oparty o dane zawarte w buforze tabeli.

W ostatnim kroku należy zdefiniować zmienioną obsługę kontrolek. W tym celu należy na liście dodatków zaznaczyć dodaną procedurę i wywołać funkcję Dodaj. Zostanie podniesione okno Edycja akcji na kontrolce. W tym miejscu należy wskazać za pomocą znacznika odpowiednią kontrolkę na oknie, a następnie zdefiniować właściwą akcję:
Ukryj – ukrycie kontrolki na oknie
Dezaktywuj – dezaktywacja kontrolki na oknie
Wymagaj – ustawienie wymagalności kontrolki – nie będzie możliwe zamknięcie okna do czasu wprowadzenia wartości w kontrolce.
Pogrub – pogrubia czcionkę etykiety (pogrubiona czcionka zwykle służy do wizualnego oznaczenia pól wymaganych na formularzu)

Aby dodatek był aktywny w systemie należy go dodać do właściwego centrum w strukturze praw. W tym celu należy uruchomić okno Edycja struktury firmy i dodać zdefiniowanego callbacka na zakładce Dodatki.
Duża Hydra - informacje ogólne
Callbacki
Callbacki Dużej Hydry są mechanizmem, który służy do dodawania nowej funkcjonalności, bez potrzeby modyfikacji binariów programu. Od strony technicznej callbacki są zrealizowane jako plik dll eksportujący określony zestaw funkcji, podzielonych na funkcje plikowe i okienkowe.
Funkcje plikowe są wywoływane przez program podczas uruchamiania lub zamykania formatki - wówczas każda akcja użytkownika powoduje wywołanie pary zdarzeń: poprzedzających akcję i następujących po niej. Callbacki z tej grupy są najczęściej wykorzystywane do kontroli poprawności zapisywanych danych oraz do zaawansowanej kontroli uprawnień operatora.
Funkcje okienkowe są wykorzystywane w celu modyfikacji wyglądu i zachowania formatek. Składają się na nie trzy funkcje: wywoływane podczas inicjalizacji okna, przy każdym zdarzeniu okna oraz przed zamknięciem okna. Callbacki z tej grupy są najczęściej wykorzystywane do ukrywania lub uniemożliwiania edycji niektórych pól na formatkach lub do dodawania elementów interfejsu.
Zdarzenia obu grup są bardzo często używane łącznie.
Kod obsługujący zdarzenia należy umieścić w specjalnie przygotowanym module .NET’owym. Moduł taki musi zostać opisany za pomocą atrybutu CallbackAssemblyDescription w następujący sposób:
Przygotowanie Callbacka
[assembly:CallbackAssemblyDescription("Nazwa callbacka","Opis callbacka",”Autor callbacka","wersja callbacka","wersja systemu, dla której callback jest przeznaczony","data utworzenia callbacka w formacie dd-mm-rrrr”)]
Aby obsłużyć zdarzenia plikowe i okienkowe, należy dodać do modułu publiczną klasę dziedziczącą po klasie Callback, zdefiniowaną w assembly CdnHydra.dll. Klasę taką należy opisać atrybutem SubscribeProcedure w następujący sposób:
[SubscribeProcedure(Procedura z enumeracji Procedures,"Opis subskrypcji")]
Klasa Callback jest abstrakcyjna, więc do skompilowania assembly będzie konieczne zdefiniowanie metod Init i Cleanup. Zdefiniowanie tych metod umożliwia użytkownikowi wykonanie kodu odpowiednio inicjującego i kończącego pracę z procedurą. Uwaga – nie należy umieszczać takiego kodu wewnątrz konstruktora ani metody Dispose, ponieważ jedna instancja klasy może być wykorzystywana wielokrotnie (każde kolejne uruchomienie przez użytkownika procedury będzie powodowało uruchomienie metody Init, ale nie konstruktora, podobnie z metodą Cleanup). W metodzie Init należy określić zainteresowanie zdarzeniami w procedurze. W przypadku zdarzeń plikowych subskrypcja powinna mieć postać:
AddFileActionSubscription(bool BeforeAction,
FileActionTypes ActionType,
FileActionDelegate ActionDelegate)
gdzie
BeforeAction – określa czy obsługa ma być wywoływana przed czy po zdarzeniu
FileActionTypes – określa typ zdarzenia plikowego, którego dotyczy subskrypcja
ActionDelegate – określa delegat wywoływany w odpowiedzi na zdarzenie
W przypadku zdarzeń okienkowych subskrypcja powinna mieć postać:
AddSubscription(bool BeforeHandling,
int ControlId,
Events EventId,
TakeEventDelegate EventDelegate)
gdzie
BeforeHandling – określa czy obsługa ma być wywoływana przed czy po zdarzeniu
ControlId – określa ID kontrolki (wartość 0 w przypadku ID okna)
EventId – określa zdarzenie, którego dotyczy subskrypcja
EventDelegate – określa delegat wywoływany w odpowiedzi na zdarzenie
Subskrypcje na zdarzenia mogą zostać usunięte za pomocą instrukcji:
RemoveFileActionSubscription(bool BeforeAction,
FileActionTypes ActionType,
FileActionDelegate ActionDelegate)
RemoveSubscription(bool BeforeHandling,
int ControlId,
Events EventId,
TakeEventDelegate EventDelegate)
Deklaracje delegatów dla zdarzeń plikowych i okienkowych powinny mieć odpowiednio postać:
public delegate bool FileActionDelegate (Procedures ProcedureId,
GID GID,
ADODB._Recordset Attributes);
gdzie
ProcedureId – id procedury, której dotyczy zdarzenie
GID – identyfikator rekordu, którego dotyczy zdarzenie
Attributes – zestaw atrybutów powiązanych z edytowanym rekordem
public delegate bool TakeEventDelegate (Procedures ProcedureId,
int ControlId,
Events EventId);
gdzie
ProcedureId – id procedury, której dotyczy zdarzenie
ControlId – id kontrolki, której dotyczy zdarzenie
EventId – id zdarzenia
Kod znajdujący się w callbacku ma dostęp do kontekstu, w którym został uruchomiony za pośrednictwem własności klasy ConfigurationManager. W ramach tej klasy są przechowywane następujące informacje:
- Baza string
- BazaHurtowni string
- BazaOLAP string
- Centra ADODB._Recordset
- DomyslnyMagazynSprzedazy string
- DomyslnyMagazynZakupu string
- DomyslnyRejestrBankowy string
- DomyslnySkladCelny string
- IdCentrumKosztowego int
- IdCentrumPodleglosciowego int
- IdCentrumWlasciwego int
- IdFirmy int
- KasaTransakcjiGotowkowych string
- KatalogProgramu string
- KoniecOkresuObrachunkowego datetime
- KontoDostawcow string
- KontoOdbiorcow string
- LoginZintegrowany bool
- MagazynDocelowyKompletacji string
- Magazyny ADODB._Recordset
- MagazynZrodlowyKompletacji string
- NumerOperatora int
- PieczatkaEmail string
- PieczatkaMiasto string
- PieczatkaNazwa string
- PieczatkaNIP string
- PieczatkaNIPPrefiks string
- PoczatekOkresuObrachunkowego datetime
- RabatyOdCeny bool
- RejestryBankowe ADODB._Recordset
- SciezkaWStrukturze string
- Serie ADODB._Recordset
- SerieOddzialowe ADODB._Recordset
- Serwer string
- SerwerOLAP string
- TypNaliczaniaMarzy Hydra.TypMarzy
- TypyKlasAtrybutow ADODB._Recordset
- WalutaSystemowa string
- Waluty ADODB._Recordset
Procedury HASPa:
- HASPDataAplikacji datetime
- HASPDataDealera datetime
- HASPLicencje ADODB._Recordset
- HASPLiczbaBaz int
- HASPNazwaUzytkownika string
- HASPNumerBazyDanych int- HASPNumerKlucza int
- HASPOpcje int
- HASPPlatforma int
- HASPStanKlucza int
Operacje na kontrolkach
Kod znajdujący się w callbacku może wykonywać operacje na interfejsie (dodawać, przesuwać i ukrywać kontrolki, wypełniać je itp.) za pośrednictwem własności i metod klasy ClaWindow. Instancję klasy ClaWindow można uzyskać za pomocą metody GetWindow klasy Callback (w celu uzyskania głównego okna procedury) lub GetControl (w celu uzyskania kontrolki).
Klasa ClaWindow jest wykorzystywana do operowania na oknach i kontrolkach Clarionowych. Każda instancja klasy ClaWindow jest powiązana z kontrolką lub oknem, na którym operuje.
Kolekcja AllChildren przechowuje wszystkie kontrolki znajdujące się na oknie. Można ją wykorzystać do odnalezienia poszukiwanej kontrolki. Pozostałe własności klasy odpowiadają własnościom kontrolek Clarionowych, które zostały opisane w dalszej części biuletynu.
Zdarzenia do kontrolki mogą być wysyłane za pośrednictwem metody:
public void PostEvent(Events EventId)
gdzie:
EventId – identyfikator zdarzenia, które ma zostać wysłane do kontrolki
Bardzo często zdarzenia do kontrolki są wysyłane parami – po wysłaniu określonego zdarzenia wymagane jest wysłanie zdarzenia Accepted w celu zatwierdzenia wprowadzonej wartości.
Podstawowe zdarzenia dla kontrolek:
OpenWindow/JustAfterWindowOpening – otwarcie okna
ResizeWindow – zmiana wielkości okna
NewSelection – kliknięcie w spin, przejście do innej zakładki
Accepted – akceptacja wprowadzenia nowej wartości do pola (odpowiednik wyjścia z kontrolki za pomocą tabulatora), kliknięcie przycisku.
ScrollDown/ScrollUp – scrollowanie listy
Podstawowe kontrolki
Główne właściwości kontrolek
Visible – (true/false) – widoczność kontrolki
Disable – kontrolka nieaktywna
Skip – kontrolka jest pomijana podczas przechodzenia tabulatorem
TextRaw – tekst widoczny na kontrolce
Bounds – współrzędne kontrolki
FontSizeRaw – wielkość czcionki
FontColorRaw – kolor czcionki
BackgroundRaw – kolor tła
FontStyleRaw – format tekstu
100 – cienki tekst, 400 – zwykły tekst, 700 – pogrubiony tekst, 4096 – kursywa, 8192 – podkreślenie, 16384 – tekst przekreślony
LeftRaw/RightRaw/CenterRaw – wyrównywanie tekstu w kontrolce
TipRaw – tekst wyświetlany w tooltipie kontrolki
MsgRaw – opis wyświetlany w stopce okna podczas aktywności kontrolki
Box
Kontrolka typu Box definiuje ramkę na oknie (prostokątny obszar).
ColorRaw – kolor ramki
RoundRaw – zaokrąglenie ramki
FillRaw – kolor wypełnienia
LineWidthRaw – grubość ramki
Panel
Kontrolka typu Panel definiuje obszar na oknie.
BevelRaw – efekt 3D dla ramki
Image
Kontrolka typu Image pozwala umieścić rysunek na oknie.
TextRaw – ścieżka do pliku z rysunkiem
Button
Kontrolka typu Button dodaje przycisk na oknie
IconRaw – przypisanie ikony do przycisku np. "~EXPORT20.ICO"
ReqRaw – naciśnięcie przycisku spowoduje sprawdzenie czy wszystkie pola Entry na oknie, które mają ustawiony parametr Req są wypełnione. Jeżeli nie są wypełnione to kursor zostanie przeniesiony do odpowiedniego pola Entry.FlatRaw – określenie czy przycisk jest płaski (wymagane jest przypisanie ikony do przycisku)
ImmRaw – moment wyzwolenia akcji na kontrolce. W przypadku przekazania do właściwości wartości „1” akcja zostanie wywołana w momencie kliknięcia przycisku, ale przed zwolnieniem przycisku myszy. W przypadku przekazania wartości „0” akcja zostanie wykonana po naciśnięciu i zwolnieniu przycisku myszy.
TextRaw – etykieta przycisku
StdRaw – przypisanie do przycisku standardowej akcji
Menu
Kontrolka dodaje dodatkową opcję w Menu okna. Aby zbudować menu należy posłużyć się dwoma
typami kontrolek: Menu i Item. Poniżej zaprezentowano przykład działania Menu:
Group
Kontrolka pozwala zgrupować na oknie inne kontrolki. Możliwe jest narysowanie ramki dla grupy i nadanie jej nazwy.
BoxedRaw – czy ma być wyświetlana ramka dla grupy (0 – nie, 1 – tak)
TextRaw – nazwa grupy
Text
Kontrolka typu Text dodaje pole tekstowe na oknie.
ToolTipRaw – tekst w tooltipie
SkipRaw – pole jest ignorowane podczas przechodzenia między kontrolkami za pomocą przycisku
Tabulatora
ReadOnlyRaw – pole ma status „tylko do odczytu”
TextRaw – domyślna wartość w polu tekstowym
List
Kontrolka typu List dodaje listę na oknie.
FromRaw – wypełnienie listy wartościami gdzie kolejne rekordy powinny być oddzielone od siebie
znakiem |. Jeżeli taki znak ma zostać wpisany jako wartość pozycji to należy wpisać ||. Pustą wartość
można uzyskać wpisując | |
VScrollRaw – umieszczenie pionowego paska przewijania na liście
FormatRaw – zdefiniowanie kolumn listy
SelectedRaw – numer zaznaczonego elementu na liście
Progress
Kontrolka Progress definiuje pasek postępu. Określenie postępu dla kontrolki określa się za pomocą parametru ProgressRaw.
Region
Kontrolka typu Region dodaje „interaktywny” obszar (Panel) na oknie.
ImmRaw – ustawienie parametru pozwala na obsługę zdarzeń typu MouseIn/MouseOut. Ponieważ właściwość może mieć wpływ na prędkość otwierania formatki należy ją definiować jedynie w przypadku wykorzystania dodatkowych zdarzeń.
DragIDRaw/DropIDRaw – obsługa zdarzeń typu Drag i Drop na obszarze.
Spin
RangeLowRaw – minimalna wartość dla kontrolki
RangeHighRaw – maksymalna wartość dla kontrolki
ScreenTextRaw – domyślna wartość dla kontrolki
FromRaw – lista możliwych wartości dla kontrolki oddzielonych od siebie znakiem |
TextRaw – określenie formatu pola
.Check
Kontrolka typu Check pozwala na zwrócenie wartości z przedziału {0,1}
CheckedRaw – domyślna wartość kontrolki (1 – zaznaczony, 0 – odznaczony)
UseRaw – wartość w kontrolce przy odczycie
DropCombo
Kontrolka typu DropCombo jest połączeniem dwóch kontrolek: List oraz Entry. Kontrolka pozwala na wybranie wartości z listy jednocześnie umożliwiając dopisanie/zmianę wartości.
FromRaw – wypełnienie listy wartościami gdzie kolejne rekordy powinny być oddzielone od siebie znakiem |. Jeżeli taki znak ma zostać wpisany jako wartość pozycji to należy wpisać ||. Pustą wartość można uzyskać wpisując | |
VScrollRaw – umieszczenie pionowego paska przewijania na liście.
DropRaw – liczba wierszy wyświetlanych na liście.
VCRRaw – pasek szybkiego przechodzenia po liście wartości
UprRaw – wpisanie wartości do pola będzie skutkowało automatyczną zmianą tekstu na duże znaki
SelectedRaw – wybranie pozycji na liście wartości
ScreenTextRaw – wpisanie wartości do pola entry
Droplist
Kontrolka typu Droplist pozwala na wybór wartości z rozwijanej listy bez możliwości jej edycji lub wprowadzania nowych wartości. Właściwości kontrolki w większości pozostają analogiczne jak na kontrolce Dropcombo.
Wyświetlanie komunikatów (dotyczy wyłącznie wersji SE)
Komunikat można wyświetlić za pomocą polecenia MessageBox.Show(string) po uprzednim odblokowaniu wątku. Właściwa obsługa wątków jest również konieczna na przykład w przypadku wywoływania okna .net’owego.
Ogólne wskazówki związane z tworzeniem callbacków
Odczytanie nazwy kontrolki
Nazwę danej kontrolki można odczytać korzystając z konstruktora Małej Hydry. W przypadku modułu Detal nazwy procedur rozpoczynają się od słowa Detal, a nazwy kontrolek w większości są zgodne z analogicznymi kontrolkami w innych modułach.
Bufor Tabeli
W wielu miejscach programu mamy możliwość odwołania się do wartości przechowywanych w buforze tabeli. Przykładowo z poziomu formatki dokumentu możemy odczytać informacje na temat jego nagłówka bez konieczności otwierania połączenia do bazy. Aby wykonać taki odczyt należy wskazać nazwę tabeli wraz z nazwą kolumny w bazie np. TraNag.TrN_GIDNumer.
Warto zwrócić uwagę że w buforze pliku jest przechowywany tylko jeden, aktualny rekord. Dodatkowo bufory plików mogą być wykorzystywane przez główny kod programu na różne sposoby – np. mogą być modyfikowane w odpowiedzi na zdarzenia na oknie. Dlatego warto ograniczyć poleganie na informacjach znajdujących się w buforach plików do niezbędnego minimum, wszelkie dodatkowe informacje odczytując samodzielnie np. przy użyciu ADO.NET. Modyfikowanie buforów plików jest możliwe, ale jest to działanie, które absolutnie odradzamy – może prowadzić do powstania trudnych do wykrycia i usunięcia błędów w bazie danych.
Identyfikator błędu w przypadku zdarzeń plikowych
W przypadku zdarzeń plikowych istnieje możliwość zareagowanie na ewentualny błąd np. nieudaną aktualizację rekordu. W tym celu obok standardowej subskrypcji AddFileActionSubscription jest udostępniona funkcja AddFileActionErrSubscription. W ramach tej subskrypcji jest dodany delegat FileActionErrDelegate, do którego będzie przekazywany kod błędu. Delegat jest wołany tylko na zdarzeniach typu after.
Oba typy subskrypcji mogą działać równocześnie. Wówczas Hydra najpierw wywołuje delegata z przekazanym kodem błędu, a później stary delegat.
W materiałach dodatkowych zostały udostępnione callbacki przedstawiające wykorzystanie zdarzeń plikowych. Są to odpowiednio callback_plikowy.cs (dla AddFileActionSubscripion) i callback_plikowy_err.cs (dla AddFileActionErrSubscription).
Obsługa list z poziomu Hydry
W przypadku tworzenia nowych list za pomocą Hydry, pierwszym etapem jest ustalenie prawidłowej definicji listy. Aby prawidłowo utworzyć listę należy się posłużyć dokumentacją Clariona, gdzie szczegółowo opisano działanie poszczególnych parametrów definicji listy. Jeżeli nie dysponujemy dokładnym opisem, to można odczytać i ewentualnie zmodyfikować format innej, istniejącej już listy w programie.
Kolejnym etapem jest proces wypełniania listy danymi. Aby prawidłowo wypełnić listę należy określić parametr FormatRaw wcześniej zdefiniowanym łańcuchem znaków. Stopniowa inkrementacja wartości parametru w pętli nie jest w tym przypadku zalecana, gdyż powoduje znaczne wydłużenie procesu wypełniania kontrolki. Poniższy fragment kodu prezentuje w jaki sposób powinno wyglądać prawidłowe wypełnianie listy:
W przypadku nowej listy istnieje możliwość określenia kolorów dla każdego rekordu. Aby pojawiła się taka możliwość należy dodać znak * w definicji danej listy. Poniżej zaprezentowano fragment kodu dodającego nową listę. Dla każdej wartości został zdefiniowany zestaw 4 kolorów oznaczających kolejno: kolor tekstu, kolor tła, kolor tekstu po podświetleniu wiersza, kolor tła po podświetleniu wiersza. W przypadku pozostawienia wartości -1 zostanie pobrany domyślny kolor zdefiniowany dla listy.
W przypadku list istniejących nie możemy odczytać kolejki danych wysyłanych do kontrolki i w związku z tym, nie mamy możliwości zmiany koloru poszczególnych pozycji.
Zmiana wartości w kontrolce Check
Poniżej zaprezentowano przykład na zmianę wartości kontrolki typu Check.Zasady działania głównych funkcji Dużej Hydry
Podczas tworzenia dodatków należy pamiętać, iż metoda Init() wykonuje się przed zbudowaniem okna. Metoda Cleanup() jest wykonywana przed zamknięciem okna. Okno jeszcze istnieje, ale już nie obsługuje zdarzeń. Metoda Exit() wykonuje się po zamknięciu okna, po zwolnieniu lokalnych obiektów (wszystkich łącznie z oknem i kontrolkami). Można tą metodę przeciążać – dlatego właśnie została udostępniona, trzeba tylko nie odwoływać się do zwolnionych obiektów.
Przykłady
Zdefiniowanie połączenia do bazy bez potrzeby podawania ConnectionStringa.
Nie ma potrzeby definiowania Connection Stringa przy wywoływaniu połączenia do bazy danych. W to miejsce można zastosować intrukcję: Runtime.ActiveRuntime.Repository.Connection; która zwróci pełny ConnectionString dla połączenia XL-owego.Wywołanie zapytania na bazie bez potrzeby otwierania nowego połączenia do bazy.
Do klasy Config została dodana metoda ExecSQL, która pozwala na wywołanie zapytania SQL bez potrzeby otwierania nowego połączenia do bazy. Wykonanie zapytania odbywa się w tym przypadku na połączeniu XLa i służy wykonaniu instrukcji bez zwracania jej wyniku. W związku z tym jest ona przeznaczona przede wszystkim do uruchamiania procedur SQL lub instrukcji insert/update/delete na bazie danych. Na chwilę obecną nie ma możliwości wykorzystania instrukcji w celu zwrócenia wartości select.
Instrukcja ma postać: Runtime.Config.ExecSql (string Sql, bool Transakcja) gdzie parametr Sql - zapytanie SQL parametr Transakcja (true lub false) - czy zapytanie ma być wykonane w transakcji (true) lub nie (false)Aktualna data i godzina
Informacje na temat aktualnej daty i godziny można uzyskać korzystając z klasy ConfigurationDictionary:
Runtime.ConfigurationDictionary.Today()
Runtime.ConfigurationDictionary.TimeStamp()
Odczyt zaznaczonych pozycji
Na listach została udostępniona możliwość odczytu zaznaczonych pozycji. Przykład tego rozwiązania można odnaleźć w materiałach dodatkowych w pliku listazaznaczonych.cs.
Odczyt wartości atrybutu
W materiałach dodatkowych w pliku atrybuty.cs można odnaleźć przykład odczytania wartości atrybutu na dokumencie FS. Odczytanie wartości nie jest możliwe za pomocą mechanizmu Hydry, więc w tym celu zostało wykorzystane odwołanie bezpośrednio do bazy danych. Aby callback zadziałał prawidłowo należy zdefiniować atrybut z opcją automatycznego zapisu wartości w bazie.
Zmiana wartości pola tekstowego
Aby zmienić wartość istniejącego pola tekstowego należy zmienić odpowiednią właściwość danej kontrolki, a następnie odświeżyć kontrolkę.
ClaWindow Parent = GetWindow();
ClaWindow miasto = Parent.AllChildren["?Knt:Miasto"];
miasto.ScreenTextRaw = "miasto";
Runtime.WindowController.PostEvent(Parent.AllChildren["?Knt:Miasto"].Id,Events.Accepted);
Odświeżanie zawartości okna
Jeżeli wykonujemy operacje dla całego okna, a nie konkretnej kontrolki to w miejsce id kontrolki powinna zostać ustawiona wartość 0. Przykładowo, aby odświeżyć zawartość okna należy wywołać zdarzenie FullRefresh bez wskazania na konkretną kontrolkę:
Runtime.WindowController.PostEvent(0, Events.FullRefresh);
Podniesienie do edycji wybranego okna
Istnieje możliwość wywołania funkcji XLUruchomFormatkeWgGID bez konieczności wykorzystania w tym celu zewnętrznych funkcji API. Należy w tym celu wykorzystać wbudowaną funkcję:
public Hydra.GID UruchomFormatkeWgGID(short GIDTyp, int GIDFirma, int GIDNumer, short GIDLp,Hydra.Request request)
W przypadku wystąpienia błędów do pola Typ klasy GID zostaje zwrócony numer błędu zgodny z analogiczną funkcją dostępną w API, a do pozostałych pól (Firma, Numer, Lp) zostaje zwrócona wartość -1.
Ukrycie kolumny na liście
W programie Comarch ERP XL nie ma możliwości, aby ukryć lub dodać kolumnę do listy z poziomu Hydry, gdyż wiązałoby się to z koniecznością zmiany sposobu wypełniania takiej listy danymi, nad czym z poziomu Hydry nie mamy kontroli. Aby ukryć kolumnę można za pomocą Hydry zmniejszyć jej szerokość tak, aby operator nie był w stanie zobaczyć jej zawartości. Efekt taki można osiągnąć modyfikując definicję danej listy poprzez zmianę właściwości FormatRaw. Przykładowy kod można odnaleźć w załącznikach w pliku UkrywanieKolumny.cs, który przedstawia sposób na ukrycie kolumny z ceną na liście towarów.
Debugowanie kodu z poziomu Visual Studio
Istnieje możliwość debugowania stworzonego callbacka. Aby przeprowadzić ten proces z poziomu Visual Studio należy wstawić w kodzie odpowiedni breakpoint, a następnie ustawić we właściwościach projektu, aby przy starcie została uruchomiona zewnętrzna aplikacja (w naszym przypadku moduł Comarch ERP XL). Właściwości projektu można ustawić z poziomu menu Project -> Properties. Konieczne jest również zaimportowanie aktualnego callbacka do ERP XL.
Przy powyższych ustawieniach w momencie uruchamiania debugowania zostanie uruchomiony moduł wskazany w linii ‘start external program’, a działanie programu zostanie przerwane przy dojściu do pierwszego breakpointa.
UwagaFunkcjonalność wywołania zewnętrznego programu w przedstawiony sposób podczas uruchamiania debugowania nie jest dostępna w Visual Studio w wersji Express.
Reakcja na zamknięcie okna
Aby zareagować na zamknięcie formatki najczęściej wykorzystuje się zdarzenie CloseWindow. Zdarzenie to ma jednak podstawowe ograniczenie, gdyż pozwala jedynie na reakcję przed zamknięciem formatki. Aby zareagować na moment „po zamknięciu” należy zadeklarować metodę Exit. Należy również zwrócić uwagę na brak blokowania wątku podczas wywoływania komunikatu.
Ctrl+ins na dokumencie
Comarch ERP XL oferuje możliwość dodania nowych obiektów do bazy jak również skopiowanie istniejących za pomocą kombinacji Ctrl+ins. Aby z poziomu Hydry wykryć w jaki sposób nowy obiekt został dodany do bazy należy zapiąć się na zdarzenie plikowe before InsertInit. Jeżeli dodawany jest nowy obiekt do bazy, to w gidnumerze zostanie zwrócona wartość 0. W przypadku kopiowania obiektu zostanie zwrócony gidnumer kopiowanego elementu.
Zmiana kontrahenta na dokumencie
W przypadku zmiany kontrahenta lub towaru na dokumencie dostępne są dwie ścieżki postępowania – wartość może zostać wpisana w polu z klawiatury lub wybrana z podniesionej listy. Aby obsłużyć przedstawioną sytuację należy założyć dwie subskrypcje. Jedna z nich na wypełnienie wartości z klawiatury (zdarzenie before Accepted), druga na kliknięcie przycisku (zdarzenie after Accepted).
Przechodzenie między oknami w trybie zaawansowanym
Jeżeli na karcie operatora ustawiono otwieranie okien w trybie zaawansowanym, to pojawia się możliwość przechodzenia między dokumentami. Aby wykryć taką operację z poziomu Hydry należy zapiąć subskrypcję na kliknięcie strzałki, a następnie poczekać na pierwsze wysłanie zdarzenia FullRefresh do okna. Po wystąpieniu tego zdarzenia należy zdjąć subskrypcję na zdarzenie FullRefresh, aby uniknąć wyzwalania callbacka przy standardowym odświeżeniu danych.
Wykonanie wydruku
Z poziomu Hydry możliwe jest wykonanie wydruków. W tym celu w ConfigrationDictionary udostępniono metodę WykonajWydruk().
public int WykonajWydruk(int ProceduraID, int Kontekst, int Zrodlo, int Wydruk, int Format, string Zmienne, string FiltrTPS, string FiltrSQL, string Sortowanie, short Urzadzenie)
Przykład tego rozwiązania można odnaleźć w materiałach dodatkowych w pliku WykonajWydruk.cs.
Odczyt naciśniętego klawisza
Od wersji 2014.1 jest możliwe odczytywanie za pomocą Hydry, jaki klawisz klawiatury został naciśniety. W tym celu dodano metodę GetKeyCode do klasy WindowController.
Przykład tego rozwiązania można odnaleźć w materiałach dodatkowych w pliku OdczytKlawisza.cs.
Modyfikacja menu kontekstowego
Od wersji 2017.0 istnieje możliwość modyfikacji menu kontekstowych (tzw. PopupMenu) wyświetlanych w Comarch ERP XL. Służą do tego klasy XLPopup oraz XLPopupItem, które reprezentują odpowiednio menu oraz pojedynczą pozycję z menu.

W klasie WindowController dostępne są metody pomocnicze:
SetPopup – ustawia wygląd popup menu
SetPopupChoice – wybiera pozycję z popup menu związanym ze wskazaną kontrolką
GetPopup – zwraca definicję popup menu związanego z daną kontrolką
GetPopupChoice – zwraca numer pozycji ostatnio wybranej z popup menu
GetPopupItem – zwraca definicję pozycji ostatnio wybranej z popup menu
Aby modyfikować popup menu należy dodać subskrypcję przed zdarzeniem Events.XLPopup i w niej dokonać modyfikacji popup menu, natomiast na subskrypcji po tym zdarzeniu należy dodać obsługę wybranej pozycji.
Uwaga: Można dodawać i usuwać pozycje menu z dowolnego miejsca, ale jeżeli nie są to pozycje ostatnie to trzeba zadbać o przenumerowanie wyboru użytkownika tak aby dla standardowych pozycji zwracać ich pierwotne numery.
Odczyt nazwy kontrolki z pomocą dodatku Dużej Hydry
W przypadku gdy nazwy kontrolki nie da się odczytać za pomocą małej hydry można skorzystać z możliwości dużej hydry tworząc oddzielny dodatek. Wówczas należy skorzystać z metody Runtime.WindowController.GetControlName().
Format czasu w kontrolce spin
Umieszczając kontrolkę spin zdarza się potrzeba umieszczenia danych w formacie czasu np. hh:mm. W tym celu należy dodać odpowiedni parametr TextRaw = "@T1" oraz odpowiedni krok StepRaw = "6000". Format @T1 to GG:MM, czyli z dokładnością do minuty. Wartości w spinie natomiast to standardowy czas, czyli liczba setnych sek. od godziny 00:00:00. Domyślnym krokiem jest 1, więc gdy przewijamy w górę to kontrolka zaokrągla czas do pełnych minut zgodnie z formatem więc wartość się nie zmienia (np. 10:11:00.00 zmienia się na 10:11:00.01,więc w formacie @T1 nadal jest 10:11), gdy przewijamy w dół robi tak samo, ale teraz już minuty się zmieniły bo np. z 10:11:00.00 zrobi się 10:10:59.59.
Znane problemy w Hydrze
Współpraca API z oknami .net’owymi (dotyczy wyłącznie wersji SE)
Mechanizm Hydry umożliwia wywołanie okienek .net’owych co przyczynia się do znacznego zwiększenia jej możliwości, jednak oznacza to równocześnie próbę pogodzenia ze sobą dwóch różnych technologii. Dosyć często takie formatki pośredniczą pomiędzy XL-em, a funkcjami API – przykładowo zachodzi taka sytuacja gdy z poziomu programu zostaje zawołane okno .net’owe, a następnie na podstawie zebranych danych wywołujemy funkcje API. Przy klasycznej konstrukcji callbacka, gdy w ramach danego frame’a wywołujemy funkcje API dosyć często pojawiają się błędy obsługi pamięci. Jedynym rozwiązaniem jest wówczas wywołanie funkcji API poza oknem .net’owym. Najprościej uzyskać taki efekt tworząc osobną aplikację wywoływaną z poziomu linii poleceń z odpowiednimi parametrami. Dzięki temu udaje się ominąć problemy z obsługą pamięci.
Wywoływanie funkcji API z poziomu danego dokumentu
Niestety nie ma możliwości wywołania większości funkcji API z poziomu edytowanego dokumentu. Najczęściej stosuje się podobne próby w sytuacji, gdy podczas wystawiania jednego dokumentu zachodzi potrzeba wystawienia innego dokumentu. Z technicznego punktu widzenia taka sytuacja jest możliwa do obsłużenia, tzn. z poziomu jednego dokumentu możemy wywołać dodanie innego dokumentu. Najczęściej nie jest jednak wtedy możliwe prawidłowe zamknięcie pierwszego dokumentu, który pozostanie w bazie jako aktywny. Jest to spowodowane współdzieleniem przez obie sesje (XLa i API) informacji w tabeli ObiektyObce. Wówczas konieczne jest wywołanie nowego dokumentu dopiero po zamknięciu pierwszego.
Ograniczenia callbacków plikowych
Stosowanie callbackow plikowych ma swoje ograniczenia. Aby callback został wykonany niezbędne jest podniesienie danej formatki. Ma to istotne znaczenie zwłaszcza w przypadku obsługi menu kontekstowego i opcji pociągających za sobą update na elemencie. Przykładowo potwierdzenie lub anulowanie dokumentu handlowego nie spowoduje wyzwolenia callbacka zapiętego na akcję updateaction gdyż modyfikacja odbywa się bez otwierania danego okna. Inaczej natomiast wygląda sytuacja z usuwaniem takiego dokumentu z listy – w tym przypadku jest to obsłużone przez mechanizm Clariona, który podnosi okno w tle i dzięki temu callback zostanie wykonany.
Hydra i nowy interfejs
- Callbacki przygotowane dla wersji SE, nie muszą być ponownie kompilowane do wersji z nowym interfejsem.
- Jeżeli dodatek Hydry startuje nowy wątek i w tym nowym wątku występują odwołania do API bądź metod udostępnianych przez Hydrę (ogólnie odwołanie do XL-a np. przez wywołania funkcji z DLLImport), to należy w tym wątku, zaraz po jego uruchomieniu wywołać funkcję z biblioteki ClaRUN.dll AttachThreadToClarion(1).
- [DllImport(“ClaRUN.dll”)]
- static extern void AttachThreadToClarion(int _flag);
Pliki do pobrania:
ERPXL_HydraXL086 - e-Sklep w pytaniach i odpowiedziach
Synchronizacja z Comarch ERP XL- najczęściej zadawane pytania
Synchronizacja danych z Comarch ERP XL do Comarch e-Sklep
Błąd podczas eksportu danych: Wystąpił nieoczekiwany błąd podczas wysyłania danych:Synchronization_ImportXML 16, 1 9420: XML parsing line 26, character 9837, illegal XML character
Komunikat informuje o tym, iż w powstającym pliku XML pojawiły się znaki niedozwolone. Mogą to być np. puste znaki. Problem najczęściej występuje wskutek bezpośredniego wklejenia treści tekstowych skopiowanych np. z Internetu i niezweryfikowanych w edytorze tekstowym.
Remedium:
W takiej sytuacji należy w pliku XML odnaleźć pole zawierające problematyczny znak przy użyciu poniższej instrukcji, a następnie, z poziomu XL-a usunąć zawartość tego pola i ponownie wpisać ręcznie, bądź po weryfikacji w edytorze tekstowym.
Instrukcja weryfikacji XML-a pod kątem występowania nieprawidłowych znaków:
Wywołać procedurę CDN.Esklep_EksportTwr; w otrzymanym wyniku, pliku XML zastąpić wszystkie apostrofy jakąś literą (np. a)
tak zmodyfikowany wynik wkleić w poniższe zapytanie:
declare @xml xml
set @xml = ‘<zawartość zwrócona przez procedurę>’
select @xml
i wybrać F5.
Jeżeli wynik zapytania zwraca błąd- oznacza to, że w obrębie towarów znajdują się towary z błędnymi znakami. W celu ich odnalezienia należy analizować wynik w sposób fragmentaryczny, tj:
w celu zawężenia obszaru poszukiwań podzielić wynik na dwie równe części i każdą z nich poddać ponownej analizie przy pomocy zapytania:
declare @xml xml
set @xml = ‘<zawartość zwrócona przez procedurę>’
select @xml
Jeżeli poszczególny wynik nie zwraca błędu, oznacza to, że w danym fragmencie nie ma towarów z błędnymi znakami, Jeżeli poszczególny wynik zwraca błąd , należy ponownie postąpić wedle punktu 4)
Po odnalezieniu problematycznego towaru, należy odnaleźć pole, w którym występuje błąd. Najczęściej jest to nazwa towaru/opis. W tym celu należy usunąć zawartość pola i zweryfikować, wklejając w zapytanie podane w punkcie (4). W przypadku gdy problem jest z wartością atrybutu, należy usunąć tę wartość, a następnie ponownie wpisać ją ręcznie i wykonać synchronizacje.
Jeżeli znak nie zostanie odnaleziony przy pomocy analizy wyników CDN.ESKLEP_EksportTwr, wówczas w analogiczny sposób należy zanalizować procedurę CDN.ESKLEP_EksportGrup.
Cannot insert the value NULL into column ‘PdR_Price’, table ‘CDNeSklep_11969.CDN.Products’; column does not allow nulls. INSERT fails.
Komunikat pojawia się po stronie panelu administracyjnego w e-Sklepie i informuje o wystąpieniu jednej z dwóch poniższych sytuacji:
- na towarze/towarach wysyłanych do e-Sklepu brakuje ceny określonej na definicji oddziału jako cena aktualna. Aby zapobiec takiej sytuacji, należy przed dokonaniem eksportu do e-Sklepu dokonać weryfikacji, czy na wszystkich towarach, które mają zostać wyeksportowane znajduje się odpowiednia cena:

W przypadku, gdy na którymś z towarów brakuje ceny aktualnej, powyższa weryfikacja zwróci komunikat:

- na towarze wysyłanym do e-Sklepu ustalono cenę w walucie, która nie została zmapowana na oddziale e-Sklepu (Definicja oddziału/Waluty)
Błąd podczas dodawania atrybutów dla towaru: (Violation of PRIMARY KEY constraint ‘PK_Attachments’. Cannot insert duplicate key in object ‘CDN.Attachments’. The duplicate key value is (213)
Komunikat informuje nas o tym, iż do e-Sklepu wysyłany jest zduplikowany załącznik o ID 213.
Opis zdarzenia:|Błąd podczas eksportu danych: Wystąpił nieoczekiwany błąd podczas wysyłania danych:Synchronization_ImportProductsRelated 14, 1 2627: Violation of PRIMARY KEY constraint 'PK__#Product__DCE249BD17CE2A6B'. Cannot insert duplicate key in object 'dbo.#ProductsRelated'. The duplicate key value is (1, 5649, 8373, -2).
The statement has been terminated.|
Komunikat pojawia się po stronie loga automatycznej synchronizacji i informuje o tym, że do e-Sklepu wysyłane są zduplikowane zamienniki. W powyższym przypadku dla towaru o ID 5649 kilkukrotnie wysyłany jest zamiennik o ID 8373.
Remedium: Należy zweryfikować, czy na karcie towaru dany zamiennik znajduje się więcej, niż jeden raz.
Opis zdarzenia:|Błąd podczas eksportu danych: Wystąpił nieoczekiwany błąd podczas wysyłania danych:Synchronization_ImportProductsRelated 14, 1 2627: Violation of PRIMARY KEY constraint 'PK__#Product__DCE249BD17CE2A6B'. Cannot insert duplicate key in object 'dbo.#ProductsRelated'. The duplicate key value is (2, 5649, 8373, -2).
The statement has been terminated.|
Komunikat pojawia się po stronie loga automatycznej synchronizacji i informuje o tym, że do e-Sklepu wysyłane są zduplikowane komplety. W powyższym przypadku dla towaru o ID 5649 kilkukrotnie wysyłany jest komplet o ID 8373.
Remedium: Należy zweryfikować, czy na karcie towaru dany komplet znajduje się więcej, niż jeden raz.
Duplikacja kontrahenta o ID: 5516
Komunikat pojawia się w sytuacji, gdy do e-Sklepu wysyłanych jest wielu kontrahentów o adresie e-mail podanym na kontrahencie o ID 5516.
Remedium: Zmienić powtarzające się adresy e-mail na kontrahentach wysyłanych do e-Sklepu
Błąd podczas eksportu danych: Wystąpił błąd:[HRESULT=”0x80040e57” Description=”Wykonywanie instrukcji zostało przerwane.”HRESULT=”0x80040e57” Description=”Dane w postaci ciągu lub dane binarne zostaną obcięte.”]
Komunikat informuje o tym, iż w polach na wysyłanych towarach przekroczone zostały zakresy zmiennych dopuszczalnych w procedurach eksportujących dane do e-Sklepu.
Remedium: Najczęstszym powodem pojawiania się takiego komunikatu jest zbyt długa nazwa załączanego do synchronizacji z e-Sklepem pliku. Należy odszukać załącznik i skrócić nazwę lub też dokonać modyfikacji procedury CDN.ESKLEP_EksportTwr DABKOD zwiększając ilość znaków z 40. do 99.
Błąd podczas eksportu danych: Wystąpił nieoczekiwany błąd podczas wysyłania danych-5:CDN.Synchronization_ImportXML 16, 1 50000: Synchronizacja już trwa na innym stanowisku (Synchronization id already in progres)
Remedium: Wymagany jest kontakt z asystą e-Sklepu, Komunikat pojawi się w sytuacji, w której automat rozpoczyna synchronizacje w momencie gdy poprzednia synchronizacja jeszcze nie została zakończona lub wykonywanie ręcznej synchronizacji w momencie gdy włączony jest automat synchronizacji.
Błąd podczas eksportu danych: Błąd podczas tworzenia pliku XML:Wystąpił błąd [HRESULT=”0x80004005” Description=”Cannot continue the execution because the session is the kill state.”]
Remedium: Przyczyną może być wykonanie synchronizacji w trakcie restartu serwera
Synchronizacja danych z Comarch e-Sklep do Comarch ERP XL
Błąd podczas dodawnia zamówienia o ID=24481 - Kontrahent nie istnieje - <ZAM ID="24481" Typ="2" DataWystawienia="78941" DataWys="540386763" FormaPlID="2" FormaPl="PayU" SposobDostawy="Przesyłka kurierska [UPS] - Przelew" KosztPrzesylki="13.99" TypTransakcji="1" KodKraju="" Waluta="PLN" KntID="465" KntNazwa1="Beata Stawiarska" KntNazwa2="Marsh sp. z oo" KntNazwa3="" KntUlica="Niemcewicza" KntNrBudynek="26" KntNrLokal="66"KntKodP="02-306"KntMiasto="Warszawa" KntWojewodztwo="mazowieckie" KntNIP="" KntNIPUE=
Komunikat może świadczyć o nieprawidłowości w mapowaniu kontrahenta w Comarch ERP XL oraz w Comarch e-Sklep i tym samym braku wpisu w tabeli cdn.PicoLog, w której znajdują się powiązania GIDNumerów obiektów w bazie systemu z ID obiektów w bazie e-Sklepu.
Remedium:
W razie braku wpisu na danego kontrahenta należy wykonać update wedle poniższego wzoru:
INSERT INTO CDN.PicoLog
VALUES
(PcL_ID, ID oddziału e-Sklep, 32, GIDNumer kontrahenta w bazie systemu, KntID, null, 'Kontrahent-KntNazwa1', '', DATEDIFF(s,convert(datetime,'1990-01-01',120),'2017-02-28 15:50:09.000'))
Można również zweryfikować czy w tabeli cdn.PicoLog znajduje się wpis dla danego kontrahenta. W przypadku braku wpisu należy dodać wpis w PicoLog (po uprzednim wykonaniu backupu bazy danych) poprzez odpowiedni insert. Przy samym insercie trzeba zwrócić uwagę na 3 pola: Pcl_ObiektID - id kontrahenta w e-Sklepie PcL_Obinumer - GIDnumer kontrahenta w bazie XL PcL_PcKID – ID Oddziału esklepu (należy zwrócić uwagę czy został utworzony nowy oddział w tym czasie)
Poniżej przykładowy wpis dla kontrahenta o GIDnumerze 25, ID 17 w sklepie dla oddziału sklepu o ID 9.

Błąd podczas dodawania nagłówka zamówienia o ID=1-XLNowyDokumentZam(33) <ZAM ID=”1”Typ=”2”DataWystawienia=”77977”(…)
Komunikat zwracany przez API XLNowyDokumentZam(33) świadczy o tym, iż operator wykonujący synchronizację ręczną/zalogowany do automatu synchronizacji/zalogowany do usługi synchronizacji nie posiada uprawnień do modułu Zamówień jak również sytuację, w której operator ma uprawnienia, lecz w momencie logowania do systemu licencja na ten moduł nie był dostępna na kluczu i nie została pobrana.
Remedium: Należy zaznaczyć moduł Zamówienia na operatorze, opcjonalnie przelogować moduł Administratora Oddziałów. Jeżeli operator posiada zaznaczony moduł Zamówień, należy zweryfikować czy na kluczu znajduje się wolna licencja.
Błąd podczas dodawania kontrahenta ESKL2_19 – NowyKontrahentSQL(61) - <KNT ID=”19” GIDNumer=”-1”(…)
Komunikat zwracany przez API NowyKontrahentSQL(61) zwracany jest w przypadku utraty sesji na operatorze wykonującym synchronizację ręczną/zalogowanym do automatu lub usługi.
Remedium: Należy ponownie zalogować operatora poprzez ponowne uruchomienie CDNSynchro bądź Administratora Oddziałów.
Błąd podczas dodawania nagłówka zamówienia o ID=605 – XLNowyDokumentZam(51) <ZAM ID=”605”Typ=”2”(…)
Komunikat zwracany przez API XLNowyDokumentZam(51) zwracany jest w przypadku gdy do systemu próbuje się zaimportować zamówienie złożone na kontrahenta archiwalnego.
Remedium: Odznaczyć archiwalność kontrahenta w celu wczytania dokumentu.
Błąd podczas dodawnia nagłówka zamówienia o ID=68 - XLNowyDokumentZam(2) <ZAM ID="68" Typ="1" DataWystawienia="78972" DataWys="543072806" FormaPlID="3" FormaPl="Przelew bankowy" SposobDostawy="Przesyłka kurierska" KosztPrzesylki="20.00" TypTransakcji="1" KodKraju="" Waluta="PLN" KntID="541" KntNazwa1="Aflofarm Farmacja Polska" KntNazwa2="" KntNazwa3="" KntUlica="Partyzancka" KntNrBudynek="133" KntNrLokal="151/" KntKodP="95-200" KntMiasto="Pabianice" KntWojewodztwo="łódzkie" KntNIP="7311821205" KntNIPUE=""
Komunikat może być powiązany z komunikatem NowyAdres(2) oznaczającym- Wystąpił błąd przy próbie zablokowania tabel dla wykonania transakcji.
Problem występuje podczas insertu na bazę danych podczas importu z e-Sklepu. Przyczyna: brak uprawnień użytkowników od strony serwera SQL bądź dodatkowe rozwiązania.
Błąd podczas dodawnia nagłówka zamówienia o ID=15250 BŁĘDY [Brak praw do dokumentu. (NowyDokumentZam-41)
Rozwiązaniem problemu może być wykonanie update na bazie:
Update cdn.konfig set kon_wartosc=0 where kon_numer=-143.
Błąd podczas importu danych – Procedura CDN.XLNowaReklamacja zwróciła błąd nr 3
Remedium: Numer 3 wskazuje na brak dokumentu reklamowanego lub towaru. Należy wykonać zmianę statusu reklamacji w panelu administracyjnym e-Sklepu oraz ponowić synchronizację.
Błąd. Błąd podczas dodawania towaru: Niepoprawna struktura danych – niepoprawny status dostępności towaruKomunikat świadczy o braku lub niepoprawności ustawienia statusu dostępności w systemie ERP. Przykładowo: na kartotece towarowej w systemie ERP XL na zakładce Aplikacje jest ustawiony status: Dostępny, natomiast status dostępności pozostaje pusty.
Dodatkowo dla masowej zmiany wartości wskazanych ustawień na karcie towaru można wykorzystać update na bazie danych, wskazaną zmianę należy w pierwszej kolejności wykonać na kopi zapasowej bazy danych. (obinumertowaru należy podstawić gidnumer karty towarowej, możliwe wartości dla kolumn TAP_status oraz TAP_Dostepnosc zostały opisane w dokumentacji tabel)Synchronization_ImportBinaryData Dane binarne zawierają dane skompresowane, skontaktuj się z Asystą Comarch ERP
W przypadku komunikatu o skompresowanych danych należy zweryfikować czy dla załącznika pola DAB_TypId=326 (typ obraz) w tabeli ERP XL cdn.danebinarne oraz czy DAB_Rozmiar=0 w tej samej tabeli. Jeśli DAB_Rozmiar jest różny od 0 należy zmienić ustawienia dla typu załącznika obraz zgodnie ze zrzutem, następnie usunąć załącznik i dodać ponownie.
Po dokonanych zmianach należy dokonać pełnej synchronizacji. Dodatkowo dla optymalizacji załączników można skorzystać za aplikacji poprawiającej załączniki. Pod wskazanym adresem znajduje się opis oraz instrukcja dla aplikacji:
https://spolecznosc.comarch.pl/index.php/viewpost/post28780/Obrazki-w-Comarch-e-Sklep-Comarch-B2B-ERPProblemy techniczne
Komunikaty związane z wystąpieniem Timeout podczas automatycznej synchronizacji danych mogą być związane ze zbyt dużą ilością danych, które system próbuje wysłać w zbyt krótkim czasie. W takiej sytuacji należy zweryfikować, jaki typ synchronizacji cennika został wybrany na definicji oddziału. W razie wystąpienia problemu należy wybrać eksport różnicowy:

Pomimo prawidłowo zdefiniowanej usługi synchronizacji dla oddziału e-Sklepu synchronizacja danych nie wykonuje się.
Remedium: Należy zweryfikować, czy w zmiennej środowiskowej %PATH% podano ścieżkę do jednej tylko, aktualnie zainstalowanej wersji XL-a, w której baza współpracuje z aplikacją Comarch ERP e-Sklep.
Najczęściej zadawane pytania
Czy można zasilić Comarch e-Sklep innym sposobem, niż synchronizacja z systemem ERP?
Comarch e-Sklep można zasilić wyłącznie poprzez synchronizację z systemem ERP tj. XL, Altum, Optima, XT oraz Enterprise. W przyszłości planowane jest również funkcjonowanie e-Sklepu jako standalone.
Synchronizacja z Comarch e-Sklep przebiega bezbłędnie, jednak po stronie e-Sklepu nie widać żadnych towarów.
Należy zweryfikować, czy na towarach, które mają być wysyłane do e-Sklepu zaznaczono parametr dostępności w aplikacji. Ponadto grupa wybrana na oddziale e-Sklepu musi posiadać podgrupy towarowe.
W jaki sposób uruchomić synchronizację automatyczną z e-Sklepem?
W celu uruchomienia synchronizacji automatycznej należy na oddziale e-Sklepu zaznaczyć parametr Synchronizacja automatyczna oraz z poziomu katalogu XL-a uruchomić komponent CDNSynchro.
W jaki sposób uruchomić synchronizację z e-Sklepem przy pomocy usługi?
W celu uruchomienia synchronizacji przy pomocy usługi należy na oddziale e-Sklepu zaznaczyć parametr Synchronizuj z wykorzystaniem usługi. Należy ponadto zdefiniować odpowiednią usługę z poziomu Administratora oddziałów.
Na definicji załącznika został zaznaczony parametr dostępności w e-Sklepie. Na karcie towarowej, w zakładce Załączniki również został zaznaczony parametr dostępności w e-Sklepie dla danego załącznika. Mimo to zdjęcie główne nie jest wysyłane do e-Sklepu.
Należy zweryfikować jaką pozycję na liście załączników przypiętych do towaru zajmuje to zdjęcie. Jako zdjęcie główne wysyłane jest pierwsze zdjęcie z listy załączników.
W jaki sposób prawidłowo udostępnić załącznik towaru do e-Sklepu?
Załącznik dodajemy na karcie towarowej, w zakładce załączniki, wykorzystując przycisk import z pliku , załącznik musi spełnić wymagania co do rozmiaru, typu pliku oraz wymiarów. Dostępność w e-Sklepie zatwierdzamy poprzez zaznaczenie na zakładce Ogólne załącznika przycisku e-Sklep. Jeżeli przycisk nie był zaznaczony a wykonaliśmy synchronizację, ważne jest również aby upewnić się, że dostępność e-sklep jest także zaznaczona w zakładce Obiekty.
XL014 - Konfiguracja wydruków kodów kreskowych
Ogólna struktura mechanizmu wydruków
Wydruki kodów kreskowych w programie ERP XL, realizowane są przy pomocy funkcjonalności tak zwanych wydruków XML. Całość instrukcji dotyczących definicji wydruków zawarta jest w pliku o rozszerzeniu XPT, który jest importowany do programu ERP XL. Dla lepszego zobrazowania posłużono się przykładem pliku Wydruk.xpt przeznaczonego dla drukarki Datamax.
Struktura pliku XPT
Plik o rozszerzeniu XPT składa się z dwóch części. Pierwszej [SQL] zawierającej zapytania SQL, oraz drugiej [XSL]. Przykładowy plik Wydruk.xpt wygląda następująco:
[SQL]
select Twr_Kod,Twr_EAN FROM cdn.TwrKarty WHERE ?@Hs200_NQ|Filtr:''@?
[XSL]
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes"/>
<xsl:preserve-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="ROOT">
<xsl:apply-templates select="RECORDSET1"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="RECORDSET1">
<xsl:apply-templates select="RECORD"/>
</xsl:template>
<xsl:template match="RECORD">
 H07 D11 m 1911008000800041 <xsl:value-of select="@Twr_Kod" /> 3a6210000000050 <xsl:value-of select="@Twr_EAN" /> PCS E
</xsl:template>
</xsl:stylesheet>
Sekcja SQL
Sekcja ta zawiera zapytania SQL (w przypadku naszego przykładu jedno zapytanie), które zostaną zadane do bazy i na podstawie zwróconych odpowiedzi utworzony zostanie plik XML o określonej strukturze.
Zastosowanie w sekcji WHERE wyrażenia ?@s200H_NQ|Filtr:''@? spowoduje wstawienie w jego miejsce filtru przekazanego z programu. Jest to tak zwany parametr dynamiczny. Struktura pliku XML otrzymanego w wyniku zapytań SQL wygląda następująco:
<ROOT>
<RECORDSET1>
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”Wartość kolumny 2” />
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”Wartość kolumny 2” />
</RECORDSET1>
<RECORDSET2>
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”Wartość kolumny 2” />
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”Wartość kolumny 2” />
</RECORDSET2>
……
</ROOT>
Każdy XML wygenerowany z zapytań z sekcji [SQL] rozpoczyna się od Tagu <ROOT>. Tagi <RECORDSETn> odpowiadają kolejnym zapytaniom select tzn. pierwszy select generuje <RECORDSET1> itd. Każdy wiersz z odpowiedzi przedstawiony jest w formie Tagu <RECORD>. Każdy z nich posiada tyle atrybutów, ile kolumn zwraca zapytanie. Nazwa atrybutu odpowiada nazwie kolumny a wartość atrybutu wartości kolumny.
Plik XML dla naszego przykładu może więc wyglądać następująco:
<ROOT>
<RECORDSET1>
<RECORD Twr_Kod=”MAG770T” Twr_EAN=”8” />
</RECORDSET1>
</ROOT>
Sekcja XSL
Sekcja zawiera schemat, który jest „nakładany” na XML z danymi. Tłumaczy plik XML na język poleceń drukarki. W naszym przykładzie dla Tagu <RECORD> zdefiniowany został zestaw instrukcji dla drukarki:
 H07 D11 m 1911008000800041 <xsl:value-of select="@Twr_Kod" /> 3a6210000000050 <xsl:value-of select="@Twr_EAN" /> PCS E
W instrukcjach sterujących drukarką osadzone zostały instrukcje xsl-a, pozwalające na wykorzystanie danych uzyskanych z zapytania SQL.
W przypadku innych typów drukarek należy przeczytać dokumentację producenta w celu zapoznania się ze składnią instrukcji sterujących dla drukarki.
Struktura pliku XPT będzie więc różnić się od przedstawionej w przykładzie. Przykładowy plik XPT zawierający instrukcje sterujące dla drukarki DYMO wygląda następująco:
[SQL]
select Twr_Kod,Twr_Nazwa,Twr_GrupaPod,Twr_EAN FROM cdn.TwrKarty where ?@Hs200_NQ|Filtr:''@?
[XSL]
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:usr="urn:the-xml-files:xslt" version="1.0">
<xsl:output omit-xml-declaration="yes" method="html"/>
<ms:script language="VBScript" implements-prefix="usr">
<![CDATA[
Function PrintEan(Ean)
Dim DymoAddIn, DymoLabel
Set DymoAddIn = CreateObject("DYMO.DymoAddIn")
Set DymoLabel = CreateObject("DYMO.DymoLabels")
DymoAddIn.Open "C:\Program Files\Dymo Label\Label Files\Barcode Label (30252, 30320).LWL"
DymoLabel.SetField "Barcode",Ean
DymoAddIn.Print 1, TRUE
PrintEan=""
End Function
]]>
</ms:script>
<xsl:output omit-xml-declaration="yes"/>
<xsl:preserve-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="ROOT">
<xsl:apply-templates select="RECORDSET1"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="RECORDSET1">
<xsl:apply-templates select="RECORD"/>
</xsl:template>
<xsl:template match="RECORD">
<xsl:value-of select="usr:PrintEan(123456)"/>
</xsl:template>
</xsl:stylesheet>
W przypadku drukarek DYMO najwygodniej posłużyć się językiem skryptowym. W naszym przykładzie jest to VBscript.
<ms:script language="VBScript" implements-prefix="usr">
Dzięki temu można łatwo zdefiniować funkcje, w których można wykorzystać obiekty COM, dostarczone przez producenta.
XL021 - Specyfikacja standardu wydruków w ERP XL
Założenia ogólne
Wszystkie liczby określające położenie i rozmiar obiektów są podane w jednostkach 1/10 mm. Tworzenie elementów w określonej przez opis kolejności, pozwali otrzymać prawidłowy wygląd elementów.
Obszar wydruku
Przyjęcie poniższych wartości pozwala na uzyskanie poprawnego wydruku na wszystkich drukarkach atramentowych (mają one mniejszy obszar drukowania niż laserowe)
Marginesy ustawiane w wydrukach standardowych:
Zmniejszenie marginesów lewego i prawego pozwala na umożliwienie automatycznego przesunięcia wydruku, tak by nadawał się on do wpięcia do skoroszytu. W trybie landscape można zmniejszyć margines lewy albo prawy do wielkości 7 mm – wydruk zostanie automatycznie dostosowany do trybu landscape jaki supportuje drukarka (90 lub 270 stopni)
Standard prezentacji danych
Ogólne założenia co do wyglądu elementów wydruku: • Opisy elementów – czcionka normalnej grubości, Times New Roman CE • Kluczowe elementy (wartości liczbowe, daty itp.) - czcionka pogrubiona, Courier New CE • Opisy kolumn list – w ramce o grubości 10; bez pionowych linii dzielących na kolumny, oddalone o 10 jednostek w pionie od poprzedniego elementu
Wydruk typu „Lista”
Obiekty o numerach 1, 2, 3, 4 umieszczamy w sekcji „PAGE HEADER”
Obiekty 5, 6, 7 umieszczamy w sekcji „GRAND TOTALS”
Obiekt 1. [Ramka pieczątki firmy]
Ramka pieczątki firmy:
BOX(Black, White, 275, 5, No, 920, 0, 10) - „Send to back”
BOX(Black, Black, 275, 5, No, 920, 10, 20) - „Send to back”
Obiekt 2. [Elementy pieczątki firmy]
Elementy pieczątki firmy przekazywane są poprzez parametry: CDN_FIRMA1, CDN_FIRMA2, CDN_FIRMA3, CDN_FMIASTO, CDN_FULICA
Pieczątkę firmy drukujemy czcionką: TIMES NEW ROMAN; rozmiar = 10, normalna grubość
Pola pieczątki firmy umieszczamy jedne po drugimi w odstępie 50 jednostek, począwszy od punktu o współrzędnych (10,20). Wszystkie pola wyrównujemy do współrzędnej X=10. Szerokość wszystkich elementów ustawiamy na 900 jednostek.
Obiekt 3. [Tytuł wydruku]
Tytuł wydruku jest odpowiednim, polem tekstowym sformatowanym wg poniższego przykładu:
STRING(Silver, Times New Roman CE, 14, Black, Bold, No, No, No, 0, Center, ‘Plan Kont’, No, 930, 940, 10)
LANDSCAPE: do współrzędnej X dodajemy 685
Obiekt 4. [Listwa z numerem strony]
BOX(Default, Silver, 55, 0, No, 930, 940, 240) – „Send to Back”
STRING(Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Right, ‘Strona:’, No, 145, 1675, 242)
Zmienna z numerem strony: PG#(Silver,,Times New Roman CE, 10, Black, Normal, No, No, No, 0, Left, @n3, No, No, 80, 1795, 242)
LANDSCAPE: do współrzędnej X dodajemy 685
Obiekt 5. [Listwa z opisem wydruku]
Sekcja kończąca wydruk rozpoczyna się podkreśleniem elementów oraz umieszczoną pod nim listwą z opisem wydruku (operator drukujący, liczba stron, data sporządzenia wydruku). Dane operatora drukującego są przekazywane do wydruku poprzez zmienną CDN_OPERATOR.
Współrzędna Y wszystkich elementów obiektu są zależne od wcześniej umieszczonych elementów zmiennych wydruku (np. Podsumowania) – dlatego w opisie właściwości obiektów są one zastąpione napisem „YYY”. Na
tej współrzędnej położone jest podkreślenie, współrzędne Y pozostałych obiektów podane są jako przesunięcie w stosunku do położenia podkreślenia (np. YYY+8) – dotyczy to także elementów składających się na obiekt nr.6
HLINE(Black, 10, 1873, 0, YYY)
BOX(Default, Silver, 55, 0, No, 1873, 0, YYY+5) – „Send to back”
STRING(Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Operator drukujący:’, No, 290, 4, YYY+8)
FIELD(Silver, CDN_Operator, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 660, 300, YYY+8)
STRING(Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Liczba stron:’, No, 185, 1600, YYY+8)
PG#( Silver,,Times New Roman CE, 10, Black, Normal, No, No, No, 0, Left, @n3, No, No, 80, 1790, YYY+8)
Jeżeli data wydruku nie została umieszczona w sekcji „PAGE HEADER”, to umieszczamy ja na listwie z opisem wydruku, wg poniższych danych: Datę wydruku obliczamy wyrażeniem „TODAY()” – dla jasności opisu formułę zawierającą to wyrażenie nazwę „DZISIAJ”
STRING(Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Data wydruku:’, No, 215, 970, YYY+8)
FIELD(Silver, DZISIAJ, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Left, @d10, No, No, 230, 1190, YYY+8)
LANDSCAPE: Dla obiektów o pełnej szerokości strony (HLINE i BOX) zwiększamy szerokość o 685;
Obiekt ‘Liczba stron:’ ustawiamy na wsp. X =2290
Obiekt ‘PG#’ ustawiamy na wsp. X=2480
Obiekt ‘Data wydruku: ‘ ustawiamy na wsp. X=1780
Obiekt ‘DZISIAJ’ ustawiamy na wsp. X=2000
Obiekt 6. [Zastosowany Filtr]
Do wydruku przy pomocy parametru CDN_Filtr przekazywany jest filtr jaki został zastosowany w momencie jego uruchomienia. Ponieważ może on być stosunkowo długi, rozkładamy go na 3 części, tworząc następujące formuły:
FILTR_P1: IF CDN_FILTR<>’’ THEN ‘Zastosowano filtr: ‘&SUB(CDN_FILTR,1,85) ELSE ‘’
FILTR_P2: SUB(CDN_FILTR,86,85)
FILTR_P3: SUB(CDN_FILTR,172,85)
Rozmieszczenie formuł na wydruku:
FIELD(Default, FILTR_P1, Courier New CE, 8, Black, Normal, Yes, No, No, 0, Default, @s115, Yes, No, 1873, 0, YYY +66)
FIELD(Default, FILTR_P2, Courier New CE, 8, Black, Normal, Yes, No, No, 0, Default, @s115, Yes, No, 1873, 0, YYY +103)
FIELD(Default, FILTR_P2, Courier New CE, 8, Black, Normal, Yes, No, No, 0, Default, @s115, Yes, No, 1873, 0, YYY +140)
Jeżeli w wydruku stosujemy własne parametry, mające wpływ na filtr to poniżej umieszczamy napis ‘GDZIE’ oraz kolejno opis tych parametrów ( <nazwa> = <wartość> ):
STRING(Default, Courier New CE, 8, Black, Normal, Yes, No, No, 0, Deafult, ‘Gdzie: ‘, 120, 0, YYY+177)
Wszystkie opisy zmiennych drukujemy takim samym fontem jak filtr. Opisy te wyrównujemy do lewej do współrzędnej X=130
LANDSCAPE: W tym trybie ustawiamy szerokość pól na 2565 jednostek
Obiekt 7. [Listwa kończąca wydruk]
Współrzędne Y elementów tego obiektu zależą od ilości danych umieszczonych w obiekcie nr. 6. Odległość od ostatniego elementu obiektu 6 ustalmy na 10 jednostek. Dla czytelności zapisu zamiast wsp. Y wpisany będzie napis „YYY”
BOX(Default, Silver, 55, 0, No, 1873, 0, YYY)
STRING(Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘*** Koniec Wydruku ***’, No, 290, 4, YYY+3)
Dodajemy jeszcze pole identyfikujące aplikacje drukującą. Wstawiamy tutaj tekst wg zasady: jeżeli jednoznacznie możemy określić z jakiego modułu pochodzi wydruk, drukujemy napis „CDN XL” + nazwa modułu (np. „CDN XL Księgowość”); W przeciwnym wypadku drukujemy sam napis „CDN XL”
STRING((Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Right, ‘CDN XL ...’, No, 420, 1450, YYY+3)
LANDSCAPE: Elementowi BOX ustawiamy szerokość na 2565 Pole identyfikujące aplikację umieszczamy na wsp. X=2135
Wygląd dokumentów handlowych (Faktury)
Obiekt 1. [Ramka pieczątki firmy]
GROUP(White, Yes, Times New Roman CE, 10, Black, Normal, No, No, No, 330,’Sprzedawca’, 920, 0,0) – „Send to back”
BOX(White, White, 310, 0, No, 920, 0,20) – „Send to back”
BOX(Black, Black, 310, 0, No, 920, 13,35) – „Send to back”
Obiekt 2. [Elementy pieczątki firmy]
Elementy pieczątki firmy przekazywane są poprzez parametry: CDN_FIRMA1, CDN_FIRMA2, CDN_FIRMA3, CDN_FMIASTO, CDN_FULICA, CDN_FNIP
Pieczątkę firmy drukujemy czcionką: TIMES NEW ROMAN; rozmiar = 10, Bold
Pola pieczątki firmy (oprócz CDN_FNIP) umieszczamy jedne po drugimi w odstępie 45 jednostek, począwszy od punktu o współrzędnych (10,40). Wszystkie pola wyrównujemy do współrzędnej X=10. Szerokość wszystkich elementów ustawiamy na 900 jednostek.
Numer NIP:
STRING(Default, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, ‘NIP:’, 85, 10, 265)
FIELD(Default, CDN_FNIP, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s13, No, No, 365, 95, 265)
Obiekt 3. [Nagłówek dokumentu]
Tytuł dokumentu: W tytule dokumentu umieszczamy formułę (nazwijmy ją „DOK_TYTUL”), która zwraca nam konkatenację typu dokumentu (Faktura VAT, Rachunek Uproszczony itp.) i odpowiednio sformatowanego numeru dokumentu (np. „Faktura VAT nr. 1245/99/CDX”).
FIELD(Silver, DOK_TYTUL, Times New Roman CE, 14, Black, Bold, 0, Center, @s40, No, No, 925, 940,10)
Listwa z numerem strony i oznaczeniem kopii:
BOX(Default, Silver, 65, 0, No, 925, 240, 280) – „Send to back”
STRING(Silver, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Right, ’Strona’, 105, 1665, 288)
Zmienna z numerem strony: PG#(Silver,,Times New Roman CE, 10, Black, Normal, No, No, No, 0, Left, @n3, No, No, 80, 1790, 288)
Poprzez parametr CDN_NRKOPII przekazywany jest do wydruku numer drukowanej kopii. Pozwala to na wydrukowanie od razu oryginału i kopii dokumentu. Realizujemy to formułą: ORYGINAL_KOPIA: CHOOSE(CDN_nrKopii>0,' KOPIA',' ORYGINAŁ')
Umieszczoną wg danych: FIELD(Silver, ORYGINAL_KOPIA, Times New Roman CE, 12, Black, Bold, No, No, No, 0, Left, @s10, No, No, 300,940,280)
Zawartość nagłówka oryginału:
STRING(Default, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Data wystawienia:’, 280, 1355, 110)
STRING(Default, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Data sprzedaży’, 280, 1355, 165)
FIELD(Default, TRN_Data2, Courier New CE, 10, Black, Bold, No, No, No, 0, Right, @d10, No, No, 220, 1645, 110) FIELD(Default, TRN_Data3, Courier New CE, 10, Black, Bold, No, No, No, 0, Right, @d10, No, No, 220, 1645, 165)
Obiekt 4. [Dane nabywcy–odbiorcy / sprzedawcy-dostawcy]
Napis „Nabywca” („Sprzedawca” dla dokumentów zakupu) STRING(Default, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Nabywca:’, 220, 10, 350)
Napis „Odbiorca” („Dostawca” dla dokumentów zakupu) STRING(Default, Times New Roman CE, 10, Black, Normal, No, No, No, 0, Default, ‘Odbiorca’, 220, 930, 350)
Adres nabywcy/sprzedawcy (pobrany z tabeli KntAdresy standardowo połączonej z tabelą TraNag)
FIELD(Default, KnA:Kna_Nazwa1, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 40, 400)
FIELD(Default, KnA:Kna_Nazwa2, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 40, 445)
FIELD(Default, KnA:Kna_Nazwa3, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 40, 490)
Kod pocztowy łączymy z miastem kontrahenta formułą KNTMIASTO: IF KnA:KnA_KodP='00-000' THEN KnA:KnA_Miasto ELSE KnA:KnA_KodP&' '& KnA:KnA_Miasto
FIELD(Default, KNTMIASTO, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 40, 535)
FIELD(Default, KnA:Kna_Ulica, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s30, No, No, 0, 40, 580)
NIP kontrahenta drukujemy za pomocą formuły KNTNIP: 'NIP: ' & KnA:KnA_NipE FIELD(Default, KNTNIP, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s30, No, No, 0, 40, 625)
Adres odbiorcy/dostawcy (pobrany z aliasu KntAdresy połączonego z tabelą TraNag poprzez Trn_AdWGID – GID adresu wysyłkowego)
FIELD(Default, KnAA:Kna_Nazwa1, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 950, 400)
FIELD(Default, KnAA:Kna_Nazwa2, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 950, 445)
FIELD(Default, KnAA:Kna_Nazwa3, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 950, 490)
Kod pocztowy łączymy z miastem kontrahenta formułą ODBMIASTO: IF KnAA:KnA_KodP='00-000' THEN KnAA:KnA_Miasto ELSE KnAA:KnA_KodP&' '& KnAA:KnA_Miasto
FIELD(Default, ODBMIASTO, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s50, No, No, 0, 950, 535)
FIELD(Default, KnAA:Kna_Ulica, Times New Roman CE, 10, Black, Bold, No, No, No, 0, Default, @s30, No, No, 0, 950, 580)
Obiekt 5. [Opis dokumentu]
W skład tego obiektu wchodzi opis sposobu dostawy i opis dokumentu (tytuły i wartości). Tytuły tych pól realizujemy formułami: SPOSOBDOSTAWY: IF TrN:TrN_SposobDostawy='' THEN '' ELSE 'Sposób dostawy: '
OPISDOKUMENTU: IF TnO:TnO_Opis='' THEN '' ELSE 'Opis dokumentu: '
FIELD(Default, SPOSOBDOSTAWY, Times New Roman CE, 9, Black, Normal, No, No, No, 0, Center, @s16, 300, 10, 685)
FIELD(Default, OPISDOKUMENTU, Times New Roman CE, 9, Black, Normal, No, No, No, 0, Center, @s16, 300, 10, 730)
FIELD(Default, TrN:TrN_SposobDostawy, Times New Roman CE, 9, Black, Bold, No, No, No, 0,Default, @s20, 570, 315, 685)
FIELD(Default, TnO:TnO_Opis, Times New Roman CE, 9, Black, Bold, No, No, No, 0,Default, @s255, 1550, 315, 730)
Obiekt 6. [Harmonogram płatności]
Umieszczony jest w sekcji „GRAND TOTALS”
BOX (Default, Silver, 50, 10, No, 918, 0, 0) HLINE(Black, 10, 918,0,50)
STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Forma płatności’, Yes, 257, 4, 1) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Termin’, Yes, 177, 335, 1) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Forma’, Yes, 117, 750, 1)
Kolumna form płatności: od współrzędnej (4,54) 4 wiersze co 45 jednostek; picture @s15, szerokość =0 Kolumna terminów płatności: od współrzędnej (335,54) 4 wiersze co 45 jednostek; picture @s10, szerokość =0 Obie powyższe kolumny drukujemy czcionką Times New Roman CE; rozmiar=9 ; normalna grubość
Kolumna kwot płatności: od współrzędnej (561, 54) 4 wiersze co 45 jednostek; szerokość=307. Kwoty drukujemy czcionką Courier New CE; rozmiar=9; Bold
Obiekt 7. [Tabelka VAT]
BOX (Default, Silver, 50, 10, No, 930, 940, 0) HLINE (Black, 10, 930,940,50) HLINE (Black, 10, 930,940,105) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Razem:’, No, 132, 940, 53) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘ W tym:’, No, 132, 940, 114) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Stawka’, No, 130, 1063, 0) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Brutto’, No, 108, 1286, 0) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘VAT’, No, 82, 1522, 0) STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Center, ‘Netto’, No, 90, 1760, 0)
Przy dokumencie liczonym „od brutto” kolejność kolumn tabelki VAT ulega zmianie.
Sumy tabelki VAT (nazwy formuł przyjęte dla czytelności opisu) FIELD(Default, BRUTTOTOT, Courier New CE, 9, Black, Bold, No, No, No, 0, Default, @n-14.2, No, No, 222, 1186, 53) FIELD(Default, VATTOT, Courier New CE, 9, Black, Bold, No, No, No, 0, Default, @n-14.2, No, No, 196, 1415, 53) FIELD(Default, NETTOTOT, Courier New CE, 9, Black, Bold, No, No, No, 0, Default, @n-14.2, No, No, 246, 1617, 53)
Kolumny tabelki VAT (Courier New CE, rozmiar = 9, normalna grubość) Stawka VAT – od współrzędnych (1081,114) 7 wierszy co 45 jedn. Szerokość=101 Brutto – od współrzędnych (1186,114) 7 wierszy co 45 jedn. Szerokość=222 VAT– od współrzędnych (1415,114) 7 wierszy co 45 jedn. Szerokość=196 Netto – od współrzędnych (1617,114) 7 wierszy co 45 jedn. Szerokość=246
Począwszy od wiersza 4 elementy tabelki VAT mają ustawioną właściwość „Skip if empty” na YES
Obiekt 7. [Stopka strony]
BOX (Default, Silver, 55, 0, No, 1873, 0, 3)
STRING(Silver, Times New Roman CE, 10, black, Normal, No, No, No, 0, Right, ‘Razem do zapłaty:’, No, 270, 1200, 5)
FIELD(Silver, BRUTTOTOT, Times New Roman CE, 10, black, Bold, , No, No, No, Right,@n-14.2, No, No, 340, 1475, 5) STRING(Silver, Times New Roman CE, 10, black, Bold, No, No, No, 0, Right, ‘zł’, No, 50, 1810, 5)
FIELD(Default, KWOTASLOWNIE, Times New Roman CE, 10, black, Normal, No, No, No, 0, Right, @s255, No, No, 1873, 0, 62)
Formuła ZAPLACONO_PRINT drukuje zapłacona już kwotę faktury i pozostała do zapłaty. Jeżeli nic nie zostało zapłacone to linia jest pusta. FIELD(Default, ZAPLACONO_PRINT, Times New Roman CE, 10, black, Bold, No, No, No, 0, Right, @s255, Yes, No, 1873, 0, 118) HLINE(Black, 10, 1873, 0, 177)
Miejsca na podpisy:
HLINE(Black, 10, 665, 5, 285)
HLINE(Black, 10, 285, 1080, 285)
HLINE(Black, 10, 390, 1470, 285)
STRING(Default, Times New Roman CE, 8, Black, Normal, No, No, No, 0, Default, ‘Wystawił:’, No, 0, 115, 290) STRING(Default, Times New Roman CE, 8, Black, Normal, No, No, No, 0, Default, ‘Data odbioru:’, No, 0, 1165, 290) TEXT(No, Default, Times New Roman CE, 8, Black, Normal, No, No, No, 77, Center, Yes, ‘Podpis osoby uprawnionej <chr(13),chr(10)> do otrzymania faktury’, No, 390, 1470, 290)
Operator wystawiający dokument: FIELD(Default, Ope:Ope_Nazwisko, Times New Roman CE, 8, Black, Bold, No, No, No, 0, Center, @s50, No, No, 450, 226, 290)
XL011 - Podłączanie kolektora
Podłączanie kolektora
Kolektory obsługiwane przez Comarch ERP XL
Z programem Comarch ERP XL współpracują następujące kolektory:
- Dolphin (HandHeld)
- Denso BHT 300B
- CIPHERLAB 711, 720, 8000, 8001, 8200, 8300, 8400, 8600[1]
- OPTICON PHL 2700, PHL 1300.
Jak skonfigurować system Comarch ERP XL do współpracy z kolektorem?
Prawidłowa konfiguracja jest czynnością, dla której prawidłowego wykonania konieczne jest spełnienie kilku warunków.
Należy upewnić się, że obie strony komunikacji są skonfigurowane identycznie (jest to bardzo istotne - nawet najmniejsza różnica w konfiguracji spowoduje brak komunikacji z kolektorem).
Należy sprawdzić następujące elementy:
- Szybkość transmisji, protokół – ustawione na kolektorze. W przypadku ich braku, należy je odszukać w dokumentacji urządzenia.
- Bity danych, parzystość, bity stopu – dane te rzadko znajdują się na kolektorze. w przypadku ich braku, należy je odszukać w dokumentacji urządzenia.
- Strukturę rekordu wysyłanego przez urządzenie – najłatwiej to zrobić odczytując dane z kolektora za pomocą narzędzi dostarczonych przez producenta.
Producenci/dystrybutorzy zwykle dostarczają również oprogramowanie, którym można modyfikować powyższe ustawienia. Ma to szczególne znaczenie w przypadku struktury rekordu z danymi.[2]
Konfiguracja parametrów transmisji
Konfiguracji kolektora dokonuje się w oknie: Konfiguracja komputera, na zakładce: Kolektor.

Poniżej przedstawiono opis dla poszczególnych parametrów konfiguracji:
Nazwa pliku sterownika – pole w którym wskazuje się plik sterownika używany podczas współpracy systemu z urządzeniem:
- CDN_Coll.dll dla kolektorów Denso BHT i Dolphin (HandHeld)
- CDN_Ciph.dll dla CipherLab i OPTICON
Używaj transceivera - istotne tylko dla kolektorów CipherLab – pole zaznacza się, jeżeli do połączenia używany jest transceiver (stacja dokująca COM - IrDA).
Protokół – istotne tylko dla Denso BHT oraz Dolphin. Protokół transmisji – należy ustawić taki sam, jak w urządzeniu. Dla kolektora Dolphin należy używać protokołu YMODEM.
Szybkość transmisji – istotne dla wszystkich modeli – szybkość wymiany danych przez port szeregowy; należy ustawić taką szybkość, jak w urządzeniu; również ustawienia dla portu COM, do którego zostanie podłączony kolektor, powinny być zgodne z ustawieniami na urządzeniu oraz w systemie Comarch ERP XL.
Parzystość; Bity danych; Bity stopu – parametry istotne dla wszystkich modeli; należy ustawić je tak, jak w urządzeniu; jeżeli w urządzeniu nie da się ustawić powyższych należy sprawdzić w instrukcji, jakie są prawidłowe dla nich ustawienia; również ustawienia dla portu COM powinny być zgodne z ustawieniami na urządzeniu oraz w systemie Comarch ERP XL.
Port – port szeregowy przez, który odbywa się komunikacja z urządzeniem. W przypadku podłączenia kolektora przez port USB należy zmapować port USB na jeden z portów COM1 lub COM2.
Definiuj rekord kolektora – przycisk otwierający okno definicji rekordu kolektora; od prawidłowego zdefiniowania rekordu kolektora zależy czy współpraca z urządzeniem będzie odbywać się bez błędów (w skrajnych przypadkach czy w ogóle się powiedzie).
Definiowanie rekordu kolektora
Część z kolektorów ma „na sztywno” zdefiniowane parametry transmisji, również rekord kolektora, które pozwalają na współpracę z systemem Comarch ERP XL (np. OPTICON). Dla innych rekord kolektora można definiować wg uznania (np. CipherLab). Istotnym jest jednak to, żeby zdefiniować rekord kolektora w Comarch ERP XL, tak jak zaprogramowane jest urządzenie.

Definiując rekord można określić następujące parametry:
Wielkość rekordu – ilość znaków jaka przeznaczona jest na cały rekord kolektora
Pola – parametry pozwalające na określenie które z pól, a więc jakie dane, będą przesyłane z urządzenia do aplikacji; dla poszczególnych pól należy określić w jakich przedziałach (od którego do którego znaku) znajdują się dane:
- EAN – kod EAN służący do identyfikacji towaru/jednostki pomocniczej/dostawy
- Ilość – ilość towaru odpowiadającego przesłanemu kodowi EAN
- Cecha – wartość cechy przesłanego towaru
- Data ważności – data ważności partii towaru, data powinna być w formacie ddmmrrrr i mieścić się w zakresie: od 01011801 do 11102074 (od 01-01-1801 do 11-10-2074)
- Położenie – adres w magazynie gdzie towar będzie przyjmowany lub skąd będzie pobierany (ma znaczenie tylko dla dokumentów magazynowych PM, WM, MP)
Znak wypełniający – znak oddzielający poszczególne pola z danymi.
Brak zakończeń linii – czy poszczególne rekordy są przesyłane jako jeden ciąg znaków.
Poniżej przedstawiono przykład jak zdefiniować połączenie dla kilku wybranych urządzeń.
Przykładowe ustawienia
CipherLab
Kolektory CipherLab można w łatwy sposób konfigurować tak aby umożliwić przesyłanie żądanych danych do systemu Comarch ERP XL. Pod tym względem są najbardziej elastyczne z opisanych poniżej.
Poniższe ustawienia są przykładowe i mogą być modyfikowane podczas zestawiania współpracy z systemem Comarch ERP XL. Należy jednak pamiętać, żeby parametry na urządzeniu były zgodne z ustawieniami w systemie.



Dla urządzeń CipherLab istnieje możliwość przeprogramowania rekordu kolektora przy pomocy aplikacji Forge Batch Application Generator udostępnianej przez producenta.

Podczas definiowania poszczególnych pól rekordu kolektora Cipherlab należy zaznaczyć, że mają mieć one zachowaną ustaloną długość. W tym celu należy wywołać okno ze szczegółami pola (przycisk: More), w którym wpisujemy długość pola oraz zaznaczamy parametr: Fixed data lenght.

W celu zaprogramowania rekordu na kolektorze należy przesłać aplikację na urządzenie – Send Application, a na kolektorze wybrać opcję: 6. Load Program w menu Utilities.
PHL2700 firmy OPTICON
Kolektor PHL1300 może przesyłać dane wynikowe w czterech trybach dostępnych na urządzeniu: Inwentura, Magazyn, Sprzedaż, Numery seryjne. Pierwsze trzy tryby z punktu widzenia systemu Comarch ERP XL nie różnią się niczym. Przesyłane są kod EAN oraz ilość. W trybie Numery seryjne dodatkowo istnieje możliwość przesłania wartości cechy. (szczegóły: www.optidata.pl).
Dla tego kolektora dystrybutor zaleca transmisję z szybkością 19200 bps. Poniższe ustawienia konfiguracyjne proponuje transmisję z większą szybkością, podczas którego nie napotkano na żadne problemy. W celu przeprowadzenia transmisji z taką szybkością należy ustawić ją również na urządzeniu oraz stacji dokującej.




Kolejność synchronizacji danych jest bardzo ważna - Najpierw wysyłamy dane z kolektora, dopiero później zaczynamy odczytywać w Comarch ERP XL.
PHL1300 firmy OPTICON



Kolejność synchronizacji danych jest bardzo ważna - najpierw wysyłamy z kolektora dopiero później zaczynamy odczytywać w Comarch ERP XL. Ze względu na niedostępność kolektora nie był testowany na najnowszych wersjach systemu.
DOLPHIN



Kolejność synchronizacji danych jest bardzo ważna - najpierw odczytujemy dane w Comarch ERP XL, a następnie wysyłamy z kolektora. Ze względu na niedostępność kolektora w dystrybucji nie był testowany na najnowszych wersjach systemu.
Denso BHT
Do współpracy z tym urządzeniem konieczne jest zarejestrowanie biblioteki SKKTrans.ocx, z której korzysta Comarch ERP XL podczas odczytywania przesyłanych danych. Biblioteka ta jest dostarczana wraz z systemem Comarch ERP XL. W celu jej zarejestrowania należy wykonać polecenie: regsvr32 SKKTrans.ocx.
Transmisja danych w przypadku tego kolektora odbywa się przez plik tymczasowy, do którego zapisywane są dane odczytane z portu COM, a następnie dane wczytywane są do systemu. W tej sytuacji, jeśli praca odbywa się na systemach, dla których włączona jest kontrola kont użytkowników (np. Windows 7, Windows Serwer 2008, etc.) istotne jest aby aplikacja miała uprawnienia do zapisywania danych w folderach tymczasowych Windows.



Dla kolektora Denso BHT szybkość transmisji jest ustawiana na stacji dokującej urządzenia. Dla 9600 bps należy ustawić: switch 1 –OFF, switch 2 – OFF, switch 3 – ON.
Praca z kolektorem w systemie Comarch ERP XL
W przypadku pracy z kolektorami danych w systemie Comarch ERP XL możliwy jest jedynie odczyt danych z kolektora przez aplikację. W celu przesłania danych w kierunku odwrotnym (z systemu do urządzenia, np. baza towarów) należy użyć aplikacji zewnętrznych przygotowanych podczas wdrożenia systemu lub dostarczanych przez dystrybutorów kolektorów.
W systemie można wczytywać dane z kolektora na dokumenty handlowe (PZ, PZI, FZ, FRR, FS, WZ, , PA, FW, FSE, WZE), wewnętrzne (PW, RW, MMW, MMP), magazynowe (WM, PM, MP), zamówienia (ZZ, ZS, ZW) oraz oferty (OZ, OS). Istnieje również możliwość dodania odczytu inwentaryzacyjnego z kolektora.
W celu przesłania danych na dokument, należy przesyłając dane z urządzenia, nacisnąć przycisk: Wczytaj dane z kolektora.
Dodawanie na dokument pozycji przesłanych z kolektora, może odbyć się w dwóch trybach:
- usuwanie istniejących pozycji i dodanie nowych pozycji na podstawie przesłanych danych – domyślne działanie przycisku,
- dodawanie nowych pozycji do istniejących na dokumencie.


W celu dodania odczytu inwentaryzacyjnego z kolektora, należy mając otwarty arkusz inwentaryzacyjny na zakładce: Odczyty, przesłać dane z urządzenia i nacisnąć przycisk: Odczyt z kolektora.

Podczas dodawania odczytu inwentaryzacyjnego system uzupełnia ilości tylko dla pozycji przesłanych z kolektora.
Identyfikacja pozycji (towarów) przesłanych z kolektora odbywa się na podstawie kodów EAN. W systemie Comarch ERP XL kody EAN są szukane pośród kodów zapisanych na kartach towarów, jednostkach pomocniczych, zasobach oraz dostawach.
Najczęściej zadawane pytania
Podczas próby odebrania danych z kolektora otrzymuje błąd – Brak danych w kolektorze.
Błąd ten może być spowodowany niepoprawną definicją rekordu kolektora.
Bardzo ważne jest poprawne zdefiniowanie długości rekordu danych oraz długości poszczególnych pól. Muszą być one zgodne z ustawieniami w urządzeniu.
Nieprawidłowa długość powoduje błąd odczytu.
W celu zweryfikowania jaka jest struktura danych wysyłanych przez kolektor, należy odebrać dane przy pomocy aplikacji do komunikacji z urządzeniem (zwykle udostępnianej przez producenta).
Czy istnieje możliwość transmisji danych z kolektora przy pracy z systemem Comarch ERP XL przez pulpit zdalny?
Tak. W tym celu należy podczas połączenia z pulpitem udostępnić porty szeregowe stacji lokalnej.
Ustawienia portu COM na stanowisku, do którego podłączone jest urządzenie (stanowisko, z którego łączymy się do pulpitu zdalnego) powinny być zgodne z ustawieniami w konfiguracji Comarch ERP XL.
Port COM, do którego podłączony jest kolektor należy zmapować na serwerze terminali z numerem COM1 lub COM2, w zależności od tego jaki został wybrany w konfiguracji Comarch ERP XL.
Jak interpretowane są daty ważności przesłane z kolektora?
Daty ważności przesłane z kolektora na dokument przyjęcia (handlowego lub magazynowego) są zapisywane na partii towaru zgodnie z ustawieniem w karcie towaru:
- w przypadku przesłania daty ważności dla towaru, dla którego nie zaznaczono na karcie parametru: Oznacz partię towaru datą ważności informacja przesłana jako data ważności jest ignorowana
- w przypadku przesłania nieprawidłowej daty albo nie przesłana jej dla towaru, którego partia towaru ma być oznaczana datą ważności, system pobiera ustawienie z karty towaru i odpowiednio ustawia datę
- w przypadku przesłania prawidłowej daty dla towaru, którego partia towaru ma być oznaczana datą ważności, system ustawia przesłaną datę na partii powstałej w wyniku dostawy
Daty ważności przesłane z kolektora na dokument wydania (handlowego lub magazynowego) są traktowane jako wymagane (nawet dla towarów, dla których nie zaznaczono na karcie parametru: Oznacz partię towaru datą ważności). System zawsze szuka zasobu z odpowiednią datą ważności. Jeśli go nie znajdzie wyświetla odpowiedni komunikat, np.: Zabrakło ilości (nie udało się pobrać towaru lub wymuszono realizacje całości). W przypadku nie przesłania daty ważności system pobiera zasoby wg kolejki zdefiniowanej na karcie towaru.
Data powinna być w formacie ddmmrrrr i mieścić się w zakresie: od 01011801 do 11102074 (od 01-01-1801 do 11-10-2074).
Jak interpretowane są cechy przesłane z kolektora?
Cechy przesłane z kolektora na dokument przyjęcia (handlowego lub magazynowego) są zapisywane na partii towaru. Jeśli towar ma określoną domyślą klasę cechy, przesłana cecha jest zapisywana jako jej wartość.
Cechy przesłane z kolektora na dokument wydania (handlowego lub magazynowego) są traktowane zawsze jako wymagane. System zawsze szuka zasobu z odpowiednią cechą. Jeśli go nie znajdzie wyświetla odpowiedni komunikat, np.: Zabrakło ilości (nie udało się pobrać towaru lub wymuszono realizacje całości). W przypadku nie przesłania daty ważności system pobiera zasoby wg kolejki zdefiniowanej na karcie towaru.
Jak interpretowane są położenia (adresy magazynowe) przesłane z kolektora?
Adresy magazynowe przesłane z kolektora są interpretowane tylko na dokumentach magazynowych (PM, WM, MP) oraz odczytach inwentaryzacyjnych (jeśli inwentaryzacja jest przeprowadzana wg ilości magazynowych).
W przypadku dokumentu PM, system będzie starał się umieścić towar w lokalizacji przesłanej z kolektora. Jeśli przesłany adres będzie nieprawidłowy (np. nie występuje w odpowiednim magazynie, będzie przepełniony, składowanie towaru będzie niedozwolone, etc.) to wyświetli odpowiedni błąd i nie doda takiej pozycji.
W przypadku dokumentów WM i MP system traktuje przesłany adres jako wymagany i stara się pobrać towar ze wskazanego położenia. Jeśli towar nie zostanie znaleziony w tym położeniu pozycja nie zostanie dodana.
W przypadku gdy adres nie zostanie przesłany a praca odbywa się na dokumentach magazynowych w magazynie z obsługą położeń, system pobierze lub rozlokuje towary zgodnie z algorytmem działającym w systemie.
Czy istnieje możliwość skonfigurowania kolektora do pracy na dokumentach MP. tak aby przekazywać położenie skąd ma być pobierany towar oraz położenie docelowe?
Nie ma możliwości przesłania dwóch położeń z kolektora. W związku z powyższym nie ma również możliwości skonfigurowania kolektora tak aby przekazywać położenie skąd ma być pobierany towar oraz położenie docelowe. Podczas wczytywania danych z kolektora na dokument MP, przekazane położenie jest traktowane jako adres skąd ma zostać pobrany towar. Jako adres dokąd ustawiane jest położenie Nieznane.
Czy istnieje emulator kolektorów Opticon PHL1300 lub Opticon PHL2700?
Nie spotkaliśmy się z emulatorem dla kolektorów Opticon PHL1300 lub Opticon PHL2700. W celu bliższych informacji należy skontaktować się z dystrybutorem tych urządzeń, firmą OPTIDATA (www.optidata.pl).
- Urządzenie współpracuje z systemem przy zastosowaniu oprogramowania firmy TORELL. Obsługiwane są 3 parametry: EAN, Ilość i Cecha. Przy użyciu oprogramowaniu producenta współpraca z systemem nie jest możliwa. ↑
- W dalszej części biuletynu zostanie zaprezentowana aplikacja do konfiguracji urządzeń CipherLab, pozwalająca między innymi na dowolne definiowanie rekordu kolektora. ↑
XL004 - Migrator logistyczny
Opis funkcjonalności
Program Migrator wykorzystuje funkcje API ERP XL. Do każdej wersji systemu ERP XL przeznaczona jest inna wersja Migratora. Aby sprawdzić, do której wersji systemu dany Migrator jest przeznaczony należy z menu Plik wybrać opcję: Wersja.
Program Migrator korzysta z systemu ERP XL zainstalowanego na komputerze. Miejsce instalacji ERP XL jest pobierane z wartości zmiennej środowiskowej: Path systemu: Windows. Katalog z plikiem instalacyjnym jest do pobrania na Indywidualnych Stronach Partnerów. Z katalogu Migrator należy skopiować plik: migrator.exe, migrator.exe.config oraz cdn_api20210.net do katalogu, w którym zainstalowany jest ERP XL.
Program Migrator składa się z:- Wykonywalnego pliku „migrator.exe”
- Biblioteki cdn_api20193.net
- Arkuszy Excel znajdujących się w tematycznych katalogach:
- Towary:
Grupy Towarów, Towary, TowaryCenniki, TowaryDostawcy, TowaryJM, TowaryNormatywy, TowaryReceptury.
-
- Kontrahenci:
GrupyKontrahentów, Kontrahenci, KontrahenciAdres, KontrahenciOsoby.
-
- Atrybuty:
AtrybutKlasy, AtrybutWartości.
-
- Dokumenty:
DokImp, DokMag, DokSAD, DokUmw, Dokumenty.
-
- Technologie:
ProdObiekty, ProdFunkcje, ProdTechnologieCzynności
-
- Bilans Otwarcia:
BODostawy, BOStany
-
- Plan Kont:
Plan kont.
-
- Kartoteka środków trwałych:
ŚrodkiTrwałe, ŚrodkiTrwałeDok
-
- Noty memoriałowe:
Noty memoriałowe, noty memoriałowe zwykłe.
-
- Księgowy bilans otwarcia:
BOKsięgowy.
-
- Dekrety księgowe:
DekretyZbiorczeKsięgowe.
-
- Zgody:
KontrahenciZgody, OsobyZgody, PracownicyZgody
-
- Administracja danych:
CzynnościPDO
Okno ogólne programu
Logowanie do bazy danych odbywa się automatycznie po otwarciu programu za pomocą migrator.exe
i wskazaniu bazy. Po zalogowaniu do bazy danych użytkownik otrzyma informacje o stanie połączenia i bazie danych. Z paska menu można wybrać obszar migracji.
Okno programu i jego części składowe
Widok okna głównego jest taki sam dla wszystkich obszarów migracyjnych.

W oknie poza obszarami migracyjnymi na pasku menu znajdują się funkcje:
[Logowanie do bazy] – zielona kłódka świadczy o tym, że Migrator połączył się z bazą.
[Import kart kontrahentów] – funkcja umożliwiająca migrowanie danych związanych z kontrahentami, np. grupa, adresy, osoby.
[Import kart towarów] – funkcja umożliwiająca migrowanie danych związanych z towarami np. grupy, cenniki, dostawy, jednostki miar, receptury, normatywy.
[Import dokumentów] – funkcja umożliwiającą migrowanie danych związanych z dokumentami np. magazynowymi, importowymi, SAD, umowy
Arkusze migracyjne
Wczytywanie arkusza Excel
W celu wczytania arkusza wybieramy z menu odpowiednią kategorie danych. Pojawia się formatka migracji:

Po wybraniu przycisku Wczytaj Arkusz pojawia się okno dialogowe do wybrania konkretnego arkusza Excel. W polu z nazwą pliku podpowiada się prawidłowa nazwa arkusza.

Po wybraniu i otworzeniu arkusza dane są wczytane na kanwę.

Za pomocą suwaków można przeglądać dane z arkusza.
Arkusze do migracji
Arkusze Excel do migracji danych są dołączone do programu. Są zgrupowane tematycznie w katalogach. Skoroszyty Excela zawierają jeden arkusz. Arkusze zawierają ściśle określone kolumny, których nie można zmieniać, oprócz arkusza do migracji atrybutów. W arkuszu AtrybutyWartości stałe są tylko kolumny: LP, Typ, Akronim. Pozostałe nagłówki kolumn zawierają nazwy klas atrybutów i można je dodawać dowolnie.
Nagłówki kolumn zawierają komentarze na temat wprowadzanych danych. Należy ściśle przestrzegać używania zawartych w nich symboli.
Daty w arkuszach wprowadzamy w formacie RRRR‑MM‑DD. Tylko taki format jest akceptowany przez program.
Towary
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Towary.
Grupy Towarów
Lp. | GrupyTowarów.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod | varchar | 40 | Kod grupy towarowe | Tak |
3 | Nazwa | varchar | 255 | Nazwa grupy towarowej | Tak |
4 | Grupa ścieżki | varchar | 255 | Ścieżka danej grupy towarowej, czyli w jakiej grupie nadrzędnej (GrupaScieżka) znajduje się wprowadzana grupa. Jeżeli mamy zdefiniowaną grupę towarów BUDOWLANE i w ramach tej grupy zdefiniowane są podgrupy MASZYNY i MATERIAŁY, a w ramach grupy Budowlane Maszyny mamy SAMOCHODY oraz POZOSTAŁE, to poprawna ścieżka dla grupy maszyny budowlane samochody to BUDOWLNE\|MASZYNY (to wpisujemy w kolumnie GrupaŚcieżka, wpisując jednocześnie w kolumnie Kod wartość SAMOCHÓD). Poszczególne poziomy drzewa grup Towarów oddzielane są kombinacją znaków \|. Aby założyć poprawnie grupę BUDOWLNE\|MASZYNY w pierwszej kolejności musimy założyć grupę BUDOWLANE, czyli w arkuszu migracyjnym przed zapisem MASZYNY powinien znaleźć się zapis BUDOWLANE (zapisy dotyczą kolumny Kod). |
Towary
Lp. | Towary.xls | Opis | Wymagane | ||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod | varchar | 40 | Kod towaru | Tak |
3 | Typ | tinyint | 1 | Typ towaru (1 - towary, 2 - produkty, 3 - koszt, 4 - usługa) | Tak |
4 | Nazwa | varchar | 255 | Nazwa towaru w systemie | Tak |
5 | Kaucja | tinyint | 1 | Czy towar jest kaucją (0 lub pole puste - nie, 1 - tak) | |
6 | SWW | varchar | 20 | Numer SWW/PKWiU | |
7 | EAN | varchar | 40 | Kod EAN towaru | |
8 | JM | varchar | 8 | Podstawowa jednostka miary | |
9 | GrupaPod | varchar | 1 | Symbol stawki VAT dla zakupu (np. A, B, C, itp.) | |
10 | StawkaPod | varchar | 1 | Stawka VAT dla zakupu (np. 0, 8, 23 itp.) | |
11 | GrupaPodSpr | varchar | 1 | Symbol stawki VAT dla sprzedaży (np. A, B, C, itp.) | |
12 | StawkaPodSpr | varchar | 1 | Stawka VAT dla sprzedaży (np. 0, 8, 23 itp.) | |
13 | Symbol | varchar | 40 | Symbol, numer katalogowy towaru. Dodatkowe pole do dowolnego wykorzystania. | |
14 | KlasaCecha | varchar | 20 | Czy dostawy towarów będziemy oznaczać dodatkową cechą. Jeśli tak, to w tym polu wpisujemy nazwę tej cechy. | |
15 | Magazyn | varchar | 10 | Kod magazynu, do którego ma być domyślnie przyjmowany towar. | |
16 | MarzaMin | decimal | Zakładana minimalna marża na towarze wyrażona w procentach. | ||
17 | KosztUTyp | tinyint | 1 | Koszt typu usługi: 1-procentowy, 2-wartościowy | |
18 | KosztUslugi | decimal | Jeżeli typ towaru ustawiony jest jako Usługa oraz w sytuacji, gdy typ kosztu usługi na karcie towaru ustawimy na Procent w polu tym przechowujemy wartość procentową kosztu usługi lub gdy typ usługi ustawiony jest na Kwotę w polu tym przechowujemy wartość kwotową kosztu usługi | ||
19 | Akcyza | decimal | Akcyza dla towaru (stawka podatku akcyzowego wyrażona liczbą w procentach) | ||
20 | Clo | decimal | Cło dla towaru (Stawka cła wyrażona w procentach) | ||
21 | PCN | varchar | 10 | Kod PCN dla towaru | |
22 | TwrGrupa | varchar | 255 | Ścieżka do grupy towarowej, w której ma znaleźć się dany towar oddzielona znakami: \| | |
23 | Opis | varchar | 511 | Możliwość wypełnienia pola opisem dodatkowym towaru. |
Towary Cenniki
Lp. | TowaryCenniki.xls | Opis | Wymagane | ||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod | varchar | 40 | Kod towaru | Tak |
3 | Numer | tinyint | 1 | Numer ceny. Jest to liczba widoczna przy cenniku na karcie towarowej. | Tak |
4 | Waluta | varchar | 5 | Symbol waluty, w jakiej jest wyrażona cena. | |
5 | Wartość | decimal | Wartość ceny | ||
6 | Marza | decimal | Marża zakładana. Jeżeli wybrano aktualizację ceny przy nowej dostawie, cena sprzedaży zostanie zaktualizowana ceną zakupu powiększona o zakładaną marżę. | ||
7 | Zaok. | tinyint | 1 | Jak zaokrąglać cenę. Ustawienie 0.01 zaokrągli do groszy, ustawienie 1.00 zaokrągli do pełnych złotówek. Proponowanym ustawieniem jest 0.01. | |
8 | Aktualizacja | tinyint | 1 | Czy aktualizować cenę przy nowej dostawie: 0 – nie, 1 – tak. |
Lp. | TowaryDostawcy.xls | Opis | Wymagane | ||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod_towaru | varchar | 40 | Kod towaru | Tak |
3 | Akronim | varchar | 20 | Skrócona nazwa dostawcy z systemu Comarch ERP XL | Tak |
4 | KlasaKnt | smallint | Typ kontrahenta: 8 – Dostawca, 16 – Odbiorca, 24 – Dostawca/Odbiorca | Tak | |
5 | Cena | decimal | Cena towaru u dostawcy. W wartości używać kropki zamiast przecinka. | ||
6 | Waluta | varchar | 5 | Symbol waluty. | |
7 | Jmz | varchar | 8 | Jednostka pomocnicza. | |
8 | Czas | smallint | Czas dostawy/wysyłki w dniach. Wykorzystywany do optymalizowania generowanie Zamówień Zakupu z poziomu dokumentu Bilansu Stanu Towarów. | ||
9 | DataAkt | Date | Data aktualizacji ceny w formacie RRRR-MM-DD. | ||
10 | KodKnt | varchar | 40 | Kod pod jakim ten element występuje u kontrahenta – potrzebne w przypadku zamówień. Jest to kod zamówieniowy dostawcy. |
Towary jednostki miary
Lp. | TowaryJM.xls | Opis | Wymagane | ||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod_towaru | varchar | 40 | Kod towaru | Tak |
3 | Jmz | varchar | 8 | Symbol jednostki pomocniczej | Tak |
4 | PrzeliczL | Licznik przelicznika | |||
5 | PrzeliczM | decimal | Mianownik przelicznika. Mamy sytuację, że jednostką pomocnicza jest opak., które składa się z 12 szt. (szt. to jednostka podstawowa). W tym przypadku licznik przelicznika = 12, a mianownik przelicznika = 1. | ||
6 | EAN | varchar | 40 | Kod EAN jednostki pomocniczej |
Towary normatywy
Lp. | TowaryNormatywy.xls | Opis | Wymagane | ||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod_towaru | varchar | 40 | Kod towaru | Tak |
3 | Kod_magazynu | varchar | 10 | Kod magazynu | Tak |
4 | IloscZam | smallint | Ilość zamawiana towaru. Parametr wykorzystywany na potrzeby Bilansu Stanu Towarów. | ||
5 | IloscMin | smallint | Ilość minimalna towaru. Parametr wykorzystywany na potrzeby Bilansu Stanu Towarów. | ||
6 | IloscMax | smallint | Ilość maksymalna towaru. Parametr wykorzystywany na potrzeby Bilansu Stanu Towarów. |
Towary Receptury
Lp. | TowaryReceptury.xls | Opis | Wymagane | ||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod_towaru | varchar | 40 | Kod usługi lub produktu, dla którego dodajemy recepturę. | Tak |
3 | Symbol | varchar | 20 | Symbol towaru | Tak |
4 | Nazwa | varchar | 40 | Nazwa towaru | |
5 | TypReceptury | long | Typ receptury: 1-kompletacyjna, 2-dekompletacyjna, 3- serwisowa | Tak | |
6 | Ilość | varchar | 12 | Ilość wyprodukowanego towaru | Tak |
7 | KosztEwid | varchar | 16 | Koszt ewidencyjny | |
8 | Opis | varchar | 2000 | Opis receptury | |
9 | KlasaCechy | varchar | 20 | Klasa cechy receptury | |
10 | Cecha | varchar | 20 | Cecha receptury | |
11 | Jm | varchar | 8 | Jednostka miary w jakiej określona jest receptura dla towaru musi być określona dla towaru (zakładka opakowanie) | |
12 | URL | varchar | 255 | URL receptury | |
13 | Towar | varchar | 40 | Kod składnika towaru, który dodajemy do receptury | Tak |
14 | ilosc_skl | varchar | 12 | Ilość składnika | Tak |
15 | Zamienniki | long | Czy dopuszczalne są zamienniki (1 – tak, 0- nie) | ||
16 | TypPozycji | long | Typ pozycji (1- składnik, 3- robocizna, 4- produkt uboczny) | ||
17 | TypCechy_skl | long | Typ cechy składnika (0-nieistotne, 1- na zlecenie, 2- z receptury) | ||
18 | Ubytek | varchar | 6 | Ubytek w procentach | |
19 | Koszt | varchar | 16 | Koszt składnika | |
20 | Opis_skl | varchar | 2000 | Opis składnika | |
21 | KlasaCechy_skl | varchar | 20 | Klasa cechy składnika | |
22 | Cecha_skl | varchar | 20 | Cecha składnika | |
23 | Jm_skl | varchar | 8 | Jednostka miary w jakiej określony jest składnik receptury dla towaru musi być określona dla towaru (zakładka opakowanie) |
Kontrahenci
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Kontrahenci.
Grupy kontrahentów
Lp. | GrupyKontrahentów.xls | Opis | Wymagane | ||||||||||||||||||||
Nazwa kolumny | Typ danych | Ilość znaków | |||||||||||||||||||||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |||||||||||||||||||
2 | Akronim | varchar | 20 | Akronim grupy kontrahentów | Tak | ||||||||||||||||||
3 | GrupaSciezka | Ścieżka danej grupy kontrahenta, czyli w jakiej grupie nadrzędnej (GrupaSciezka) znajduje się wprowadzana grupa (Akronim). Jeżeli mamy zdefiniowaną grupę kontrahentów DOSTAWCY i w ramach tej grupy zdefiniowane są podgrupy KRAJOWI i ZAGRANICZNI, a w ramach dostawców zagranicznych mamy UNIJNI oraz POZAUNIJNI, to poprawna ścieżka dla dostawców zagranicznych unijnych to DOSTAWCY\|ZAGRANICZNI (to wpisujemy w kolumnie GrupaSciezka, wpisując jednocześnie w kolumnie Akronim wartość UNIJNI). Poszczególne poziomy drzewa grup kontrahentów oddzielane są kombinacją znaków \|. Aby założyć poprawnie grupę DOSTAWCY\|ZAGRANICZNI w pierwszej kolejności musimy założyć grupę DOSTAWCY, czyli w arkuszu migracyjnym przed zapisem ZAGRANICZNI powinien znaleźć się zapis DOSTAWCY (zapisy dotyczą kolumny Akronim). Wprowadzając następujące dane do arkusza
| Tak |
Kontrahenci
Lp. | Kontrahenci.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Typ | smallint | 20 | Typ kontrahenta. Możliwa do wprowadzenia jedna z trzech wartości: 8 – dostawca, 16 – odbiorca, 24 – dostawca/odbiorca | Tak |
3 | Akwizytor | bool | Czy kontrahent jest akwizytorem? Ustawienie na 1 powoduje, że na liście akwizytorów możliwych do ustawienia na kartotece kontrahenta czy na dokumencie handlowym dany kontrahent zostanie ujęty. Jeżeli dany kontrahenta nie jest akwizytorem ustawiamy wartość na 0. | ||
4 | Akronim | varchar | 20 | Skrócona nazwa kontrahenta. | Tak |
5 | Nazwa1 | varchar | 50 | Pierwsza część nazwy kontrahenta. | Tak |
6 | Nazwa2 | varchar | 50 | Druga część nazwy kontrahenta. | |
7 | Nazwa3 | varchar | 50 | Trzecia część nazwy kontrahenta. | |
8 | KodP | varchar | 10 | Kod pocztowy. | |
9 | Miasto | varchar | 30 | Miasto. | Tak |
10 | Ulica | varchar | 30 | Ulica. | |
11 | adres | varchar | 30 | Dodatkowe pole adresu. | |
12 | NIPPrefix | varchar | 13 | Prefiks numeru nim, np. PL, DE. | Tak |
13 | NIP | varchar | 13 | Numer NIP z kreskami oddzielającymi poszczególne grupy cyfr, np. 677-00-65-406 | Tak |
14 | REGON | varchar | 20 | Numer Regon | |
15 | PESEL | varchar | 11 | Numer PESEL w sytuacji, gdy kontrahent jest osobą fizyczną | |
16 | Bank | varchar | 20 | Kod banku, w którym kontrahenta ma rachunek. W celu uzupełnienia tego pole wymagana jest wcześniejsza migracja banków do systemu. Na dzień 2011-07-12 lista banków została zaczytana do bazy produkcyjnej. | |
17 | NRRACHUNKU | integer | Numer rachunku bankowego | ||
18 | NRB | smallint | Czy numer rachunku jest zgodny ze standardem NRB. Dopuszczalne wartości 0 lub 1. | ||
19 | Odleglosc | decimal | Odległość do kontrahenta, pole informacyjne. | ||
20 | Kraj | varchar | 2 | Kod kraju, np. PL – Polska. | |
21 | Wojewodztwo | varchar | 30 | Nazwa województwa. | |
22 | Powiat | varchar | 30 | Nazwa powiatu. | |
23 | Gmina | varchar | 30 | Nazwa gminy. | |
24 | Telefon1 | varchar | 30 | Numer telefonu do kontrahenta. | |
25 | Telefon2 | varchar | 30 | Numer telefon do kontrahenta. | |
26 | FAX | varchar | 30 | Numer faksu do kontrahenta. | |
27 | Modem | varchar | 30 | Dodatkowe pole na numer kontaktowy do kontrahenta. | |
28 | TELEX | varchar | 30 | Obecnie pole na kartotece kontrahenta posiada etykietę GSM, więc możemy tutaj wpisać numer telefonu komórkowego. | |
29 | varchar | 255 | Domyślny adres e-mail kontrahenta. Adresy e-mail poszczególnych osób od kontrahenta są rejestrowane na zakładce Osoby. | ||
30 | URL | varchar | 255 | Adres strony internetowej kontrahenta. | |
31 | SeriaFA | varchar | 10 | Seria faktur, która będzie ustawiana automatycznie na dokumentach wystawianych dla danego kontrahenta. Seria ta ma wyższy priorytet niż seria ustawiona jako domyślna seria dla danego centrum uprawnień. | |
32 | AkronimOpiekuna | varchar | 30 | Skrócona nazwa opiekuna kontrahenta. | |
33 | MagKod | varchar | 10 | Kod magazynu, na który będą składane zamówienia zarejestrowane w Pulpicie Kontrahenta. | |
34 | OUTLOOKURL | varchar | 50 | Jeżeli korzystamy z MS Outlook, w tym polu wprowadzamy adres folderu Outlook, który chcemy otworzyć, np. outlook:\\Foldery publiczne\Wszystkie foldery publiczne\Wdrozenia\Wdrozenia ERP XL\Klienci\..... | |
35 | Rejestrbankowy | varchar | 10 | Rejestr bankowy, który będzie się podpowiadał na dokumencie przy wystawianiu dokumentów handlowych. Rejestr ten ma wyższy priorytet niż domyślny rejestr bankowy ustawiony dla danego centrum uprawnień. | |
36 | SposóbDostawy | varchar | 20 | Nazwa sposobu dostarczania towaru zarówno od jak i do kontrahenta. | |
37 | AkronimAkwizytor | varchar | 30 | Skrócona nazwa akwizytora. Przed uzupełnieniem tego pola wymagana jest migracja akwizytorów (kontrahentów z flagą akwizytor) lub pracowników, ponieważ akwizytorem może być albo kontrahent, albo pracownik. | |
38 | Platnik | varchar | 30 | Akronim płatnika. Jeżeli pole pozostawimy puste, w polu płatnika ustawi się migrowany kontrahent, więc takie rozwiązanie proponujemy. | |
39 | WalSymbol | varchar | 5 | Symbol waluty, w jakiej mają być wystawiane transakcje z danym kontrahentem. | |
40 | AkwProwizja | smallint | Prowizja akwizytora. Pole informacyjne do ewentualnego wykorzystania w raportowaniu. | ||
41 | GLN | varchar | 40 | Numer GLN (Global Location Number) wykorzystywany do unikalnej identyfikacji lokalizacji na całym świecie, który jest warunkiem efektywnego funkcjonowania EDI. W Polsce numery GLN nadawane są przez Instytut Logistyki i Magazynowania. | |
42 | Rabat | smallint | Domyślny rabat przypięty do kartoteki kontrahenta, który będzie uwzględniany na każdym dokumencie handlowymi, niezależnie do ilości czy rodzaju towaru. | ||
43 | MAXLIMITWART | smallint | Wartość kredytu kupieckiego. | ||
44 | LimitPoTerminie | smalint | Jaki procent kredytu kupieckiego mogą stanowić płatności przeterminowane. | ||
45 | CechaOpis | varchar | 40 | Opis z kartoteki kontrahenta przepisywany na dokument. | |
46 | Marza | smallint | Ustalona, proponowana marża. | ||
47 | GrupaSciezka | varchar | 1999 | Ścieżka do grupy, w której ma znajdować się kartoteka kontrahenta. | |
48 | Opis | varchar | Notatka związana z danym Klientem, umieszczana na zakładce Uwagi. | ||
49 | FormaPl | tinyint | 2 | Forma płatności związana ze sprzedażą. Pole może przyjąć następujące wartości: 10 – gotówka, 20 – przelew, 30 – kredyt, 40 – czek, 50 – karta, 60 – inne. | |
50 | TERMINPLSPR | integer | Termin płatności dla sprzedaży w dniach. | ||
51 | FORMAPLZAK | integer | 2 | Forma płatności związana z zakupami. Pole może przyjąć następujące wartości: 10 – gotówka, 20 – przelew, 30 – kredyt, 40 – czek, 50 – karta, 60 – inne. | |
52 | TERMINPLZAK | smallint | Termin płatności dla zakupów w dniach. | ||
53 | LimitTerminowy | bool | 1 | Rodzaj limitu związanego z kredytem kupieckim (-1 wg wzorca, 0-nieograniczony 1-terminowy) | |
54 | Rejon | integer | Nazwa rejonu, do którego przynależeć ma kontrahent. Rejon jest jeszcze jednym z kryteriów podziałowych kartotek kontrahentów. | ||
55 | PlatnikVat | tinyint | 1 | Czy kontrahent jest płatnikiem VAT: 0 – nie jest, 1 – jest płatnikiem VAT. | |
56 | Status | tinyint | 1 | Status kontrahenta: 1 – Podmiot gospodarczy, 2 – Odbiorca finalny | |
57 | JednostkaPowiazana | tinyint | Parametr wskazujący czy kontrahent jest niepowiązany (wartość 0) czy powiązany (wartość 1) z innym podmiotem. Np. kontrahent ABC S.A. jest powiązany (poprzez udział) z kontrahentem XYZ. Parametr głównie wykorzystywany przy konstruowaniu filtrów. | ||
58 | Cena | smallint | Numer rodzaju ceny sprzedaży domyślny dla dokumentów. Dla 0 – cena domyślna. | ||
59 | RozliczeniaDewizowe | tinyint | Czy dla kontrahenta stosowane rozliczenie dewizowe: 0 – nie, 1 – tak. | ||
60 | Rodzaj | integer | Rodzaj kontrahenta np. Inny, Partner, domyślnie Kontrahent | ||
61 | MAXDNIPOTERMINIE | integer | Dozwolone przeterminowanie | ||
62 | DATAWYGASNIECIA | integer | Data zakończenia obowiązywania limitu kredytowego. Termin bez ograniczeń dla daty 2058-01-19. |
Kontrahenci Adresy
Lp. | KontrahenciAdresy.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Akronim | varchar | 20 | Akronim kontrahenta, z którym ma być powiązany dany adres. | Tak |
3 | AkronimAdres | varchar | 20 | Skrócona nazwa kontrahenta | |
4 | Wysylkowy | bool | Czy dany adres jest adresem wysyłkowym: 0 – nie, 1 – tak. | ||
5 | Nazwa1 | varchar | 50 | Pierwsza część nazwy kontrahenta. | |
6 | Nazwa2 | varchar | 50 | Druga część nazwy kontrahenta. | |
7 | Nazwa3 | varchar | 50 | Trzecia część nazwy kontrahenta. | |
8 | NIPPrefiks | varchar | 13 | Prefiks numeru NIP, np. PL, DE. | |
9 | NIPE | varchar | 13 | Numer NIP kontrahent, bez kresek. | |
10 | REGON | varchar | 20 | Numer Regon. | |
11 | PESEL | varchar | 11 | Numer PESEL. | |
12 | BANK | varchar | Kod banku, w którym kontrahenta ma rachunek. W celu uzupełnienia tego pole wymagana jest wcześniejsza migracja banków do systemu. Na dzień ………. lista banków została zaczytana do bazy produkcyjnej. | ||
13 | NRRACHUNKU | integer | Numer rachunku bankowego | ||
14 | KodP | varchar | 10 | Kod pocztowy. | |
15 | Miasto | varchar | 30 | Miasto. | |
16 | Ulica | varchar | 30 | Ulica. | |
17 | Adres | varchar | 30 | Dodatkowe pole adresu. | |
18 | Kraj | varchar | 2 | Kod kraju, np. PL. | |
19 | Wojewodztwo | varchar | 30 | Nazwa województwa. | |
20 | Powiat | varchar | 30 | Nazwa powiatu. | |
21 | Gmina | varchar | 30 | Nazwa gminy. | |
22 | Telefon1 | varchar | 30 | Numer telefonu do kontrahenta. | |
23 | Telefon2 | varchar | 30 | Numer dodatkowego telefonu do kontrahenta. | |
24 | FAX | varchar | 30 | Numer faksu do kontrahenta. | |
25 | Modem | varchar | 30 | Dodatkowe pole na numer kontaktowy do kontrahenta. | |
26 | TELEX | varchar | 30 | Obecnie pole na kartotece kontrahenta posiada etykietę GSM, więc możemy tutaj wpisać numer telefonu komórkowego. | |
27 | varchar | 255 | Adres e-mail kontrahenta związany z konkretnym adresem. | ||
28 | KontoDostawcy | varchar | 30 | Konto dostawcy z planu kont. | |
29 | KontoOdbiorcy | varchar | 30 | Konto odbiorcy z planu kont. |
Kontrahenci Osoby
Lp. | KontrahenciOsoby.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Akronim | varchar | 20 | Akronim kontrahenta, z którym ma być związana osoba. | Tak |
3 | Imię_i_nazwisko | varchar | 40 | Imię i nazwisko osoby. | Tak |
4 | Tytuł | varchar | 40 | Tytuł osoby | |
5 | Stanowsiko | varchar | 40 | Stanowisko (wartość pobierana ze słownika definiowalnego w Comarch ERP XL) | |
6 | Upowazniona | smallint | 1 | Czy osoba jest upoważniona do odbioru faktur VAT: 1 – tak, 0 – nie. | |
7 | UpowaznionaZam | tinyint | 1 | Czy osoba jest upoważniona do składania zamówień: 1 – tak, 0 – nie. | |
8 | UpowaznionaDoKon | tinyint | 1 | Czy osoba jest upoważniona do kontaktów: 1 – tak, 0 – nie. | |
9 | Telefon1 | varchar | 30 | Telefon kontaktowy. | |
10 | Telefon2 | varchar | 30 | Telefon kontaktowy. | |
11 | Fax | varchar | 30 | Numer faksu. | |
12 | varchar | 255 | Adres e-mail. | ||
13 | Notatki | varchar | 1024 | Pole na notatki. | |
14 | Rola | integer | Nazwa roli. Rola definiowana jest w konfiguracji systemu Comarch ERP XL i określa zakres dostępu do Pulpitu Kontrahenta, Zadań pracowników, Księgi Raportów (BI), Aplikacji intranetowych (m. in. RCP, nieobecności) oraz Intranetowego Obiegu dokumentów. |
Dokumenty
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Dokumenty.
Dokumenty
Lp. | Dokumenty.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Typ_dokumenty | smallint | 3 | Typ dokumentu jaki ma być wystawiony (słownie - np. RW, PZ) | Tak |
3 | Numer_dokumentu | varchar | 40 | Numer dokumentu wystawionego przez kontrahenta, wg jego numeracji | |
4 | Numer_DokHist | varchar | 40 | Numer oryginalnego dokumentu wystawionego przez kontrahenta, wg jego numeracji | |
5 | Seria | varchar | 5 | Seria dokumentu | |
6 | Numer_pozycji | integer | Numer pozycji dokumentu | Tak | |
7 | Typ_korekty | tinyint | 1 | Typ korekty (1 - ilościowa, 2 - wartościowa, 3 – VAT, 5 – ilościowa na plus) | |
8 | Kod_magazynuZrd | string | 11 | Kod magazynu źródłowego | |
9 | Kod_magazynuDoc | string | 11 | Kod magazynu docelowego | |
10 | Data_dokumentu | integer | Data dokumentu | ||
11 | Akronim | varchar | 20 | Akronim kontrahenta, dla którego ma być dokument | Tak |
12 | Forma_platnosci | varchar | 7 | Forma płatności (Gotówka, Przelew, Kredyt, Czek, Karta, Inne) | |
13 | Termin_platnosci | integer | 10 | Termin płatności | |
14 | Kod_towaru | varchar | 40 | Kod towaru | Tak |
15 | Ilosc | integer | 13 | Ilość towaru (części ułamkowe po przecinku) | Tak |
16 | Wartosc | integer | 14 | Wartość towaru (cena*ilość) | |
17 | Grupa_VAT | Grupa podatku VAT (np. A, B) | |||
18 | Stawka_VAT | varchar | 2 | Stawka podatku VAT (np. 3, 6) | |
19 | Status_VAT | Status podatku VAT: 0 – zwolniony, 1 – podatek, 2 - nie podlega | |||
20 | Opis | varchar | 3999 | Opis elementu transakcji | |
21 | Rejestr | varchar | 5 | Do jakiego rejestru VAT ma trafić dokument | |
22 | DataSpr | integer | 10 | W zależności od typu dokumentu data sprzedaży lub data zakupu | |
23 | DataVat | integer | 10 | Data zapisu w rejestrze | |
24 | DataMag | integer | 10 | Data przyjęcia/wydania | |
25 | JM | varchar | 8 | Pomocnicza jednostka miary | |
26 | Avista | bool | 1 | Czy dokument typu avista? Tak / Nie (domyślnie) | |
27 | CechaDostawy | varchar | 255 | Wartość cechy towaru z dostawy | |
28 | Data_ważności_dostawy | integer | Data ważności ustawiana na tworzonej dostawie na dokumencie PW, format: RRRR MM DD. Data migruje się dla towarów, które na karcie towaru mają zaznaczone ‘Oznacz partię towaru – Datą ważności’ | ||
29 | JMZ | varchar | 8 | Jednostka pomocnicza | |
30 | MPP | tinyint | 1 | Mechanizm podzielonej płatności 0 – nie, 1 – tak. |
Dokumenty importowe
Lp. | DokImp.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Typ_dokumentu | varchar | 40 | Typ dokumentu jaki ma być wystawiony 16 lub 3344 - FAI | Tak |
3 | Numer_dokumentu | varchar | 40 | Numer dokumentu | |
4 | Numer_DokHist | varchar | 40 | Numer oryginalnego dokumentu wystawionego przez kontrahenta, wg jego numeracji | |
5 | Numer_pozycji | integer | Numer pozycji dokumentu | ||
6 | Typ_korekty | tinyint | 1 | Typ korekty (1 - ilościowa, 2 - wartościowa, 3 – VAT, 5 – ilościowa na plus) | |
7 | Numer_dokumentu_kor | tinyint | 1 | Numer dokumentu Korekty | |
8 | Numer_pozycji_kor | integer | Numer pozycji na korekcie | ||
9 | Data_dokumentu | data | 10 | Data dokumentu | |
10 | Akronim | varchar | 20 | Akronim kontrahenta, dla którego ma być wystawiony | |
11 | Forma_platnosci | varchar | 7 | Forma płatności (Gotówka, Przelew, Kredyt, Czek, Karta, Inne) | |
12 | Termin_platnosci | integer | 10 | Termin płatności | |
13 | Uwagi | Uwagi na dokumencie | |||
14 | Kod_towaru | varchar | 40 | Kod towaru | |
15 | Ilosc | integer | 13 | Ilość towaru (części ułamkowe po przecinku) | |
16 | Wartosc | integer | 14 | Wartość towaru (cena*ilość) | |
17 | Stawka_VAT | varchar | 2 | Stawka VAT | |
18 | Typ_obrotu | ||||
19 | Waluta | varchar | 3 | Waluta w jakiej jest wystawiany dokument | |
20 | JM | varchar | 8 | Pomocnicza jednostka miary |
Dokumenty magazynowe
Lp. | DokMag.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Typ_dokumentu | varchar | 3 | Typ dokumenty słownie np. PM | Tak |
3 | Numer_DokHist | varchar | 40 | Opis dla dokumentu | |
4 | Numer_pozycji | integer | Numer pozycji na dokumencie (jeśli pozycja ma nr 1 to najpierw jest tworzony nagłówek dokumentu) | Tak | |
5 | Kod_magazynu | varchar | 11 | Kod magazynu, na którym operuje dokument | |
6 | Data_dokumentu | integer | 10 | Data dokumentu | |
7 | Akronim | varchar | 20 | Akronim kontrahenta | Tak |
8 | Kod_towaru | varchar | 40 | Kod towaru | Tak |
9 | Ilosc | integer | 13 | Ilość towaru | Tak |
10 | JM | varchar | 8 | Pomocnicza jednostka miary |
Dokument SAD
Lp. | DokSAD.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Typ_dokumentu | varchar | 3 | Typ dokumentu jaki ma być wystawiony 17 lub 3376 – SAD 18 lub 3377 – SSC 23 lub 3378 – FWZ 24 lub 3379 – FWS | |
3 | Numer_dokumentu | varchar | 40 | Numer dokumentu | |
4 | Numer_DokHist | varchar | 40 | Numer dokumentu historycznego | |
5 | TypPodmiotu | integer | Typ podmiotu (32-kontrahent, 4304-urząd) | ||
6 | KursL | integer | Licznik kursu waluty pomnożony przez 100. Jeśli KursM lub KursL jest = 0, wówczas kurs odczytywany jest z tabeli kursów, z kolumny kursowej nr KursN. Jeśli i KursN jest = 0, wówczas odczytywany jest domyślny kurs z konfiguracji. Jeśli zarówno KursL jak i KursM są <> 0, kurs jest wyliczany jako KursL/KursM | ||
7 | KursM | integer | Mianownik kursu waluty | ||
8 | Numer_pozycji | integer | Numer pozycji na dokumencie | ||
9 | Typ_korekty | tinyint | 1 | Typ korekty 1 - ilościowa, 2 - wartościowa | |
10 | DataWplywuWystawienia | data | 10 | Data wpływu/wystawienia | |
11 | DataPrzyjeciaVat | data | 10 | Data przyjęcia/vat | |
12 | DataZgloszeniaZakupu | data | 10 | Data zgłoszenia/zakupu | |
13 | Akronim | varchar | 20 | Akronim kontrahenta | |
14 | Forma_platnosci | varchar | 7 | Forma płatności (Gotówka, Przelew, Kredyt, Czek, Karta, Inne) | |
15 | Termin_platnosci | integer | Termin płatności | ||
16 | Uwagi | Uwagi na dokumencie | |||
17 | TowarKod | varchar | 40 | Kod towaru | |
18 | Ilosc | integer | 13 | Ilość towaru (części ułamkowe po przecinku) | |
19 | Wartosc | integer | 14 | Wartość towaru (cena*ilość) | |
20 | Stawka_VAT | varchar | 2 | Stawka VAT | |
21 | Typ_obrotu | ||||
22 | Waluta | varchar | 3 | Waluta w jakiej jest wystawiany dokument | |
23 | Kwota | varchar | 14 | Nazwa kwoty (musi być w definicjach kwot) | |
24 | Nazwa | varchar | 80 | Wartość kwot | |
25 | Rodzaj | integer | Numer (rodzaj) dodatkowej kwoty. Kwoty dodatkowe mają rodzaje większe od 8. Uwaga, jeśli chcemy dodać kilka kwot do danego elementu to dla każdej kwoty musimy określić kolejny rodzaj, dla każdego następnego elementu musimy operować wyrzuconymi numerami rodzajów dodawanych kwot przy pierwszym elemencie | ||
26 | Rejestr | varchar | 5 | Rejestr VAT | |
27 | JM | varchar | 8 | Pomocnicza jednostka miary |
Dokumenty Umów
Lp. | DokUmw.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | ||
2 | Umowa_Akronim | varchar | 20 | Akronim kontrahenta lub kod banku | |
3 | Umowa_Typ | varchar | 512 | Ścieżka typu umowy, kody umowy oddzielone "\" pomijając gałąź "Wszystkie" | |
4 | Umowa_Rodzaj | varchar | 128 | Nazwa rodzaju umowy | |
5 | Aneksowana_Id | integer | Numer identyfikacyjny umowy, która chcemy zaaneksować, jak nie znajdzie po ID to szuka po numeratorze | ||
6 | Aneksowana_Numer | integer | Numer dokumentu umowy do którego wystawić aneks | ||
7 | Aneksowana_Miesiac | tinyint | Miesiąc dokumentu umowy do którego wystawić aneks, gdy numeracja roczna to 0 | ||
8 | Aneksowana_Rok | smallint | Rok dokumentu umowy do którego wystawić aneks | ||
9 | Aneksowana_Seria | varchar | 5 | Seria dokumentu umowy do którego wystawić aneks | |
10 | Aneksowana_NettoTyp | tinyint | Typ w jakim zostanie uwzględniona kwota z kolumny Netto 0 - różnicowa 1 - na określoną | ||
11 | Numer_obcy | integer | Numer dokumentu z systemu zewnętrznego | ||
12 | Data_zawarcia | integer | Data zawarcia dokumentu umowy | ||
13 | Data_rozpoczęcia | integer | Data rozpoczęcia obowiązywania umowy | ||
14 | Data_zakończenia | integer | Data zakończenia obowiązywania umowy | ||
15 | Waluta | varchar | 3 | Waluta nagłówka umowy | |
16 | Netto | decimal | 15 | Wartość netto umowy | |
17 | StawkaVAT | varchar | 2 | Stawka vat np. 'A 23.00' kropka i miejsca dziesiętne wymagane | |
18 | SeriaDok | varchar | 5 | Seria dokumentu dla numeratora | |
19 | NumerDok | varchar | 40 | Numer dokumentu dla numeratora | |
20 | Opis | varchar | 1024 | Opis nagłówka umowy | |
21 | ProjektId | integer | Numer identyfikacyjny projektu, z którym umowa jest związana | ||
22 | Stan | tinynt | 1 | Stan umowy: 0 Bufor, 1 Potwierdzona, 2 Odrzucona, 3 Zakończona, 4 Anulowana | |
23 | StabOpisId | integer | Opis wybranego stanu pochodzący ze słownika kategorii, brak to pierwszy z listy | ||
24 | AneksPowodId | integer | Numer identyfikacyjny opisu powodu dodania aneksu ze słowika |
Atrybuty
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Atrybuty.
Klasa Atrybutu
Lp. | AtrybutyKlasa.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | Lp | Liczba porządkowa | Tak | ||
2 | Nazwa | varchar | 40 | Nazwa klasy atrybutu | Tak |
3 | Typ | smallint | Typ atrybutu: 1 – flaga, 2 – tekst, 3 – liczba, 4 – lista, 5 – SQL, 10 + obiekty | Tak | |
4 | GIDTyp | smallint | GIDTyp obiektu, do którego ma być dodana klasa atrybutu | Tak | |
5 | ELEMENT | smallint | Typ elementu. Rozróżnienie obiektu, gdy ten sam GIDTyp: 0 – nagłówek, 1 – pozycja, 2 - składnik | ||
6 | Wartość | Wartość klasy atrybutu, jeśli klasa ma typ 4 - lista | |||
7 | Format | Format klasy atrybutu: Tekst lub @s255; Data lub @d17; 1234 lub @n4.0; 1234,56 lub @n7.2; 1234,5678 lub @n9.4; (*)Zaawansowany lub format inny niż powyżej np. @s100, @s50 | Tak |
Wartość Atrybutu
Lp. | AtrybutyWartości.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | Lp | Liczba porządkowa | Tak | ||
2 | Typ | smallint | Typ obiektu: 16 – Towary, 32 – kontrahenci, 368 – środki trwałe | Tak | |
3 | Akronim | varchar | 20 | Akronim obiektu: kod dla towaru, akronim kontrahenta, akronim środka trwałego | Tak |
4 | Nazwa_Klasy_Atr | varchar | 40 | W celu migracji wartości atrybutów należy zmienić nazwę kolumny na identyczną z nazwą klasy atrybutów, której wartości mają zostać dodane do wprowadzonego Akronimu. W celu migracji jednocześnie wartości kilku klas atrybutów do podanego Akronimu należy dodać kolejne kolumny o nazwach identycznych z klasami atrybutów na które mają być zmigrowane wartości do podanego Akronimu. | Tak |
Technologie
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Technologie.
Produkcja Funkcje
Arkusz służy do migracji gniazd roboczych.
Lp. | ProdFunkcje.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | Lp | integer | Liczba porządkowa | Tak | |
2 | Kod | varchar | 40 | Kod gniazda | Tak |
3 | Nazwa | varchar | 100 | Nazwa gniazda | |
4 | Oddzial | varchar | 40 | Nazwa oddziału | |
5 | Opis | varchar | 512 | Opis gniazda | |
6 | Planowana | tinyint | 1 | Planowanie: 0 – nie, 1 – szczegółowo, 2 – zgrubnie, 3 - zawsze | |
7 | Typ | tinyint | 1 | Pole przyjmuje wartość 1 – gniazdo robocze | |
8 | PlanujStrategicznie | tinyint | 1 | Uwzględnianie gniazda roboczego w planowaniu strategicznym. 0 – gniazdo nie będzie uwzględniane, 1 – gniazdo będzie uwzględniane przy planowaniu strategicznym. | |
9 | ZdolnoscWOkresie | decimal | Zdolność produkcyjna gniazda roboczego | ||
10 | ZdolnoscWOkresieJedn | tinyint | 1 | Jednostka zdolności produkcyjnej: 0 – minuty, 1 – godziny, 2 – dni. | |
11 | DopuszczalneObciazenie | smallint | Dopuszczalne procentowe obciążenie gniazda. | ||
12 | Zmienna | tinyint | 1 | Określenie czy zasoby mogą być zmieniane dla różnych terminów: 1 – tak, 0 – nie (domyślnie) | |
13 | CzyZrownoleglac | tinyint | 1 | Zwiększanie liczby zasobów: 1 – tak, 0 – nie | |
14 | KontynuacjaPracy | tinyint | 1 | Wybór kontynuacji pracy zasobu: 1- tak, 0 – nie. | |
15 | TenSamZasobWPartii | tinyint | 1 | Czy planować ten sam zasób w każdej partii operacji |
Funkcje produkcyjne w czynnościach technologii
Arkusz służy do przypisania gniazda do technologii
Lp. | ProdFunkcjeCzynnosciTechnologie.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | Lp | integer | Liczba porządkowa | Tak | |
2 | IdTechnologiaCzynnosc | integer | PTC_ID operacji w technologii | Tak | |
3 | IdFunkcji | integer | PFU_ID – id gniazda roboczego | ||
4 | KodFunkcji | varchar | 40 | Kod gniazda roboczego | |
5 | LiczbaObiektow | smallint | Liczba zasobów | ||
6 | Wszystkie | smallint | Określenie czy gniazdo robocze ma być wymagane dla operacji podrzędnych: 1 – tak, 0 – nie. | ||
7 | Zmienna | tinyint | Określenie czy zasoby mogą być zmieniane dla różnych terminów: 1 – tak, 0 – nie | ||
8 | TenSamZasobWPartii | tinyint | Czy planować ten sam zasób w każdej partii operacji |
Obiekty w produkcji
Arkusz służy do migracji zasobów.
Lp. | ProdObiekty.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod | varchar | 40 | Kod obiektu (zasobu) | Tak |
3 | Nazwa | varchar | 100 | Nazwa obiektu | |
4 | Oddzial | varchar | 40 | Kod oddziału | |
5 | KodOjca | varchar | 40 | Kod obiektu nadrzędnego | |
6 | Obiekt | varchar | 100 | Kod obiektu z ERP XL (towaru, kontrahenta …) | |
7 | Kalendarz | varchar | 40 | Nazwa kalendarza | |
8 | Konto | varchar | 30 | Konto księgowe | |
9 | ZmianaStawka | decimal | Stawka za przezbrojenie gniazda | ||
10 | ZmianaCzas | integer | Czas potrzebny na zmianę | ||
11 | ZmianaCzasJedn | integer | 1 | Jednostka czasu zmiany (0 – sekunda, 1 – minuta, 2 – godzina, 3 – dzień, 4 – tydzień) | |
12 | DopuszczaZasoby | integer | 1 | Czy dopuszczać zasoby: 1 – tak, 0 - nie | |
13 | RejestrowacUzycie | integer | 1 | Czy rejestrować użycie: 1 – tak, 0 - nie | |
14 | StawkaStala | varchar | 20 | Stawka stała | |
15 | StawkaCzas | varchar | 20 | Stawka za czas | |
16 | StawkaCzasM | varchar | 15 | Mianownik stawki za czas | |
17 | StawkaCzasMJedn | tinyint | Jednostka czasu mianownika Wartości: 0 - sekundy 1 - minuty 2 - godziny 3 - dni 4 – tygodnie | ||
18 | StawkaIlosc | decimal | Stawka za ilość | ||
19 | StawkaIloscM | decimal | Mianownik stawki za ilość | ||
20 | ObiTyp | smallint | Typ obiektu: 16 – materiał, 32 – kontrahent, 368 – środek trwały, -368 – grupa środków trwałych, 944 – pracownik, -4272 – centrum struktury firmy, 4701 – urządzenie serwisowane. | ||
21 | ObiNumer | integer | Numer obiektu |
Obiekty w funkcjach
Arkusz służy przypisaniu gniazda roboczego do zasobu.
Lp. | ProdObiektyFunkcje.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Obiekt | varchar | 40 | Kod zasobu | Tak |
3 | Funkcja | varchar | 40 | Kod gniazda roboczego | Tak |
4 | ObiektId | integer | Id zasobu | ||
5 | FunkcjaId | integer | Id gniazda roboczego | ||
6 | Grupa | integer | Wiele obiektów na jednym gnieździe jednocześnie | ||
7 | OddzialId | integer | Id oddziału | ||
8 | WydajnoscCzas | integer | Mianownik wydajności – czas | ||
9 | WydajnoscCzasJedn | tinyint | Jednostka mianownika wydajności (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie) | ||
10 | Czas | integer | Czas przetwarzania minimalnej ilości | ||
11 | CzasJedn | tinyint | Jednostka czasu przetwarzania (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie) | ||
12 | CzyStawki | tinyint | Czy stosować specjalne stawki dla gniazda: 0 – nie, 1 – tak | ||
13 | StawkaStalaAtr | integer | Id klasy atrybutu stawki stałej | ||
14 | StawkaCzasAtr | integer | Id klasy atrybutu stawki za czas | ||
15 | StawkaCzasM | integer | Mianownik stawki za czas | ||
16 | StawkaCzasMJedn | tinyint | Jednostka mianownika stawki za czas (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie) | ||
17 | StawkaIloscAtr | integer | Id klasy atrybutu stawki za ilość | ||
18 | CzasPrzygotowania | integer | Czas przygotowania | ||
19 | CasPrzygotowaniaJedn | tinyint | Jednostka czasy przygotowania (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie) | ||
20 | StawkaPrzygotowaniaAtr | integer | Klasa atrybutu dla stawki przygotowania | ||
21 | CzasZakonczenia | integer | Czas zakończenia | ||
22 | CzasZakonczeniaJedn | tinyint | Jednostka czasu zakończenia (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie) | ||
23 | StawkaZakoczeniaAtr | tinyint | Klasa atrybutu dla stawki zakończenia | ||
24 | Oddzial | varchar | 40 | Kod oddziału | |
25 | MinIlosc | decimal | Minimalna ilość przetwarzania | ||
26 | MaxIlosc | decimal | Maksymalna ilość przetwarzania | ||
27 | Jednostka | varchar | 8 | Jednostka parametrów ilościowych | |
28 | WydajnoscIlosc | decimal | Licznik wydajności – ilość | ||
29 | StawkaStala | decimal | Stała stawka | ||
30 | StawkaCzas | decimal | Stawka za czas | ||
31 | StawkaIlosc | decimal | Stawka za ilość | ||
32 | StawkaIloscM | decimal | Mianownik stawki za ilość | ||
33 | StawkaPrzygotowania | decimal | Stawka za przygotowanie | ||
34 | StawkaZakonczenia | decimal | Stawka za zakończenie | ||
35 | KlasaStalaAtr | varchar | 255 | Kod klasy atrybutu stawki stałej | |
36 | KlasaCzasAtr | varchar | 255 | Kod klasy atrybutu stawki za czas | |
37 | KlasaIloscAtr | varchar | 255 | Kod klasy atrybutu stawki za ilość | |
38 | KlasaPrzygotowania | varchar | 255 | Kod klasy atrybutu za przygotowanie | |
39 | KlasaZakonczeniaAtr | varchar | 255 | Kod klasy atrybutu za zakończenie |
Czynności produkcyjne w technologii
Lp. | ProdTechnologieCzynnosci.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | Lp | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod | varchar | 40 | Kod technologii | Tak |
3 | Nazwa | varchar | 100 | Nazwa technologii | |
4 | TwrKod | varchar | 512 | Kod towaru | |
5 | KntAkronim | varchar | 20 | Akronim kontrahenta | |
6 | KnDAkronim | varchar | 20 | Akronim kontrahenta docelowego | |
7 | Ilosc | varchar | 20 | Ilość, dla której jest rozpisany proces produkcji | |
8 | IloscMin | varchar | 20 | Minimalna ilość produkowana | |
9 | IloscProd | varchar | 20 | Ilość produkowana ma być wielokrotnością IloscProd | |
10 | IloscPlan | varchar | 20 | Planować w porcjach ilości | |
11 | Jednostka | varchar | 8 | Jednostka operacji | |
12 | Oddzial | varchar | 40 | Kod oddziału | |
13 | Opis | varchar | 123 | Opis technologii | |
14 | StawkaStala | varchar | 20 | Stawka stała | |
15 | StawkaIlosc | varchar | 20 | Stawka za ilość | |
16 | StawkaIloscM | varchar | 20 | Mianownik stawki za ilość | |
17 | StawkaCzas | varchar | 15 | Stawka za czas | |
18 | StawkaCzasM | integer | Mianownik stawki za czas | ||
19 | StawkaCzasMJedn | tinyint | Jednostka mianownika stawki za czas: 0 - sekundy 1 - minuty 2 - godziny 3 - dni 4 - tygodnie | ||
20 | WymagajPodaniaStanuOperacji | tinyint | Czy na technologii zaznaczyć: Wymagaj podania stanu dla operacji, której ilość jest różna od ilości realizacji: 1- tak, 0- nie | ||
21 | Kod_czynnosci | varchar | 40 | Kod operacji | Tak |
22 | Nazwa_czynnosci | varchar | 100 | Nazwa operacji | Tak |
23 | CzasPrzygotowawczy | integer | Czas przygotowawczy operacji | ||
24 | CzasPrzygotowawczyJedn | integer | 1 | Jednostka dla czasu przygotowawczego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie) | |
25 | CzasPlanowany | integer | Czas planowany dla ilości nominalnej | ||
26 | CzasPlanowanyJedn | integer | 1 | Jednostka czasu planowanego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie) | |
27 | CzasRozliczeniowy | integer | Czas rozliczeniowy | ||
28 | CzasRozliczeniowyJedn | integer | 1 | Jednostka czasu rozliczeniowego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie) | |
29 | Opis_czynnosci | varchar | 1023 | Opis operacji | |
30 | UslKod | varchar | 40 | Kod usługi | |
31 | Ilosc_czynnosci | decimal | Ilość operacji | ||
32 | IloscMin_czynnosci | varchar | 20 | Ilość minimalna operacji | |
33 | IloscMax_czynnosci | varchar | 20 | Ilość maksymalna operacji | |
34 | IloscPlan_czynnosci | varchar | 20 | Planować w ilości po | |
35 | JednostkaCzynnosci | varchar | 8 | Jednostka ilości dla operacji | |
36 | Oddzial_czynnosci | varchar | 40 | Nazwa oddziału | |
37 | StawkaStala_czynnosci | varchar | 20 | Stawka stała | |
38 | StawkaCzas_czynnosci | varchar | 20 | Stawka za czas | |
39 | StawkaCzasM_czynnosci | integer | Mianownik stawki za czas | ||
40 | StawkaCzasJedn_czynnosci | varchar | 20 | Jednostka mianownika stawki za czas | |
41 | StawkaIlosc_czynnosci | varchar | 20 | Stawka za ilość | |
42 | StawkaIloscM_czynnosci | varchar | 20 | Mianownik stawki za ilość | |
43 | CzasPrzygotowawczyRozliczeniowy | integer | Czas rozliczeniowy dla czasu przygotowawczo - zakończeniowego | ||
44 | CzasPrzygotowawczyRozliczeniowyJedn | tinyint | Jednostka czasu rozliczeniowego - przygotowawczo-zakończeniowego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie) | ||
45 | OstepPo | integer | Odstęp czasu do zaplanowania operacji po zaplanowaniu poprzedniej operacji | ||
46 | OdstepPoJm | tinyint | Jednostka czasu odstępu między operacjami po poprzedniej | ||
47 | OdstepPrzed | integer | Odstęp między operacjami przed następną. | ||
48 | OdstepPrzedJm | tinyint | Jednostka czasu odstępu między operacjami przed następną | ||
49 | Planowana | tinyint | Operacja planowana: 0 - nie, 1 - częściowo, 2 - całościowo | ||
50 | DowolneZasoby | tinyint | Pozwala wprowadzać dowolne zasoby magazynowe | ||
51 | Wymagana | tinyint | Czy operacja jest wymagana | ||
52 | WieleTerminow | tinyint | Pozwala na wiele terminów | ||
53 | Etap | tinyint | Czy operacja jest kamieniem milowym: 1 - tak 0 - nie | ||
54 | KontrolaJakosci | tinyint | Czy dana operacja jest kontrolą jakości: 1- tak, 0- nie | ||
55 | TwrTypCzynnoscUsluga | smallint | Typ usługi, która odpowiada operacji | ||
56 | TwrNumerCzynnoscUsluga | integer | Numer usługi, która odpowiada operacji | ||
57 | Kooperacja | tinyint | Czy operacja jest kooperacją: 1- tak, 0- nie | ||
58 | NiePlanujWPartiach | tinyint | Czy operacja nie ma być planowana w partiach: 1- tak, 0- nie | ||
59 | KodZasob | varchar | 40 | Kod materiału/produktu | Tak |
60 | NazwaZasob | varchar | 100 | Nazwa materiału/produktu | |
61 | TypZasob | integer | 1 | Typ zasobu (0 - produkt, 1 - materiał, 2 - materiał pomocniczy) | |
62 | MgazynZasob | varchar | 10 | Kod magazynu | |
63 | TwrKodZasob | varchar | 40 | Kod towaru | |
64 | CenaZasob | varchar | 20 | Cena towaru | |
65 | IloscZasob | varchar | 20 | Ilość materiału/produktu | |
66 | KosztZasob | integer | 1 | Sposób wyliczenia kosztu (0 - rzeczywisty, 1 - ewidencyjny, 2 - ważony, 3 - cena zakupu) | |
67 | JednostkaZasob | varchar | 8 | Jednostka | |
68 | PlanowanyCalosciowoZasob | integer | Uwzględniaj przy planowaniu całościowym | ||
69 | ZrodloZasob | integer | 1 | Źródło materiału z technologii (0 - z tego samego procesu, 1 - z tego samego zlecenia, 2 - z tego samego oddziału, 3 - dowolne) | |
70 | DopasowanieIlosciZasob | varchar | 20 | Dopasowanie ilości | |
71 | KlasaIloscAtrZasob | varchar | 40 | Kod klasy atrybutu z ilością | |
72 | IloscAtrZasob | integer | Klasa atrybutu z ilością | ||
73 | IloscMinZasob | varchar | 20 | Ilość minimalna | |
74 | KlasaIloscMinAtrZasob | varchar | 40 | Kod klasy atrybutu z ilością minimalną | |
75 | IloscMinAtrZasob | integer | Klasa atrybutu z ilością minimalną | ||
76 | IloscMaxZasob | varchar | 20 | Ilość maksymalna | |
77 | KlasaIloscMaxAtrZasob | varchar | 40 | Kod klasy atrybutu z ilością maksymalną | |
78 | IloscMaxAtrZasob | integer | Klasa atrybutu z ilością maksymalną | ||
79 | IloscFormatZasob | integer | Ilość miejsc po przecinku | ||
80 | WagaKosztuZasob | varchar | 20 | Waga kosztu | |
81 | WagaIloscZasob | integer | Czy waga wg ilości zasobu | ||
82 | JednostkaPomZasob | varchar | 8 | Jednostka pomocnicza | |
83 | IloscPomZasob | varchar | 20 | Ilość pomocnicza | |
84 | IloscPomMinZasob | varchar | 20 | Ilość pomocnicza min | |
85 | IloscPomMaxZasob | varchar | 20 | Ilość pomocnicza max | |
86 | PropIloscZasob | integer | Czy proponować ilość | ||
87 | PropIloscPomZasob | integer | Czy proponować ilość pomocniczą | ||
88 | EdycjaCechyZasob | integer | Edycja cechy | ||
89 | KlasaCechyZasob | varchar | 20 | Klasa Cechy | |
90 | CechaZasob | varchar | 20 | Wartość cechy | |
91 | PodlegaKJ | tinyint | Czy materiał/produkt podlega kontroli jakości: 1- tak, 0- nie | ||
92 | MaterialKanban | tinyint | Czy dany materiał jest materiałem kanbanowym: 1- tak, 0- nie | ||
93 | IdWzorcaNrPartii | integer | ID wzorca numeru partii | ||
94 | Zamiennik | integer | Materiał, dla którego definiujemy zamiennik. Należy podać Lp. materiału z arkusza, dla którego definiujemy zamiennik. | ||
95 | TechnologiaZasob | integer | LP. wiersza pochodzenia półproduktu |
Bilans Otwarcia
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu BO.
BO Stany
Lp. | BOStany.xls | Opis | Wymagane |
||
Wymagane | Nazwa kolumny | Typ danych | Ilość znaków | Wymagane | Wymagane |
1 | LP | integer | Liczba porządkowa wpisu w arkuszu | Tak | |
2 | Kod_magazynu | varchar | 10 | Kod magazynu, na którym ustalamy stan początkowy. Kod musi być tożsamy z kodami magazynów zdefiniowanych w systemie Comarch ERP XL. | |
3 | Data_dokumentu | data | 10 | Data, na która ustalamy stan początkowy magazynu. Z tą data zostanie wygenerowany dokument PW, który ustali stan ilościowy i wartościowy towaru na danym magazynie. | |
4 | Akronim | varchar | 20 | Akronim kontrahenta, na którego ma być wystawiony dokument. Pole może pozostać niewypełnione. | |
5 | Kod_towaru | varchar | 20 | Kod towaru z bazy systemu Comarch ERP XL. | Tak |
6 | Ilosc | integer | Ilość towaru w jednostce podstawowej jaka ma znaleźć się na magazynie. | Tak | |
7 | Wartosc | integer | Wartość wprowadzanego na magazyn zasobu towaru. | ||
8 | Data_waznosci | data | 10 | Jeżeli jest potrzeba, możemy dany zasób oznaczyć datą ważności w formacie RRRR-MM-DD. | |
9 | Cecha_klasa | Jeżeli istnieje potrzeba, możemy dany zasób oznaczyć cechą, która będzie identyfikowała zasób towaru na magazynie i będzie możliwe filtrowanie zasobów towaru wg wprowadzonej cechy. W tym polu określamy jaką nazwę ma mieć dana klasa cechy. | |||
10 | Cecha_wartosc | Wartość zdefiniowanej powyżej klasy cechy. | |||
11 | LP_Atrybut | integer | Liczba porządkowa wpisu w arkuszu dotycząca atrybutu związanego z dokumentem PW. | ||
12 | Typ | smallint | 2 | Określenie w którym miejscu ma zostać dodany atrybut: 0 - nagłówek dokumentu, 1 - pozycja dokumentu. | |
13 | Atrybut | varchar | Nazwa klasy atrybutu. | ||
14 | Wartosc_atr | Wartość zdefiniowanej powyżej klasy atrybutu. |
BO Dostawy
Lp. | BODostawy.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Tak | ||
2 | Typ_dokumentu | smallint | Tak | ||
3 | Akronim | varchar | 20 | Tak | |
4 | Kod_magazynu | varchar | 10 | ||
5 | Numer_dokumentu | ||||
6 | Data_dokumentu | data | 10 | ||
7 | Numer_DokHist | varchar | 40 | ||
8 | Opis | varchar | 20 | ||
9 | Numer_pozycji | integer | Tak | ||
10 | Kod_towaru | varchar | 40 | Tak | |
11 | Ilosc | integer | Tak | ||
12 | Wartosc | integer |
Zgody
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Zgody.
Kontrahenci Zgody
Lp. | KontrahenciZgody.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu. | Tak | |
2 | Akronim | varchar | 20 | Akronim kontrahenta, którego dotyczy zgoda. | Tak |
3 | RodzajZgody | varchar | 255 | Rodzaj zgody wg słownika kategorii. | Tak |
4 | RodzajZgodyWersja | integer | Wersja rodzaju zgody wg słownika kategorii. | Tak | |
5 | DataUdzielenia | Data | 10 | Data udzielenia zgody, format: RRRR MM DD | Tak |
6 | ZrodloUdzielenia | varchar | 255 | Źródło udzielenia zgody, wg słownika kategorii. | |
7 | IP | varchar | 100 | IP komputera, z którego została udzielona zgoda. | |
8 | URL | varchar | 255 | URL, link do treści zgody lub plik poświadczający o wyrażeniu zgody. | |
9 | FormaKontaktu | integer | Forma kontaktu określona dla danej zgody: E-mail, Telefon, Sms, Przesyłka, Inne. | ||
10 | Szczegoly | varchar | 1000 | Dodatkowe informacje. | |
11 | DataWycofania | Data | 10 | Data wycofania zgody, format: RRRR MM DD | |
12 | PowodWycofania | varchar | 255 | Powód wycofania zgody wg słownika kategorii. | |
13 | ZrodloWycofania | varchar | 255 | Źródło wycofania zgody, wg słownika kategorii. |
Osoby Zgody
Lp. | OsobyZgody.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu. | Tak | |
2 | Akronim | varchar | 20 | Akronim kontrahenta, z którym ma być związana osoba. | Tak |
3 | ImieNazwisko | varchar | 40 | Imię i nazwisko osoby, której zgoda dotyczy. | Tak |
4 | RodzajZgody | varchar | 255 | Rodzaj zgody wg słownika kategorii. | Tak |
5 | RodzajZgodyWersja | integer | Wersja rodzaju zgody wg słownika kategorii. | Tak | |
6 | DataUdzielenia | Data | 10 | Data udzielenia zgody, format: RRRR MM DD | Tak |
7 | ZrodloUdzielenia | varchar | 255 | Źródło udzielenia zgody, wg słownika kategorii. | |
8 | IP | varchar | 100 | IP komputera, z którego została udzielona zgoda. | |
9 | URL | varchar | 255 | URL, link do treści zgody lub plik poświadczający o wyrażeniu zgody. | |
10 | FormaKontaktu | integer | Forma kontaktu określona dla danej zgody: E-mail, Telefon, Sms, Przesyłka, Inne. | ||
11 | Szczegoly | varchar | 1000 | Dodatkowe informacje. | |
12 | DataWycofania | Data | 10 | Data wycofania zgody, format: RRRR MM DD | |
13 | PowodWycofania | varchar | 255 | Powód wycofania zgody wg słownika kategorii. | |
14 | ZrodloWycofania | varchar | 255 | Źródło wycofania zgody, wg słownika kategorii. |
Pracownicy Zgody
Lp. | PracownicyZgody.xls | Opis | Wymagane |
||
Nazwa kolumny | Typ danych | Ilość znaków | |||
1 | LP | integer | Liczba porządkowa wpisu w arkuszu. | Tak | |
2 | Akronim | varchar | 20 | Akronim pracownika, którego dotyczy zgoda. | Tak |
3 | RodzajZgody | varchar | 255 | Rodzaj zgody wg słownika kategorii. | Tak |
4 | RodzajZgodyWersja | integer | Wersja rodzaju zgody wg słownika kategorii. | Tak | |
5 | DataUdzielenia | Data | 10 | Data udzielenia zgody, format: RRRR MM DD | Tak |
6 | ZrodloUdzielenia | varchar | 255 | Źródło udzielenia zgody, wg słownika kategorii. | |
7 | IP | varchar | 100 | IP komputera, z którego została udzielona zgoda. | |
8 | URL | varchar | 255 | URL, link do treści zgody lub plik poświadczający o wyrażeniu zgody. | |
9 | FormaKontaktu | integer | Forma kontaktu określona dla danej zgody: E-mail, Telefon, Sms, Przesyłka, Inne. | ||
10 | Szczegoly | varchar | 1000 | Dodatkowe informacje. | |
11 | DataWycofania | Data | 10 | Data wycofania zgody, format: RRRR MM DD | |
12 | PowodWycofania | varchar | 255 | Powód wycofania zgody wg słownika kategorii. | |
13 | ZrodloWycofania | varchar | 255 | Źródło wycofania zgody, wg słownika kategorii. |
Administracja danych
Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Administracja danych.
Czynności PDO
Lp. | CzynnosciPDO.xls | Opis | Wymagane |
||
Wymagane | Nazwa kolumny | Typ danych | Ilość znaków | ||
1 | LP | integer | Tak | ||
2 | Numer | integer | |||
3 | Kategoria | varchar | 255 | Tak | |
4 | Cel | varchar | 4000 | ||
5 | KategorieOsob | varchar | 4000 | ||
6 | KategorieDanych | varchar | 4000 | ||
7 | KategorieOdbiorcow | varchar | 4000 | ||
8 | terminyUsuniecia | varchar | 4000 | ||
9 | InfDodatkowe | varchar | 4000 |
Migracja danych
Do migracji danych służy przycisk Migruj Dane. Poszczególne kanwy mogą zawierać dodatkowe informacje:
- Kanwa do migracji dokumentów handlowych zawiera
- checkbox służący do automatycznego stworzenia stanów magazynowych towarów pod migrowanie dokumenty handlowe rozchodowe (Twórz PW)
- checkbox służący do automatycznego rozchodu stanów magazynowych towarów po imporcie dokumenty handlowe przychodowych (Twórz RW)
- Kanwa do migracji planu kont zawiera:
- pole do wpisania okresu obrachunkowego, w którym będą tworzone konta
- Kanwa do migracji stanów magazynowych zawiera:
- checkbox (Do bufora), po zaznaczeniu, którego dokumenty PW będą migrowane do bufora; podczas migrowania stanów magazynowych system dzieli dane po 500 wierszy i tworzy dokumenty PW zawierające 500 pozycji.
O postępie migracji informuje zielony pasek stanu i liczba wierszy wczytanych i błędów.
Po zakończeniu migracji pojawia się komunikat:

Raport błędów
Jeśli liczba błędów będzie większa od zera należy sprawdzić arkusz Excel z danymi po zamknięciu programu Migrator. W skoroszycie Excela zostanie dodany nowy arkusz z błędami (Zakładka Błędy) zawierający kod i opis błędu z przyporządkowanym wierszem danych.
XL007 - Konfiguracja HASP - Menadżer kluczy
Ogólna architektura
Ogólna architektura zabezpieczenia klucza HASP składa się z 5 warstw:
Warstwa 1 – klient usług zabezpieczeń – stanowią ją algorytmy w programie ERP XL, służące w ogólnym rozumieniu do zabezpieczenia programu przed nielegalnym używaniem. Klient usług zabezpieczeń dokonuje logowania i pobrania licencji z serwera zabezpieczeń (poprzez warstwę 2), odpowiada za zwrot pobranych licencji przy zamykaniu programu. Od v 2020 możliwe jest bezpośrednie połączenie warstwy 1 z warstwą 3 za pomocą protokołu http standardowo odbywa się to poprzez port 5150.
Warstwa 2 - stanowi ją MS SQL Server, na którym są zainstalowane procedury wbudowane (extended stored procedures) służące do komunikacji klienta usług zabezpieczeń z serwerem usług zabezpieczeń.
Warstwa 3 - to właściwy serwer zabezpieczeń – tzw. usługa HASP. Rolą tej usługi jest zarządzanie licencjami, czyli:
- kontrola liczby pobranych licencji,
- obsługa żądań pobrania i zwolnienia licencji,
- zwalnianie licencji zablokowanych przez instancje systemu, która zakończyła swoje działanie, a z różnych przyczyn nie zwolniła zablokowanych licencji.
Warstwa 4 - to sprzętowy klucz HASP, który służy do przechowywania informacji o zakupionej puli licencji oraz do weryfikacji jej wykorzystania w trakcie pracy klienta (systemu ERP XL) oraz serwer zabezpieczeń (serwisu HASP)
Warstwa 5 – to połączenie do klucza wirtualnego, podczas gdy do instalacji może być podłączony jeden klucz HASP kluczy wirtualnych może być zarejestrowanych w instalacji większa ilość. Gdy do instalacji zostanie dodany klucze wirtualne warstwa 3 łączy się do serwera Comarch o adresie ml.comarch.pl – https i pobiera informacje o przypisanych do danego klucza licencjach, warstwa 3 co kilka godzin łączy się do serwera Comarch i pobiera ponownie informacje o kluczach maksymalnie czas ten może wynosić do 3 dni

Klient usług zabezpieczeń
Algorytm działania klienta usług zabezpieczeń jest następujący:
W momencie uruchomienia przez operatora programu ERP XL (dowolnego modułu), następuje zalogowanie klienta usług zabezpieczeń do serwera zabezpieczeń i pobranie wszystkich licencji przypisanych do operatora, który uruchomił system. Licencje są pobierane zgodnie z ustawieniami na zakładce {Parametry/Uprawnienia} karty operatora w module: Administrator. W celu poprawnego zalogowania aplikacji do serwera zabezpieczeń, muszą zostać pobrane wszystkie licencje ustawione dla danego operatora. Brak możliwości pobrania jakiejkolwiek licencji spowoduje, że dowolny moduł systemu, uruchomiony przez operatora będzie działał bez licencji. W takiej sytuacji zostanie wyświetlony komunikat informujący o tym, że nie udało się pobrać licencji i zalogować do serwera zabezpieczeń.
Wszystkie pobrane licencje w danej sesji są blokowane do wyłącznego użytku przez danego operatora, nawet jeśli w trakcie sesji nie uruchamia wszystkich modułów, na które pobrał licencje.
Wyjątek od powyższego opisu stanowi pobieranie licencji na moduł obsługi drukarek fiskalnych za pośrednictwem usług terminalowych. W tym przypadku licencja jest pobierana w przypadku pierwszego użycia terminalowych sterowników fiskalnych (FP600T.dll, DF300T.dll, DF300_1T.dll oraz INNOWAT.dll).

Jeżeli licencje zostały pobrane z serwera poprawnie, w trakcie pracy programu ERP XL następuje okresowa komunikacja z serwerem zabezpieczeń w celu sprawdzenia, czy serwis HASP pracuje poprawnie (np. czy ktoś nie wyjął klucza HASP z portu serwera), a także „poinformowanie” serwisu o tym, że aplikacja ERP XL nadal działa.
Po zakończeniu pracy programu następuje wylogowanie z serwisu zabezpieczeń i zwolnienie pobranych licencji.
Jeżeli przy uruchamianiu programu nie udało się pobrać licencji z klucza, praca z systemem ERP XL będzie możliwa tylko w ograniczonym zakresie, pozwalającym tylko i wyłącznie na przeglądanie danych, bez możliwości ich modyfikacji np. wystawiania i przekształcania dokumentów lub ich księgowania.
Procedury wbudowane na serwerze SQL
Warstwa ta służy w rzeczywistości do komunikowania się klienta usług zabezpieczeń z serwerem usług zabezpieczeń. Klient wywołuje procedury wbudowane, które zostały zainstalowane na serwerze SQL poprzez standardowe mechanizmy komunikacji aplikacji z serwerem bazy danych. Za pośrednictwem procedur, żądania klienta są przekazywane do serwera zabezpieczeń.
Dzięki takiemu rozwiązaniu zapewniona została bezproblemowa komunikacja sieciowa pomiędzy klientem, a serwerem usług zabezpieczeń – poprawne skonfigurowanie sieci dla potrzeb komunikacji z bazą danych gwarantuje równocześnie komunikację z serwerem zabezpieczeń.
Procedury te zwykle znajdują się na serwerze SQL, na którym znajdują się bazy danych programu ERP XL. Na tym samym komputerze co procedury wbudowane, musi znajdować się serwer zabezpieczeń. Istnieje jednakże możliwość zainstalowania procedur wbudowanych i serwera zabezpieczeń na innym komputerze niż serwer baz danych ERP XL. Warunkiem jest zainstalowanie na tym komputerze silnika bazy danych MS SQL Server (może to być bezpłatny silnik MSDE lub SQL Express). Równocześnie należy skonfigurować program ERP XL w taki sposób, aby odwoływał się do innego serwera zabezpieczeń niż serwer bazy danych. Należy to zrobić w oknie konfiguracji komputera:

W podanym powyżej przykładzie procedury wbudowane będące elementem systemu zabezpieczeń zostały zainstalowane na serwerze KASTOR.
Nazwa serwera klucza jest zapamiętywana w rejestrze systemowym, w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\ERP\HASP w wartości „Serwer”.
W przypadku braku określenia nazwy serwera klucza w aplikacji ERP XL, domyślnie zakłada się, że serwerem klucza jest serwer bazy danych.
Serwer usług zabezpieczeń
Serwer usług zabezpieczeń odpowiada za zarządzanie licencjami – sprawdzanie liczby pobranych licencji, obsługę żądań zalogowania i wylogowania.
Działanie serwera usług zabezpieczeń opisuje poniższy schemat:
Po uruchomieniu serwer zabezpieczeń komunikuje się z kluczem HASP bądź z serwerem kluczy wirtualnych dla kluczy wirtualnych w celu odczytania maksymalnej puli licencji, którą dysponuje.
W momencie pobrania przez klienta licencji, serwer zapamiętuje ten fakt i „odejmuje” pobraną licencję z dostępnej puli.
W momencie wylogowania się klienta, zwalniane są pobrane wcześniej przez niego licencje.
Dla właściwego zrozumienia zachowania programu w pewnych szczególnych przypadkach, pomocne będą poniższe uwagi.
Okresowa kontrola Klucza HASP
W trakcie pracy, co pewien czas, serwer zabezpieczeń sprawdza obecność klucza HASP. Oznacza to, że jeśli w trakcie pracy serwera zabezpieczeń zostanie wyjęty klucz HASP, praca wszystkich zalogowanych do serwera aplikacji ERP XL zostanie zablokowana.
Wielokrotne logowanie
Jeżeli Użytkownik na tym samym komputerze uruchomi wielokrotnie program ERP XL (różne moduły), to pobierze z serwera każdą licencję tylko jeden raz.
Awaryjne zakończenie pracy
Jeżeli Użytkownik aplikacji ERP XL zakończy jej pracę inaczej niż poprzez wybranie opcji: Koniec pracy i nie nastąpi wylogowanie z serwera zabezpieczeń, to licencje pobrane przez tego Użytkownika będą zablokowane jeszcze przez pewien określony czas (domyślnie 1800 sekund). Po tym czasie licencje zostaną zwrócone do puli i inny Użytkownik będzie mógł je pobrać.
Blokowanie licencji dotyczy wyłącznie Użytkowników uruchamiających program ERP XL z innych komputerów. Zgodnie z zasadą opisaną w rozdziale Wielokrotne logowanie, jeżeli Użytkownik zakończy pracę programu ERP XL inaczej niż poprzez wybranie opcji: Koniec pracy, to będzie mógł na tym samym komputerze ponownie uruchomić program ERP XL, wykorzystując wcześniej pobraną licencję, która nie została jeszcze automatycznie zwolniona
Klucz HASP
Serwer zabezpieczeń komunikuje się bezpośrednio z kluczem HASP, który stanowi sprzętowe zabezpieczenie, służące do weryfikacji posiadanej puli licencji.
Zabezpieczenie może być realizowane za pomocą kluczy typu: MemoHasp lub NetHasp. Klucze te są dostępne dla portów USB lub LPT. Dostępne są również klucze na karcie PCIMCIA. Mają one zastosowanie w komputerach przenośnych stosowanych w celach prezentacyjnych lub testowych.
W przypadku klucza MemoHasp musi być on wpięty w lokalny port komputera, na którym znajduje się serwer zabezpieczeń.
Modele instalacji ERP XL z serwerem klucza HASP
Instalacja jednostanowiskowa

Instalacja sieciowa

Instalacja sieciowa z wyodrębnionym serwerem zabezpieczeń

Współpraca XL-a z Menadżerem Kluczy
Instalacja Menadżera kluczy
Aplikacja Comarch ERP Menadżer Kluczy dostępna jest na stronach walidowanych dla Partnerów w sekcji Comarch ERP XL, podsekcja Pobierz wersję. Szczegółowy opis instalacji zawarty jest w dokumentacji do aplikacji Comarch ERP Menadżer Kluczy.
Ogólna konfiguracja
Odwołanie do klucza
W Menadżerze Kluczy może znajdować się więcej, niż jeden klucz. Może być to jeden klucz fizyczny HASP i klucze wirtualne bądź same klucze wirtualne. W systemie Comarch ERP XL należy więc wskazać odwołanie do konkretnego klucza z którego mają być pobierane licencje. Pełny wpis powinien mieć format:Nazwa serwera\nazwa instancji::numer klucza, zgodnie z poniższym zrzutem:

Od v 2020.1 wprowadzono możliwość łączenia się bezpośrednio z menadżerem klucza bez pośrednictwa serwera SQL za pomocą protokołu http , domyślnym portem po którym odbywa się komunikacja jest port 5150 , ponieważ łączymy się bez pośrednictwa serwera SQL nie podajemy nazwy instancji a jedynie nazwy serwera i po :: nr klucza lub gdy w instalacji jest obecny jeden klucz zabezpieczający samą nazwę serwera.
Wartości te zapisywane są w rejestrze systemu Windows pod ścieżką:
HKEY_CURRENT_USER\Software\CDN\HASPXL:

Informacje o pobranych licencjach
Informacje o aktualnie pobranych licencjach możemy uzyskać z poziomu interfejsu programu ERP XL, wykorzystując funkcje serwera zabezpieczeń lub używając procedury serwerowej xp_HASPSetIdleTime lub z poziomu Monitora Menadżera Kluczy.
Aby wyświetlić informację o pobranych licencjach z poziomu programu ERP XL należy wybrać z menu polecenie: Pomoc/O programie/Informacje o kluczu sprzętowym:

Wyświetlone informacje zawierają: nazwę modułu, aktualną ilość dostępnych licencji, początkową ilość licencji, status oraz datę pobrania licencji.
Drugą możliwością sprawdzenia informacji o pobranych licencjach z klucza HASP jest wywołanie procedury xp_HASPLicenceStateInfo z bazy master:

Trzecią możliwością sprawdzenia ilości pobranych licencji jest Monitor Menadżera Kluczy. W tym celu z menu kontekstowego należy wybrać opcję: Pokaż konfigurację i przejść do zakładek: Dostępne moduły (informacje ogólne dotyczące ilości dostępnych oraz pobranych licencji) oraz: Pobrane moduły (informacje szczegółowe uwzględniające pobranie licencji przez poszczególnych operatorów):


Informację tę można również wywołać na dowolnym komputerze w sieci wpisując adres serwera na którym zainstalowany został Menadżer Kluczy w przeglądarce internetowej wraz z numerem portu TCP/IP:
http://Nazwa_Serwera:5150 lub http://IP_Adres_Serwera:5150:

W przypadku, gdy w Menadżerze Kluczy znajduje się więcej, niż jeden klucz należy do powyższych wpisów dodać odwołanie: http://Nazwa_Serwera:5150/numer klucza.
Ustawienie czasu zwolnienia licencji
Serwer HASP posiada zabezpieczenie przed zablokowaniem licencji pobranych, a niezwróconych przez program ERP XL. System ten jest oparty o okresową komunikację programu ERP XL z serwerem zabezpieczeń. Jeżeli program nie skomunikuje się z serwerem przez pewien określony czas, serwer uznaje proces za „martwy” i zwalnia pobrane przez tego klienta licencje.
System ten może powodować problemy podczas przetwarzania przez program długotrwałych operacji wsadowych. Jeśli czas trwania operacji przekroczy czas oczekiwania serwera na zwolnienie licencji, serwer wyloguje klienta i program ERP XL wyświetli komunikat o braku licencji.
Z kolei ustawienie zbyt dużej wartości będzie blokować możliwość uruchamiania programu na innych stanowiskach w przypadku niepoprawnego zakończenia pracy z programem ERP XL (patrz: Awaryjne zakończenie pracy).
Domyślny czas oczekiwania na zwolnienie licencji przez serwer wynosi 30 minut. Czas ten możemy zmienić bezpośrednio w rejestrze Windows w kluczu: HKEY_LOCAL_MACHINE\SOFTWARE\ERP\HASP\IdleTime (patrz: Konfiguracja serwisu HASP) lub wykorzystując procedurę serwerową xp_HASPSetIdleTime, podając czas oczekiwania w sekundach. Aby dokonać ustawienia tego czasu na pół godziny można wykonać następujące polecenie SQL:
execute xp_HASPSetIdleTime @IdleTime=1800
Równocześnie aktualne ustawienie czasu oczekiwania można sprawdzić poprzez procedurę xp_HASPGetIdleTime, poleceniem:
execute xp_HASPGetIdleTime
Ustalając czas oczekiwania, należy pamiętać o tym, że ustawienie zbyt małej wartości będzie powodować problemy przy wykonywaniu długotrwałych operacji wsadowych (niezalecane jest ustawienie tego czasu poniżej 300 sekund).
IdleTime można również ustawić w poziomu Menadżera kluczy, zakładka Konfiguracja, okno Zaawansowane:

Czas, jaki upłynął od ostatniej komunikacji systemu ERP XL z serwerem zabezpieczeń, można skontrolować w oknie przeglądarki www w kolumnie „Zalogowani użytkownicy” (ostatni człon wpisu) lub bezpośrednio w programie ERP XL (należy wybrać z menu polecenie: Pomoc/O programie/Informacje o kluczu sprzętowym i ikonką lupy wybrać interesującą nas licencje).

Informacja taka zawarta jest także w Menadżerze Kluczy, zakładka Pobrane Moduły:

Programowanie klucza HASP
Klucz HASP programuje się celem aktualizacji posiadanej puli licencji bądź w celu aktualizacji daty ważności prawa do aktualizacji wersji systemu Comarch ERP XL. Do programowania klucza służy plik RUS, który można uzyskać w dziale Sprzedaży COMARCH bądź na stronach iZam. W celu wykonania czynności programowania należy z menu kontekstowego Menadżera Kluczy wywołać polecenie:

XL012 - Wydruki tekstowe
Ogólna struktura mechanizmu wydruków tekstowych
Wydruki tekstowe zostały oparte o mechanizm wydruków XML, dlatego na początku w skrócie zostanie nakreślona zasada działania wydruków XML.
Wydruki XML
Definicja wydruku XML zawiera 4 sekcje: [SQL], [XSL], [FILE] i [RUN]
Sekcja SQL
Sekcja ta zawiera zapytanie (lub zapytania SQL), które zostaną zadane do bazy danych. Na podstawie zwróconych recordsetów tworzony jest plik XML o strukturze:
<ROOT>
<RECORDSET1>
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”wartość kolumny 2” .../>
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”wartość kolumny 2” .../>
</RECORDSET1>
<RECORDSET2>
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”wartość kolumny 2” .../>
<RECORD NazwaKolumny1=”wartość kolumny 1” NazwaKolumny2=”wartość kolumny 2” .../>
</RECORDSET2>
</ROOT>
Tagów RECORDSETn jest tyle, ile recordsetów zwracają zapytania z sekcji [SQL] (są one kolejno numerowane).
Tagów RECORD w każdym tagu RECORDSETn jest tyle, ile wierszy zwróciło dane zapytanie.
Każdy tag RECORD posiada tyle atrybutów, ile kolumn zwraca zapytanie. Nazwa danego atrybutu odpowiada nazwie kolumny, a wartość atrybutu - wartości kolumny, np.
<RECORD Knt_GIDNumer=”1” Knt_Kod=”COMARCH” />
Sekcja XSL
Sekcja XSL zawiera schemat, który jest „nakładany” na plik XML wygenerowany zgodnie z opisem w poprzednim punkcie. W wyniku tego „nałożenia” powstaje plik wynikowy.
Sekcja FILE
Sekcja FILE zawiera nazwę pliku, pod jaką zostanie zapisany wynikowy plik XML. Jeżeli sekcja FILE jest pusta, wówczas plik wynikowy zostanie zapisany w katalogu tymczasowym pod nazwą rptNNN.tmp (gdzie NNN jest liczbą szesnastkową)
Sekcja RUN
Sekcja RUN zawiera nazwę programu, do którego zostanie przesłany plik wynikowy. Jeżeli sekcja RUN jest pusta, wówczas plik wynikowy zostanie wysłany do programu domyślnego ze względu na rozszerzenie pliku, np.:
[FILE]
C:\wynik.xml
[RUN]
spowoduje zapisanie pliku wynikowego do pliku C:\wynik.xml i otwarcie go za pomocą przeglądarki internetowej.
Parametry dynamiczne
Cała definicja wydruku XML jest poddawana analizie przez silnik parametrów dynamicznych. Może to być wykorzystywane w dwóch przypadkach:
- do przekazywania parametrów dynamicznych wydruku (np. filtr aplikacji, opis wydruku itp.),
- do wywoływania okienka z parametrami, które do wydruku przekazuje użytkownik.
Aplikacja może przekazać do wydruku listę parametrów dynamicznych, zgodnie z zawartością zakładki Parametry na oknie Konfiguracja wydruków.
Dodatkowo użytkownik może definiować własne parametry dynamiczne, dla których, w chwili wykonywania wydruku, zostanie wyświetlone okno z zapytaniem o wartość parametru.
Opis działania parametrów dynamicznych znajduje się w biuletynie poświęconym modułowi analiz (tworzenie wykresów)
Działanie parametrów dynamicznych zostanie w dalszej części zilustrowane na przykładzie.
Wydruk tekstowy
Do potrzeb wydruków tekstowych przygotowany został program PrintTxt.EXE, który jako parametr wejściowy otrzymuje plik XML o określonej strukturze i w wyniku swego działania przetwarza ten XML na plik tekstowy, który jest kierowany na drukarkę.
Pełny mechanizm generowania wydruku polega na przygotowaniu pliku XML o określonej strukturze, a następnie przetworzenie go przez program PrintTxt.EXE
Struktura plików XML dla wydruków tekstowych
Plik XML, który jest przekazywany do programu PrintTxt.EXE powinien mieć następującą strukturę:
<ROOT> <!-- one, req -->
<RAPORT> <!-- many, req -->
<PARAM/> <!-- many, opt -->
<RPT_HEADER> <!-- one, opt -->
<LINE> <!-- many, opt -->
<PARAM/> <!-- many, opt -->
<FIELD/> <!-- many, opt -->
</LINE>
</RPT_HEADER>
<PG_HEADER> <!-- one, opt -->
<LINE> <!-- many, opt -->
<PARAM/> <!-- many, opt -->
<FIELD/> <!-- many, opt -->
</LINE>
</PG_HEADER>
<DETAIL> <!-- many, req -->
<LINE> <!-- many, req -->
<PARAM/> <!-- many, opt -->
<FIELD/> <!-- many, opt -->
</LINE>
</DETAIL>
<PG_FOOTER> <!-- one, opt -->
<LINE> <!-- many, opt -->
<PARAM/> <!-- many, opt -->
<FIELD/> <!-- many, opt -->
</LINE>
</PG_FOOTER>
<RPT_FOOTER> <!-- one, opt -->
<LINE> <!-- many, opt -->
<PARAM/> <!-- many, opt -->
<FIELD/> <!-- many, opt -->
</LINE>
</RPT_FOOTER>
</RAPORT>
</ROOT>
Oczywiście komentarze nie muszą występować w pliku XML - tutaj zostały dodane, aby oznaczyć czy dany tag ma występować, czy też nie: many oznacza, że tag może wystąpić wiele razy, one oznacza, że dany tag (na określonym poziomie) może wystąpić tylko raz, req oznacza, że dany tag jest wymagany, opt oznacza, że dany tag jest opcjonalny.
Zawartość tagów
ROOT
Na najwyższym poziomie pliku XML musi wystąpić tylko jeden tag o nazwie ROOT
RAPORT
RAPORT zawiera definicję pojedynczego wydruku. Na ogół ROOT zawierał będzie jeden tag RAPORT, jednakże w przypadku konstruowania wydruków seryjnych możliwe jest umieszczenie wielu tagów RAPORT. Istotne jest to, że dla każdego tagu RAPORT zerowana jest numeracja stron.
RPT_HEADER
Tag ten zawiera definicję wyglądu nagłówka raportu. Nagłówek ten zostanie wydrukowany jeden raz na początku raportu.
PG_HEADER
Tag ten zawiera definicję wyglądu nagłówka strony. Nagłówek ten zostanie wydrukowany na początku każdej strony.
DETAIL
Tag ten zawiera definicję zawartości wierszy raportu.
PG_FOOTER
Tag ten zawiera definicję wyglądu stopki strony. Stopka ta zostanie wydrukowana na końcu każdej strony.
RPT_FOOTER
Tag ten zawiera definicję wyglądu stopki raportu. Stopka ta zostanie wydrukowana jeden raz na końcu raportu.
PARAM | P
Tag ten zawiera definicję parametrów. Parametry są zmiennymi raportu, w których można zapisywać pewne informacje (np. takie, do których się potem wielokrotnie odwołujemy) czy dokonywać pewnych obliczeń (np. sumy). Każdy raport posiada pewną predefiniowaną listę parametrów systemowych (takich jak np. numer strony, numer linii, typ drukarki itp.). Nazwy parametrów systemowych są poprzedzone znakiem @.
Jeżeli odwołujemy się do jakiegoś parametru (np. przy obliczeniach) to jego nazwę poprzedzamy znakiem @, stąd odwołanie do parametrów systemowych poprzedzone jest poprzez @@ (np. @@PAGENO)
Tag PARAM może posiadać następujące atrybuty:
name | nazwa parametru |
---|---|
type | typ parametru Dopuszczalne wartości to text i number. Domyślnym typem jest text Uwaga: typ parametru jest istotny ze względu na operacje dokonywane na nich. Przykładowo, mając dwa parametry P1 i P2 o wartościach odpowiednio 1 i 2, jeżeli wykonamy na nich operację @P1+@P2, to w przypadku parametrów typu number w wyniku otrzymamy 3, a jeśli co najmniej jeden z nich będzie typu text, to w wyniku otrzymamy 12 |
value | wartość parametru |
calc | przyjmuje wartości true i false (domyślnie false). Określa, czy wartość parametru jest podana przez wartość (calc=”true”), czy przez wyrażenie (calc=”false”). Przykładowo, jeśli value=”@P1+@P2” calc=”true” to jako wartość parametru zostanie podstawiony wynik wykonania działania na parametrach P1 i P2. Jeżeli natomiast calc=”false”, wówczas jako wartość parametru zostałby podstawiony po prostu tekst @P1+@P2. |
Tagi PARAM mogą być elementami tagu RAPORT (zainicjalizowanie lub jednorazowe ustawienie parametru na początku wydruku). W tym miejscu można ustawiać niektóre parametry systemowe (np. typ drukarki, nazwa urządzenia wyjściowego) oraz zapamiętywać w zmiennych stałe wartości parametrów, które będą później wielokrotnie wykorzystywane w raporcie.
Tagi PARAM mogą być również elementami tagów LINE . wówczas są one przeliczane dla każdej linii.
Dla wydruku definiowane są następujące parametry systemowe
@PRINTER | nazwa urządzenia wyjściowego (np. LPT1, \\KOMPUTER\DRUKARKA, C:\PLIK.TXT – jeżeli chcemy w wydruku zaszyć urządzenie wyjściowe). Możemy również zastosować drukowanie na drukarkę Windows służy do tego parametr dynamiczny ?@Hs100_NQ|Printer:''@?. |
---|---|
@VIEWER | nazwa programu służącego do podglądu wydruku, domyślnie jest to „notepad.exe” . |
@CODEPAGE | sposób kodowania polskich znaków na drukarce. Aktualnie dostępne wartości MAZOVIA, LATIN i EMULATOR (oznacza tworzenie polskiej litery poprzez wydrukowanie litery łacińskiej, cofnięcie karetki i wydrukowanie ogonka lub akcentu). Ustawienie tego parametru inicjalizuje wartość parametrów @INPUTCODE i @OUTPUTCODE. Domyślnie wartość pusta, oznaczająca brak przekodowania. Zagadnienie dotyczące przekodowania polskich liter omówione jest szczegółowo dalej. |
@INPUTCODE | tekst wejściowy dla algorytmu przekodowania polskich liter. Inicjalizowany zgodnie z parametrem @CODEPAGE. |
@OUTPUTCODE | tekst wyjściowy dla algorytmu przekodowania polskich liter. Inicjalizowany zgodnie z parametrem @CODEPAGE. |
@PRINTERTYPE | typ drukarki. Aktualnie dostępne wartości to EPSON i PCL. Powodują ustalenie kodów sterujących dla drukarki (w szczególności tryby zagęszczone i pogrubione) |
@FONT_NARROW | kod przełączenia drukarki w tryb czcionki zagęszczonej. Inicjalizowany zgodnie z ustawieniem parametru @PRINTERTYPE |
@FONT_NARROW_ | kod końca tryby czcionki zagęszczonej. Inicjalizowany zgodnie z ustawieniem parametru @PRINTERTYPE |
@FONT_BOLD | kod przełączenia drukarki w tryb czcionki pogrubionej. Inicjalizowany zgodnie z ustawieniem parametru @PRINTERTYPE |
@FONT_BOLD_ | kod końca trybu czcionki pogrubionej. Inicjalizowany zgodnie z ustawieniem parametru @PRINTERTYPE |
@CR | znak cofnięcia karetki do początku strony (domyślnie znak o kodzie 13) |
@LF | znak przejścia do nowej linii (domyślnie znak o kodzie 10) |
@FF | znak końca strony (domyślnie znak o kodzie 12) |
@BS | znak cofnięcia karetki o jeden znak (domyślnie znak o kodzie 8) |
@PAGENO | numer strony |
@PAGETOT | łączna liczba stron wydruku |
@LINENO | numer linii na stronie |
@PAGELENGTH | liczba wierszy na stronie (domyślnie 60) |
LINE | L
Tag ten zawiera definicję wyglądu linii oraz (opcjonalnie) definicje parametrów. Przy przetwarzaniu tagu LINE najpierw obliczane są parametry zdefiniowane dla danej linii, a następnie na podstawie zawartości tagów FIELD tworzony jest .wygląd. linii na wydruku. Po przetworzeniu tagu LINE do pliku wynikowego dodawany jest automatycznie znak nowej linii
FIELD | F
Tag FIELD zawiera definicję pojedynczego pola w drukowanej linii. Tag ten może posiadać następujące atrybuty:
name | Jeżeli atrybut nazwa jest ustawiony, to pole jest traktowane tak jak parametr, tzn. wartość aktualnie drukowanego pola jest zapamiętywana jako zmienna |
---|---|
type | Typ pola. Dopuszczalne wartości to text i number (domyślnie text). Od ustawienia typu pola zależy jego formatowanie, wyrównywanie itp. |
value | Wartość pola. Może być podana jako wartość (jeżeli calc=”false”) lub jako wyrażenie (jeżeli calc=”true”) |
align | Sposób wyrównania pól. Dopuszczalne wartości to left, right i center (domyślnie: brak wyrównania dla tekstu i wyrównanie do prawej dla liczb) |
width | Szerokość pola. |
prec | Dla pól typu number oznacza liczbę miejsc po przecinku. |
calc | Określa, czy value zawiera wartość (calc=”false”) czy wyrażenie (calc=”true”) |
fill | Znak dopełniający pole do pełnej szerokości podanej w width. Domyślnie spacja. |
hide | Jeżeli hide=”true” to pole jest ukrywane |
hidezero | Jeżeli hidezero=”true” to dla pól typu number ukrywane są nieznaczące miejsca po przecinku (w ich miejsce pojawia się spacja) |
blankzero | Jeżeli blankzero=”true” to pola typu number o wartości 0 są ukrywane. |
Wszędzie tam gdzie parametr może przyjmować wartości true lub false możliwe jest również wprowadzanie wyrażeń. Poniższy przykład ilustruje sposób wydrukowania pola tylko na ostatniej stronie: <LINE>
<FIELD value=”napis na stronie” hide=”@@PAGENO!=@@PAGETOT” />
</LINE>
Parametry systemowe a typ drukarki
W poniższym rozdziale zostaną omówione kwestie ustalania kodów sterujących dla drukarek oraz przekodowania polskich liter.
Ustawienie typu drukarki
Obecnie program drukujący potrafi obsługiwać 2 standardy drukarek: EPSON (drukarki igłowe) oraz PCL (większość drukarek atramentowych i laserowych). Ustalenie typu drukarki jest niezbędne ze względu właściwą obsługę kodów sterujących drukarki, w szczególności przełączania pisma na pogrubione i zawężone.
Jeżeli drukarka wymaga innych kodów sterujących, można to osiągnąć poprzez ustawienie parametrów:
- @FONT_NARROW
- @FONT_NARROW_
- @FONT_BOLD
- @FONT_BOLD_
Przykładowo, ustawienie kodów równoważnych dla trybu EPSON można uzyskać poprzez wpisanie:
<PARAM calc="true" type="text" name="@FONT_NARROW" value="String.fromCharCode(15)"/>
<PARAM calc="true" type="text" name="@FONT_NARROW_" value="String.fromCharCode(18)"/>
<PARAM calc="true" type="text" name="@FONT_BOLD" value="String.fromCharCode(14)"/>
<PARAM calc="true" type="text" name="@FONT_BOLD_" value="String.fromCharCode(20)"/>
Natomiast ustawienie kodów równoważnych dla trybu PCL można uzyska poprzez wpisanie:
<PARAM calc="true" type="text" name="@FONT_NARROW" value="String.fromCharCode(27)+'&k2S'"/>
<PARAM calc="true" type="text" name="@FONT_NARROW_" value="String.fromCharCode(27)+'&k0S'"/>
<PARAM calc="true" type="text" name="@FONT_BOLD" value="String.fromCharCode(27)+'(s7B'"/>
<PARAM calc="true" type="text" name="@FONT_BOLD_" value="String.fromCharCode(27)+'(s0B'"/>
Ustawienie standardu polskich liter
Obecnie program drukujący potrafi obsługiwać polskie litery w standardach Mazovia i Latin oraz emulować polskie litery poprzez wydruk litery łacińskiej i dodanie do niej akcentu czy ogonka.
Jeżeli drukarka obsługuje polskie litery w jakimś innym standardzie, można uzyskać wydruki poprzez ustalenie wartości parametrów:
- @INPUTCODE lista polskich znaków w standardzie Windows, oddzielonych znakami |
- @OUTPUTCODE lista polskich znaków w standardzie drukarki, oddzielonych znakami |
Przykładowo, aby uzyskać przekodowanie polskich liter na litery łacińskie (wydruk bez polskich liter) należałoby wpisać:
<PARAM type="text" name="@INPUTCODE" value="Ą|ą|Ć|ć|Ę|ę|Ł|ł|Ń|ń|Ó|ó|Ś|ś|Ź|ź|Ż|ż|"/>
<PARAM type="text" name="@OUTPUTCODE" value="A|a|C|c|E|e|L|l|N|n|O|o|S|s|Z|z|Z|z|"/>
Przykład definicji wydruku
Zasady budowania definicji wydruku zostaną omówione na przykładzie wydruku Faktury sprzedaży. Przykład ten został wybrany na względu na stosunkowo prostą formę wydruku oraz powszechność w użyciu. Definicja tego wydruku jest w standardowej bazie wydruków programu. W niniejszym biuletynie omówimy tylko ciekawsze fragmenty formatu wydruku.
Projektowanie wydruku
Dla potrzeb sprawnego wykonania wydruku należy wcześniej dokładnie zaplanować jego wygląd. Ze względu na to, że na wydrukach tekstowych wyrównanie kolumn uzyskuje się przez dobór ich szerokości (liczonej w znakach) szczególnie ważne jest zaplanowanie rozkładu poszczególnych pól na wydruku. Do potrzeb wydruku przyjęto, że na stronie mieści się 80 znaków w trybie normalnym oraz 133 znaki w trybie zagęszczonym.
Sekcja SQL
Sekcja SQL zawiera pięć zapytań - tak więc do „pierwotnego” pliku XML zostanie podstawionych pięć recordsetów.
Select Frm_Nazwa1, Frm_Nazwa2, Frm_Nazwa3, Frm_KodP+' '+Frm_Miasto As Frm_Miasto, Frm_Ulica, 'NIP: '+ Frm_NIP As Frm_Nip From CDN.Firma where Frm_GIDNumer=1
Powyższe zapytanie wyciąga dane firmy (pieczątkę firmy) z odpowiedniej tabeli.
exec CDN.wydrTabelkaPlatnosciIVat ??_QFiltr
Powyższe zapytanie wyciąga tabelkę płatności oraz vat dla danego dokumentu. Jak widzimy w sekcji SQL oprócz zapytania SELECT możemy również wywołać procedurę serwerową - klauzula EXEC (EXECUTE).
Zastosowanie w sekcji parametrów procedury wyrażenia ??_QFiltr spowoduje podstawienie w jego miejsce filtru przekazanego z listy (a więc wydruk będzie zawierał dokładnie płatności i tabelę VAT dla wybranego dokumentu). Użycie wywołania wyrażenia ??_QFiltr było możliwe dzięki temu, że we wcześniejszym zapytaniu (w sekcji WHERE klauzuli SQL) użyliśmy deklaracji tego parametru ?@H200_NQ|Filtr:’’@?. Warto zwrócić uwagę, że parametr dynamiczny został wywołany z opcją H, co spowoduje, że użytkownik nie będzie monitowany o podanie jego wartości (parametr zostanie przekazany z aplikacji). Kolejną opcją, na którą warto zwrócić uwagę to opcja NQ w deklaracji parametru i Q (brak N w tej opcji) w wywołaniu tego parametru. Oznacza ona, że przekazany filtr nie będzie otaczany apostrofami (NQ) lub będzie (Q).
Sekcja XSL
Początkowy fragment definicji, tzn.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method = "xml" omit-xml-declaration="yes"/>
<xsl:preserve-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="ROOT">
<xsl:value-of disable-output-escaping="yes" select="string('<?xml version="1.0"
encoding="windows-1250"?>')"/>
można w zasadzie uznać za stały. Ustala on sposób przetwarzania „wejściowego” pliku XML oraz ustawia nagłówek pliku wyjściowego. Następnie rozpoczyna się właściwa deklaracja definicji wydruku.
RAPORT
W tagu RAPORT jest ustalonych kilka tagów PARAM (a więc zdefiniowanych kilka zmiennych raportu). Ich znaczenie jest następujące:
Poniższe 3 tagi zawierają ustawienia wartości parametrów systemowych, powodujące ustalenie portu wydruku jako LPT1, typu drukarki jako EPSON i standardu polskich liter na drukarce jako MAZOVIA
<PARAM type="text" name="@PRINTER" value="LPT1"/>
<PARAM type="text" name="@PRINTERTYPE" value="EPSON"/>
<PARAM type="text" name="@CODEPAGE" value="MAZOVIA"/>
Kolejny tag:
<xsl:apply-templates select="RECORDSET1"/>
powoduje wykonanie template dla recordsetu 1. Są z nim związane następujące dalsze fragmenty w definicji:
<xsl:template match="RECORD" mode="r1">
<P type="text" name="FRM_NAZWA1"><xsl:attribute name="value"><xsl:value-of select="@Frm_Nazwa1" /></xsl:attribute></P>
<P type="text" name="FRM_NAZWA2"><xsl:attribute name="value"><xsl:value-of select="@Frm_Nazwa2" /></xsl:attribute></P>
<P type="text" name="FRM_NAZWA3"><xsl:attribute name="value"><xsl:value-of select="@Frm_Nazwa3" /></xsl:attribute></P>
<P type="text" name="FRM_ULICA" ><xsl:attribute name="value"><xsl:value-of select="@Frm_Ulica" /></xsl:attribute></P>
<P type="text" name="FRM_MIASTO"><xsl:attribute name="value"><xsl:value-of select="@Frm_Miasto" /></xsl:attribute></P>
<P type="text" name="FRM_NIP" ><xsl:attribute name="value"><xsl:value-of select="@Frm_Nip" /></xsl:attribute></P>
</xsl:template>
Cały ten zabieg powoduje podstawienie wartości pól odczytanych z pierwszego recordsetu do odpowiednich parametrów.
RPT_HEADER
W tagu RPT_HEADER znajduje się pieczątka firmy, dane faktury (numer, data wystawienia, data sprzedaży, numer konta bankowego, dane kontrahentów itp.). Informacje te będą drukowane tylko na pierwszej stronie wydruku.
Zawiera on kilkanaście tagów L [LINE] . tak więc nagłówek raportu będzie liczył tyleż linii.
Omówimy tylko kilka linii na które należy zwrócić uwagę:
<L>
<F value="+-Sprzedawca:" width="42" fill="-"/>
<F value="+" width="5"/>
<F calc="true" value="@@FONT_BOLD"/>
<F value="Faktura VAT"/>
<F calc="true" value="@@FONT_BOLD_"/>
</L>
W powyższej linii na wydruku będzie wydrukowane
+-Sprzedawca:---------------------------+ Faktura VAT
Czyli na 42 znakach (width=”42”) zostanie wydrukowany tekst „+-Sprzedawca” (zawartość atrybutu value), 30 znaków minus - (minus bo atrybut fill="-", 30 bo 42-12 gdzie 42 to wartość atrybutu width, a 12 to długość stringu w wartości atrybutu value). Jest to pierwsze pole w linii. Drugie pole to + i cztery spacje, następne pole to pogrubiony napis Faktura VAT (dzięki wstawieniu znaków sterujących zapisanych w parametrze @FONT_BOLD). Następne linie będą drukowane fontem normalny, ponieważ został wstawiony znacznik końca fontu pogrubionego (@FONT_BOLD_).
<L>
<F value="|" width="2"/>
<F calc="true" value="@FRM_NAZWA1" width="40"/>
<F value="|"/>
</L>
W powyższej linii mamy wstawioną nazwę firmy na długości 40 znaków otoczonej znakami |. Nazwa firmy znajduje się w parametrze @FRM_NAZWA1, którego wartość brana jest z zapytania SQL omawianego w sekcji SQL.
<L hide="!(@NAB_NAZWA2!='' || @ODB_NAZWA2!='')">
<F calc="true" value="@NAB_NAZWA2" width="60"/>
<F calc="true" value="@ODB_NAZWA2" width="60"/>
</L>
Powyższa linia zawiera drugi człon nazwy kontrahenta głównego (nabywca) oraz docelowego (odbiorca). Warto zwrócić uwagę na atrybut hide, który steruje wyświetlaniem tej linii. Linia ta będzie drukowana wtedy, gdy jedna z wartości @NAB_NAZWA2 lub @ODB_NAZWA2 będzie niepusta, czyli jeżeli na odpowiednich adresach kontrahentów będą wypełnione drugie pola w nazwie kontrahenta. Dzięki temu unikniemy „pustych” linii na wydruku.
PG_HEADER
Kolejnym tagiem jest PG_HEADER. Zawiera on 3 tagi L [LINE], tak więc nagłówek strony będzie liczył 3 linie, które są nagłówkiem tabelki z pozycjami faktury.
DETAIL
Kolejny tag DETAIL zawiera pozycje faktury. Do jego wygenerowania wykorzystany jest template tworzący linię dla każdego wiersza z recordsetu czwartego
<DETAIL>
<xsl:apply-templates select="RECORDSET4"/>
</DETAIL>
i dalej
<xsl:template match="RECORDSET4">
<xsl:apply-templates select="RECORD" mode="r4"/>
</xsl:template>
<xsl:template match="RECORD" mode="r4">
.....
</xsl:template>
Każda pozycja na fakturze generuje na wydruku jedną linię. W ramach tej linii obliczane są pewne zmienne oraz drukowane pola.
RPT_FOOTER
RPT_FOOTER zawiera podsumowanie całego wydruku, czyli tabelkę płatności, tabelkę VAT, kwotę dokumentu itp.
PG_FOOTER
PG_FOOTER zawiera dolne obramowanie tabelki pozycji faktury, stronę wydruku oraz informuje o nazwie programu, z którego powstał wydruk.
Proszę zwrócić uwagę, że linia, która jest obramowaniem tabelki pozycji drukowana na ostatniej stronie wygląda inaczej niż linia drukowana na innych stronach (ze względów estetycznych, na ostatniej stronie, linia ta stanowi równocześnie górne obramowanie tabelki z płatności i vat). Zostało to uzyskane przez wykorzystanie atrybutu hide.
<L><F value="+----+------------+--------------------------------------------+-----------------+--------------+-----+--------------+--------------+" hide="@@PAGENO==@@PAGETOT"/></L>
<L/>
<L hide="@@PAGENO==1">
<F value="Strona:" width="10"/>
<F calc="true" value="@@PAGENO" width="3" type="number"/>
<F value="/"/>
<F calc="true" value="@@PAGETOT" width="3" type="number"/>
<F value="CDN XL (C) COMARCH S.A." align="right" width="120"/>
</L>
<L hide="@@PAGENO!=1"><F value="ERP XL (C) COMARCH S.A." align="right" width="133"/></L>
Warto zaznaczyć również, że numer strony w stopce strony nie drukowany jest na pierwszej stronie tylko na każdej następnej (warunek @@PAGENO==1). Na pierwszej stronie, drukowany jest w nagłówku raportu RPT_HEADER
Sekcja FILE
Sekcja FILE nie została wypełniona „pomocniczy” plik XML będzie więc zapisywany do katalogu TEMP.
Jeżeli w sekcji file wpiszemy np. C:\FS.XML to zostanie stworzony plik XML wygenerowany poprzez wydruk XML, jest to plik będący bezpośrednio działaniem mechanizmu wydruków XML i jest on poddawany dalszej obróbce przez program PrintTXT.
W ramach testów mechanizmu wydruków można taki plik wygenerować i zobaczyć jego strukturę.
Sekcja RUN
Sekcja RUN zawiera wywołanie programu PrintTXT.EXE, przetwarzającego plik XML na plik tekstowy wysyłany do drukarki.
Wymagania systemowe
Wymagania systemowe dla poprawnego działania systemu ERP XL zostały opisane w dokumencie Wymagania Minimalne Systemu do aktualnej wersji...
Dodatkowo dla poprawnego działania wydruków tekstowych konieczne są komponenty:
- Microsoft Windows Script
- Microsoft Windows Script Control
Wersje instalacyjne powyższych komponentów oraz więcej informacji na ich temat można znaleźć w lokalizacji:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp
Drukowanie tekstowe w usługach terminalowych
Program printtxt.exe który obsługuje drukowanie txt nie pozwala na drukowanie gdy program XL pracuje w usługach terminalowych na drukarki zmapowane w sesji terminalowej. Do obsługi drukowania na drukarkach mapujących się w usługach terminalowych wykorzystano drukowania porze kanału wirtualne. Aby móc drukować wydruki txt w takim środowisku należy:
- W konfiguracji Stanowiska w zakładce Wydruki i wykresy zaznaczyć parametrWydruki tekstowe przez kanał wirtualny
- Zainstalować na komputerze gdzie podłączone są drukarki i gdzie uruchamia się klienta połączenia terminalowego program: PrintTxtDVC.exe który znajduje się w katalogu XL-a
XL053 - Wymiana dokumentów za pomocą systemu ECOD
Informacje wstępne
W celu przygotowania baz do wymiany dokumentów przez ECOD, należy:
- ustawić numery GLN na kontrahentach oraz na ich adresach wysyłkowych.
- ustalić numer GLN na pieczątce firmy oraz pamiętać o dodaniu pieczątki w strukturze firmy.
- ustalić kody EAN na towarach
- wskazać folder, do którego będą przekazywane odpowiednie pliki xml: Parametry komputera/Wymiana danych (w zależności od sposobu wymiany dokumentów)

Z listy rozwijalnej można wybrać sposób generowania folderów podrzędnych, mogą one powstawać w zależności od wskazanych opcji.

Zaznaczając parametr „Przenoś wczytane do podkatalogu” system utworzy dodatkowy folder, w którym będzie przechowywał pliki xml, które zostały już wczytane do systemu poprzez ECOD.
Wymiana dokumentów za pomocą systemu ECOD
Funkcjonalność programu Comarch ERP XL pozwala na wymianę pomiędzy dostawcą i odbiorcą takich dokumentów jak katalog produktów, zamówienia, awiza wysyłki, potwierdzenia dostawy, faktury czy faktury-korekty.
Do obsługi katalogu produktów służy komunikat: ProductCatalogue, zamówień, komunikat: Order, awiza wysyłki, komunikat: DespatchAdvice, potwierdzenia dostawy, komunikat: ReceivingAdvice natomiast faktury, komunikat: Invoice.
Pełna obsługa wyżej wymienionych komunikatów z punktu widzenia dostawcy wraz z towarzyszącymi mu dokumentami generowanymi w systemie Comarch ERP XL wygląda następująco:

- Dostawca przesyła do klienta katalog produktów
- W wyniku importu zamówienia złożonego przez klienta w systemie generowane jest zamówienie sprzedaży
- Po odpowiednim przygotowaniu zamówionego towaru do wysyłki z zamówienia generowany jest dokument WZ, który następnie eksportowany jest do klienta jako Awizo wysyłki
- Dla danego dokumentu WZ dokonywany jest import Potwierdzenia Dostawy od klienta. Na tej podstawie dokonywane jest sprawdzenie zgodności kodów i ilości towarów: na dokumencie WZ oraz na Potwierdzeniu Dostawy. W przypadku zgodności ww. dokumentów, w systemie generowany jest spinacz do dokumentu WZ ((S)FS do bufora), w przypadku wystąpienia jakiejkolwiek niezgodności spinacz nie jest tworzony, a operator otrzymuje stosowną informację o występujących rozbieżnościach.
- Wystawiony w wyniku ww. operacji spinacz (S)FS eksportowany jest do klienta w formie pliku INVOICE
Pełna obsługa wyżej wymienionych komunikatów z punktu widzenia odbiorcy wraz z towarzyszącymi mu dokumentami generowanymi w systemie Comarch ERP XL wygląda następująco:

- W wyniku importu katalogu produktów przez klienta w systemie generowana jest oferta zakupu
- Na podstawie wygenerowanego w systemie zamówienia zakupu dokonywany jest eksport i złożenie zamówienia u dostawcy
- Jeżeli towar został przez dostawce wysłany odbiorca otrzymuje i importuje Awizo Wysyłki, w wyniku czego w systemie generowany jest dokument PZ do bufora
- Po sprawdzeniu zgodności kodów i ilości towaru i ewentualnej dokonanej zmianie na ww. dokumencie PZ, po jego ilościowym zatwierdzeniu dokument ten eksportowany jest jako Potwierdzenie Dostawy
Dla ww. dokumentu PZ dokonywany jest import przesłanej przez dostawcę faktury, na podstawie wczytywanego pliku dokonywane jest sprawdzenie zgodności: kodów i ilości towarów oraz ceny zakupu. W przypadku, gdy wartość dostawy na dokumencie PZ nie jest ustalona, następuje zmiana ceny zakupu towarów. Jeżeli w wyniku tych operacji dokumenty: PZ i importowana faktura są zgodne, wówczas do dokumentu PZ tworzony jest spinacz do bufora, w przeciwnym wypadku operator otrzymuje informacje o zaistniałych rozbieżnościach.
W związku z tym, iż niektóre sieci przesyłają w plikach komunikacyjnych ECOD, EAN 14 znakowy, eksportowany kod EAN obcięty jest do 14 znaków, bez względu na to czy występuje na jednostce pomocniczej, na karcie towaru, czy też w polu „Kod u kontrahenta”. Obsługa linii <BuyerItemCode> i <SupplierItemCode> pozostała bez zmian. Dotyczy eksportu dokumentów: OS, ZZ, WZ, PZ, FS, (S)FS, FSK, (S)FSK.
W związku z tym, iż niektóre sieci przesyłają w plikach komunikacyjnych ECOD, EAN 14 znakowy, podczas importu komunikatów system Comarch ERP XL będzie interpretować całą zawartość przesyłaną w linii <EAN> i identyfikować towary po tej całej wartości. Dotyczy importu komunikatów: OZ, ZS, PZ, potwierdzenie dostawy, FZ, FZK.
Eksport dokumentów dokonywany dla sieci elektrotechnicznych
Ustalanie formatu dla dokonywanego eksportu
System Comarch ERP XL umożliwia wymianę komunikatów ProductCatalogue, Order oraz Invoice w formacie przewidzianym dla branży elektrotechnicznej. Operator może więc zdecydować w jakim formacie ma zostać dokonany eksport dokumentu do systemu ECOD. Różnicowanie to zostało oparte na atrybucie wg następującej zasady. Jeżeli na eksportowanym dokumencie OS/ZZ/FS zdefiniowano atrybut o nazwie „FormatEcod” i określono dla niego wartość „Elektro”, wówczas wynikiem eksportu takiego dokumentu będzie generowanie pliku xml wg struktury przewidzianej dla sieci elektrotechnicznej, w przeciwnym wypadku wygenerowany plik będzie miał dotychczasową strukturę, właściwą dla sieci handlowych.
Obsługa opłaty produktowej podczas eksportu faktury sprzedaży
Jeżeli dla pozycji eksportowanego dokumentu FS zostanie dodany atrybut o nazwie „FeeValue” bądź o nazwie „KGO” i podana zostanie wartość liczbowa tego atrybutu, wówczas wartość ta zostanie potraktowana jako cena jednostkowa opłaty produktowej związanej z daną pozycją, a co za tym idzie linia <FeeValue> dla danej linii komunikatu Invoice zostanie wypełniona wartością tego atrybutu.
W celu poprawnej obsługi wyżej wymienionej linii oraz innych linii pliku związanych z opłatą produktową jeden z wyżej wymienionych atrybutów należy dodać do każdego towaru faktury sprzedaży, dla którego opłata ta ma zostać obsłużona, a wartość atrybutu powinna zostać określona na poziomie jednostkowej ceny netto opłaty, wyrażonej z dokładnością do dwóch miejsc po przecinku, bez względu na ilość towaru na tej pozycji FS
Jednostka miary w systemie Comarch ERP XL, a jej odpowiednik w systemie ECOD
Jednostka miary w słowniku jednostek ERP XL (bez rozróżnienia na małe/duże litery) | Wysyłany w pliku kod/wartość pola | Pliki dla sieci handlowych: Makro, Real, ... | Pliki dla branży elektro – technicznej |
---|---|---|---|
PCE, szt, szt. | PCE | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | ZZ, FS, FSK, OS, FSE, FKE |
KGM, kg | KGM | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | ZZ, FS, FSK, OS, FSE, FKE |
MTR, metr, m | MTR | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | ZZ, FS, FSK, OS, FSE, FKE |
MTK, m2, metr kwadratowy | MTK | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | |
LTR, litr | LTR | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | ZZ, FS, FSK, OS, FSE, FKE |
PR, para | PR | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | ZZ, FS, FSK, OS, FSE, FKE |
TNE, tona, tona metryczna | TNE | WZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS | ZZ, FS, FSK, OS, FSE, FKE |
KMT, kilometr | KMT | FS, FSK, OS, FSE, FKE | ZZ, FS, FSK, OS, FSE, FKE |
PA, pa, pacz, op, opa, opak, opakow | PA | FS, FSK, OS, FSE, FKE | ZZ, FS, FSK, OS, FSE, FKE |
SET, kpl, komplet | SET | FS, FSK, OS, FSE, FKE | ZZ, FS, FSK, OS, FSE, FKE |
CT, karton | CT | FS, FSK, OS, FSE, FKE | |
PK, paczka | PK | FS, FSK, OS, FSE, FKE |
Wymiana dokumentów typu faktura za pomocą systemu ECOD
Eksport faktury sprzedaży FS oraz faktury eksportowej FSE do systemu ECOD
Tabela przedstawia strukturę komunikatu typu Invoice oraz zasady ustalania i przesyłania do pliku xml informacji zawartych w eksportowanej fakturze sprzedaży (FS) lub fakturze eksportowej (FSE). Te sekcje, które nie są przez program obsługiwane są w tabeli pozostawione jako puste. Linie występujące wyłącznie w formacie właściwym dla sieci Elektro prezentowane są w kolorze zielonym, linie występujące wyłącznie w formacie Makro w kolorze niebieskim, linie wspólne w kolorze czarnym.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | |||||
---|---|---|---|---|---|---|---|
<Document-Invoice> | |||||||
<Invoice-Header> | |||||||
<Invoice-Number>FSK-42/09/SER</Invoice-Number> | Numer faktury | Symbol i pełny numer dokumentu FS/FSK lub FSE/FKE, zgodnie z przyjętym w systemie schematem numeracji | |||||
<InvoiceDate>2009-10-20</InvoiceDate> | Data faktury | Data wystawienia FS, FSE. | |||||
<SalesDate>2009-10-20</SalesDate> | Data sprzedaży | Data sprzedaży FS/(S)FS, FSE/(S)FSE. W przypadku FSK/(S)FSK, FKE/(S)FKE także będzie to data sprzedaży FS/(S)FS, FKE/(S)FKE. | |||||
<InvoiceDuplicateDate></InvoiceDuplicateDate> | Data duplikatu | Linia występuje wyłącznie w przypadku eksportu duplikatu faktury. Jeżeli do FS, FSE dodano atrybut o tej nazwie i typie „data” i wypełniono go wartością (datą), wówczas w linii tej przesyłana jest wartość tego atrybutu, w przeciwnym wypadku przesyłana jest data dokonywania eksportu | |||||
<InvoiceCurrency>PLN</InvoiceCurrency> | Waluta | Waluta systemowa. Dla FSE waluta dokumentu | |||||
<InvoicePaymentDueDate>2009-10-27</InvoicePaymentDueDate> | Data płatności | Data płatności z pola Płatność/Do | |||||
<InvoicePaymentTerms>7</InvoicePaymentTerms> | Termin płatności w dniach | Ilość dni liczona jako różnica pomiędzy datą sprzedaży i datą płatności | |||||
<InvoicePaymentType>42</InvoicePaymentType> | Forma płatności | Forma płatności dokumentu FS, FSE. Wg zasady: gotówka-10, przelew-42, czek-20, kompensata-97, w przypadku, gdy formy nie uda się ustalić przesyłana jest 42-przelew | |||||
<PaymentInformation>mechanizm podzielonej płatności</PaymentInformation> | Adnotacja o podzielonej płatności | Adnotacja o podzielonej płatności, uzupełnienia dla faktur i korekt po zaznaczeniu Podzielonej płatności MPP na dokumencie na zakładce [Płatności] | |||||
<DocumentFunctionCode>C</DocumentFunctionCode> | Typ dokumentu (kopia, oryginał, …) | Wartość atrybutu „DocumentFunctionCode” zdefiniowanego na zakładce Atrybuty dokumentu FS/FSK, FSE/FKE. Jeżeli atrybut nie został zdefiniowany, wówczas podczas eksportu dokumentu FS, FSE wysyłany jest symbol „O” – oryginał, a w przypadku eksportu dokumentu FSK, FKE symbol „C” – korekta |
|||||
<CorrectionReason>zwrot uszkodzonego towaru</CorrectionReason> | Powód korekty | Linia pojawia się wyłącznie podczas eksportu FSK/(S)FSK, FKE/(S)FKE, wówczas, gdy powód korekty jest taki sam dla wszystkich korygowanych pozycji lub przyczyna korekty nie została określona na pozycjach, a tylko w Nagłówku | |||||
<Returns> | |||||||
<ReturnsNoticeNumber>RET19523</ReturnsNoticeNumber> | Numer zawiadomienia o zwrotach | Wartość atrybutu „ReturnsNoticeNumber” zdefiniowanego na zakładce Atrybuty dokumentu FSK. | |||||
<ReturnsNoticeDate>08-11-2019</ReturnsNoticeDate> | Data zawiadomienia o zwrotach | ||||||
</Returns> | |||||||
<Remarks>Uwagi</Remarks> | Opis/Uwagi | Linia zostanie wypełniona wartością wprowadzoną w polu Opis nagłówka eksportowanego dokumentu FS/(S)FS/FSK/(S)FSK, FSE/(S)FSE/FKE/(S)FKE | |||||
<Order> | Sekcja ta pojawi się wówczas, gdy wszystkie linie towarowe wskazują na to samo zamówienie | ||||||
<BuyerOrderNumber>15/2009</BuyerOrderNumber> | Numer zamówienia | Wartość atrybutu „BuyerOrderNumer”, zdefiniowanego na zakładce Atrybuty dokumentu FS/FSK, FSE/FKE. | |||||
<BuyerOrderDate>2009-10-20</BuyerOrderDate> | Data zamówienia | Wartość atrybutu „BuyerOrderDate”, zdefiniowanego na zakładce Atrybuty dokumentu FS/FSK, FSE/FKE. W przypadku braku atrybutu linia jest uzupełniana datą wystawienia FSK/(S)FSK, FKE/(S)FKE. |
|||||
</Order> | |||||||
<Reference> | |||||||
<InvoiceReferenceNumber>FS15/09</InvoiceReferenceNumber> | Nr faktury korygowanej | Wypełnianie jak dla sekcji Line Reference | |||||
<InvoiceReferenceDate>2009-10-30</InvoiceReferenceDate> | Data faktury korygowanej | Wypełnianie jak dla sekcji Line Reference | |||||
</Reference> | |||||||
<Delivery> | |||||||
<DeliveryLocationNumber>12548798658702</DeliveryLocationNumber> | Wypełniane jak dla sekcji Line-Delivery | ||||||
<DeliveryDate>2009-10-30</DeliveryDate> | Wypełniane jak dla sekcji Line-Delivery | ||||||
<DespatchNumber>WZ12</DespatchNumber> | Wypełniane jak dla sekcji Line-Delivery | ||||||
<Name>ABS</Name> | Nazwa kupującego | ||||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | ||||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
</Delivery> | |||||||
<Payments> | Sekcja płatności, wysyłana na fakturze w przypadku zaznaczenia parametru „Wysyłaj płatność faktury” w konfiguracji systemu. | ||||||
<Payment> | |||||||
<InvoicePaymentDueDate>2017-05-10</InvoicePaymentDueDate> | Data płatności | ||||||
<InvoicePaymentMeans>10</InvoicePaymentMeans> | Forma płatności dokumentu FS, FSE. Wg zasady: gotówka-10, przelew-42, czek-20, kompensata-97, w przypadku, gdy formy nie uda się ustalić przesyłana jest 42-przelew | ||||||
<PaymentAmount>3.32</PaymentAmount> | Wartość płatności | ||||||
<PaymentCurrency>EUR</PaymentCurrency> | Waluta płatności | ||||||
</Payment> | |||||||
</Payments> | |||||||
</Invoice-Header> | |||||||
<Invoice-Parties> | |||||||
<Buyer> | |||||||
<ILN>1212121212122</ILN> | GLN kupującego | Numer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta głównego na dokumencie FS, FSE | |||||
<TaxID>125236665588</TaxID> | NIP kupującego | NIP zdefiniowany na formatce adresu, który jest adresem kontrahenta głównego | |||||
<AccountNumber></AccountNumber> | Konto bankowe | ||||||
<Name>ABS</Name> | Nazwa kupującego | Akronim zdefiniowany na formatce adresu, który jest adresem kontrahenta głównego FS, FSE | |||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | Dane zdefiniowane na formatce adresu, który jest adresem kontrahenta głównego dokumentu FS, FSE | |||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
</Buyer> | |||||||
<Payer> | |||||||
<ILN>1212121212122</ILN> | GLN płatnika | Numer GLN wprowadzony na formatce adresu, który jest adresem płatnika na dokumencie FS, FSE | |||||
<TaxID>125236665588</TaxID> | NIP płatnika | NIP zdefiniowany na formatce adresu, który jest adresem płatnika | |||||
<AccountNumber></AccountNumber> | Konto bankowe płatnika | ||||||
<Name>ABS</Name> | Nazwa płatnika | Akronim zdefiniowany na formatce adresu, który jest adresem płatnika FS, FSE | |||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | Dane zdefiniowane na formatce adresu, który jest adresem płatnika dokumentu FS, FSE | |||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
<Payer> | |||||||
<Invoicee> | |||||||
<ILN>1212121212122</ILN> | GLN odbiorcy | GLN odbiorcy faktury | |||||
<TaxID>125236665588</TaxID> | NIP odbiorcy | NIP odbiorcy faktury | |||||
<AccountNumber></AccountNumber> | Konto bankowe | Konto bankowe odbiorcy faktury | |||||
<Name>ABS</Name> | Nazwa | Nazwa odbiorcy faktury | |||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | Dane zdefiniowane na formatce adresu, który jest adresem kontrahenta głównego dokumentu FS, FSE | |||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
</Invoicee> | |||||||
<Seller> | |||||||
<ILN>1313131313133</ILN> | GLN sprzedającego | Numer GLN zdefiniowany na pieczątce firmy przypisanej do centrum będącego właścicielem dokumentu FS, FSE | |||||
<TaxID>125236669902</TaxID> | NIP sprzedawcy | NIP zdefiniowany na wyżej wymienionej pieczątce firmy | |||||
<AccountNumber></AccountNumber> | Konto bankowe | ||||||
<CodeByBuyer>1414141414144</CodeByBuyer> | Kod wg kupującego | ||||||
<Name&;gtCDK</Name> | Nazwa sprzedawcy | ||||||
<StreetAndNumber>Mała 14</StreetAndNumber> | Ulica i numer | Dane z pieczątki firmy przypisanej do centrum będącego właścicielem dokumentu FS, FSE | |||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-185</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
<UtilizationRegisterNumber>123456789</UtilizationRegisterNumber> | Obsługa pola UtilizationRegisterNumber odbywa poprzez pobranie wartości z pieczątki firmy, która przypięta jest do centrum w ramach, którego rejestrowany jest dokument z pola: "Numer GIOŚ” | ||||||
<CourtAndCapitalInformation>KRS 0000011, Kapitał zakładowy 100000PLN, Kapitał wpłacony: 100000PLN</CourtAndCapitalInformation> | Informacja o sądzie rejestrowym, nr rejestru, wysokości kapitału | Dane z sekcji Organ rejestrowy pieczątki odszukanej jw. (zakładka Deklaracje) | |||||
</Seller> | |||||||
<Payee> | |||||||
<ILN>1515151515155</ILN> | GLN odbiorcy płatności | Zgodny z Seller/ILN | |||||
<TaxID>125236669902</TaxID> | NIP odbiorcy płatności | Zgodny z Seller/TaxID | |||||
<AccountNumber>1245555666668555</AccountNumber> | Konto bankowe odbiorcy płatności | Numer rachunku bankowego z zakładki Nagłówek dokumentu FS, FSE | |||||
<Name>ABS</Name> | Nazwa odbiorcy płatności | Dane zgodne z danymi dla sekcji Seller | |||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | ||||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
</Payee> | |||||||
<SellerHeadquarters> | |||||||
<ILN>1313131313133</ILN> | Dane dotyczące siedziby firmy | Dane z pieczątki centrum głównego firmy, niezależnie od tego, które centrum jest właścicielem eksportowanego dokumentu | |||||
<Name>CDK</Name> | |||||||
<StreetAndNumber> Mała 14</StreetAndNumber> | |||||||
<CityName>Kraków</CityName> | |||||||
<PostalCode>33-185</PostalCode> | |||||||
<Country>PL</Country> | |||||||
</SellerHeadquarters> | |||||||
</Invoice-Parties> | |||||||
<Invoice-Lines> | |||||||
<Line> | |||||||
<Line-Item> | |||||||
<LineNumber>1</LineNumber> | Numer pozycji w fakturze | Kolejny numer pozycji wczytywanej z FS, FSE do pliku | |||||
<EAN>4444444444444</EAN> | EAN towaru | ||||||
<BuyerItemCode></BuyerItemCode> | Kod produktu wg nabywcy | ||||||
<SupplierItemCode></SupplierItemCode> | Kod produktu wg sprzedawcy | ||||||
<ItemDescription>buty</ItemDescription> | Nazwa produktu | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | |||||
<ItemType>CU</ItemType> | Typ towaru (jednostka handlowa lub opakowanie zwrotne) | ||||||
<InvoiceQuantity>7</InvoiceQuantity> | Zafakturowana ilość | Wartość atrybutu o nazwie Precyzja ilości zdefiniowanego dla nagłówka dokumentu. Możliwe wartości 3,4. W przypadku innej wartości ustawiana wartość domyślna 3. | |||||
<UnitOfMeasure>PCE</UnitOfMeasure> | Jednostka miary | ||||||
<InvoiceUnitPacksize>1.000</InvoiceUnitPacksize> | Liczba sztuk detalicznych w jednostce zbiorczej | ||||||
<PackItemUnitOfMeasure>PCE</PackItemUnitOfMeasure> | Jednostka miary sztuki detalicznej w jednostce zbiorczej | ||||||
<InvoiceUnitNetPrice>120.00</InvoiceUnitNetPrice> | Cena netto | Wartość atrybutu o nazwie Precyzja ceny zdefiniowanego dla nagłówka dokumentu. Możliwe wartości 2,3,4. W przypadku innej wartości ustawiana jest wartość domyślna 2. | |||||
<TaxRate>22.00</TaxRate> | Stawka VAT | To pole nie jest eksportowane, jeżeli stawka jest równa 0% (zwolniony). | |||||
<TaxCategoryCode>S</TaxCategoryCode> | Kod stawki | Kod stawki: "E" (exempt) - zwolniony "S" (standard) - inna, wyrażona liczba |
|||||
<TaxReference> | |||||||
<ReferenceType>SWW</ReferenceType> | Typ referencji | ||||||
<ReferenceNumber>23-569</ReferenceNumber> | Kod SWW/PKWiU | ||||||
</TaxReference> | |||||||
<TaxAmount>184.80</TaxAmount> | Wartość VAT pozycji | ||||||
<NetAmount>840.00</NetAmount> | Wartość netto pozycji | ||||||
<PreviousInvoiceQuantity>10.000</PreviousInvoiceQuantity> | Ilość przed korektą | Wartość atrybutu o nazwie Precyzja ilości zdefiniowanego dla nagłówka dokumentu. Możliwe wartości 3,4. W przypadku innej wartości ustawiana wartość domyślna 3. | |||||
<PreviousInvoiceUnitNetPrice>12.00</PreviousInvoiceUnitNetPrice> | Cena przed korektą | Wartość atrybutu o nazwie Precyzja ceny zdefiniowanego dla nagłówka dokumentu. Możliwe wartości 2,3,4. W przypadku innej wartości ustawiana wartość domyślna 2. | |||||
<PreviousTaxRate>22.00</PreviousTaxRate> | Stawka podatku przed korektą | ||||||
<PreviousTaxCategoryCode>S</PreviousTaxCategoryCode> | Kategoria podatku przed korektą | ||||||
<PreviousTaxAmount>264.00</PreviousTaxAmount> | Wartość VAT przed korektą | ||||||
<PreviousNetAmount>1200.00</PreviousNetAmount> | Wartość netto przed korektą | ||||||
<CorrectionInvoiceQuantity>-3.000</CorrectionInvoiceQuantity> | Korekta ilości | Wartość atrybutu o nazwie Precyzja ilości zdefiniowanego dla nagłówka dokumentu. Możliwe wartości 3,4. W przypadku innej wartości ustawiana wartość domyślna 3. | |||||
<CorrectionInvoiceUnitNetPrice>0.00</CorrectionInvoiceUnitNetPrice> | Korekta ceny | Wartość atrybutu o nazwie Precyzja ceny zdefiniowanego dla nagłówka dokumentu. Możliwe wartości 2,3,4. W przypadku innej wartości ustawiana wartość domyślna 2. | |||||
<CorrectionTaxAmount>-79.20</CorrectionTaxAmount> | Korekta podatku | ||||||
<CorrectionNetAmount>-360.00</CorrectionNetAmount> | Korekta wartości netto | ||||||
<CorrectionReason>zwrot uszkodzonego towaru</CorrectionReason> | Powód korekty | Wartość atrybut o nazwie CorrectionReason zdefiniowanego dla pozycji lub przyczyna korekty zapisaną na elemencie FSK, FKE | |||||
<ProductFeeDetails> | |||||||
<UnitNetPriceWithoutFee>23.00</UnitNetPriceWithoutFee> | Cena netto bez kosztów gospodarowania odpadami | Cena wyliczona jak dla linii InvoiceUnitNetPrice, pomniejszona o FeeValue | |||||
<NetAmountWithautFee>46.00</NetAmountWithautFee> | Wartość bez ww. kosztów | UnitNetPriceWithoutFee x InvoiceQuantity | |||||
<FeeValue>0.45</FeeValue> | Jednostkowy koszt gospodarowania odpadami | Wartość atrybutu a nazwie FeeValue zdefiniowanego dla pozycji lub cena 2-go elementu zestawu, o którym mowa w pkt 3.2.2 | |||||
<FeeNetAmount>0.06</FeeNetAmount> | Wartość ww. kosztu | FeeValue x InvoiceQuantity | |||||
</ProductFeeDetails> | |||||||
<Line-Item> | |||||||
<Line-Order> | |||||||
<BuyerOrderNumber>ZZ-15/09/SER2</BuyerOrderNumber> | Numer zamówienia | Linia nie wypełniana dla FSK/(S)FSK, FKE/(S)FKE w przypadku istnienia atrybutu „BuyerOrderNumber”. | |||||
<BuyerOrderDate>2009-10-20</BuyerOrderDate> | Data zamówienia | Linia nie wypełniana dla FSK/(S)FSK, FKE/(S)FKE w przypadku istnienia atrybutu „BuyerOrderDate”. | |||||
<OrderLineNumber>1</OrderLineNumber> | Linia eksportowana jest do ECOD dla atrybutu FormatEcod z wartością Elektro lub Castorama. | ||||||
</Line-Order> | |||||||
<Line-Reference> | |||||||
<InvoiceReferenceNumber>FS15</InvoiceReferenceNumber> | Numer faktury korygowanej | ||||||
<InvoiceReferenceDate>2009-10-17</InvoiceReferenceDate> | Data faktury korygowanej | ||||||
</Line-Reference> | |||||||
<Line-Delivery> | |||||||
<DeliveryLocationNumber>12548798658702</DeliveryLocationNumber> | GLN lokalizacji dostawy | ||||||
<PartyName>ABS</PartyName> | |||||||
<Name>ABS</Name> | |||||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | |||||||
<CityName>Kraków</CityName> | |||||||
<PostalCode>33-156</PostalCode> | |||||||
<Country>PL</Country> | |||||||
<DeliveryDate>2009-10-20</DeliveryDate> | Data dostawy | ||||||
<DespatchNumber>WZ-12</DespatchNumber> | Numer dostawy | ||||||
<DespatchAdviceNumber></DespatchAdviceNumber> | Numer awiza wysyłki | ||||||
</Line-Delivery> | |||||||
</Line> | |||||||
</Invoice-Lines> | |||||||
<Invoice-Summary> | |||||||
<TotalLines>1</TotalLines> | |||||||
<TotalNetAmount>840.00</TotalNetAmount> | Suma netto | ||||||
<TotalTaxableBasis>840.00</TotalTaxableBasis> | Suma podlegająca opodatkowaniu | ||||||
<TotalTaxAmount>184.00</TotalTaxAmount> | Suma VAT | ||||||
<TotalGrossAmount>1024.80</TotalGrossAmount> | Suma brutto | ||||||
<GrossAmountInWords>minus czterysta trzydzieści dziewięć PLN</GrossAmountInWords> | Suma brutto słownie | ||||||
<Tax-Summary> | |||||||
<Tax-Summary-Line> | |||||||
<TaxRate>22.00</TaxRate> | Stawka VAT | To pole nie jest eksportowane, jeżeli stawka jest równa 0% (zwolniony). | |||||
<TaxCategoryCode>S</TaxCategoryCode> | Kod stawki | Kod stawki: "E" (exempt) - zwolniony "S" (standard) - inna, wyrażona liczba |
|||||
<TaxAmount>184.80</TaxAmount> | Suma VAT dla danej stawki | ||||||
<TaxableBasis>840.00</TaxableBasis> | Suma podlegająca opodatkowaniu | ||||||
<TaxableAmount>840.00</TaxableAmount> | Suma VAT | ||||||
<GrossAmount>1024.80</GrossAmount> | Suma brutto | ||||||
</Tax-Summary-Line> | |||||||
</Tax-Summary> | |||||||
<ProductFee-Summary> | |||||||
<TotalNetAmountWithoutFee>46.00</TotalNetAmountWithoutFee> | |||||||
<TotalFeeNetAmount>0.90</TotalFeeNetAmount> | |||||||
</ProductFee-Summary> | |||||||
</Invoice-Summary> | |||||||
</Document-Invoice> |
Najczęstsze problemy występujące przy eksporcie FS, FSE do systemu ECOD
Aby eksport dokumentu FS, FSE do ECOD przebiegł prawidłowo, system musi mieć dostęp do tych informacji, które są informacjami obowiązkowymi dla komunikatu Invoice. Tabela przedstawia najczęstsze problemy, z jakimi operator może się spotkać podczas wykonywania operacji Eksport do ECOD i ich przyczyny:
Treść informacji w logu | Przyczyna | Remedium |
---|---|---|
Nie określono GLN kontrahenta | Dla adresu, który jest adresem kontrahenta głównego FS, FSE nie zdefiniowano numeru GLN | Odnaleźć adres wskazany na FS, FSE jako adres kontrahenta głównego i wpisać na formatce adresu numer GLN |
Nie określono GLN kontrahenta | Dla adresu, który jest adresem kontrahenta docelowego na FS, FSE nie zdefiniowano numeru GLN | Odnaleźć adres wskazany na FS, FSE jako adres kontrahenta docelowego i wpisać na formatce adresu numer GLN |
Nie określono GLN firmy na pieczątce | Do centrum będącego właścicielem dokumentu FS, FSE nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru GLN | Przypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer GLN |
Nie określono numeru NIP firmy | Do centrum będącego właścicielem dokumentu FS, FSE nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru NIP | Przypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer NIP |
Nie określono numeru rachunku na rejestrze dokumentu | Na zakładce Nagłówek dokumentu FS, FSE nie wybrano rejestru bankowego | Wybrać rejestr bankowy na dokumencie FS, FSE |
Nie określono numeru EAN na karcie towaru: T1 (format Makro) | Dla towaru T1 będącym elementem dokumentu FS, FSE nie zdefiniowano numeru EAN (błąd wystąpi, jeżeli dla towaru nie zdefiniowano żadnego z poniższych numerów: brak numeru na formatce jednostki pomocniczej towaru użytej na dokumencie FS, FSE, brak numeru EAN na zakładce Ogólne karty towaru T1, brak „kodu u kontrahenta” dla Odbiorcy zgodnego z kontrahentem głównym FS, FSE | Jeżeli użyto jednostki pomocniczej towaru i wysłana ma być ilość w tej jednostce, należy określić EAN na formatce tej jednostki pomocniczej towaru. Jeżeli wysłana ma być ilość w jednostce głównej należy zdefiniować EAN na zakładce Ogólne karty towaru T1 lub wpisać EAN w polu „u kontrahenta” na formatce Odbiorca towaru, definiowanej na zakładce Kontrahenci karty towaru T1 dla kontrahenta głównego FS, FSE |
Import faktury FZ z systemu ECOD
W wyniku dokonywanej operacji Import FZ z ECOD w systemie zostaje wygenerowany dokument FZ. Podstawowe dane na tym dokumencie ustalane są na podstawie przekazanych w pliku Invoice informacji. Sposób interpretacji tych danych przedstawia. Puste sekcje w tabeli oznaczają, że informacje, których dotyczą nie są przez system interpretowane.
Sekcje: Order, Reference, Delivery, Line-Order, Line-Reference, Line-Delivery, Invoice-Summary nie są interpretowane, stąd zostały w tabeli pominięte.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | |||||
---|---|---|---|---|---|---|---|
<Document-Invoice> | |||||||
<Invoice-Header> | |||||||
<Invoice-Number>FS-48/09/SER</Invoice-Number> | Numer faktury | Numer faktury przepisywany jest do pola Faktura na zakładce Nagłówek dokumentu FZ | |||||
<InvoiceDate>2009-10-06</InvoiceDate> | Data faktury | Na tej podstawie ustalana jest data wystawienia dokumentu FZ | |||||
<InvoiceDuplicateDate>2009-10-10</InvoiceDuplicateDate> | Data duplikatu | Jeżeli dla obiektu „FZ” zdefiniowano klasę atrybutu o nazwie „InvoiceDuplicateDate”, wówczas na generowanym w wyniku importu dokumencie FZ ta klasa zostanie automatycznie dodana i wypełniona wartością atrybutu zgodną z przesyłaną w pliku | |||||
<InvoiceCurrency>PLN</InvoiceCurrency> | Waluta | Waluta FZ, widoczna na zakładce Nagłówek dokumentu FZ. Jeżeli waluta jest inna niż PLN, wówczas na dokumencie zaznaczony zostaje parametr „import” i ustalony kurs bieżący o rodzaju zdefiniowanym w definicji dokumentu FZ centrum, które wykonuje operację importu | |||||
<InvoicePaymentDueDate>2009-11-06</InvoicePaymentDueDate> | Data płatności | Na tej podstawie ustalany jest termin płatności (data) na dokumencie FZ oraz na jego płatnościach | |||||
<InvoicePaymentTerms>30</InvoicePaymentTerms> | Termin płatności w dniach | Termin w dniach jest wyliczany samodzielnie jako różnica pomiędzy datą płatności (InvoicePaymentDueDate) a odpowiednio: datą wpływu, wystawienia lub zakupu – w zależności od dokonanego wyboru w definicji dokumentu FZ („Płatność od daty…” zakładka Parametry) | |||||
<InvoicePaymentType>42</InvoicePaymentType> | Forma płatności | Na tej podstawie ustalana jest forma płatności na FZ, wg zasady: 10-gotówka, 42-przelew, 20-czek, 97-kompensata, jeżeli w systemie nie zdefiniowano takiej formy, lub linia ta nie jest przesyłana, wówczas na FZ ustalana jest forma domyślna | |||||
<PaymentInformation>mechanizm podzielonej płatności </PaymentInformation> | Adnotacja o podzielonej płatności | Adnotacja odnośnie podzielonej płatności. Jeżeli linia jest wypełniona na FZ, FZK zostanie zaznaczony parametr MPP na zakładce [Płatności]. | |||||
<DocumentFunctionCode>O</DocumentFunctionCode> | Typ dokumentu (kopia, oryginał, …) | ||||||
<CorrectionReason>zwrot uszkodzonego towaru</CorrectionReason> | Powód korekty | ||||||
<Remarks>Uwagi</Remarks> | Opis/Uwagi | Jeżeli linia jest wypełniona wówczas jej wartość zostanie zapisana w polu Opis dokumentu FZ/(S)FZ. | |||||
</Invoice-Header> | |||||||
<Invoice-Parties> | |||||||
<Buyer> | |||||||
<ILN>1212121212122</ILN> | GLN kupującego | ||||||
<TaxID>125236665588</TaxID> | NIP kupującego | ||||||
<AccountNumber></AccountNumber> | Konto bankowe kupującego | ||||||
<Name>ABS</Name> | Nazwa kupującego | ||||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | ||||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
</Buyer> | |||||||
<Invoicee> | |||||||
<ILN>1212121212122</ILN> | GLN odbiorcy | ||||||
<TaxID>125236665588</TaxID> | NIP odbiorcy | ||||||
<AccountNumber></AccountNumber> | Konto bankowe | ||||||
<Name>ABS</Name> | Nazwa | ||||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | ||||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PLN</Country> | Kraj | ||||||
</Invoicee> | |||||||
<Seller> | |||||||
<ILN>1313131313133</ILN> | GLN sprzedającego | Na tej podstawie ustalany jest kontrahent główny na dokumencie FZ w sposób następujący: Najpierw poszukiwany jest kontrahent z numerem GLN zdefiniowanym na zakładce Ogólne karty kontrahenta zgodnym z przesyłanym GLN, jeżeli zostanie on odnaleziony, wówczas zostanie on ustalony jako kontrahent główny z jego adresem aktualnym. Jeżeli ww. kontrahent nie zostanie odnaleziony, wówczas poszukiwany jest adres z numerem GLN zgodnym z przesyłanym nr GLN. Tak odnaleziony adres staje się adresem kontrahenta głównego na dokumencie FZ, a kontrahentem głównym kontrahent z tego adresu. Kontrahent docelowy jest zgodny z kontrahentem głównym, a adres zgodny z adresem aktualnym kontrahenta |
|||||
<TaxID>125236669902</TaxID> | NIP sprzedawcy | ||||||
<AccountNumber></AccountNumber> | Konto bankowe sprzedawcy | ||||||
<CodeByBuyer>1414141414144</CodeByBuyer> | Kod wg kupującego (kod pod jakim sprzedawca figuruje u odbiorcy) | Jeżeli dla obiektu „FZ” zdefiniowano klasę atrybutu o nazwie „CodeByBuyer” i jeżeli w pliku jest ten numer przesyłany, wówczas na generowanym w wyniku importu dokumencie FZ ta klasa zostanie automatycznie dodana i wypełniona wartością atrybutu zgodną z przesyłaną w pliku zawartością sekcji <CodeByBuyer> | |||||
<Name>CDK</Name> | Nazwa sprzedawcy | ||||||
<StreetAndNumber>Mała 14</StreetAndNumber> | Ulica i numer | ||||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-185</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
<UtilizationRegisterNumber>123456789</UtilizationRegisterNumber> | Jeżeli dla obiektu „FZ” zdefiniowano klasę atrybutu o nazwie „UtilizationRegisterNumber”, wówczas na generowanym w wyniku importu dokumencie FZ ta klasa zostanie automatycznie dodana i wypełniona wartością zgodną z przesyłaną w pliku zawartością tej linii | ||||||
</Seller> | |||||||
<Payee> | |||||||
<ILN>1515151515155</ILN> | GLN odbiorcy płatności | Na tej podstawie ustalony zostaje płatnik na dokumencie FZ (interpretowany jako odbiorca płatności) | |||||
<TaxID>125236669902</TaxID> | NIP odbiorcy płatności | ||||||
<AccountNumber></AccountNumber> | Konto bankowe odbiorcy płatności | ||||||
<Name>ABS</Name> | Nazwa odbiorcy płatności | ||||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Ulica i numer | ||||||
<CityName>Kraków</CityName> | Miasto | ||||||
<PostalCode>33-156</PostalCode> | Kod pocztowy | ||||||
<Country>PL</Country> | Kraj | ||||||
</Payee> | |||||||
</Invoice-Parties> | |||||||
<Invoice-Lines> | |||||||
<Line> | |||||||
<Line-Item> | |||||||
<LineNumber>1</LineNumber> | Numer pozycji w fakturze | ||||||
<EAN>4444444444444</EAN> | EAN towaru | Na tej podstawie identyfikowany jest towar, którego faktura dotyczy wg kolejności: najpierw sprawdzane są jednostki pomocnicze towaru, jeżeli zostanie odnaleziona jednostka pomocnicza z numerem EAN zgodnym z przesłanym, wówczas na elemencie FZ ustalany jest dany towar w tej jednostce. Jeżeli jednostka taka nie zostanie odnaleziona, wówczas poszukiwany jest towar, dla którego na zakładce Ogólne zdefiniowano EAN zgodny z przesyłanym i towar spełniający ww. warunek zostaje ustalony na elemencie FZ. Jeżeli taki towar nie zostanie odnaleziony, wówczas poszukiwany jest towar, dla którego na zakładce Kontrahenci „kod u kontrahenta” zgodny z przesyłanym EAN-em. W przypadku tak odnalezionego towaru, jeżeli dla kontrahenta tego towaru zdefiniowano jednostkę pomocniczą, wówczas towar taki dodawany jest na FZ z tą jednostką jako pomocnicza |
|||||
<BuyerItemCode></BuyerItemCode> | Kod produktu wg nabywcy | Jeżeli EAN nie jest przesyłany, wówczas ustalony zostanie towar z kodem (Twr_Kod) zgodnym z wartością przesyłaną w tej linii | |||||
<SupplierItemCode></SupplierItemCode> | Kod produktu wg sprzedawcy | Jeżeli ani EAN ani BuyerItemCode nie jest przesyłany, wówczas ustalany jest towar, dla którego na formatce dostawcy zdefiniowano: kod u kontrahenta” zgodny z wartością przesyłaną w tej linii. | |||||
<ItemDescription>buty</ItemDescription> | Nazwa produktu | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | |||||
<ItemType>CU</ItemType> | Typ towaru | ||||||
<InvoiceQuantity>2</InvoiceQuantity> | Zafakturowana ilość | Jeżeli towar zostanie zidentyfikowany na podstawie EAN-u jednostki pomocniczej, czyli na podstawie EAN-u zdefiniowanego na formatce jednostki pomocniczej lub na podstawie „kod u kontrahenta”, dla którego zdefiniowano jednostkę pomocniczą, wówczas przesłana ilość traktowana jest jako ilość w jednostce pomocniczej, a ilość w jednostce głównej wyliczana jest na podstawie przelicznika do jednostki pomocniczej. W pozostałych wypadkach przesyłana ilość traktowana jest jako ilość w jednostce podstawowej i taka jest ustalana na elemencie FZ. W takim wypadku jednostka pomocnicza pojawi się na elemencie FZ tylko wówczas, jeżeli jest ona domyślna dla zakupu, a jej ilość zostanie wyliczona na podstawie ilości w jednostce głównej i przelicznika. |
|||||
<UnitOfMeasure>PCE</UnitOfMeasure> | Jednostka miary | ||||||
<InvoiceUnitPacksize>1.000</InvoiceUnitPacksize> | Liczba sztuk detalicznych w jednostce zbiorczej | ||||||
<PackItemUnitOfMeasure>PCE</PackItemUnitOfMeasure> | Jednostka miary sztuki detalicznej w jednostce zbiorczej | ||||||
<InvoiceUnitNetPrice>23.45</InvoiceUnitNetPrice> | Cena netto | Jeżeli towar znaleziony zostanie wg jednostki pomocniczej (patrz wyżej), wówczas przesyłana cena jest traktowana jako cena dla tej jednostki pomocniczej, a cena dla jednostki głównej wyliczana wtórnie. W pozostałych wypadkach przesyłana cena jest interpretowana jako cena jednostkowa dla jednostki głównej. W każdym przypadku, jeżeli waluta faktury jest inna niż PLN, wówczas przesyłana cena jest przeliczana na PLN po kursie bieżącym |
|||||
<TaxRate>7.00</TaxRate> | Stawka VAT | Na tej podstawie ustalana jest stawka VAT pozycji dokumentu FZ | |||||
<TaxCategoryCode>S</TaxCategoryCode> | Kod stawki | Istotna dla TaxRate=0, wówczas przesyłany kod jest interpretowany następująco: "Z" - na elemencie ustalona zostanie ta stawka 0%, dla której w systemie zdefiniowano status "nie podlega"; "E" - na elemencie ustalona zostanie ta stawka 0%, dla której w systemie zdefiniowano status "zwolniony" | |||||
<TaxReference> | |||||||
<ReferenceType>SWW</ReferenceType> | Typ referencji (SWW/PKWiU) | ||||||
<ReferenceNumber>23-569</ReferenceNumber> | Kod SWW/PKWiU | ||||||
</TaxReference> | |||||||
<TaxAmount>3.28</TaxAmount> | Wartość VAT pozycji | ||||||
<NetAmount>46.90</NetAmount> | Wartość netto pozycji | ||||||
<PreviousInvoiceQuantity>1.000</PreviousInvoiceQuantity> | Ilość przed korektą | ||||||
<PreviousInvoiceUnitNetPrice>12.00</PreviousInvoiceUnitNetPrice> | Cena przed korektą | ||||||
<PreviousTaxRate>22.00</PreviousTaxRate> | Stawka podatku przed korektą | ||||||
<PreviousTaxCategoryCode>S</PreviousTaxCategoryCode> | Kategoria podatku przed korektą | ||||||
<PreviousTaxAmount>5.16</PreviousTaxAmount> | Wartość VAT przed korektą | ||||||
<PreviousNetAmount>23.45</PreviousNetAmount> | Wartość netto przed korektą | ||||||
<CorrectionInvoiceQuantity>-1.000</CorrectionInvoiceQuantity> | Korekta ilości | ||||||
<CorrectionInvoiceUnitNetPrice>0.00</CorrectionInvoiceUnitNetPrice> | Korekta ceny | ||||||
<CorrectionTaxAmount>-5.16</CorrectionTaxAmount> | Korekta podatku | ||||||
<CorrectionNetAmount>-23.45</CorrectionNetAmount> | Korekta wartości netto | ||||||
<ProductFeeDetails> | |||||||
<UnitNetPriceWithoutFee>46.00</UnitNetPriceWithoutFee> | Cena netto bez kosztów gospodarowania odpadami | ||||||
<NetAmountWithautFee>46.00</NetAmountWithautFee> | Wartość bez ww. kosztów | ||||||
<FeeValue>0.45</FeeValue> | Jednostkowy koszt gospodarowania odpadami | Jeżeli do pozycji FZ przypisano klasę atrybutu o nazwie FeeValue, wówczas na utworzonym w wyniku importu elemencie dokumentu FZ atrybut ten zostanie automatycznie dodany i wypełniony wartością przesyłaną w tej linii | |||||
<FeeNetAmount>0.06</FeeNetAmount> | Wartość ww. kosztu | ||||||
</ProductFeeDetails> | |||||||
</Line-Item> | |||||||
</Line> | |||||||
</Invoice-Lines> | |||||||
Pełna nazwa pliku Invoice zapisywana jest w polu URL zakładka Nagłówek generowanego dokumentu FZ | |||||||
</Document-Invoice> |
Najczęstsze problemy występujące podczas importu faktury zakupu z ECOD
Aby operacja importu pliku Invoice przebiegła prawidłowo, system muszą odnaleźć i odpowiednio zinterpretować przesyłane w pliku informacje. Tabela przedstawia najczęstsze problemy, z jakimi operator może się spotkać podczas wykonywania operacji Import FZ z ECOD i ich przyczyny.
Treść informacji w logu | Przyczyna | Remedium |
---|---|---|
Nie znaleziono waluty | W programie XL nie zdefiniowano waluty o symbolu zgodnym z przesyłaną waluta faktury | Sprawdzić w sekcji <Invoice-Currency> importowanego pliku symbol waluty, zdefiniować taką walutę w systemie |
Nie udało się odnaleźć kontrahenta o numerze GLN: 1256565656565 | W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w pliku | Wprowadzić numer GLN na zakładce Ogólne karty kontrahenta-sprzedawcy, a jeżeli adres kontrahenta ma być inny niż jego adres aktualny, wówczas wprowadzić numer GLN na jednym z jego adresów |
Nie udało się odnaleźć towaru o numerze EAN 1255555555555 | W systemie nie istnieje towar z numerem EAN zgodnym z przesyłanym w pliku (błąd wystąpi, jeżeli nie zostanie odnaleziony EAN w żadnej ze wskazanych pozycji: brak jednostki pomocniczej z numerem EAN zgodnym z przesyłanym, brak karty towaru, na której na zakładce Ogólne zdefiniowano EAN zgodny z przesyłanym, brak towaru, dla którego zdefiniowano „kod u kontrahenta” zgodny z przesyłanym | Na towarze, którego dotyczy importowana faktura należy zdefiniować numer EAN zgodny z przesyłanym |
Nie znaleziono w konfiguracji wybranej stawki podatkowej 7% S | W programie nie zdefiniowano stawki podatkowej 7% | Dodać brakująca stawkę podatku do konfiguracji systemu |
Wymiana katalogu produktów za pomocą systemu ECOD
Eksport katalogu produktów OS do systemu ECOD
Podstawą generowania pliku xml dla komunikatu Product Catalogue wysyłanego do odbiorcy jest zarejestrowana w systemie oferta na sprzedaż. Tabela przedstawia strukturę komunikatu typu Product Catalogue oraz zasady ustalania i przesyłania do pliku xml informacji zawartych w eksportowanej ofercie sprzedaży. Sekcje, które nie są przez program obsługiwane, pozostawione są w tabeli jako puste. Linie występujące wyłącznie w formacie właściwym dla sieci Elektro prezentowane są w kolorze zielonym, linie występujące wyłącznie w formacie Makro w kolorze niebieskim, linie wspólne w kolorze czarnym.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | |||||
---|---|---|---|---|---|---|---|
<Document-ProductCatalogue> | |||||||
<ProductCatalogue-Header> | |||||||
<ProductCatalogueNumber>4</ProductCatalogueNumber> | Numer katalogu produktów | ||||||
<ProductCatalogueDate>2009-10-20</ProductCatalogueDate> | Data katalogu produktów | ||||||
<PeriodEndDate>2009-10-20</PeriodEndDate> | Data obowiązywania | Data obowiązywania „Do” (brak wpisu oznacza bezterminowe obowiązywanie) | |||||
<DocumentFunctionCode>N</DocumentFunctionCode> | Typ dokumentu: „N” – nie przyrostowy |
||||||
</ProductCatalogue-Header> | |||||||
<ProductCatalogue-Parties> | |||||||
<Buyer> | |||||||
<ILN>2222222222222</ILN> | GLN kupującego | ||||||
<OrderContact></OrderContact> | Osoba kontaktowa | Osoba kontaktowa dotycząca zamówień | |||||
</Buyer> | |||||||
<Seller> | |||||||
<ILN>1111111111116</ILN> | GLN sprzedawcy | ||||||
<OrderContact></OrderContact> | Osoba kontaktowa | Osoba kontaktowa dotycząca zamówień | |||||
</Seller> | |||||||
</ProductCatalogue-Parties> | |||||||
<ProductCatalogue-Lines> | |||||||
<Line> | |||||||
<Line-Item> | |||||||
<LineNumber>1</LineNumber> | Numer linii | ||||||
<LineType>3</LineType> TYLKO MAKRO | Typ linii | Typ linii: 1-dodana; 2-usunięta; 3-zmieniona; 4-bez zmian |
|||||
<EAN>2010000000069</EAN> | EAN produktu | ||||||
<BuyerItemCode>2010000000052</BuyerItemCode> TYLKO MAKRO | Kod produktu kupującego | ||||||
<SupplierItemCode>T1</SupplierItemCode> | Kod produktu sprzedawcy | ||||||
<PreviousEAN></PreviousEAN> | EAN produktu poprzednika | Linia wypełniana na podstawie atrybutu PreviousEAN umieszczonego na elemencie oferty sprzedaży | |||||
<PreviousBuyerItemCode></PreviousBuyerItemCode> TYLKO MAKRO | Kod produktu kupującego poprzednika | ||||||
<PreviousSupplierItemCode></PreviousSupplierItemCode> | Kod produktu sprzedawcy poprzednika | ||||||
<ItemDescription>buty</ItemDescription> | Nazwa produktu | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | |||||
<ItemType>CU</ItemType> | Identyfikator opakowania zwrotnego. | "CU" – jednostka handlowa "RC" – opakowanie zwrotne |
|||||
<UnitOfMeasure>PCE</UnitOfMeasure> | Jednostka miary | "PCE" – sztuka "KGM" – kilogram "MTR" - metr "KMT" – kilometr "PA" - opakowanie "SET" - komplet "PR" - para "TNE" – tona metryczna "LTR" - litr |
|||||
<UnitNetPrice>81.97</UnitNetPrice> TYLKO MAKRO | Cena jednostkowa netto | ||||||
<TaxRate>22.00</TaxRate> | Stawka VAT | To pole nie jest eksportowane, jeżeli stawka jest równa 0% (zwolniony). | |||||
<TaxCategoryCode>S</TaxCategoryCode> | Kod stawki | Kod stawki: "E" (exempt) - zwolniony "S" (standard) - inna, wyrażona liczba |
|||||
<TaxReference> | |||||||
<ReferenceType>PKWIU</ReferenceType> | Kod typu referencji | ||||||
<ReferenceNumber></ReferenceNumber> | Kod PKWIU | ||||||
</TaxReference> | |||||||
<PackDetails> | |||||||
<UnitPackSize>1.000</UnitPackSize> TYLKO MAKRO | Ilość w opakowaniu zbiorczym w jednostce miary | ||||||
</PackDetails> | |||||||
</Line-Item> | |||||||
</Line> | |||||||
</ProductCatalogue-Lines> | |||||||
<ProductCatalogue-Summary> | |||||||
<TotalLines>1</TotalLines> | Ilość linii | ||||||
</ProductCatalogue-Summary> | |||||||
</Document-ProductCatalogue> |
Najczęstsze problemy występujące podczas eksportu katalogu produktów do systemu ECOD
Aby eksport katalogu produktu do ECOD przebiegł prawidłowo, system musi mieć dostęp do tych informacji, które są informacjami obowiązkowymi dla komunikatu Product Catalog. Tabela przedstawia najczęstsze problemy, z jakimi operator może się spotkać podczas wykonywania operacji Eksport do ECOD i ich przyczyny.
Treść informacji w logu | Przyczyna | Remedium |
---|---|---|
Nie określono numeru GLN firmy na pieczątce | Do centrum będącego właścicielem dokumentu ZZ nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru GLN | Przypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer GLN |
Nie określono numeru GLN kontrahenta | Dla adresu, który jest adresem kontrahenta głównego ZZ nie zdefiniowano numeru GLN | Odnaleźć adres wskazany na ZZ jako adres kontrahenta głównego i wpisać na formatce adresu numer GLN |
Nie określono numeru GLN miejsca dostawy | Do centrum będącego właścicielem ZZ nie została przypisana pieczątka lub też nie zdefiniowano żadnego z poniższych numerów GLN: numeru GLN na formatce adresu wysyłkowego kontrahenta wewnętrznego przypisanego do pieczątki firmy, numeru GLN na pieczątce firmy | Przypisać pieczątkę do centrum-właściciela ZZ i wpisać na niej numer GLN. Jeżeli miejsce dostawy ma być inne niż adres z pieczątki, przypisać do pieczątki kontrahenta wewnętrznego, zdefiniować dla niego adres wysyłkowy zgodny z miejscem dostawy i wprowadzić na nim numer GLN |
Nie określono numeru GLN punktu wysyłki | Dla adresu, który jest adresem kontrahenta docelowego ZZ nie zdefiniowano numeru GLN | Sprawdzić, który adres został wybrany jako adres kontrahenta docelowego ZZ, zdefiniować na formatce tego adresu numer GLN |
Nie określono numeru EAN na karcie towaru: T1 (format Makro) | Dla towaru T1 będącym elementem dokumentu ZZ nie zdefiniowano numeru EAN (błąd wystąpi, jeżeli dla towaru nie zdefiniowano żadnego z poniższych numerów: brak numeru na formatce jednostki pomocniczej towaru użytej na dokumencie ZZ, brak numeru EAN na zakładce Ogólne karty towaru T1, brak „kodu u kontrahenta” dla Odbiorcy zgodnego z kontrahentem głównym ZZ | Jeżeli użyto jednostki pomocniczej towaru i wysłana ma być ilość w tej jednostce, należy określić EAN na formatce tej jednostki pomocniczej towaru. Jeżeli wysłana ma być ilość w jednostce głównej należy zdefiniować EAN na zakładce Ogólne karty towaru T1 lub wpisać EAN w polu „u kontrahenta” na formatce Odbiorca towaru, definiowanej na zakładce Kontrahenci karty towaru T1 dla kontrahenta głównego ZZ |
Import katalogu produktów OZ z systemu ECOD
W wyniku dokonywanej z poziomu listy zamówień sprzedaży operacji: Import z ECOD w systemie zostaje wygenerowany dokument ZS. Podstawowe dane na tym dokumencie ustalane są na podstawie przekazanych w pliku Order informacji. Sposób interpretacji tych danych przedstawia poniższa tabela. Puste sekcje w tabeli oznaczają, że informacje, których dotyczą nie są przez system interpretowane.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | |||||
---|---|---|---|---|---|---|---|
<Document-ProductCatalogue> | |||||||
<ProductCatalogue-Header> | |||||||
<ProductCatalogueNumber>4</ProductCatalogueNumber> | Numer katalogu produktów | ||||||
<PeriodEndDate>2009-10-20</PeriodEndDate> | Data obowiązywania | Data obowiązywania „Do” (brak wpisu oznacza bezterminowe obowiązywanie) | |||||
<DocumentFunctionCode>N</DocumentFunctionCode> | Typ dokumentu: „P” – przyrostowy „N” – nie przyrostowy |
||||||
</ProductCatalogue-Header> | |||||||
<ProductCatalogue-Parties> | |||||||
<Seller> | |||||||
<ILN>1111111111116</ILN> | GLN sprzedawcy | ||||||
</Seller> | |||||||
</ProductCatalogue-Parties> | |||||||
<ProductCatalogue-Lines> | |||||||
<Line> | |||||||
<Line-Item> | |||||||
<LineNumber>1</LineNumber> | Numer linii | ||||||
<LineType>3</LineType> TYLKO MAKRO | Typ linii | Typ linii: 1-dodana; 2-usunięta; 3-zmieniona; 4-bez zmian |
|||||
<EAN>2010000000069</EAN> | EAN produktu | ||||||
<BuyerItemCode>2010000000052</BuyerItemCode> TYLKO MAKRO | Kod produktu kupującego | ||||||
<SupplierItemCode>T1</SupplierItemCode> | Kod produktu sprzedawcy | ||||||
<PreviousEAN></PreviousEAN> | EAN produktu poprzednika | Linia wypełniana na podstawie atrybutu PreviousEAN umieszczonego | |||||
<PreviousBuyerItemCode></PreviousBuyerItemCode> TYLKO MAKRO | Kod produktu kupującego poprzednika | ||||||
<PreviousSupplierItemCode></PreviousSupplierItemCode> | Kod produktu sprzedawcy poprzednika | ||||||
<UnitNetPrice>81.97</UnitNetPrice> TYLKO MAKRO | Cena jednostkowa netto | ||||||
<PackDetails> | |||||||
<UnitPackSize>1.000</UnitPackSize> TYLKO MAKRO | Ilość w opakowaniu zbiorczym w jednostce miary | ||||||
</PackDetails> | |||||||
</Line-Item> | |||||||
</Line> | |||||||
</ProductCatalogue-Lines> | |||||||
<ProductCatalogue-Summary> | |||||||
<TotalLines>1</TotalLines> | Ilość linii | ||||||
</ProductCatalogue-Summary> | |||||||
</Document-ProductCatalogue> |
Najczęstsze problemy występujące podczas importu katalogu produktów OZ z ECOD
Aby operacja importu pliku ProductCatalog przebiegła prawidłowo, system musi odnaleźć i odpowiednio zinterpretować przesyłane w pliku informacje. Tabela przedstawia najczęstsze problemy, z jakimi operator może się spotkać podczas wykonywania operacji Import OZ z ECOD i ich przyczyny.
Treść informacji w logu | Przyczyna | Remedium |
---|---|---|
Nie znaleziono waluty | W programie XL nie zdefiniowano waluty o symbolu zgodnym z przesyłaną waluta faktury | Sprawdzić w sekcji <Invoice-Currency> importowanego pliku symbol waluty, zdefiniować taką walutę w systemie |
Nie udało się odnaleźć kontrahenta o numerze GLN: 1256565656565 | W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w pliku | Wprowadzić numer GLN na zakładce Ogólne karty kontrahenta-sprzedawcy, a jeżeli adres kontrahenta ma być inny niż jego adres aktualny, wówczas wprowadzić numer GLN na jednym z jego adresów |
Nie udało się odnaleźć towaru o numerze EAN 1255555555555 | W systemie nie istnieje towar z numerem EAN zgodnym z przesyłanym w pliku (błąd wystąpi, jeżeli nie zostanie odnaleziony EAN w żadnej ze wskazanych pozycji: brak jednostki pomocniczej z numerem EAN zgodnym z przesyłanym, brak karty towaru, na której na zakładce Ogólne zdefiniowano EAN zgodny z przesyłanym, brak towaru, dla którego zdefiniowano „kod u kontrahenta” zgodny z przesyłanym | Na towarze, którego dotyczy importowana faktura należy zdefiniować numer EAN zgodny z przesyłanym |
Nie znaleziono w konfiguracji wybranej stawki podatkowej 7% S | W programie nie zdefiniowano stawki podatkowej 7% | Dodać brakująca stawkę podatku do konfiguracji systemu |
Wymiana zamówień za pomocą systemu ECOD
Eksport zamówienia zakupu ZZ do systemu ECOD
Podstawą generowania pliku xml dla komunikatu Order wysyłanego do dostawcy jest zarejestrowane w systemie zamówienie zakupu. Tabela przedstawia strukturę komunikatu typu Order oraz zasady ustalania i przesyłania do pliku xml informacji zawartych w eksportowanym zamówieniu. Sekcje, które nie są przez program obsługiwane, pozostawione są w tabeli jako puste. Linie występujące wyłącznie w formacie właściwym dla sieci Elektro prezentowane są w kolorze zielonym, linie występujące wyłącznie w formacie Makro w kolorze niebieskim, linie wspólne w kolorze czarnym.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | ||||
---|---|---|---|---|---|---|
<Document-Order> | ||||||
<Order-Header> | ||||||
<OrderType>220</OrderType> | Rodzaj zamówienia | Wartość atrybutu o nazwie OrderType zdefiniowanego na zakładce Atrybuty dokumentu ZZ, a jeżeli jej brak, wówczas wysyłane jest 220 | ||||
<OrderNumber>ZZ-42/09/SER</OrderNumber> | Numer zamówienia | Pełny numer ZZ | ||||
<OrderDate>2009-10-17</OrderDate> | Data zamówienia | Data wystawienia ZZ | ||||
<ExpectedDeliveryDate>2009-10-17</ExpectedDeliveryDate> | Oczekiwana data dostawy | Data realizacji ZZ | ||||
<ExpectedDeliveryTime>2009-10-17</ExpectedDeliveryTime> | Oczekiwany czas dostawy | |||||
<PromotionReference></PromotionReference> | Kod transakcji promocyjnej | |||||
<DocumentFunctionCode>O</DocumentFunctionCode> | Typ dokumentu | O – oryginał | ||||
<ResponseType>AC</ResponseType> | Typ potwierdzenia | Wartość atrybutu o nazwie ResponseType zdefiniowanego na zakładce Atrybuty dokumentu ZZ, a jeżeli jej brak, wówczas wysyłane jest NA | ||||
<PaymentType>42</PaymentType> | Forma płatności | Forma płatności dokumentu ZZ, wg zasady: gotówka-10, przelew-42, czek-20, kompensta-97, w przypadku, gdy formy nie uda się ustalić linia jest pusta | ||||
<Remarks></Remarks> | Opis/Uwagi | Informacje pobierane z pola „Opis” na zakładce Nagłówek. | ||||
</Order-Header> | ||||||
<DetailsOfTransport> | ||||||
<TermsOfDelivery>BY</TermsOfDelivery> | Wartość atrybutu o nazwie TermsOfDelivery zdefiniowanego na zakładce Atrybuty dokumentu ZZ | |||||
<CarrierName>ABC</CarrierName> | Nazwa spedytora zdefiniowanego na wysyłce, do której spięto ZZ | |||||
</DetailsOfTransport> | ||||||
<Order-Parties> | ||||||
<Buyer> | ||||||
<ILN>3333333333333</ILN> | GLN kupującego | Dane z pieczątki centrum głównego firmy, niezależnie od tego, które centrum jest właścicielem eksportowanego dokumentu | ||||
<PartyName>ABS</PartyName> | Nazwa kupującego | Dane z ww. pieczątki firmy | ||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | ||||||
<CityName>Kraków</CityName> | ||||||
<PostalCode>33-156</PostalCode> | ||||||
<Country>PL</Country> | ||||||
<TelephoneNo>012334569658</TelephoneNo> | ||||||
<FaxNo>012565986555</FaxNo> | ||||||
</Buyer> | ||||||
<BuyerHeadquarters> | ||||||
<ILN>3333333333333</ILN> | GLN siedziby kupującego | Dane z pieczątki centrum głównego firmy, niezależnie od tego, które centrum jest właścicielem eksportowanego dokumentu | ||||
<Name>K2</Name> | Nazwa kupującego | |||||
<StreetAndNumber>czarna</StreetAndNumber> | Ulica i numer | |||||
<CityName>Warszawa</CityName> | Miasto | |||||
<PostalCode>00-000</PostalCode> | Kod pocztowy | |||||
<Country /> | Kraj (kodowane ISO 3166) | |||||
</BuyerHeadquarters> | ||||||
<Seller> | ||||||
<ILN>2222222222222</ILN> | GLN Sprzedającego | Numer GLN zdefiniowany na formatce adresu, który jest adresem kontrahenta głównego na dokumencie ZZ | ||||
<Name>K1</Name> | Nazwa sprzedawcy | |||||
<CodeByBuyer /> | Kod sprzedawcy według Kupującego | |||||
<Fax /> | Numer faksu sprzedawcy | |||||
<PartyName>ABC</PartyName> | Nazwa sprzedawcy | Dane z ww. adresu | ||||
<CodeByBuyer>121254555</CodeByBuyer> | Kod wg kupującego | Wartość atrybutu o nazwie CodeByBuyer zdefiniowanego na zakładce Atrybuty dokumentu ZZ | ||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | Dane z ww. adresu | |||||
<CityName>Kraków</CityName> | ||||||
<PostalCode>33-156</PostalCode> | ||||||
<Country>PL</Country> | ||||||
<TelephoneNo>012334569658</TelephoneNo> | ||||||
<FaxNo>012565986555</FaxNo> | ||||||
</Seller> | ||||||
<DeliveryPoint> | ||||||
<ILN>1111111111111</ILN> | GLN miejsca dostawy | Numer GLN zdefiniowany na formatce adresu wysyłkowego kontrahenta wewnętrznego przypisanego do pieczątki centrum będącego właścicielem ZZ. Jeżeli ww. GLN nie zostanie odnaleziony, wówczas wysyłany jest numer GLN z ww. pieczątki Jeżeli na ww. pieczątce nie określono numeru GLN wówczas wysyłany jest numer GLN z najbliższego centrum nadrzędnego, którego pieczątka posiada określony numer GLN |
||||
<Name>K2</Name> | Nazwa miejsca dostawy | |||||
<PartyName>WWA</PartyName> | Nazwa miejsca dostawy | Dane pobrane z ww. adresu/pieczątki | ||||
<StreetAndNumber>Handlowa 3</StreetAndNumber> | ||||||
<CityName>Kraków</CityName> | ||||||
<PostalCode>33-156</PostalCode> | ||||||
<Country>PL</Country> | ||||||
<TelephoneNo>012334569658</TelephoneNo> | ||||||
<FaxNo>012565986555</FaxNo> | ||||||
</DeliveryPoint> | ||||||
<ShipFrom> | ||||||
<ILN>4444444444444</ILN> | GLN punktu wysyłki | Numer GLN zdefiniowany na formatce adresu, który jest adresem kontrahenta docelowego dokumentu ZZ | ||||
</ShipFrom> | ||||||
<UltimateCustomer> | ||||||
<ILN>4444444444444</ILN> | GLN kontrahenta | Numer GLN zdefiniowany na formatce adresu, który jest adresem kontrahenta przypisanego do atrybutu o nazwie UltimateCustomer, zdefiniowanego na zakładce Atrybuty dokumentu ZZ | ||||
</UltimateCustomer> | ||||||
</Order-Parties> | ||||||
<Order-Lines> | ||||||
<Line> | ||||||
<Line-Item> | ||||||
<LineNumber>1</LineNumber> | Numer linii | Kolejny numer pozycji wczytywanej z ZZ do pliku | ||||
<EAN>4444444444444</EAN> | EAN towaru | Kod EAN zdefiniowany na formatce jednostki pomocniczej użytej na elemencie ZZ. Jeżeli kod EAN nie został dla tej jednostki zdefiniowany lub na elemencie ZZ jednostka pomocnicza nie została użyta, wówczas wysyłany jest kod EAN z zakładki Ogólne karty towaru. Jeżeli i tam nie zostanie znaleziony, wówczas wysyłany jest kod z pola "kod u kontrahenta" definiowanego na zakładce Kontrahenci karty towaru dla kontrahenta głównego ZZ |
||||
<BuyerItemCode></BuyerItemCode> | Kod towaru u kupującego | Kod towaru z założonej w systemie karty towaru | ||||
<SupplierItemCode></SupplierItemCode> | Kod towaru u sprzedawcy | Kod zdefiniowany na formatce "Dostawca towaru" w polu "Kod u kontrahenta", dostępnej na zakładce Kontrahenci karty towaru, dla kontrahenta zgodnego z kontrahentem głównym ZZ | ||||
<ItemDescription></ItemDescription> | Nazwa towaru | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | ||||
<LineRemarks>opis</LineRemarks> | Informacja tekstowa | Treść wprowadzona w polu Opis elementu ZZ | ||||
<ItemType>CU</ItemType> | Identyfikator towaru | Jeżeli element ZZ jest kaucją (zaznaczony parametr "kaucja" na karcie towaru), wówczas wysyłany jest symbol kaucji tj. RC, w pozostałych przypadkach symbol jednostki handlowej tj.CU | ||||
<OrderedQuantity>2</OrderedQuantity> | Zamawiana ilość | Jeżeli wysyłany jest EAN zdefiniowany dla jednostki pomocniczej, użytej na elemencie ZZ, wówczas wysyłana jest ilość w jednostce pomocniczej, w przeciwnym razie tj., jeżeli wysyłany jest EAN zdefiniowany na zakładce Ogólne karty towaru lub kod u kontrahenta, wówczas wysyłana jest ilość w jednostce podstawowej. | ||||
<OrderedUnitPackSize>1.000</OrderedUnitPackSize> | Ilość szt. detalicznych w opakowaniu handlowym | Wskaźnik wyliczany na podstawie przelicznika jednostki pomocniczej występującej na elemencie ZZ do jednostki głównej, wskazujący, ile towaru w jednostce głównej "mieści" się w 1 jednostce pomocniczej. Jeżeli na ZZ jednostka pomocnicza nie została użyta, wówczas przesyłana jest 1. | ||||
<UnitOfMeasure>KGM</UnitOfMeasure> | Jednostka miary | Symbol jednostki miary z grupy jednostek dozwolonych dla danego formatu (Makro/Elektro) ustalony na podstawie jednostki głównej/pomocniczej, w zależności od tego, która z tych jednostek dotyczy wysyłany EAN | ||||
<OrderedUnitNetPrice>23.45</OrderedUnitNetPrice> | Cena netto | Jeżeli przesyłana jest ilość w jednostce pomocniczej, tj. wysyłany jest EAN tej jednostki, wówczas wysyłana jest cena jednostkowa dla jednostki pomocniczej, w przeciwnym wypadku wysyłana jest cena dla jednostki podstawowej. | ||||
<ExpectedDeliveryDate>2011-09-01</ExpectedDeliveryDate> | Data realizacji | Linia wypełniana datą realizacji kolejnych elementów eksportowanego ZZ | ||||
<Remarks>Uwagi<Remarks> | Opis/Uwagi | Linia wypełniana wartością zgodną z opisem wprowadzonym na elemencie zamówienia | ||||
</Line-Item> | ||||||
</Line> | ||||||
</Order-Lines> | ||||||
<Order-Summary> | ||||||
<TotalLines>1</TotalLines> | Ilość linii | Ilość przesyłanych linii (pozycji) dokumentu | ||||
<TotalOrderedAmount>2.000</TotalOrderedAmount> | Suma zamawianych ilości | Łączna ilość zamawianych towarów wyrażona w jednostce podstawowej. W przypadku gdy dla danego towaru wysyłana jest ilość w jednostce pomocniczej, ulega ona przeliczeniu na ilość w jednostce podstawowej i taka ilość jest brana pod uwagę podczas sumowania łącznej ilości zamawianych towarów |
||||
</Order-Summary> | ||||||
</Document-Order> |
Najczęstsze problemy występujące podczas eksportu ZZ do systemu ECOD
Aby eksport dokumentu ZZ do ECOD przebiegł prawidłowo, system musi mieć dostęp do tych informacji, które są informacjami obowiązkowymi dla komunikatu Order. Tabela przedstawia najczęstsze problemy, z jakimi operator może się spotkać podczas wykonywania operacji Eksport do ECOD i ich przyczyny.
Treść informacji w logu | Przyczyna | Remedium |
---|---|---|
Nie określono numeru GLN firmy na pieczątce | Do centrum będącego właścicielem dokumentu ZZ nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru GLN | Przypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer GLN |
Nie określono numeru GLN kontrahenta | Dla adresu, który jest adresem kontrahenta głównego ZZ nie zdefiniowano numeru GLN | Odnaleźć adres wskazany na ZZ jako adres kontrahenta głównego i wpisać na formatce adresu numer GLN |
Nie określono numeru GLN miejsca dostawy | Do centrum będącego właścicielem ZZ nie została przypisana pieczątka, lub też nie zdefiniowano żadnego z poniższych numerów GLN: numeru GLN na formatce adresu wysyłkowego kontrahenta wewnętrznego przypisanego do pieczątki firmy, numeru GLN na pieczątce firmy | Przypisać pieczątkę do centrum-właściciela ZZ i wpisać na niej numer GLN. Jeżeli miejsce dostawy ma być inne niż adres z pieczątki, przypisać do pieczątki kontrahenta wewnętrznego, zdefiniować dla niego adres wysyłkowy zgodny z miejscem dostawy i wprowadzić na nim numer GLN |
Nie określono numeru GLN punktu wysyłki | Dla adresu, który jest adresem kontrahenta docelowego ZZ nie zdefiniowano numeru GLN | Sprawdzić, który adres został wybrany jako adres kontrahenta docelowego ZZ, zdefiniować na formatce tego adresu numer GLN |
Nie określono numeru EAN na karcie towaru: T1 (format Makro) | Dla towaru T1 będącym elementem dokumentu ZZ nie zdefiniowano numeru EAN (błąd wystąpi, jeżeli dla towaru nie zdefiniowano żadnego z poniższych numerów: brak numeru na formatce jednostki pomocniczej towaru użytej na dokumencie ZZ, brak numeru EAN na zakładce Ogólne karty towaru T1, brak „kodu u kontrahenta” dla Odbiorcy zgodnego z kontrahentem głównym ZZ | Jeżeli użyto jednostki pomocniczej towaru i wysłana ma być ilość w tej jednostce, należy określić EAN na formatce tej jednostki pomocniczej towaru. Jeżeli wysłana ma być ilość w jednostce głównej należy zdefiniować EAN na zakładce Ogólne karty towaru T1 lub wpisać EAN w polu „u kontrahenta” na formatce Odbiorca towaru, definiowanej na zakładce Kontrahenci karty towaru T1 dla kontrahenta głównego ZZ |
Import zamówienia ZS z systemu ECOD
W wyniku dokonywanej z poziomu listy zamówień sprzedaży operacji: Import z ECOD w systemie zostaje wygenerowany dokument ZS. Podstawowe dane na tym dokumencie ustalane są na podstawie przekazanych w pliku Order informacji. Sposób interpretacji tych danych przedstawia poniższa tabela. Puste sekcje w tabeli oznaczają, że informacje, których dotyczą nie są przez system interpretowane.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | ||||
---|---|---|---|---|---|---|
<Document-Order> | ||||||
<Order-Header> | ||||||
<OrderType>220</OrderType> | Rodzaj zamówienia | Jeżeli dla ZS zdefiniowano klasę atrybutu o nazwie OrderType, wówczas atrybut taki zostanie automatycznie na ZS dodany i wypełniony wartością przesyłaną w linii | ||||
<OrderNumber>ZZ-42/09/SER</OrderNumber> | Numer zamówienia | Przesyłany numer jest zapisywany w polu "u kontrahenta" na zakładce Nagłówek ZS | ||||
<OrderDate>2009-10-17</OrderDate> | Data zamówienia | Na tej podstawie ustalana jest data wystawienia ZS | ||||
<ExpectedDeliveryDate>2009-10-17</ExpectedDeliveryDate> | Oczekiwana data dostawy | Na tej podstawie ustalana jest data realizacji ZS | ||||
<ExpectedDeliveryTime>2009-10-17</ExpectedDeliveryTime> | Oczekiwany czas dostawy | |||||
<PromotionReference></PromotionReference> | Kod transakcji promocyjnej | |||||
<DocumentFunctionCode>O</DocumentFunctionCode> | Typ dokumentu | |||||
<ResponseType>AC</ResponseType> | Typ potwierdzenia | Jeżeli dla ZS zdefiniowano klasę atrybutu o nazwie ResponseType, wówczas atrybut taki zostanie automatycznie na ZS dodany i wypełniony wartością przesyłaną w linii | ||||
<PaymentType>10</PaymentType> | Forma płatności | Na tej podstawie ustalana jest forma płatności na ZS, wg zasady: 10-gotówka, 42 - przelew, 20-czek, 97-kompensata, jeżeli w systemie nie zdefiniowano takiej formy, lub nie jest ona przesyłana, wówczas na ZS ustalana jest forma domyślna | ||||
<Remarks></Remarks> | Opis/Uwagi | |||||
</Order-Header> | ||||||
<DetailsOfTransport> | ||||||
<TermsOfDelivery>BY</TermsOfDelivery> | Jeżeli dla ZS zdefiniowano klasę atrybutu o nazwie TermsOfDelivery, wówczas atrybut taki zostanie automatycznie na ZS dodany i wypełniony wartością przesyłaną w linii | |||||
<CarrierName>ABC</CarrierName> | ||||||
</DetailsOfTransport> | ||||||
<Order-Parties> | ||||||
<Buyer> | ||||||
<ILN>3333333333333</ILN> | GLN kupującego | Na tej podstawie ustalany jest kontrahent główny na dokumencie ZS w sposób następujący: najpierw poszukiwany jest kontrahent z numerem GLN zdefiniowanym na zakładce Ogólne jego karty zgodnym z przesyłanym GLN, kontrahent spełniający ww. warunek zostanie ustalony jako kontrahent główny na ZS, a jego adresem aktualny będzie adresem kontrahenta głównego ZS. Jeżeli ww. kontrahent nie zostanie odnaleziony, wówczas poszukiwany jest adres z numerem GLN zgodnym z przesyłanym. Tak odnaleziony adres staje się adresem kontrahenta głównego na dokumencie ZS, a kontrahentem głównym kontrahent z tego adresu. |
||||
<Name>K2</Name> | Nazwa kupującego | |||||
<StreetAndNumber>czarna</StreetAndNumber> | Ulica i numer | |||||
<CityName>Warszawa</CityName> | Miasto | |||||
<PostalCode>00-000</PostalCode> | Kod pocztowy | |||||
<Country /> | Kraj (kodowane ISO 3166) | |||||
<PartyName>ABS</PartyName> | Nazwa kupującego | |||||
</Buyer> | ||||||
<Seller> | ||||||
<ILN>2222222222222</ILN> | GLN Sprzedającego | |||||
<Name>K1</Name> | Nazwa sprzedawcy | |||||
<CodeByBuyer /> | Kod sprzedawcy według Kupującego | |||||
<Fax /> | Numer faksu sprzedawcy | |||||
<PartyName>ABC</PartyName> | Nazwa sprzedawcy | |||||
<CodeByBuyer>121254555</CodeByBuyer> | Kod wg kupującego | Jeżeli dla obiektu "ZS" zdefiniowano klasę atrybutu o nazwie "CodeByBuyer" i jeżeli w pliku jest ten numer przesyłany, wówczas na generowanym w wyniku importu dokumencie ZS zostanie taki atrybut automatycznie dodany i wypełniony wartością zgodną z przesyłaną w pliku zawartością linii <CodeByBuyer> | ||||
</Seller> | ||||||
<DeliveryPoint> | ||||||
<ILN>1111111111111</ILN> | GLN miejsca dostawy | Na tej podstawie ustalany jest kontrahent docelowy na dokumencie ZS w sposób następujący: najpierw poszukiwany jest kontrahent z numerem GLN zdefiniowanym na zakładce Ogólne jego karty zgodnym z przesyłanym GLN, odnaleziony kontrahent staje się kontrahentem docelowym na ZS, a jego aktualny adres staje się adresem kontrahenta docelowego na ZS. Jeżeli ww. kontrahent nie zostanie odnaleziony, wówczas poszukiwany jest adres z numerem GLN zgodnym z przesyłanym GLN. Tak odnaleziony adres staje się adresem kontrahenta docelowego na dokumencie ZS, a kontrahentem docelowym kontrahent z tego adresu. |
||||
<Name>K1</Name> | Nazwa sprzedawcy | |||||
<CodeByBuyer /> | Kod sprzedawcy według Kupującego | |||||
<Fax /> | Numer faksu sprzedawcy | |||||
<PartyName>WWA</PartyName> | Nazwa miejsca dostawy | |||||
</DeliveryPoint> | ||||||
<ShipFrom> | ||||||
<ILN>4444444444444</ILN> | GLN punktu wysyłki | |||||
</ShipFrom> | ||||||
<UltimateCustomer> | ||||||
<ILN>4444444444444</ILN> | GLN kontrahenta | Jeżeli dla ZS zdefiniowano klasę atrybutu o nazwie UltimateCustomer, wówczas atrybut taki zostanie automatycznie na ZS dodany. Na podstawie tego numeru ustalany jest kontrahent na atrybucie ZS w sposób następujący: najpierw poszukiwany jest kontrahent z numerem GLN zdefiniowanym na zakładce Ogólne jego karty zgodnym z przesyłanym GLN, odnaleziony kontrahent staje się kontrahentem dla atrybutu na ZS. Jeżeli ww. kontrahent nie zostanie odnaleziony, wówczas poszukiwany jest adres z numerem GLN zgodnym z przesyłanym GLN. Tak odnaleziony kontrahent staje się kontrahentem dla atrybutu na ZS. |
||||
</UltimateCustomer> | ||||||
</Order-Parties> | ||||||
<Order-Lines> | ||||||
<Line> | ||||||
<Line-Item> | ||||||
<LineNumber>1</LineNumber> | Numer linii | |||||
<EAN>4444444444444</EAN> | EAN towaru | Na tej podstawie identyfikowany jest towar, którego zamówienie dotyczy wg kolejności: najpierw poszukiwana jest jednostka pomocnicza, dla której numer EAN jest zgodny z przesyłanym w pliku, jeżeli zostanie ona odnaleziona, wówczas na elemencie ZS ustalany jest towar, którego jednostka pomocnicza spełnia ww. warunek i na elemencie tym ustalona zostanie ta jednostka jako pomocnicza. Jeżeli ww. jednostka nie zostanie odnaleziona, wówczas poszukiwany jest towar, dla którego na zakładce Ogólne zdefiniowano EAN zgodny z przesyłanym w pliku i towar spełniający ww. warunek zostaje ustalony na elemencie ZS. Jeżeli i taki towar nie zostanie odnaleziony, wówczas poszukiwany jest towar, dla którego na zakładce Kontrahenci, dla ustalonego na podstawie wcześniejszych informacji kontrahenta, "kod u kontrahenta" jest zgodny z przesłanym EAN-em. W przypadku tak odnalezionego towaru oraz gdy dla kontrahenta tego zdefiniowano jednostkę pomocniczą, wówczas towar taki dodawany jest na ZS z tą jednostką jako pomocniczą, jeżeli jednostka nie została przypisana do kontrahenta, wówczas z jednostką podstawową. |
||||
<BuyerItemCode></BuyerItemCode> | Kod towaru u kupującego | Jeżeli EAN nie jest przesyłany, wówczas ustalany jest towar, dla którego na formatce dostawcy zdefiniowano „kod u kontrahenta” zgodny z wartością przesyłana w tej linii | ||||
<SupplierItemCode></SupplierItemCode> | Kod towaru u sprzedawcy | Jeżeli EAN i BuyerItemCode nie są przesyłane, wówczas ustalony zostanie towar z kodem (twr_kod) zgodnym z wartością przesyłana w tej linii | ||||
<ItemDescription></ItemDescription> | Nazwa towaru | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | ||||
<LineRemarks></LineRemarks> | Informacja tekstowa | Treść przesyłana w tej linii zostanie dodana do pola Opis na elemencie ZS | ||||
<ItemType>CU</ItemType> | Identyfikator towaru | |||||
<OrderedQuantity>2</OrderedQuantity> | Zamawiana ilość | Jeżeli towar zostanie zidentyfikowany na podstawie EAN‑u jednostki pomocniczej, czyli na podstawie EAN‑u zdefiniowanego na formatce jednostki pomocniczej lub na podstawie kod u kontrahenta, dla którego zdefiniowano jednostkę pomocniczą, wówczas przesłana ilość traktowana jest jako ilość w jednostce pomocniczej a ilość w jednostce głównej wyliczana jest na podstawie przelicznika do jednostki pomocniczej. W pozostałych wypadkach przesyłana ilość traktowana jest jako ilość w jednostce podstawowej i taka ustalana na elemencie ZS. W takim wypadku jednostka pomocnicza pojawi się na elemencie ZS tylko jeżeli jest ona domyślna dla sprzedaży, a jej ilość zostanie wyliczona na podstawie ilości w jednostce głównej i przelicznika. |
||||
<OrderedUnitPackSize>1.000</OrderedUnitPackSize> | Ilość szt. w opakowaniu handlowym | |||||
<UnitOfMeasure>KGM</UnitOfMeasure> | Jednostka miary | |||||
<OrderedUnitNetPrice>23.45</OrderedUnitNetPrice> | Cena netto | |||||
<Remarks>Uwagi</Remarks> | Opis/Uwagi | Jeżeli linia jest wypełniona wówczas wartość tej linii dodawana jest na element zamówienia jako opis. | ||||
<ExpectedDeliveryDate>2009-10-17</ExpectedDeliveryDate> | Oczekiwana data dostawy | Na tej podstawie ustalana jest data realizacji danego elementu ZS wg poniższych zasad: Jeżeli ww. linia jest wypełniona datą, wówczas zostanie porównana z datą wystawienia ZS (datą bieżącą, czyli datą dokonywania operacji): - Jeżeli data w ww. linii jest równa lub większa od daty wystawienia ZS, wówczas zostanie ustalona na jej podstawie data realizacji danego elementu - jeżeli ww. data jest mniejsza od daty wystawienia ZS, wówczas zostanie zignorowana, a data realizacji elementu ZS zostanie ustalona na podstawie ustalanej podczas importu daty realizacji nagłówka ZS. |
||||
</Line-Item> | ||||||
</Line> | ||||||
</Order-Lines> | ||||||
<Order-Summary> | ||||||
<TotalLines>1</TotalLines> | Ilość linii | |||||
<TotalOrderedAmount>2.000</TotalOrderedAmount> | Suma zamawianych ilości | |||||
</Order-Summary> | ||||||
Pełna nazwa pliku Invoice zapisywana jest w polu URL na zakładce Nagłówek generowanego dokumentu ZS | ||||||
</Document-Order> |
Najczęstsze problemy występujące podczas importu zamówienia sprzedaży z systemu ECOD
Aby operacja importu pliku Order przebiegła prawidłowo, system musi odnaleźć i odpowiednio zinterpretować przesyłane w pliku informacje. Tabela przedstawia najczęstsze problemy, z jakimi operator może się spotkać podczas wykonywania operacji Import z ECOD dotyczącej zamówienia sprzedaży i ich przyczyny:
Treść informacji w logu | Przyczyna | Remedium |
---|---|---|
Nie znaleziono waluty | W programie XL nie zdefiniowano waluty o symbolu zgodnym z przesyłaną waluta faktury | Sprawdzić w sekcji <Invoice-Currency> importowanego pliku symbol waluty, zdefiniować taką walutę w systemie |
Nie udało się odnaleźć kontrahenta o numerze GLN: 1256565656565 | W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w pliku | Wprowadzić numer GLN na zakładce Ogólne karty kontrahenta-kupującego, a jeżeli adres kontrahenta ma być inny niż jego adres aktualny, wówczas wprowadzić numer GLN na jednym z jego adresów |
Nie udało się odnaleźć kontrahenta o numerze GLN: 1025652125666 | W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w pliku | Wprowadzić numer GLN na zakładce Ogólne karty kontrahenta-miejsca dostawy, a jeżeli adres dostawy ma być inny niż aktualny adres tego kontrahenta, wówczas wprowadzić numer GLN na jednym z jego adresów |
Nie udało się odnaleźć towaru o numerze EAN 1255555555555 | W systemie nie istnieje towar z numerem EAN zgodnym z przesyłanym w pliku (błąd wystąpi, jeżeli nie zostanie odnaleziony EAN w żadnej ze wskazanych pozycji: brak jednostki pomocniczej z numerem EAN zgodnym z przesyłanym, brak karty towaru, na której na zakładce Ogólne zdefiniowano EAN zgodny z przesyłanym, brak towaru, dla którego zdefiniowano „kod u kontrahenta” zgodny z przesyłanym | Na towarze, którego dotyczy importowana faktura należy zdefiniować numer EAN zgodny z przesyłanym |
Obsługa Awiza wysyłki w programie Comarch ERP XL
Eksport dokumentu WZ, WZE – generowanie Awiza wysyłki
Podstawą generowanie pliku xml dla komunikatu DESADV wysyłanego do odbiorcy jest zarejestrowany w systemie dokument WZ, WZE. Tabela przedstawia strukturę komunikatu oraz zasady ustalania i przesyłania do pliku xml informacji zawartych w eksportowanym dokumencie. Sekcje, które nie są przez program obsługiwane, pozostawione są w tabeli jako puste. Linie występujące wyłącznie w formacie właściwym dla sieci Castorama prezentowane są w kolorze brązowym.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | |||||
---|---|---|---|---|---|---|---|
<Document-DespatchAdvice> | |||||||
<DespatchAdvice-Header> | |||||||
<DespatchAdviceNumber>WZ-42/6/SER1</DespatchAdviceNumber> | Numer awiza wysyłki przydzielany przez wysyłającego | Symbol i pełny numer dokumentu WZ, WZE, zgodnie z przyjętym w systemie ERP XL schematem numeracji | |||||
<DespatchAdviceDate>2009-10-17</DespatchAdviceDate> | Data dokumentu/komunikatu | Data wystawienia WZ, WZE | |||||
<ExpectedDeliveryDate>2009-10-19</ExpectedDeliveryDate> | Spodziewana data dostaway | Linia występuje wyłącznie w przypadku eksportu dokumentu dla formatu "Castorama". Jeżeli do WZ dodano atrybut o tej nazwie, typie „data” i wypełniono go wartością (datą), wówczas w linii tej przesyłana jest wartość tego atrybutu. | |||||
<EstimatedDeliveryDate>2009-10-17</EstimatedDeliveryDate> | Planowana data dostawy | Data wydania WZ, WZE. Jeżeli do WZ, WZE dodano atrybut o tej nazwie, typie „data” i wypełniono go wartością (datą), wówczas w linii tej przesyłana jest wartość tego atrybutu. | |||||
<EarliestDeliveryDate>2009-10-15</EarliestDeliveryDate> | Najwcześniejsza data dostawy. | Linia występuje wyłącznie w przypadku eksportu dokumentu dla formatu "Castorama". Jeżeli do WZ dodano atrybut o tej nazwie, typie „data” i wypełniono go wartością (datą), wówczas w linii tej przesyłana jest wartość tego atrybutu. | |||||
<BuyerOrderNumber>ZZ-15/06/SER2</BuyerOrderNumber> | Numer zamówienia (kupującego) | Numer zamówienia kupującego, tj. numer wprowadzony w polu Zamówienie na zakładce Nagłówek dokumentu WZ, WZE widoczny również w kolumnie "Źródłowy" listy dokumentów handlowych. Numer ten jest przepisywany automatycznie, jeżeli WZ, WZE realizuje ZS, na którym zdefiniowano "numer u kontrahenta". |
|||||
<BuyerOrderDate>2019-11-06</BuyerOrderDate> | Data zamówienia | Data wystawienia zamówienia. Pole wysyłane po uzupełnieniu atrybutu FormatEcod wartością Castorama. | |||||
<DespatchNumber>WZ-42/6/SER1</DespatchNumber> | Numer WZ, WZE lub listu przewozowego | Jeżeli dokument WZ, WZE jest elementem wysyłki, wówczas numer listu przewozowego z tej wysyłki, w przeciwnym wypadku, tj., jeżeli WZ, WZE nie jest elementem wysyłki, lub dla wysyłki nie jest określony list przewozowy, wówczas jest to nr WZ, WZE | |||||
<DespatchDate>2019-11-06</DespatchDate> | Data wysyłki | Data wystawienia WZ | |||||
</DespatchAdvice-Header> | |||||||
<DespatchAdvice-Transport> | |||||||
<TermsOfDelivery>EXW</TermsOfDelivery> | Incoterms | Symbol incoterms z dokumentu WZ, WZE | |||||
<ConveyanceReferenceNumber /> | Numer referencyjny przewozu | ||||||
<ModeOfTransport>30</ModeOfTransport> | Rodzaj transportu | Rodzaj transportu zdefiniowany na zakładce Ogólne dokumentu WZ, WZE | |||||
</DespatchAdvice-Transport> | |||||||
<DespatchAdvice-Parties> | |||||||
<Buyer> | |||||||
<ILN>1212121212122</ILN> | GLN kupującego | Numer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta głównego na dokumencie WZ, WZE | |||||
</Buyer> | |||||||
<Seller> | |||||||
<ILN>1313131313133</ILN> | GLN sprzedającego | Numer GLN zdefiniowany na pieczątce firmy przypisanej do centrum będącego właścicielem dokumentu | |||||
<CodeByBuyer>1414141414144</CodeByBuyer> | Kod wg kupującego (kod pod jakim sprzedawca figuruje u odbiorcy) | Wartość atrybutu o nazwie CodeByBuyer zdefiniowanego na zakładce Atrybuty dokumentu WZ, WZE | |||||
</Seller> | |||||||
<DeliveryPoint> | |||||||
<ILN>1515151515155</ILN> | GLN miejsca dostawy | Numer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta docelowego na dokumencie WZ, WZE | |||||
</DeliveryPoint> | |||||||
<FreightForwarder> | |||||||
<ILN>1616161616166</ILN> | GLN przewoźnika | Jeżeli dokument WZ, WZE znajduje się w wysyłce, wówczas będzie to GLN adresu bieżącego kontrahenta będącego spedytorem ww. wysyłki, jeżeli brak wysyłki lub spedytor nie jest określony, lub też nie zdefiniowano dla niego numeru GLN, wówczas będzie to GLN sprzedającego (wg opisu dla pola Seller/ILN) | |||||
</FreightForwarder> | |||||||
</DespatchAdvice-Parties> | |||||||
<DespatchAdvice-Consignment> | |||||||
<Packing-Sequence> | |||||||
<Line> | |||||||
<Line-Item> | |||||||
<LineNumber>1</LineNumber> | Numer pozycji | Kolejny numer pozycji | |||||
<OrderLineNumber>00001</OrderLineNumber> | Lp. pozycji na zamówieniu | Numer pozycji na zamówieniu, z którego wygenerowano WZ, WZE | |||||
<OrderedQuantity>1.000</OrderedQuantity> | Ilość zamawiana | Ilość zamawiana na dokumencie ZS | |||||
<UnitPacksize>1.000</UnitPacksize> | Ilość w opakowaniu | Ilość w opakowaniu zbiorczym | |||||
<EAN>4444444444444</EAN> | Numer wysyłanego towaru | Kod EAN zdefiniowany na formatce jednostki pomocniczej użytej na elemencie, jeżeli nie jest tam zdefiniowany to EAN z zakładki Ogólne karty towaru, jeżeli i tam nie zostanie znaleziony, wówczas z pola "kod u kontrahenta" | |||||
<QuantityDespatched>10</QuantityDespatched> | Ilość wysyłana | Jeżeli dla jednostki pomocniczej na elemencie zdefiniowany jest EAN, wówczas wysyłana jest ilość w jednostce pomocniczej, w przeciwnym razie tj., jeżeli wysyłany jest EAN zdefiniowany na zakładce Ogólne karty towaru lub kod u kontrahenta, wówczas wysyłana jest ilość w jednostce podstawowej | |||||
<UnitOfMeasure>PCE</UnitOfMeasure> | Jednostka miary | Jeżeli wysyłana jednostka zapisana jest jako kgm, wówczas wysyłany jest symbol KGM, w pozostałych wypadkach wysyłany jest symbol PCE - sztuka, przy czym, jeżeli wysyłany jest EAN jednostki pomocniczej, to ww. sprawdzenie dokonywane jest dla symbolu jednostki pomocniczej, jeżeli zaś wysyłany jest EAN jednostki głównej, to ww. sprawdzenie dotyczy symbolu jednostki głównej | |||||
<ItemDescription>buty</ItemDescription> | Opis pozycji | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | |||||
</Line-Item> | |||||||
<Line-Order> | |||||||
<BuyerOrderNumber>ZS-66/19</BuyerOrderNumber> | Numer zamówienia | Numer zamówienia, z którego wygenerowano awizo wysyłki. | |||||
<BuyerOrderDate>2019-11-06</BuyerOrderDate> | Data zamówienia | Data wystawienia zamówienia | |||||
</Line-Order> | |||||||
</Line> | |||||||
</Packing-Sequence> | |||||||
</DespatchAdvice-Consignment> | |||||||
</Document-DespatchAdvice> |
Import Awiza wysyłki – generowanie dokumentu PZ
W wyniku dokonywanej z poziomu listy dokumentów PZ operacji: Import awiza wysyłki w systemie zostaje wygenerowany dokument PZ. Podstawowe dane na tym dokumencie ustalane są na podstawie przekazanych w pliku Desadv informacji. Sposób interpretacji tych danych przedstawia poniższa tabela. Puste sekcje w tabeli oznaczają, że informacje, których dotyczą nie są przez system interpretowane.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | |||||
---|---|---|---|---|---|---|---|
<Document-DespatchAdvice> | |||||||
<DespatchAdvice-Header> | |||||||
<DespatchAdviceNumber>WZ-42/09/SER1</DespatchAdviceNumber> | Numer awiza wysyłki | Zapisywany w polu "Faktura" na zakładce Nagłówek dokumentu PZ | |||||
<DespatchAdviceDate>2009-10-17</DespatchAdviceDate> | Data dokumentu | Data wystawienia PZ | |||||
<EstimatedDeliveryDate>2009-10-17</EstimatedDeliveryDate> | Planowana data dostawy | Data przyjęcia PZ | |||||
<BuyerOrderNumber>ZZ-15/09/SER2</BuyerOrderNumber> | Numer zamówienia | ||||||
<DespatchNumber>WZ-42/09/SER1</DespatchNumber> | Numer WZ, WZE lub listu przewozowego | ||||||
</DespatchAdvice-Header> | |||||||
<DespatchAdvice-Transport> | |||||||
<TermsOfDelivery>EXW</TermsOfDelivery> | Incoterms | Symbol incoterms | |||||
<ConveyanceReferenceNumber></ConveyanceReferenceNumber> | Numer referencyjny przewozu | ||||||
<ModeOfTransport>30</ModeOfTransport> | Rodzaj transportu | Rodzaj transportu zdefiniowany na zakładce Ogólne dokumentu PZ | |||||
</DespatchAdvice-Transport> | |||||||
<DespatchAdvice-Parties> | |||||||
<Buyer> | |||||||
<ILN>1212121212122</ILN> | GLN kupującego | ||||||
</Buyer> | |||||||
<Seller> | |||||||
<ILN>1313131313133</ILN> | GLN sprzedającego | Na tej podstawie znajdowany jest kontrahent główny na dokument PZ, wg kolejności: najpierw poszukiwany jest kontrahent, który ma na zakładce Ogólne GLN zgodny z przesłanym, jeżeli nie zostanie znaleziony, wówczas poszukiwany jest kontrahent, na którego adresie zdefiniowany jest GLN zgodny z przesłanym | |||||
<CodeByBuyer>1414141414144</CodeByBuyer> | Kod wg kupującego (kod pod jakim sprzedawca figuruje u odbiorcy) | Jeżeli dla dokumentów PZ przywiązano klasę atrybutu o nazwie "Codebybuyer, wówczas na dokument PZ atrybut ten zostanie automatycznie dodany i wypełniony wartością przesyłaną w tej linii | |||||
</Seller> | |||||||
<DeliveryPoint> | |||||||
<ILN>1515151515155</ILN> | GLN miejsca dostawy | ||||||
</DeliveryPoint> | |||||||
<FreightForwarder> | |||||||
<ILN>1616161616166</ILN> | GLN przewoźnika | ||||||
</FreightForwarder> | |||||||
</DespatchAdvice-Parties> | |||||||
<DespatchAdvice-Consignment> | |||||||
<Packing-Sequence> | |||||||
<Line> | |||||||
<Line-Item> | |||||||
<LineNumber>1</LineNumber> | Numer pozycji | ||||||
<EAN>4444444444444</EAN> | Numer wysyłanego towaru | Na tej podstawie identyfikowany jest towar, wyszukiwany w kolejności: najpierw sprawdzane są jednostki pomocnicze towarów, jeżeli zostanie znaleziona jednostka z numerem EAN zgodnym z przesłanym, wówczas elementem PZ staje się towar w tej jednostce. Jeżeli jednostka taka nie zostanie odnaleziona, wówczas poszukiwany towar, dla którego na zakładce Ogólne zdefiniowano EAN zgodny z przesłanym, jeżeli nie znaleziono, wówczas poszukiwany towar, dla którego zdefiniowano kontrahenta (odbiorcę/dostawcę) i wskazano kod u kontrahenta zgodny z przesłanym EAN‑em | |||||
<QuantityDespatched>10</QuantityDespatched> | Ilość wysyłana | 1.Jeżeli towar zostanie zidentyfikowany na podstawie EAN‑u jednostki pomocniczej, wówczas przesłana ilość traktowana jest jako ilość w jednostce pomocniczej, ilość w jednostce głównej wyliczana jest na podstawie przelicznika do jednostki pomocniczej. 2.Jeżeli towar zidentyfikowany jest na podstawie EAN zakładki Ogólne towaru, wówczas przesyłana ilość jest ilością w jednostce głównej 3.Jeżeli towar został zidentyfikowany wg kodu u kontrahenta i jeżeli dla tego kontrahenta przypisana jest jednostka pomocnicza, wówczas ilość przesłana wyrażona zostaje w tej jednostce a ilość w jednostce głównej obliczana na podstawie przelicznika. Jeżeli z kontrahentem nie jest związana jednostka pomocnicza, wówczas przesłana ilość interpretowana jest jak ilość w jednostce głównej. |
|||||
<UnitOfMeasure>PCE</UnitOfMeasure> | Jednostka miary | ||||||
<ItemDescription>buty</ItemDescription> | Opis pozycji | Nazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa. | |||||
</Line-Item> | |||||||
</Line> | |||||||
</Packing-Sequence> | |||||||
</DespatchAdvice-Consignment> | |||||||
</Document-DespatchAdvice> |
Obsługa Potwierdzenia dostawy w programie Comarch ERP XL
Eksport dokumentu PZ – generowanie Potwierdzenia dostawy
Podstawą generowania pliku xml dla komunikatu RECADV wysyłanego do dostawcy jest zarejestrowany w systemie dokument PZ. Tabela przedstawia strukturę komunikatu oraz zasady ustalania i przesyłania do pliku xml informacji zawartych w eksportowanym dokumencie. Sekcje, które nie są przez program obsługiwane, pozostawione są w tabeli jako puste.
Nazwa pola wraz z przykładem jego wypełnienia | Opis | Źródło informacji (interfejs) | ||||
---|---|---|---|---|---|---|
<Document-ReceivingAdvice> | ||||||
<ReceivingAdvice-Header> | ||||||
<ReceivingAdviceNumber>PZ-42/09/SER1</ReceivingAdviceNumber> | Numer dowodu przyjęcia dostawy | Symbol i pełny numer dokumentu PZ, zgodnie z przyjętym w systemie ERP XL schematem numeracji | ||||
<ReceivingAdviceDate>2009-10-17</ReceivingAdviceDate> | Data dokumentu | Data wystawienia PZ | ||||
<GoodsReceiptDate>2009-10-17</GoodsReceiptDate> | Planowana data dostawy | Data przyjęcia PZ | ||||
<BuyerOrderNumber>ZZ-15/09/SER2</BuyerOrderNumber> | Numer zamówienia (kupującego) | Numer z pola "zamówienie”, na zakładce Nagłówek dokumentu PZ | ||||
<DespatchNumber>WZ-42/09/SER1</DespatchNumber> | Numer dostawy | Zgodnie z zawartością pola "Faktura" na zakładce Nagłówek dokumentu PZ. Numer dostawy importowany do kolumny „Numer dostawy” w oknie import dokumentów z ECOD. | ||||
<DocumentFunctionCode>O<DocumentFunctionCode> | Typ dokumentu "O" | Zawsze "O" -oryginał | ||||
</ReceivingAdvice-Header> | ||||||
<ReceivingAdvice-Parties> | ||||||
<Buyer> | ||||||
<ILN>1212121212122</ILN> | GLN kupującego | Numer GLN zdefiniowany na pieczątce firmy przypisanej do centrum będącego właścicielem dokumentu | ||||
</Buyer> | ||||||
<Seller> | ||||||
<ILN>1313131313133</ILN | GLN sprzedającego | Numer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta głównego na dokumencie PZ | ||||
<CodeByBuyer>1414141414144</CodeByBuyer> | kod wg kupującego | Wartość atrybutu o nazwie CodeByBuyer zdefiniowanego na zakładce Atrybuty dokumentu PZ | ||||
</Seller> | ||||||
<DeliveryPoint> | ||||||
<ILN>1515151515155</ILN> | GLN miejsca dostawy | Zgodny z Buyer/ILN | ||||
</DeliveryPoint> | ||||||
</ReceivingAdvice-Parties> | ||||||
<ReceivingAdvice-Lines> | ||||||
<Line> | ||||||
<Line-Item> | ||||||
<LineNumber>1</LineNumber> | Numer pozycji towarowej | Kolejny numer pozycji dokumentu PZ | ||||
<EAN>4444444444444</EAN> | numer wysyłanego towaru | Kod EAN zdefiniowany na formatce jednostki pomocniczej użytej na elemencie PZ, jeżeli nie jest tam zdefiniowany to EAN z zakładki Ogólne karty towaru, jeżeli i tam nieznaleziony, wówczas z pola "kod u kontrahenta" | ||||
<QuantityReceived>10.000</QuantityReceived> | Ilość wysyłana | Jeżeli dla jednostki pomocniczej na elemencie zdefiniowany jest EAN, wówczas wysyłana jest ilość w jednostce pomocniczej, w przeciwnym razie tj., jeżeli wysyłany jest EAN zdefiniowany na zakładce Ogólne karty towaru lub kod u kontrahenta, wówczas wysyłana jest ilość w jednostce podstawowej | ||||
<UnitOfMeasure>PCE</UnitOfMeasure> | Jednostka miary | Jeżeli wysyłany jest EAN jednostki pomocniczej, wówczas wysyłany symbol jednostki pomocniczej, jeżeli wysyłany jest EAN jednostki głównej, to symbol jednostki głównej, odpowiednio: KGM lub PCE | ||||
</Line> | ||||||
</Line-Item> | ||||||
</ReceivingAdvice-Lines> | ||||||
<ReceivingAdvice-Summary> | ||||||
<TotalLines>1</TotalLines> | Ilość linii towarowych | Łączna ilość przesyłanych linii (pozycji) towarowych | ||||
<TotalGoodsReceiptAmount>4.000</totalGoodsReceiptAmount> | Suma odebranych ilości | Łączna ilość otrzymanych towarów | ||||
</ReceivingAdvice-Summary> | ||||||
</Document-ReceivingAdvice> |
Import Potwierdzenia dostawy
Podczas importu komunikatu Potwierdzenie dostawy, dokonywanego do konkretnego dokumentu WZ zarejestrowanego w systemie dokonywana jest weryfikacja czy odbiór towarów będących elementami dokumentu WZ został przez kontrahenta potwierdzony, czy został potwierdzony w ilości zgodnej z ilością na dokumencie WZ oraz czy w potwierdzeniu tym nie ma towarów, które nie zostały ujęte na dokumencie WZ. W przypadku zgodności ww. dokumentów, do dokumentu WZ zostanie automatycznie wystawiony spinacz (S)FS. Natomiast w przypadku stwierdzenia jakiejkolwiek niezgodności w zakresie kodów towarów czy też ich ilości, w logu zostanie wyświetlona odpowiednia informacja o występujących różnicach i operacja wystawiania spinacza nie odbędzie się.
Przed wykonaniem importu potwierdzenia dostawy należy wybrać WZ do którego wykonujemy import. Przy próbie importu potwierdzenia o niezgodnym numerze dostawy dostaniemy komunikat:

Informacje dodatkowe
Kod wg Kupującego automatycznie kopiowany na nagłówek dokumentu
Pole CodeByBuyer będzie przekazywane do pliku, jeśli na nagłówku eksportowanego dokumentu będzie dodany atrybut o nazwie CodeByBuyer z odpowiednią wartością.
Aby system automatycznie uzupełniał atrybut dla dokumentów wymienianych przez ECOD należy zdefiniować kopiowanie atrybutu z karty kontrahenta. W tym celu na karcie kontrahenta należy dodać atrybut, który przechowywałby stosowny kod, a następnie zdefiniować kopiowanie tego atrybutu na dokument eksportowany do ECOD, a dokładniej, aby wartość tego atrybutu z karty kontrahenta wypełniała wartość atrybutu CodeByBuyer zapiętego na dokumencie.
Jak przesłać duplikat faktury do ECOD?
W celu przesłania duplikatu faktury w systemie ERP XL do ECOD należy wykonać następujące czynności. Do eksportowanego dokumentu należy dodać atrybut o nazwie DocumentFunctionCode i wypełnić go wartością „D”, wówczas w przesyłanej linii <DokumentFunctionCode> zostanie podany symbol duplikatu. Do dokumentu można również dodać atrybut o nazwie InvoiceDuplicateDate i wypełnić datą (konieczny jest format daty dla atrybutu), wówczas przesłana zostanie również konkretna data. W przypadku, gdy ten atrybut nie zostanie dodany wówczas pole zostanie wypełnione datą wykonania eksportu.
Czy można zmodyfikować format numeracji dokumentów wg którego tworzony jest wpis w komunikatach w linii <InvoiceNumber>?
Tak. Modyfikacja funkcji [CDN].[ECODPelnyNumerDokumentu] pozwoli na zmianę formatu nazwy dokumentu przesyłanej w linii <InvoiceNumber>.
Jak przesłać informację o numerze dokumentu zwrotu dla FSK i (S)FSK?
W tym celu należy zdefiniować w nagłówku dokumentu FSK/(S)FSK atrybut o nazwie BuyerOrderNumber i wypełnić go odpowiednią wartością. Wówczas w linii <BuyerOrderNumber> pojawi się wartość atrybutu.
Przeliczanie nagłówka dokumentu podczas importu FZ
Sposób wyliczenia VAT-u może się różnić w zależności od klienta, wskutek czego mogą nastąpić różnice groszowe w wyliczeniu wartości VAT i brutto. Na dokumencie FZ możliwa jest ręczna korekta tych kwot. Aby wartości były zgodne z plikiem INVOICE, podczas importu kwoty nagłówka FZ aktualizowane są automatycznie na podstawie danych z pliku. Jeżeli pojawiła się taka różnica i nagłówek dokumentu zostanie przeliczony w logu pojawi się informacja: „Kwoty w tabeli VAT zostały przeliczone zgodnie z zapisami w importowanym pliku”.
W jakiej kolejności identyfikowany jest towar podczas importu komunikatu do systemu Comarch ERP XL?
Kolejność wyszukiwania jest następująca:
- Najpierw baza przeszukiwania jest po kodach obcych u kontrahenta głównego – weryfikowania jest linia <BuyerItemCode>, jeżeli algorytm odszuka dany towar, dla którego podpięty jest kontrahent główny na zakładce kontrahenci i kod u kontrahenta się zgadza to system wstawia pozycje do zamówienia (towar) z ilością jaka jest w pliku w linii, <OrderedQuantity> w jednostkach jakie wskazane są na zakładce kontrahenci na towarze dla kontrahenta głównego.
- W przypadku, gdy nie znajdzie takiego towaru po kodzie obcym, pobiera wartość z pola <EAN> i następnie przeszukuje wszystkie towary po EAN jednostki pomocniczej. Jeżeli znajdzie taki towar to wstawia go do zamówienia w ilości z pola <OrderedQuantity> w jednostkach pomocniczych.
- W przypadku, gdy powyższe próby nie znajdą towaru, system pobrany kod z linii <EAN> weryfikuje w bazie z towarami z EAN jednostki podstawowej. Jeżeli po kodzie EAN jednostki podstawowej zostanie znaleziony towar to wstawia pozycję do zamówienia w ilości z pola <OrderedQuantity> w jednostkach podstawowych.
Jakie licencje wymagane są do wymiany danych?
Do jakiejkolwiek wymiany danych konieczna jest licencja serwerowa Mechanizm wymiany danych, do której w zależności od rodzaju wymienianych komunikatów należy dołożyć ECOD współpraca z odbiorcami lub ECOD współpraca z dostawcami.
Wymiana dokumentów odbywa się na podstawie dwóch licencji ECOD Wymiana danych - wymaganej oraz jednej z dwóch pozostałych. Bez licencji wymaganej nie będzie działała żadna z licencji opcjonalnych, czyli nie będzie możliwa wymiana komunikatów ani z odbiorcami, ani z dostawcami.
W jaki sposób mogę wymieniać dokumenty, jakie są modele wymiany?
Istnieją 3 modele obsługi dokumentów w ECOD:
- Pierwszy model sprowadza się do ręcznego generowania plików xml z poziomu systemu Comarch ERP XL. Tak wygenerowane pliki należy przesłać np. pocztą do odbiorcy. Odbiorca po otrzymaniu plików importuje je z poziomu systemu Comarch ERP XL.
- Drugi model opiera się o wykorzystanie serwera ECOD. Plik generowany jest ręcznie w XL’u i zapisywany w katalogu udostępnionym na serwerze. Następnie odbiorca co pewien czas loguje się na stronę ECOD na swoje konto i sprawdza, czy znajdują się dla niego komunikaty do pobrania. Po pobraniu importuje plik za pomocą systemu Comarch ERP XL.
- Trzeci model oparty jest o wykorzystanie EcodConnectora. Po wygenerowaniu z poziomu systemu Comarch ERP XL plików xml i zapisaniu ich w odpowiednim katalogu pliki te transportowane są przez EcodConnector do odbiorcy. EcodConnector co pewien określony czas sprawdza czy w danym katalogu nie znajdują się pliki, a jeśli znajdują wówczas automatycznie przesyła je do odbiorcy. Odbiorca importuje plik xml z poziomu systemu.
Czy mogę zmienić format dla NIP‑u?
Tak. Modyfikacja funkcji [CDN].[ECODTaxId] pozwoli na formatowanie numeru NIP‑u odbiorcy.
Zasady rozpoznawania indeksów towarowych przy eksporcie dokumentów do ECOD
O kolejności poszukiwania kodów w celu wypełnienia linii EAN będzie decydować parametr: „Preferuj kod obcy jako EAN towaru” dostępny z poziomu konfiguracji systemu na zakładce Sprzedaż, zakładce Parametry 2.
Jeżeli parametr „Preferuj kod obcy jako EAN towaru” będzie odznaczony, wówczas system będzie próbował ustalić kod towaru w pierwszej kolejności przeszukując kody własne, a jeżeli nie uda się odnaleźć, wówczas kody obce.
Jeżeli parametr „Preferuj kod obcy jako EAN towaru” będzie zaznaczony, wówczas system będzie próbował ustalić kod towaru w pierwszej kolejności przeszukując kody obce, a jeżeli nie uda się odnaleźć, wówczas kody własne.

Ustalanie kodu towaru na podstawie kodu własnego dla komunikatów: FS, (S)FS, FSE, (S)FSE, FSK, (S)FSK, FKE, (S)FKE, WZ, WZE, OS, PZ, ZZ
System będzie poszukiwać w pierwszej kolejności kodu EAN przypisanego do danego towaru i jednostki jaka została użyta na elemencie dokumentu, przy czym w pierwszej kolejności będzie brany pod uwagę kod typu EAN-13, a jeżeli takich kodów jest wiele, wówczas „domyślny” spośród nich, bądź jeżeli taki nie istnieje to pierwszy z listy.
W drugiej kolejności system będzie poszukiwać EAN‑u przypisanego do towaru i jednostki, lecz o innym typie kodu niż EAN-13.
Następnie, jeżeli kod EAN na podstawie powyższych działań nie zostanie ustalony, wówczas system będzie poszukiwać kodu EAN dla jednostki głównej według identycznych zasad, jakie zostały przedstawione powyżej.
Ustalanie kodu towaru na podstawie kodu obcego dla komunikatów: FS, (S)FS, FSE, (S)FSE, FSK, (S)FSK, FKE, (S)FKE, WZ, WZE, OS, PZ, ZZ
Jeżeli kod towaru nie zostanie określony na podstawie kodu własnego, wówczas system będzie poszukiwać kodu towaru w oparciu o kody obce.
W pierwszej kolejności system będzie poszukiwać kodu EAN przypisanego do danego towaru i jednostki jaka została użyta na elemencie dokumentu i posiadającego przypisanego kontrahenta zgodnego z kontrahentem głównym dokumentu, przy czym najpierw brany będzie pod uwagę kod typu EAN-13.
Jeżeli taki kod nie zostanie ustalony wówczas system będzie poszukiwać kodu EAN zgodnie z powyższym, lecz brany pod uwagę będzie kod typu innego niż EAN-13.
Następnie, jeżeli kod EAN nie zostanie ustalony, wówczas system będzie poszukiwać kodu według identycznych zasad, jakie zostały przedstawione powyżej, lecz z tą różnicą, że bez wskazania na jednostkę.
Jeżeli powyższe działania nie pozwolą określić kodu EAN wówczas operacja eksportu zostanie przerwana, a komunikat nie zostanie utworzony.
Zasady rozpoznawania indeksów towarowych przy imporcie dokumentów z ECOD
O kolejności ustalania indeksów towarowych podczas importu komunikatu z ECOD do systemu Comarch ERP XL będzie decydować parametr: „Preferuj kod obcy z pliku” dostępny z poziomu konfiguracji systemu na zakładce Sprzedaż, zakładce Parametry 2. Dodatkowo podczas poszukiwania towaru na podstawie linii EAN kolejność poszukiwać będzie zależeć od ustawienia parametru: „Dla linii EAN preferuj kod obcy”.
Ustalanie kodu towaru na podstawie kodu obcego z pliku podczas importu komunikatów: ZS i (S)FS (potwierdzenie dostawy)
Jeżeli parametr „Preferuj kod obcy z pliku” jest zaznaczony, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii „BuyerItemCode”. Jeżeli ta identyfikacja się nie powiedzie wówczas system rozpocznie poszukiwanie towaru na podstawie linii EAN w kolejności zgodnej z ustawieniem parametru „Dla linii EAN preferuj kod obcy”.
Jeżeli identyfikacja towaru na podstawie danych z linii EAN nie powiedzie się, wówczas system rozpocznie poszukiwanie towaru na podstawie linii „SupplierItemCode”.
Jeżeli powyższe działania nie pozwolą określić kodu towaru wówczas operacja importu zostanie przerwana, a komunikat nie zostanie wczytany do systemu Comarch ERP XL.
Ustalanie kodu towaru na podstawie kodu własnego podczas importu komunikatów: ZS i (S)FS (potwierdzenie dostawy)
Jeżeli parametr „Preferuj kod obcy z pliku” jest odznaczony, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii EAN w kolejności zgodnej z ustawieniem parametru „Dla linii EAN preferuj kod obcy”.
Jeżeli identyfikacja towaru na podstawie danych z linii EAN nie powiedzie się, wówczas system rozpocznie poszukiwanie towaru na podstawie linii „BuyerItemCode”.
Jeżeli ta identyfikacja się nie powiedzie wówczas system rozpocznie poszukiwanie towaru na podstawie linii „SupplierItemCode”.
Jeżeli powyższe działania nie pozwolą określić kodu towaru wówczas operacja importu zostanie przerwana, a komunikat nie zostanie wczytany do systemu Comarch ERP XL.
Zasady identyfikacji towaru w oparciu o linię „BuyerItemCode”
System w pierwszej kolejności będzie poszukiwać kodu obcego z kontrahentem zgodnym z kontrahentem głównym dokumentu i z jednostką inną niż jednostka podstawowa towaru, a jeżeli to nie przyniesie rezultatu, wówczas w drugiej kolejności z jednostką podstawową towaru.
Zasady identyfikacji towaru w oparciu o linię „SupplierItemCode”
Identyfikacja towaru odbywa się na podstawie kodu towaru określonego na karcie towaru.
Zasady identyfikacji towaru na podstawie linii EAN
Jeżeli parametr „Dla linii EAN preferuj kod obcy” jest zaznaczony, wówczas system będzie poszukiwać kodu obcego zgodnie z zasadami przedstawionymi w części „Zasady identyfikacji towaru w oparciu o linię BuyerItemCode”. Następnie, jeżeli towar nie zostanie określony, wówczas system będzie poszukiwać kodu towaru wśród kodów własnych z jednostką inną niż jednostka główna, a jeżeli to nie da rezultatu to wśród kodów własnych z jednostką główną towaru.
Jeżeli zostanie wyszukanych wiele kodów, wówczas system pobierze „domyślny” spośród nich, bądź jeżeli taki nie istnieje to pierwszy z listy.
Jeżeli parametr „Dla linii EAN preferuj kod obcy” jest odznaczony, wówczas system w pierwszej kolejności będzie poszukiwać kodu własnego z jednostką pomocniczą, a następnie z jednostką główną. Jeżeli to nie da rezultatu to system będzie poszukiwać kodu wśród kodów obcych dla danego kontrahenta i jednostki pomocniczej, a następnie bez przypisanej jednostki.
Ustalanie kodu towaru na podstawie kodu obcego z pliku podczas importu komunikatów: FZ/FZK, (S)FZ (import faktury realizującej awizo wysyłki), PZ, OZ
Jeżeli parametr „Preferuj kod obcy z pliku” jest zaznaczony, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii „SupplierItemCode”. Jeżeli ta identyfikacja się nie powiedzie wówczas system rozpocznie poszukiwanie towaru na podstawie linii EAN w kolejności zgodnej z ustawieniem parametru „Dla linii EAN preferuj kod obcy”.
Jeżeli ta identyfikacja się nie powiedzie, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii „BuyerItemCode”.
Jeżeli powyższe działania nie pozwolą określić kodu towaru wówczas operacja importu zostanie przerwana, a komunikat nie zostanie wczytany do systemu Comarch ERP XL.
Ustalanie kodu towaru na podstawie kodu własnego podczas importu komunikatów: FZ/FZK, (S)FZ (import faktury realizującej awizo wysyłki), PZ, OZ
Jeżeli parametr „Preferuj kod obcy z pliku” jest odznaczony, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii EAN w kolejności zgodnej z ustawieniem parametru „Dla linii EAN preferuj kod obcy”.
Jeżeli ta identyfikacja się nie powiedzie, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii „SupplierItemCode”.
Jeżeli ta identyfikacja się nie powiedzie, wówczas system rozpocznie poszukiwanie kodu na podstawie danych przesyłanych w linii „BuyerItemCode”.
Jeżeli powyższe działania nie pozwolą określić kodu towaru wówczas operacja importu zostanie przerwana, a komunikat nie zostanie wczytany do systemu Comarch ERP XL.
Zasady identyfikacji towaru w oparciu o linię „BuyerItemCode”
Identyfikacja towaru odbywa się na podstawie kodu towaru określonego na karcie towaru.
Zasady identyfikacji towaru w oparciu o linię „SupplierItemCode”
System w pierwszej kolejności będzie poszukiwać kodu obcego z kontrahentem zgodnym z kontrahentem głównym dokumentu i z jednostką inną niż jednostka podstawowa towaru, a jeżeli to nie przyniesie rezultatu, wówczas w drugiej kolejności z jednostką podstawową towaru.
Zasady identyfikacji towaru na podstawie linii EAN
Jeżeli parametr „Dla linii EAN preferuj kod obcy” jest zaznaczony, wówczas system będzie poszukiwać kodu obcego zgodnie z zasadami przedstawionymi w części „Zasady identyfikacji towaru w oparciu o linię SupplierItemCode”. Następnie, jeżeli towar nie zostanie określony, wówczas system będzie poszukiwać kodu towaru wśród kodów własnych z jednostką inną niż jednostka główna, a jeżeli to nie da rezultatu to wśród kodów własnych z jednostką główną towaru.
Jeżeli zostanie wyszukanych wiele kodów, wówczas system pobierze „domyślny” spośród nich, bądź jeżeli taki nie istnieje to pierwszy z listy.
Jeżeli parametr „Dla linii EAN preferuj kod obcy” jest odznaczony, wówczas system w pierwszej kolejności będzie poszukiwać kodu własnego z jednostką pomocniczą, a następnie z jednostką główną. Jeżeli to nie da rezultatu to system będzie poszukiwać kodu wśród kodów obcych dla danego kontrahenta i jednostki pomocniczej, a następnie bez przypisanej jednostki.
E-faktura w zamówieniach publicznych, integracja z PEF
Wysyłka faktur do pliku XML realizowana jest na podstawie specyfikacji przygotowanej przez PEF. Struktura pliku XML oparta została o wytyczne PEPPOL BIS 3.O i CEFACT.
Aby wyeksportować plik w odpowiednim formacie należy dodać klasę atrybutu FormatEcod i uzupełnić wartością: peppol. Dla ułatwienia atrybut ten może zostać przypisany do kontrahenta i przenoszony na fakturę.
Wymiana dokumentów dostosowana do wymagań Castoramy
Jeżeli na karcie kontrahenta oraz dokumentach WZ, FS zdefiniowano atrybut o nazwie „FormatEcod” i określono dla niego wartość „Castorama”, wówczas dokumenty będą generowane i odbierane w standardzie oczekiwanym przez Castoramę, w przeciwnym wypadku wygenerowany plik będzie miał dotychczasową strukturę, właściwą dla sieci handlowych. Dokumenty realizowane są w ścieżce ZS -> WZ -> (S)FS lub (s)FS. Jednostki miary wykorzystywane przy wymianie to EA dla jednostki podstawowej oraz PK, PK1 dla jednostki pomocniczej.
Ustalanie jednostki podczas importu zamówienia ZS
- Jeśli na zamówieniu określona zostanie jednostka miary EA w <UnitOfMeasure> wówczas towar zostanie dodany w jednostce podstawowej.
- Jeśli na zamówieniu w <UnitOfMeasure> zostanie określona jednostka miary PK lub PK1 oraz przelicznik w polu <UnitPacksize> będzie większy od 1, wówczas na zamówieniu zostanie ustawiona jednostka o tym samym kodzie EAN oraz przeliczniku.
- Jeśli na zamówieniu zostanie określona jednostka miary PK lub PK1 a przelicznik w polu <UnitPacksize> będzie równy 1, wówczas pozycja zostanie dodana o ile, zostanie odnaleziony towar o identycznej jednostce miary (PK lub PK1) i odpowiednim kodzie EAN.
Eksport numeru awiza dla dokumentu WZ, WZE
Podczas eksportu awiza dostawy konieczne jest wysłanie 16-cyfrowego numeru awiza w polu <DespatchAdviceNumber>. Numer ten składa się powinien z kodu kontrahenta u odbiorcy, daty wystawienia WZ, WZE oraz kolejnego numeru w danym dniu.
Aby poprawnie wysłać numer awiza na dokumencie WZ, WZE należy dodać atrybuty:
- CodeByBuyer (tekstowy) – 6-cyfrowy kod kontrahenta u odbiorcy.
- DespatchNumber (tekstowy) – kolejny numer w danym dniu. Numer uzupełniany jest zerami do 4 cyfr.
Eksport dat
Aby przesłać oczekiwaną datę dostawy <ExpectedDeliveryDate> oraz najwcześniejszą datę dostawy <EarliestDeliveryDate> na dokumencie WZ, WZE należy dodać atrybuty odpowiednio:
- ExpectedDeliveryDate (data) – oczekiwana data dostawy.
- EarliestDeliveryDate (data) – najwcześniejsza data dostawy.
W przypadku braku tych atrybutów pola zostaną uzupełnione na podstawie daty wystawienia WZ, WZE.
Ustalanie jednostki podczas eksportu awiza
- Jeżeli pozycja na WZ, WZE dodana jest w jednostce podstawowej będzie ona przesyłana z jednostką EA
- Jeżeli pozycja na WZ, WZE dodana jest w jednostce podstawowej o nazwie PK lub PK1 będzie przesyłana odpowiednio z jednostką PK lub PK1.
- Jeżeli pozycja na WZ, WZE dodana jest w jednostce pomocniczej (z określonym kodem EAN) przesyłana będzie z jednostką PK oraz odpowiednim przelicznikiem w polu: <UnitPacksize>.
Dodatkowe pola przy eksporcie WZ, WZE
Przy eksporcie awiza wysyłki z określonym atrybutem FormatEcod o wartości Castorama wysyłane jest dodatkowo pole daty zamówienia <BuyerOrderDate>2019-11-06</BuyerOrderDate>.
Dodana została sekcja <Line-Order>, w której zapisywane są numer <BuyerOrderNumber> i data <BuyerOrderDate> zamówienia.
W sekcji <Line-Item> zostały dodane pola odnośnie liczby porządkowej <OrderLineNumber>, ilości <OrderedQuantity> oraz ilości w opakowaniu zbiorczym <UnitPacksize> na zamówieniu.
Przesyłanie faktur do KSeF za pośrednictwem Comarch EDI
Użytkownik ma możliwość wysyłki dokumentów do KSeF za pośrednictwem systemu Comarch EDI. Aby nie procesować oddzielnie wysyłki dokumentów do EDI, a oddzielenie do KSeF można wysyłać dokumenty tylko do Comarch EDI, a system zadba o wysłanie faktur do KSeF.
Więcej informacji dostępnych w biuletynie XL154 – Krajowy System e-Faktur.
XL038 - Zastosowanie danych binarnych
Zastosowanie załączników
Załączniki (dane binarne) pozwalają na wprowadzenie do systemu dowolnych danych w postaci: obrazków, plików, dokumentów oraz powiązania ich z obiektami w systemie, jak np. towarami czy kontrahentami. Dzięki temu, przykładowo do karty towaru można dołączyć jego zdjęcie, a do karty kontrahenta referencje w postaci pliku MS Word. Użytkownik ma pełną dowolność w określeniu formatu, w jakim zapisane i przechowywane będą dane binarne.
Definiowanie i przypisywanie załączników do obiektów
Typy załączników
Typy załączników definiowane są w module Administrator w oknie: Słowniki kategorii, w folderze: Inne, w gałęzi: Typy załączników. W systemie predefiniowane są następujące typy:
- Archiwum, na który składają się rodzaje plików: Archiwa (*.zip)|*.zip|Wszystkie pliki (*.*)|*.*
- Archiwum wydruków, na który składają się rodzaje plików: Pliki PDF (*.pdf).pdf|Wszystkie pliki (*.*)|*.*
- Dziennik, na który składają się Pliki dziennika (*.log) |*.log|Wszystkie pliki (*.*)|*.*
- MSExcel, na który składają się rodzaje plików: Skoroszyty (*.xls,*.xlsx) |*.xlx),*.xlsx|Wszystkie pliki (*.*)|*.*
- MSWord, na który składają się rodzaje plików: Dokumenty (*.doc,*.docx)|*.doc,*.docx|Wszystkie pliki (*.*)|*.*
- Obraz, na który składają się rodzaje plików: Obrazy (*.bmp,*.jpg,*.gif)|*.bmp;*.jpg;*.gif|Wszystkie pliki (*.*)|*.*
- Outlook, na który składają się rodzaje plików: Outlook (*txt,*htm,*html,*msg)|*.txt,*.htm,*.html, *.msg|Wszytkie pliki (*.*)|*.*
- Plik PDF, na który składają się rodzaje plików: Pliki PDF (*.pdf)|*.pdf|Wszystkie pliki (*.*)|*.*
- Tapeta, na który składają się rodzaje plików: Tapeta (*.bmp,*.jpg,*.gif)|*.bmp;*.jpg;*.gif|Wszystkie pliki (*.*)|*.*
- WFLMail, na który składają się rodzaje plików: Pliki WFLMail (*.WFLMail)|*.WFLMail|Wszystkie pliki (*.*)|*.


Typy te umożliwiają przypisanie do obiektów załączników w postaci wymienionych plików. Ponadto, możliwe jest zdefiniowanie nowych typów załączników. Informacje dotyczące dodawania nowych typów załączników znajdują się w rozdziale: Definiowanie nowego typu .
O właściwościach załączników przypisywanych do obiektów w Comarch ERP XL decydują ustawienia w oknie: Typy załączników, otwieranym z poziomu okna: Słowniki kategorii.

W oknie: Typy załączników określa się pola:
- Kategoria – kategoria będąca nazwą gałęzi ze słownika kategorii dotyczącą załączników (załączników)
- Nazwa – nazwa typu umożliwiająca identyfikację plików objętych danym typem
- Pliki – w polu wskazywane są pliki, objęte definiowanych typem
- Grupa – grupa załączników, których dotyczy kategoria załączników, gdzie domyślnie jest to grupa główna. Nową grupę załączników można dodać po otwarciu w Administracji systemu zakładki: Narzędzia, następnie należy wybrać opcję:
Załączniki. Po naciśnięciu przycisku: zostanie otwarte okno: Lista załączników, w którym po naciśnięciu przycisku:
[Dodaj] będzie można dodać nową grupę załączników

- Kompresja danych – odpowiednie zaznaczenie w polu wyboru jednej z opcji zadecyduje o tym, czy w trakcie importu plik zostanie skompresowany. Opcja: Test, służy określeniu czy kompresja jest konieczna. Skompresowane zostaną pliki, których objętość zmniejszy się do 80% stany przed kompresją
- Wersjonowane dane – dotyczy funkcjonalności pokazującej historię zmian załączania kolejnych wersji załącznika. Po zaznaczeniu na typie załącznika w grupie: Wersjonować dane opcji:
- Tak, dodaniu i zapisaniu załącznika o określonym typie do obiektu, a następnie zaznaczeniu go na liście: Historia zmian i naciśnięciu w nim przycisku: [Szukaj] i zapisaniu otwartego za jego pomocą pliku załącznika, w oknie: Historia zmian będzie prezentowana zarówno obecna data modyfikacji pliku, jaki i poprzednia wg sortowania od najnowszej do najstarszej;
- Nie, dodaniu i zapisaniu załącznika o określonym typie do obiektu, a następnie zaznaczeniu go na liście: Historia zmian i naciśnięciu w nim przycisku: [Szukaj] i zapisaniu otwartego za jego pomocą pliku załącznika, w oknie: Historia zmian będzie prezentowana wyłącznie ostatnia data modyfikacji pliku o określonym formacie.
- Dopuszczalny rozmiar pliku (wartość) kB – określa maksymalny dopuszczalny rozmiar pliku załącznika w kB;
- Automatycznie wyświetlaj – parametr ma znaczenie dla plików typu obraz. Po jego zaznaczeniu pliki typu .jpg, .bmp i podobne, będą automatycznie wyświetlone w prawym panelu zakładki: Załączniki, obiektu, do którego takie załączniki zostały przypisane;
- Aktywne – pole wyboru zaznacza się, aby uaktywnić typ załączników w systemie. Po zaznaczeniu tego parametru typ załączników będzie mógł być wykorzystywany podczas przypisywania określonych plików od obiektów.
Lista załączników, zakładka: Załączniki
Okno wyświetla listę załączników wykorzystywanych w systemie COMARCH ERP XL. Aby otworzyć okno, należy z menu: Narzędzia, wybrać pozycję: Załączniki.



Rozmiar załączników
Ograniczenia w wielkości importowanych załączników zależą od wydajności komputera/serwera Użytkownika. W trakcie testów wersji starszej wersji import plików o wielkości ponad 200 MB przebiegał bez zakłóceń (zarówno przy kompresji danych jak i bez kompresji), jednak przy wielkościach plików ponad 400 MB, pojawiały się problemy z importem lub eksportem zaimportowanych załączników. W kolejnych wersjach Comarch ERP XL planowane są prace nad zwiększeniem bezproblemowego importu załączników o większej pojemności.
Osobne ograniczenia dotyczą wyświetlania załączników typu obraz bezpośrednio (bez potrzeby uruchomienia podglądu) w oknie obiektu, do którego zostały przypisane. W ten sposób mogą być wyświetlane pliki, których wielkość nie przekracza około 2 MB, a w przypadku karty załączników do 10 MB.
Ponadto, załączniki mogą być pakowane podczas zapisu, gdzie możliwe jest wykorzystanie opcji: Test, przy wykorzystaniu której możliwa jest weryfikacja wielości pliku po spakowaniu (tzn. czy jest to korzystne).
Wyświetlanie załączników
Po przypisaniu załączników do obiektów w Comarch ERP XL, możliwy jest ich podgląd. Jeżeli załączniki stanowią obraz (np.: *.bmp,*.jpg,*gif), wtedy możliwy jest bezpośredni podgląd w oknie obiektu, do którego zostały przypisane, np.: fotografia pracownika zostanie wyświetlona w oknie: Karta pracownika, po wybraniu zakładki: Załączniki. W takim przypadku musi być jednak zaznaczone pole: Automatycznie wyświetlaj, w oknie: Typy załączników (należy przy tym pamiętać o ograniczeniu wyświetlania plików do określonej wielkości – więcej w rozdziale: Rozmiar załączników ). Pozostałe typy załączników zostaną wyświetlone po naciśnięciu przycisku: [Uruchom] dotyczący podglądu załącznika w oknie obiektu, do którego zostały przypisane. Jego naciśnięcie spowoduje uruchomienie programu, umożliwiającego przegląd załączników, np. dla wyświetlenia arkusza kalkulacyjnego zostanie automatycznie uruchomiona aplikacja: MS Excel.
Podsumowując, wyświetlanie załączników odbywa się:
Automatycznie (dla plików typu: Obraz - np.: *.bmp,*.jpg,*gif), jeżeli dla typu załączników: Obraz, zaznaczono opcję: Automatycznie wyświetlaj (więcej w rozdziale: Rozmiar załączników );
Po naciśnięciu w oknie obiektu, do którego zostały przypisane załączniki, przycisku: [Uruchom] lub wybraniu z menu kontekstowego, (rozwijanego prawym klawiszem myszy) funkcji: Uruchom podgląd.
Definiowanie nowego typu załączników
W przypadku, gdy typy załączników, predefiniowanych w systemie nie odpowiadają Użytkownikowi (Użytkownik życzy sobie zaimportować plik, którego typ predefiniowany nie obejmuje) ma on możliwość zdefiniowania wybranego przez siebie typu załączników. Definiowanie nowego typu załączników odbywa się w oknie: Słowniki kategorii, dostępnym z poziomu modułu: Administrator. Sposób definiowania nowego typu załączników został przedstawiony na przykładzie dodawania typu załączników MS Visio, obejmującego skonwertowane pliki o rozszerzeniu .vsd.
Aby dodać nowy typ załączników (np.: .vsd), należy:
- W oknie: Słowniki kategorii, rozwinąć gałąź kategorii: Inne i zaznaczyć kategorię: Typy załączników
- Po zaznaczeniu danych załączników, nacisnąć przycisk: [Dodaj]. Zostanie otworzone okno: Typy załączników
- W oknie: Typy załączników, należy wprowadzić następujące wartości:
- Kategoria – przy dodawaniu załączników jest to domyślnie i bez możliwości modyfikacji kategoria: Typy załączników
- Nazwa – nazwa typu umożliwiająca identyfikację plików objętych danym typem. Zakładając, że dodawany jest typ załącznika, który umożliwi importowanie plików PDF, można przyjąć nazwę PDF
- Pliki – w polu wskazywane są pliki, objęte definiowanych typem, np. jeśli mają być zaimportowane pliki MS VISIO, należy je wymienić w tym polu w formacie: MS VISIO (*.vsd)|*.vsd|Wszystkie pliki (*.*)|*.*.
- Grupa – grupa załączników, których dotyczy kategoria załączników, gdzie domyślnie jest to grupa główna
- Kompresja danych – odpowiednie zaznaczenie w polu wyboru jednej z opcji zadecyduje o tym, czy w trakcie importu plik zostanie skompresowany. Opcja: Test, służy określeniu czy kompresja jest konieczna. Skompresowane zostaną pliki, których objętość zmniejszy się do 80% stany przed kompresją
- Wersjonowane dane – dotyczy funkcjonalności pokazującej historię zmian załączania kolejnych wersji załącznika – szerzej w rozdziale: Typy załączników
- Dopuszczalny rozmiar pliku (wartość) kB – określa maksymalny dopuszczalny rozmiar pliku załącznika w kB
- Aktywne – zaznaczenie zadecyduje o statusie aktywności danego typu. Niemożliwe będzie umieszczenie nieaktywnego typu danych na obiekcie


Po wypełnieniu pól w oknie: Typy załączników, należy je zapisać, naciskając przycisk: [Zapisz]. Nowy typ załączników zostanie wprowadzony na listę typów załączników w oknie: Słowniki kategorii.

- Nowy typ załączników będzie mógł być wykorzystywany w systemie – będą mogły być przypisywane pliki PDF do wybranych obiektów, jeżeli:
- typ załączników będzie aktywny (zaznaczony parametr: Aktywne, w oknie: Typy załączników, zob. wyżej)
- po zapisaniu typu załączników, została nagrana konfiguracja (aby ją nagrać należy otworzyć okno:
- Konfiguracja i nacisnąć przycisk: [Zapisz].
Lista załączników
Lista załączników, zakładka: Załączniki
Załączniki, które zostały użyte w systemie prezentowane są w oknie: Lista załączników. Z poziomu tego okna możliwe jest również dodawanie, usuwanie, importowanie i eksportowanie załączników oraz przypisywanie ich od obiektów.

W oknie dostępne są pola i funkcje:
Rozmiar – filtr umożliwiający zawężenie listy wyświetlanych załączników według kryterium wielkości plików w kB.
Archiwalne – po zaznaczeniu parametru, na liście zostaną wyświetlone zarówno załączniki aktywne jak i archiwalne. Załączniki archiwalne będą wyświetlane szarym kolorem czcionki.
Typ – filtr umożliwiający zawężenie listy wyświetlanych załączników według ich typu.
Język - filtr umożliwiający zawężenie listy wyświetlanych załączników według języka.
Data utworzenia – filtr umożliwiający zawężenie listy wyświetlanych załączników do wskazanego zakresu dat w polach: Od, Do.
[Dodaj grupę] – po naciśnięciu przycisku otwiera się okno: Grupa załączników.
[Dodaj] – służy dodaniu załącznika do listy. Po naciśnięciu przycisku zostanie wyświetlone okno: Załącznik, z poziomu którego można importować oraz eksportować załączniki, a także przypisywać załączniki do obiektu. Po dodaniu łącznika kursor będzie podświetlał nowo dodany rekord na liście.
[Karta] – po naciśnięciu przycisku zostanie wyświetlone do podglądu/edycji okno: Załącznik
[Usuń] – usuwa załącznik (niepowiązaną z żadnym obiektem) z listy.
Na liście załączników wyświetlone będą automatycznie załączniki typu dziennik, które zawierają loga wygenerowanego podczas wykonywania akcji kluczowej przez XL WORK AUTOMAT w procesach. W logach tych zawarta jest informacja o przyczynach niepowodzenia w wykonywanych akcjach. W Konfiguracji w części Ogólne na zakładce Parametry 2 jest parametr umożliwiający konfigurację pojawiania się informacji w logu „Do procesu załączaj log tylko gdy wystąpiły błędy lub ostrzeżenia”. W przypadku jego zaznaczenia procesy powinny robić wpisy do załączników tylko w przypadku gdy w logu pojawią się błędy lub ostrzeżenia.
Po podniesieniu pojedynczego załącznika, zostaje otwarte okno: Załącznik, którego właściwości zostały opisane w punkcie: 1.1.6.
Lista załączników, zakładka: Archiwum wydruków
Zakładka Archiwum wydruków na Liście załączników jest analogiczna do zakładki Załączniki. Różnica między nimi sprowadza się do dodatkowych filtrów.
Ponadto na tej zakładce widoczne są wydruki wysyłane jako załączniki w postaci PDF programem pocztowym obok wydruków generowanych na drukarkę stacjonarną. Nazwa wydruku składa się z: <Nazwa wydruku>_<Numer dokumentu>_<Data wydruku>.pdf. Przykład: Faktura sprzedaży_FS-15/10/2010_20101210.pdf
W oknie funkcjonują następujące filtry:
- Data wydruku – umożliwia zawężenie listy wyświetlanych załączników do wskazanego zakresu dat w polach: Od, Do. Sortowanie odbywa się po dacie wydruku
- Data dokumentu – umożliwia zawężenie listy wyświetlanych załączników do wskazanego zakresu dat w polach: Od, Do
- Podmiot – umożliwia zawężenie listy wyświetlanych załączników w zależności od wskazanego podmiotu. Przy tym można wskazać: Kontrahenta, Pracownika, Urząd, Bank, Inny
- [Podgląd wydruku w PDF] – umożliwia podgląd zaznaczonego załącznika w postaci PDF.
- [Podgląd] – umożliwia podgląd zaznaczonego załącznika. Naciśnięcie ikony spowoduje otwarcie formatki zaznaczonego dokumentu.

Właściwości załączników
Informacje ogólne o właściwościach załączników
W Konfiguracji systemu na zakładce: Ogólne / Parametry 1 w grupie: Załączniki systemowe, czyli znajdujące się w archiwum wydruków, dla których zostały obsłużone opcje:
Nie pozwalaj na usuwanie obiektów, do których przypisane są systemowe załączniki – po zaznaczeniu tej opcji, nie będzie możliwe usuwanie obiektów (np. dokumentów, kart towarów, kontrahentów), do których przypisane są systemowe załączniki. Jeśli zostanie zaznaczona ta opcja, jednocześnie zostanie zaznaczona opcja: Nie pozwalaj na usuwanie załączników systemowych jn
Nie pozwalaj na usuwanie załączników systemowych – po zaznaczeniu tej opcji, nie będzie możliwe usuwanie załączników systemowych

Na poszczególnym obiekcie dotyczącym załącznika jest obsłużony parametr: Systemowy odnoszący się do ustawień z Konfiguracji:
Okno: Załącznik, zakładka: Ogólne
W oknie właściwości załączników, na zakładce: Ogólne określamy kod oraz nazwę załącznika, a także dokonujemy importu i eksportu pliku.

W oknie dostępne są pola i funkcje:
- Kod – w polu wprowadza się kod załącznika, wyświetlany na liście załączników
- Nazwa – nazwa załącznika. Po zaimportowaniu danej wyświetlona zostanie domyślnie nazwa tego pliku
- Typ – format załącznika. Pole również wypełniane automatycznie po zaimportowaniu pliku
- Rozszerzenie – rozszerzenie załącznika. Pole wypełniane jest automatycznie po jej zaimportowaniu do systemu
- Rozmiar – pole określające rozmiar załącznika, wypełniane automatycznie
- Modyfikował/Data – w polu wyświetlane są dane operatora, który dokonał modyfikacji załącznikowi oraz daty, kiedy została dokonana modyfikacja
- Archiwalny – nadanie załącznikowi charakteru archiwalności umożliwia zawężenie listy załączników tylko do aktywnych. Archiwalny załącznik będzie mógł nadal być wykorzystywany na obiektach – możliwy będzie jej podgląd, edycja itd.
- [Uruchom] – naciśnięcie przycisku powoduje otworzenie załącznikowi do podglądu/edycji (za pomocą programu wskazanego w typie załączników – więcej w rozdziale: Typy załączników ).
- [Import z pliku] – funkcja umożliwia import załącznikowi do systemu. Po naciśnięciu przycisku zostanie wyświetlone okno: Import pliku do bazy danych, w którym należy wskazać odpowiedni plik, a następnie nacisnąć przycisk: Otwórz. Załącznik zostanie zaimportowany.
- [Eksport do pliku] – funkcja umożliwia eksport załącznikowi (pliku) z bazy danych. Po naciśnięciu przycisku zostanie otworzone okno: Eksport do pliku z bazy danych, w którym należy wskazać lokalizację, do której ma zostać wyeksportowany plik, a następnie nacisnąć przycisk: Zapisz. Eksport załącznikowi nie spowoduje usunięcia załącznikowi z bazy danych – zostanie ona po prostu skopiowana do wskazanej lokalizacji.
W systemie Comarch ERP XL istnieje możliwość opisywania załączników. Wprowadzony na załącznikach opis jest widoczny w odpowiedniej kolumnie, bezpośrednio z poziomu zakładki: Załączniki danego obiektu


Okno: Załącznik, zakładka: Historia zmian
W oknie: Historia zmian są prezentowane daty i godziny zapisywania załącznika wraz ze wskazaniem operatora, który dokonywał zmiany i opisem. Historia zmian dział w zależności od ustawień dla danego typu załącznika określonego w oknie: Typy załączników w sekcji: Wersjonowane dane, co zostało szczegółowo opisane w rozdziale: Typy załączników.
Na zakładce zostały obłożone opisane powyżej standardowe przyciski: [Podgląd],
[Uruchom],
[Zapisz],
[Eksport do pliku],
[Usuń],
[Zapisz],
[Anuluj], których działanie zostało opisane powyżej.

Okno: Załącznik, zakładka: Obiekty
Na zakładce: Obiekty wyświetlona jest lista obiektów, z którymi powiązany jest załącznik. Z poziomu tego okna możliwe jest również wyświetlenie załączników zdefiniowanych jako atrybuty (klasa atrybutu o typie: Załącznik), i które jako atrybuty przypisane zostały do obiektów w systemie. Zaleta wiązania załączników z obiektami z poziomu okna: Właściwości załączników jest to, że możliwe jest tu wiązanie jednej danej z wieloma obiektami. Nie ma więc potrzeby edytowania kart kolejnych obiektów i przypisywanie im tego samego załącznika.
Z poziomu tego okna możliwe jest również dodawanie kolejnych obiektów za pomocą przycisku: [Dodaj], ich podgląd
[Podgląd],
[Usuń].
Ponadto, jest obsłużona funckonalność obłsużona za pomocą przycisku: dotycząca pokazywania obiektów i aplikacji, których dotyczy załącznik.

Okno: Załącznik, zakładka: Atrybuty
W oknie: Załączniki na zakładce: Atrybuty istnieje możliwość opisania załącznikowi za pomocą atrybutów. Jednak aby można było przypisać atrybut do załącznika, w pierwszej kolejności należy przypisać klasę tego atrybutu do obiektu: Załącznik.

Okno: Załącznik, zakładka: Załączniki
W oknie Załączniki na zakładce: Załączniki zostały standardowo obsłużone załączniki, które można zdefiniować dodatkowo załącznik będący załącznikiem do załącznika.

Przypisywanie załączników do obiektów
Załączniki można przypisać do większości obiektów znajdujących się systemie m.in.: Karty pracownika, Karty kontrahenta, Karty towaru, dokumentów handlowych, magazynowych, wewnętrznych, obiektów CRM itd. Dodano także zakładkę: Dane binarne (nazwa w kolejnych wersjach została zmieniona na: Załączniki) w nagłówkach dokumentów: zapytań, ofert, zamówień, paczkach oraz wysyłkach.
Aby przypisać załączniki do obiektu, należy:
- Na edytowanym obiekcie, do którego mają zostać przypisane załączniki, przechodzimy na zakładkę: Załączniki
- Na zakładce: Załączniki, należy nacisnąć przycisk: [Dodaj]. Podniesione zostanie okno: Załącznik, wybieramy zakładkę: Ogólne

- Naciskając przycisk: [Import z pliku], zostanie otworzone okno: Import pliku do bazy załączników. W oknie należy wskazać lokalizację pliku (załączników – obrazu, pliku tekstowego, arkusza kalkulacyjnego, innych), a po jej podaniu, nacisnąć przycisk: [Otwórz] . Po jego użyciu, plik zostanie zaimportowany do systemu Comarch ERP XL
- Uzupełniamy Kod załącznika. Możliwe jest wprowadzenie od razu nazwy pliku, który zostanie dodany, ale należy pamiętać, że podczas importu zostanie automatycznie przypisana nazwa pliku importowanego. Następnie wskazujemy typ załączników
- Przechodzimy na zakładkę: Obiekty, rozwijamy menu przyciskiem: [Rozwija menu dostępnych opcji] i wybieramy z listy typ obiektu (np. Kontrahent), do którego ma zostać przypisany załącznik; zostanie otworzona lista obiektów, z której wskazujemy konkretny obiekt (np. kontrahenta), z którym nastąpi powiązanie załącznikowi


- Zapisujemy załącznik (przyciskiem: [Zapisz])

- Ilość zaimportowanych plików może być dowolna. Aby uruchomić podgląd zaimportowanych załączników, należy zaznaczyć odpowiednią pozycję na zakładce i nacisnąć przycisk: [Uruchom podgląd]. Więcej informacji o wyświetlaniu plików znajduje się w rozdziale: Wyświetlanie załączników .
Wczytywanie bezpośrednio do załączników
W systemie Comarch ERP XL istnieje możliwość dodawania załączników poprzez udostępnienie skanowania bezpośrednio z poziomu otwartego obiektu, np. dokumentu. Dane mogą być również wczytywane z innych nośników, takich jak np. aparatu fotograficznego. Aby wczytać dane z aparatu fotograficznego na nagłówek dokumentu należy:
- Otworzyć obiekt na zakładce: Załączniki
- Przyciskiem: [Rozwija menu dostępnych opcji] obok przycisku: [Dodaj] wybieramy opcję: Pobierz;
Faktura zakupu, zakładka: Załączniki, przycisk: Dodaj, opcja Pobierz - w otwartym nowym oknie: Wybieranie źródła, wskazujemy źródło danych z którego zostaną pobrane obrazy:
Okno: Wybieranie źródła - po wskazaniu konkretnego obrazu, następnie jest on dodawany jako załącznik. Więcej informacji o dodawaniu załączników znajduje się w rozdziale: Właściwości załączników.
Wykorzystanie załączników na obiektach
Poniżej wymieniono przykłady wykorzystania załączników na obiektach występujących w systemie Comarch ERP XL. Nie jest to wyliczenie enumeratywne - załączniki, dzięki swej uniwersalności mogą mieć wszechstronne zastosowanie - adekwatne do konkretnych potrzeb Użytkownika.
Załączniki na karcie pracownika
Załączniki na karcie pracownika mogą stanowić:
- Fotografie pracownika
- Dokumenty dotyczące pracownika (umowy o pracę, świadectwa uczestnictwa w szkoleniach, uzyskane dyplomy, inne)
- Arkusze kalkulacyjne (arkusze ocen kwalifikacyjnych, inne)
- Inne.
Załączniki w Intranetowych Aplikacjach Pracowniczych
Załączniki - pliki zawierające fotografie o wielkości do 1 mb mogą być wyświetlane w Intranetowych Aplikacjach Pracowniczych. Wyświetlane one są na zakładce: Info, przedstawiającej podstawowe dane identyfikacyjne pracownika. Aby obraz taki został wyświetlony należy:
- Na Karcie pracownika, na zakładce: Załączniki, przypisać załączniki – plik z fotografią pracownika, zgodnie z opisem w rozdziale: Przypisywanie załączników do obiektów;
- Zaznaczyć wprowadzone załączniki, i nacisnąć prawy klawisz myszy – zostanie rozwinięte menu kontekstowe;
- Z menu kontekstowego, należy wybrać funkcję: Ustaw domyślną;
- Po uruchomieniu Intranetowych Aplikacji Pracowniczych i wybraniu zakładki: Info, dla pracownika, któremu przypisano załączniki, zostanie wyświetlona jego fotografia.

Załączniki na Karcie kontrahenta
Załączniki na Karcie kontrahenta mogą stanowić:
- Dokumenty dotyczące kontrahenta (np. uzyskane certyfikaty, licencje, listy referencyjne, kopie umów);
- Arkusze kalkulacyjne;
- Obrazy (np. mapy dojazdu do kontrahenta);
- Inne.

Załączniki na Karcie towaru
Załączniki na Karcie towaru mogą stanowić:
- Dokumenty dotyczące towaru (np. certyfikaty towaru, licencje, zezwolenia na dopuszczenie do obrotu, specyfikacja funkcjonalna towaru, katalogi, ulotki informacyjne itp.);
- Arkusze kalkulacyjne (np. analizy wydajności, trwałości towaru itp.);
- Obrazy (np. zdjęcia dostępnego towaru itp.);
- Inne.

Seryjne dodawanie załączników/zdjęć
W systemie Comarch ERP XL obsłużone zostało wczytywanie zdjęć oraz innych plików do systemu wraz z automatycznym tworzeniem załączników do towarów. Funkcjonalność ta pozwala na zautomatyzowanie i przyspieszenie całego procesu dodawania zdjęć lub innych plików do towarów Dzięki takiemu rozwiązaniu użytkownik będzie mógł szybko i sprawnie przygotować ba danych np. do Comarch ERP e-Sklep.
Automatyzacja procesu dodawania zdjęć wymaga od użytkownika przygotowania odpowiedniej bazy zdjęć (lub innych plików) i takie jej opisanie aby program mógł bezbłędnie przypisać dane zdjęcie (lub inny plik) do określonego towaru.
Udostępnione zostały dwie opcje importu zdjęć/plików w zależności od tego gdzie i jak będą umieszczone zdjęcia/pliki:
- * Import zdjęć bezpośrednio z katalogu na dysku, w którym są umieszczone zdjęcia/pliki. Warunek konieczny: nazwa pliku musi być zgodna z kodem lub kodem EAN towaru.
- * Import zdjęć na podstawie mapy przygotowanej w arkuszu MS Excel, arkusz musi zawierać kod (lub kod kreskowy) towaru oraz link do zdjęcia w postaci ścieżki do konkretnego pliku lub adresu URL.
Przygotowane przez użytkownika zdjęcia czy inne pliki będą mogły być równocześnie zaimportowane do bazy i powiązane ze wskazanymi towarami. Efektem importu będzie dodanie załącznika do listy załączników oraz podpięcie go do odpowiedniego towaru. Możliwe jest również dodanie wielu załączników do tego samego towaru.
Podczas importu możliwe jest określenie języka załącznika, ustalenie, do jakiej grupy powinien trafić oraz zdefiniowanie, do jakich aplikacji ma być wysyłany. Jeżeli import będzie realizowany z wykorzystaniem pliku MS Excel wówczas grupa załącznika może być określona w arkuszu.
Lista towarów – okno importu
Na liście towarów został dodany przycisk służący do wywołania operacji importu plików „Seryjny import załączników”:


Przed rozpoczęciem importu należy ustalić następujące parametry:
Rodzaj Importu
* Import plików zapisanych na dysku
* Import na podstawie arkusza MS Excel
Katalog/plik źródłowy – w zależności od wybranego rodzaju importu należy wskazać katalog w którym umieszczone są pliki do importu bądź wskazać arkusz MS Excel w którym zapisano ścieżki do plików.
Ustaw dostępność w aplikacjach – należy zaznaczyć, w których aplikacjach dodane załączniki mają być widoczne. Dotyczy wszystkich dodawanych załączników.
Ustaw grupę załączników – można wskazać jedną z istniejących grup załączników lub wybrać opcję „Grupa załączników wg pliku” wówczas grupa zostanie określona na podstawie zapisów w arkuszu.
Język – należy ustawić język dla dodawanych załączników.
Sposób zapisu do bazy – należy określić czy do załączników mają zostać dodane pliki w postaci danych binarnych czy tylko, jako linki do plików.
Import plików zapisanych na dysku
Aby móc zaimportować zdjęcia czy inne pliki zapisane na dysku muszą zostać spełnione określone warunki. Pliki zapisane na dysku muszą mieć nazwę zgodną z kodem lub z kodem kreskowym towaru. Jeśli zachodzi konieczność zaimportowania kilku plików do jednego towaru w katalogu wskazanym na oknie importu należy utworzyć katalog o kodzie (lub kodzie kreskowym) towaru i umieścić z nim pliki, które mają być dodane do towaru. W tym przypadku nazwa pliku nie ma znaczenia.
Akcja importu złączników do bazy będzie skutkowała zapisem w bazie nowego załącznika z równoczesnym podpięciem go do ustalonego towaru.
Kod i nazwa załącznika będzie ustalana na podstawie nazwy pliku. W przypadku nazw pliku dłuższych niż 40 znaków kod załącznika będzie skracany. Program podczas importu rozpozna rodzaj pliku i odpowiednio ustawi „Typ” załącznika. W przypadku zdjęć będzie to obraz. Pozostałe parametry załącznika zostaną ustalone na podstawie ustawień na oknie importu.
Import na podstawie arkusza MS Excel
Możliwe jest importowanie zdjęć umieszczonych w różnych lokalizacjach lub zdjęć zapisanych, jako URL. W tym celu należy utworzyć arkusz MS Excel, w którym zapisane będą kody (bądź kody kreskowe) towarów oraz ścieżki do plików, na podstawie, których zostaną utworzone załączniki do towarów.
W arkuszu powinny się znaleźć następujące informacje:
Przykładowy arkusz z danymi do importu:
Podczas importu na podstawie danych umieszczonych w arkuszu pliki zostaną odszukane i zaimportowane do systemu tworząc załączniki zgodnie z ustawieniami na oknie importu. W przypadku gdy w pliku zostanie uzupełniona kolumna Grupa oraz na oknie importu zostanie ustawiona opcja „Grupa załączników wg pliku” stworzone załączniki zostaną dodane do grupy wskazanej w pliku. W przypadku braku takiej grupy w systemie zostaną dodane do Grupy głównej. Pliki mogą zostać zapisane do bazy lub umieszczone tylko jako linki, jeśli podczas importu zostanie wybrana opcja „Zapis danych w postaci linków”
Załączniki jako linki
W systemie Comarch ERP XL umożliwiono dodawanie do obiektów załączników w formie linków dzięki czemu możliwe jest udostępnianie za pośrednictwem adresów URL załączników o dużych rozmiarach bez zbędnego obciążania bazy danych.
Zmiany w oknie: Załącznik
W oknie Załącznik dodane zostało pole URL, w którym można wprowadzać adres strony internetowej lub ścieżki dostępu do pliku czy folderu znajdującego się na danym nośniku.
Obok pola URL dodane zostały opcje
[Zobacz stronę], która służy do wywoływania (otwierania) załącznika oraz
[Lokalizacja pliku lub folderu], za pomocą której można wskazywać ścieżkę do załącznika.

W menu rozwijalnym obok przycisku [Lokalizacja pliku lub folderu], znajdują się opcje, za pomocą których można wskazać odpowiedni link:

Opcja: Lokalizacja pliku - umożliwia wskazanie linku do pliku. Po wybraniu opcji uruchomione zostaje okno: Wybierz plik, w którym można wskazać odpowiedni plik, do którego ścieżkę dostępu chcemy zapisać i za pomocą opcji: Otwórz uzupełnić na załączniku link do wybranego pliku:

Opcja: Lokalizacja folderu - umożliwia wskazanie linku do folderu. Po wybraniu opcji uruchomione zostaje okno: Przeglądanie w poszukiwaniu folderu, w którym można wskazać folder, do którego ścieżkę dostępu chcemy zapisać i za pomocą opcji OK uzupełnić na załączniku link do wybranego folderu:

Opcja: Adres strony internetowej - umożliwia otwarcie domyślnej przeglądarki w celu wyszukiwania odpowiednego adresu URL. Wybrany w przeglądarce adres strony internetowej można skopiować, a następnie wkleić w polu URL w oknie Załącznika

Załącznik dodany jako link można „nadpisać” poprzez wykonane na nim zmiany np. poprzez wskazanie innej ścieżki do załącznika lub wykonanie importu załącznika z pliku. Jeśli wykonany zostanie import załącznika z pliku za pomocą opcji [Import pliku] to załącznik przestanie być tylko linkiem. W takiej sytuacji wykonany zostanie standardowy zapis pliku do bazy danych.
Zmiana na zakładce: Załączniki
Na zakładce Załączniki dodana została nowa kolumna: Adres URL. W kolumnie prezentowany jest link do załącznika, wskazany w oknie: Załącznik, w polu URL. W przypadku prawidłowo podanej ścieżki dostępu/adresu strony internetowej w oknie załącznika, kliknięcie w link w kolumnie: Adres URL spowoduje otwarcie załączonego pliku folderu lub strony internetowej.

Zmiany na liście załączników
Na liście załączników dodana została nowa kolumna: Adres URL. W kolumnie prezentowany jest link do załącznika wskazany w oknie: Załącznik, w polu URL. Analogicznie jak z poziomu zakładki: Załączniki, kliknięcie w link w kolumnie adres URL na liście załączników powinno spowodować otwarcie załącznika.

Nowa kolumna: Adres URL została również uwzględniona w eksporcie do arkusza kalkulacyjnego wykonywanym z poziomu listy załączników.
Kopiowanie załączników z TP na ZP
Wprowadzono opcjonalne kopiowanie załączników, zdefiniowanych w technologiach produkcyjnych, na odpowiednie obiekty, na ZP. Kopiowanie załączników z technologii na ZP obejmuje kopiowanie załączników z materiałów/produktów w technologii na materiały/produkty, znajdujące się na realizacjach operacji, a także kopiowanie załączników z operacji w technologii na operacje planowane

Dodatkowo obsłużono kopiowanie załączników dodanych na operacjach planowanych, na odpowiednie ich realizacje. Działała ono niezależnie od jakiegokolwiek parametru, tzn., jeśli na operacji planowanej dodane będą załączniki, to podczas dodawania realizacji do tej operacji kopiowane będą wszystkie załączniki z operacji planowanej, na dodawaną do niej realizację.
XL010 - Podłączenie Drukarki Fiskalnej
Podłączanie drukarki fiskalnej lokalnie
Aby podłączyć drukarkę fiskalną do systemu Comarch ERP XL należy:
- ustawić właściwości portu COM w systemie operacyjnym,
- wybrać odpowiedni sterownik dla drukarki fiskalnej i ustawić port, do którego drukarka jest podłączona,
- zmapować stawki podatku VAT,
- zafiskalizować bazę danych.
Po wprowadzeniu wszystkich ustawień należy zakończyć pracę we wszystkich modułach systemu Comarch ERP XL i rozpocząć pracę na nowo.
Ustawienia portu COM
Ustawienia portów COM wprost wpływają na działanie drukarek fiskalnych w programie. Tym samym należy poprawnie ustawić port COM zgodnie z instrukcją użytkownika drukarki.
Elzab | |
---|---|
Szybkość | 9600, 19200 |
Parzystość | Parzyste (Even) |
Liczba bitów | 8 |
Bit stopu | 1 |
Sterowanie | Brak, xon/xoff, Sprzętowe |
Posnet (Novitus, Innova) | |
---|---|
Szybkość | 9600 |
Parzystość | Brak (None) |
Liczba bitów | 8 |
Bit stopu | 1 |
Sterowanie przepływem | Brak |
Właściwości portu COM są dostępne w Menedżerze urządzeń systemu Windows.

Konfiguracja sterownika, portu COM, do którego jest podłączona drukarka fiskalna oraz pozostałych parametrów
Wybranie sterownika oraz portu COM można wykonać w Menu Comarch ERP XL -> System -> Konfiguracja komputera na zakładce: Drukarka fiskalna.


Na zakładce: Drukarka fiskalna w polu: Nazwa pliku sterowania należy wskazać sterownik. Sterownik należy wybrać po naciśnięciu ikony: [Wybierz plik]. Wymagane pliki sterowników znajdują się w katalogu, do którego został zainstalowany system Comarch ERP XL. Sterowniki te należy dobierać w zależności od typu drukarki i rodzaju pracy (stacjonarna, przez terminal).
DF300.dll | Drukarki Posnet Thermal, Emar Printo |
DF300_1.dll | Drukarki zgodne z Posnet |
FP600.dll | Drukarki firmy Elzab |
Innova.dll | Drukarki firmy Innova |
Novitus.dll | Drukarki firmy Novitus |
Jeżeli drukarka fiskalna podłączana jest do portu USB, to w oknie: Parametry komputera pojawia się dodatkowy port COM z kolejnym numerem.
Następnie należy ustawić port COM, zarówno na zakładce: Drukarka fiskalna, jak i Drukarka fiskalna 2:

Po ustawieniu sterownika i portu COM należy:
- Wykonać test sterownika naciskając przycisk
[Test sterownika] – po jego wykonaniu otrzymujemy informacje na temat: Nazwy, Wersji oraz Typu sterownika. Opcja ta jest dostępna jedynie na zakładce: Drukarka fiskalna;

- Nie drukuj informacji na starcie systemu – jeżeli parametr nie będzie zaznaczony, to przy otwieraniu, któregokolwiek modułu będzie drukowana na drukarce fiskalnej informacja o rozpoczęciu pracy kasjera,
- Wyświetlaj numer paragonu – po zaznaczeniu parametru na każdym paragonie będzie drukowany numer dokumentu PA z systemu Comarch ERP XL,
- Drukuj kaucje – po zaznaczeniu parametru system będzie drukował informacje o towarach kaucjonowanych do dokumentów kaucji spiętych z fiskalizowanymi dokumentami,
- Oznaczenie operatora i stanowiska – po zaznaczeniu parametru udostępnia się do edycji pole: Oznaczenie stanowiska (kasy), do którego można wpisać numer kasy, który później będzie drukowany na paragonach;

- Test połączenia drukarki z system Comarch ERP XL, naciskając przycisk
[Test drukarki] – jeżeli wybrany wcześniej sterownik oraz port COM są prawidłowe oraz nie ma problemów technicznych, to pojawia się komunikat: Drukarka podłączona;

- Dodatkowo, w oknie: Parametry komputera na zakładce: Drukarka fiskalna 2 jest możliwe wybranie trybu pracy na drukarce niezafiskalizowanej.


Mapowanie stawek VAT
Kolejną czynnością jaką należy wykonać jest mapowanie stawek VAT. Można je wykonać z poziomu dowolnego modułu, menu System -> Konfiguracja komputera -> zakładka: Sprzedaż -> Słownik: Drukarki fiskalne.

Po naciśnięciu przycisku: [Dodaj] podnosi się okno: Drukarka fiskalna - zostanie dodana.

W oknie: Drukarka fiskalna znajduje się parametr: Nowy sterownik. Jeżeli w Konfiguracji komputera na zakładce:
- Drukarka fiskalna zostaną zdefiniowane niezbędne parametry, to w Konfiguracji na zakładce: Sprzedaż / Słowniki / Drukarki fiskalne należy zdefiniować wszystkie parametry bez zaznaczania parametru: Nowy sterownik,
- Drukarka fiskalna 2 zostaną zdefiniowane niezbędne parametry, to w Konfiguracji na zakładce: Sprzedaż / Słowniki / Drukarki fiskalne należy zdefiniować wszystkie parametry z zaznaczeniem parametru: Nowy sterownik.
Jeśli nie zostanie wybrana współpraca z zastosowaniem tzw. Nowych sterowników, to w polu: Nazwa należy wpisać nazwę wybranego wcześniej sterownika drukarki.
Jeśli zostanie wybrana współpraca z zastosowaniem tzw. Nowych sterowników, czyli zostanie zaznaczony ww. parametr: Nowy sterownik, to pole: Nazwa wypełni się automatycznie i w polu: Opis zostanie uaktywnione pole z listą drukarek, gdzie należy wskazać odpowiedni model (dla pracy w trybie terminalowym na końcu nazwy drukarki będzie słowo: Terminal):

W kolumnie: Odpowiednik wskazujemy odpowiednik literowy stawki VAT zmapowanej na drukarce fiskalnej. Aby uzyskać mapowanie stawek VAT z drukarki fiskalnej można wydrukować Raport dobowy z drukarki fiskalnej.

Zafiskalizowanie bazy danych
Jeżeli system Comarch ERP XL ma pracować z drukarką, która jest zafiskalizowana (taką drukarkę otrzymuje zwykle klient), to jego baza również musi być zafiskalizowana.
Jeżeli podłączona drukarka fiskalna nie jest zafiskalizowana (taką drukarkę zwykle udostępnia się do testów systemu), to baza systemu Comarch ERP XL również powinna być niezafiskalizowana.
Aby zafiskalizować bazę Comarch ERP XL należy uruchomić Konfigurację, przejść na zakładkę: Sprzedaż -> zakładkę: Parametry 1 i za pomocą przycisku: [Data fiskalizacji systemu] wybrać datę i zapisać Konfigurację.


Po zafiskalizowaniu bazy danych nie można jej odfiskalizować od strony interfejsu. Jeżeli istnieje potrzeba odfiskalizowania systemu, np. w sytuacji, kiedy pracowaliśmy testowo z drukarką fiskalną, to można to zrobić od strony bazy danych poniższym updatem:
update cdn.konfig set kon_wartosc = '' where kon_numer = 995
Podłączanie drukarki fiskalnej przez Terminal Services
System Comarch ERP XL posiada możliwość pracy w środowisku Terminal Services (TS). Istotnym elementem pracy tego systemu jest możliwość korzystania z drukarek fiskalnych. Przepisy wymagają od użytkownika drukarek fiskalnych umieszczenia ich na stanowisku gdzie odbywa się sprzedaż fiskalna.
W środowisku terminalowym oznacza to podłączenie drukarki fiskalnej do komputera, na którym pracuje klient terminala. W przypadku systemów Microsoft Windows Terminal Serwer do podłączenia drukarki fiskalnej do portu COM stanowiska terminalowego należy wykorzystać stworzone w ERP XL oprogramowanie tzw. sterowników terminalowych do drukarek fiskalnych. Powodem jest to, że drukarka fiskalna działa bez zarzutu przy wykorzystywaniu mapowania portów w TS na Windows 2000 w sieci LAN, natomiast w sieci WAN pojawiają się problemy. Wynika to z faktu, że domyślny timeout zapisany w sterownikach do drukarek wynosi około 2 s. W praktyce okazało się, że jest to zbyt krótki czas, aby sterownik nawiązał połączenia z drukarką przez wirtualne połączenia COM i otrzymał odpowiedź, czy też potwierdzenie od strony drukarki. Problem praktycznie nie występuje w sieciach LAN, gdzie prędkości transmisji, są zwykle w granicach 100 Mb/s, a w połączeniach przez sieć Internet mogą pojawiać się problemy.
W przypadku drukowania fiskalnego przez terminal przy użyciu pakietu tzw. sterowników terminalowych do drukarek fiskalnych, połączenie serialowe jest lokalne, tzn. sterownik, który je nawiązuje jest zainstalowany na stacji roboczej, do której podłączona jest drukarka. Komunikacja systemu Comarch ERP XL (działającego na serwerze terminali) z tym sterownikiem, odbywa się za pomocą kanału wirtualnego RDP, czyli po protokole TCP/IP.
Oprogramowanie pozwala na przekazanie do końcówki terminala danych dla drukarki fiskalnej poprzez tak zwany kanał wirtualny. Aby przekazywanie danych do drukarki mogło mieć miejsce zarówno po stronie końcówki terminala jak i po stronie serwera musi być zainstalowane odpowiednie oprogramowanie. Wymagane pakiety z oprogramowaniem można znaleźć na stronach ERP XL.

Zawartość pakietu obsługi drukarek fiskalnych po stronie klienta usługi terminalowej | Zawartość pakietu obsługi drukarek fiskalnych po stronie serwera usługi terminalowej | ||
---|---|---|---|
DF300.dll | Sterownik do drukarek Posnet | DF300T.dll | Odpowiednik sterownika DF300.dll po stronie serwera |
DF300_1.dll | Sterownik do drukarek zgodnych z Posnet | DF300_1T.dll | Odpowiednik sterownika DF300_1.dll po stronie serwera |
FP600.dll | Sterownik do drukarki FP600 | FP600T.dll | Odpowiednik sterownika FP600.dll po stronie serwera |
Innova.dll | Sterownik do drukarki Innova | InnovaT.dll | Odpowiednik sterownika Innova.dll po stronie serwera |
Novitus.dll | Sterownik do drukarki Novitus | NovitusT.dll | Odpowiednik sterownika Novitus.dll po stronie serwera |
RDP.dll | Sterowniki do komunikacji przez połączenie terminalowe | KFdrv.dll | Sterownik do komunikacji przez połączenie terminalowe, po stronie serwera |
rdpcli.inf | Plik dla instalatora Windows dla systemów Windows 2000/XP | ||
Rdpcli98_1.reg | Plik rejestru dla Windows 98 cz.1 | ||
Rdpcli98_2.reg | Plik rejestru dla Windows 98 cz. 2 |
Instalacja i konfiguracja komponentów na serwerze
Program Comarch ERP XL nawiązuje połączenie z drukarką fiskalną poprzez API udostępnione przez bibliotekę drivera fiskalnego.
W przypadku współpracy z drukarką podłączoną do konsoli klienta usługi terminalowej należy w konfiguracji programu wybrać odpowiednio zmodyfikowany driver, przeznaczonego do pracy w TS. Dodatkowe drivery oznaczone są literą T (terminal) dodaną do nazwy standardowego drivera (DF300T.dll, DF300_1T.dll, FP600T.dll, InnovaT.dll).
Wszystkie wymagane pliki powinny znajdować się w katalogu, do którego został zainstalowany system ERP XL.
Mapowanie stawek VAT powinno być wykonane tak, jak dla stacji lokalnej – mimo, iż wybieramy sterownik z literą T, to nazwa mapowania jest bez literki T.
Instalacja pakietu na stacji roboczej spełniającej rolę klienta usługi terminalowej
System Windows 7/8/10
W systemie Windows 7/8/10 można wykonać automatyczną instalację za pomocą rdpcli.inf.
Aby to zrobić należy z serwera z katalogu, do którego został zainstalowany system Comarch ERP XL skopiować pliki:
- rdpcli.cab
- rdpcli.inf
do tego samego dowolnego katalogu na stacji klienckiej. Następnie należy wskazać myszą plik rdpcli.inf, nacisnąć prawy przycisk i wybrać z menu kontekstowego opcję: Zainstaluj. Instalator dokonuje automatycznego przeniesienia plików do wymaganej lokalizacji na stacji klienckiej (C:\Windows\system32) oraz dokonuje niezbędnych wpisów w rejestrze systemu Windows.
Należy również ustawić właściwości portu COM, więcej w rozdziale: Ustawienia portu COM.
Przed nawiązaniem połączenia z serwerem terminali należy udostępnić Porty szeregowe dla połączenia terminalowego.
Konfiguracja sesji użytkownika
Do prawidłowego funkcjonowania drukarki wymagane są następujące działania, po stronie aplikacji uruchomionej w sesji terminalowej, na koncie każdego użytkownika, pracującego z drukarką fiskalną:
- wybranie właściwego sterownika drukarki fiskalnej po stronie serwera (DF300T.dll, DF300_1T.dll, FP600T.dll, InnovaT.dll, NovitusT.dll) w zakładce: Drukarka Fiskalna w oknie: Konfiguracja komputera dostępnym z Menu Comarch ERP XL -> System,
- określenie portu do którego jest podłączona drukarka na lokalnym komputerze z którego jest uruchomiona sesja terminalowa; w przypadku połączenia przez port USB należy wskazać COM 3 (lub COM z kolejnym numerem),
- jawne zdefiniowanie nazwy serwera klucza w zakładce: Klucz w oknie: Konfiguracja komputera dostępnym z Menu Comarch ERP XL -> System – należy wpisać nazwę serwera\nazwę instancji, na której został skonfigurowany i jest wpięty klucz HASP.
Najczęściej popełniane błędy konfiguracyjne
Zgodność plików KFdrv.dll i Rdp.dll
Zwykle większość problemów związanych z drukarkami fiskalnymi opiera się na niezgodności wersji pliku KFdrv.dll po stronie serwera (w katalogu, w którym został zainstalowany system Comarch ERP XL) oraz pliku rdp.dll po stronie klienta (w katalogu C:\Windows\System32). Jeżeli wersje plików są niezgodne nie istnieje komunikacja drukarki z serwerem terminali.
Jeżeli wersje plików są zgodne oraz drukarka jest prawidłowo podłączona, to test drukarki wykonany za pomocą przycisku [Test drukarki] kończy się komunikatem: Drukarka podłączona.

Przeinstalowanie systemu Comarch ERP XL
Patrz UWAGA w rozdziale Zgodność plików KFdrv.dll i rdp.dll.
Zapisy w rejestrze systemu Windows
W trakcie przygotowywania biuletynu i testów udało się uzyskać sytuację, w której brak połączenia był spowodowany faktem, iż na stacji klienckiej drukarka fiskalna została najpierw skonfigurowana lokalnie – wprowadzono ustawienia umożliwiające pracę lokalną z drukarką fiskalną.
Remedium było usunięcie z rejestru systemu Windows klucza: Fiskalne z gałęzi: HKEY_CURRENT_USER -> Software -> CDN.

Drukarka fiskalna w pracy terminalowej- nowe sterowniki
Oprogramowanie pozwala na przekazanie do końcówki terminala danych dla drukarki fiskalnej przez tak zwany kanał wirtualny. Aby przekazanie danych mogło mieć miejsce zarówno po stronie klienta, jak i po stronie serwera, musi być zainstalowane odpowiednie oprogramowanie.
Instalacja i konfiguracja komponentów na serwerze
Instalacja sterowników do obsługi drukarek fiskalnych odbywa się wraz z instalacją programu Comarch ERP XL. Konfiguracja programu do współpracy z drukarką fiskalną polega na wybraniu odpowiedniego sterownika przeznaczonego do pracy przez terminal.
W menu głównym systemu Comarch ERP XL (uruchamianym plikiem CDNXL.exe) lub w module Administrator wchodzimy do Konfiguracji komputera.

Aby skorzystać z nowych sterowników, na zakładce Drukarka fiskalna 2 zaznaczamy opcję „Używaj nowych sterowników”. W polu model drukarki wybieramy urządzenie, z którym będzie współpracował system. Przy pracy przez usługę terminalową ważne jest aby sterownik w nazwie miał dopisek „Terminal”. Następnie wybieramy numer portu, jego prędkość i sterownie przepływem (zgodnie z ustawieniami na drukarce i we właściwościach portu COM w Menedżerze urządzeń).
Instalacja i konfiguracja komponentów na końcówce terminala
Po stronie końcówki terminala, czyli komputera, na którym pracuje klient i do którego jest podłączona drukarka fiskalna, należy zainstalować komponenty zajmujące się obsługą kanału wirtualnego oraz połączeniem systemu z drukarką.
Plik instalacyjny znajduje się w głównym katalogu systemu Comarch ERP XL: onlineFP.exe
Aby zainstalować obsługę terminalową drukarek fiskalnych, należy plik przegrać na końcówkę terminala. Następnie zainstalować na końcówce. Oprogramowanie po stronie klienta składa się z plików obsługujących kanał wirtualny i ze sterowników do drukarek. Wszystkie te pliki kopiowane są do katalogu wskazanego w trakcie instalacji.
Po prawidłowo wykonanej instalacji na końcówce terminala i konfiguracji komponentów można wykonać test połączenia. W tym celu po połączeniu się z serwerem należy uruchomić system, wejść w Konfigurację komputera i na zakładce Drukarki fiskalne 2, w sekcji Test drukarki, uruchomić test odpowiednim przyciskiem.

W przypadku prawidłowego otrzymamy komunikat Drukarka podłączona. To oznacza, że drukarka jest podłączona i skonfigurowana poprawnie. Jeżeli system nie uzyska połączenia pojawi się komunikat Brak połączenia z drukarką. Należy wówczas sprawdzić poprawność podanego numeru portu, jego prędkości i sterownia przepływem, porównać je z ustawieniami na urządzeniu fiskalnym i z właściwościami portu COM w Menedżerze urządzeń.
Drukowanie fiskalne przez Drukarkę sieciową
W systemie Comarch ERP XL obsłużona została funkcja drukowania fiskalnego na drukarce podłączonej do serwera wydruków fiskalnych. Serwer wydruków fiskalnych jest oddzielną usługą w systemie Windows z którą końcówki wystawiające dokumenty fiskalne łączą się za pomocą protokołu TCP/IP, domyślnie portem na którym pracuje serwer wydruków fiskalnych to port 3500, w momencie instalacji można podać inny nr. portu dla tej usługi.
Instalacja serwera wydruków fiskalnych
Do instalacji usługi fiskalnego drukowania sieciowego służy aplikacja ComarchOnlineFPServerInstaller.exe
Parametry z jakimi uruchamiamy instalator są następujące:
/i - instalacja pakietu z domyślnymi parametrami
/w <USER_LOGIN> [<USER_PASSWORD>] - instalacja z zmianą loginu na którym pracuje usługa serwera wydruków fiskalnych
/tcp <TCP_Port> - ustawienia innego nr portu na którym pracuje usługa niż 3500
/start – uruchomienie usługi
/stop – zatrzymanie usługi
/u – odinstalowanie usługi
W systemach gdzie uruchomiona jest zapora sieciowa należy dodać wyjątek do zapory dla portu 3500 lub innego ustawionego portu, bądź dodać wyjątek dla aplikacji(usługi): Comarch ERP Fiscal Server.
Podłączenie ERP XL do serwera wydruków fiskalnych
Konfigurację stanowiska do współpracy z sieciową drukarką fiskalną wykonujemy w oknie Parametry komputera na zakładce: Drukarka fiskalna 2 po załączeniu parametru: Drukarka sieciowa , pod ikoną lupy pojawia się możliwość konfiguracji połączenia do drukarki: Ustaw parametry sieciowe.


Okno Parametry drukarki sieciowej pozwala na podanie:
- Adresu serwera
- Portu TCP – domyślny port dla usługi to 3500.
- Ustawienia sterownika ustawienia sterownika takie jak Model drukarki, Port COM, prędkość portu i sterowanie przepływem są identyczne jak dla ustawień sterownika dla pracy lokalnej z drukarką fiskalną dla ustawień z zakładki Drukarka fiskalna 2 z okna Parametry komputera.
Operacje fiskalne obsługiwane w systemie Comarch ERP XL
Dokumenty fiskalizowane w systemie Comarch ERP XL
W systemie Comarch ERP XL można zafiskalizować:
- Paragon,
- Fakturę sprzedaży FS oraz (S)FS – dokumenty wystawione z parametrem Vat od: Brutto (zakładka Nagłówek) i zaznaczonym: Fiskalny (zakładka VAT) – te dokumenty można fiskalizować od wersji Comarch ERP XL 7.1,
- Fakturę zaliczkową – w trakcie jej wystawiania należy zaznaczyć parametr: Fiskalny na zakładce VAT dokumentu,
- Fakturę końcową do faktury zaliczkowej, która została zafiskalizowana na drukarce fiskalnej.
System umożliwia również wydrukowanie kaucji jako dodatkowych pozycji paragonu fiskalnego.
Drukowanie kaucji na paragonie fiskalnym
W Comarch ERP XL istnieje możliwość drukowania kaucji z dokumentu wydania kaucji (WKA) na drukarce fiskalnej. Aby elementy dokumentu WKA zostały wydrukowane na paragonie fiskalnym, dokument WKA musi być związany z fiskalizowanym dokumentem, np. PA. W trakcie zatwierdzania dokumentu PA, elementy tego dokumentu są drukowane na drukarce fiskalnej; po wydrukowaniu wszystkich elementów PA drukarka fiskalna drukuje kaucje z dokumentu WKA w części niefiskalnej paragonu.
Parametr Drukuj kaucje
Jeżeli drukarka fiskalna nie posiada obsługi drukowania kaucji należy odznaczyć parametr: Drukuj kaucje w Konfiguracji komputera, zakładka: {Drukarka fiskalna}.

Menu Fiskalne
Jeżeli mamy prawidłowo skonfigurowaną drukarkę, to mamy dostęp z każdego modułu do Menu Fiskalne:

Z poziomu tego Menu możemy wykonać na drukarce fiskalnej:
- powtórną fiskalizację dokumentu,
- wydrukować raport dobowy,
- wydrukować raport szczegółowy.
Powtórna fiskalizacja dokumentu
W sytuacjach, w których dokument nie został zafiskalizowany na drukarce fiskalnej, a jest dokumentem zatwierdzonym (na liście paragonów, taki dokument wyświetlony jest na żółto), to można go zafiskalizować na drukarce fiskalnej.
Aby to zrobić z Menu Fiskalne wybieramy przycisk – otwiera się okno: Fiskalizacja dokumentów. Aby wybrać dokument do powtórnej fiskalizacji należy nacisnąć przycisk:
[Dokument].
W oknie Fiskalizacja dokumentu naciskamy przycisk: [Fiskalizuj dokument].

Drukuj numer NIP na paragonie
W wersji 2018.2 w konfiguracji komputera na zakładce Drukarka fiskalna 2, dodano parametr: Drukuj numer NIP. Parametr dostępny jest dla nowych sterowników fiskalnych. Zaznaczenie tego parametru ma sens tylko dla tych drukarek, które posiadają zgodnie z przepisami możliwość drukowania numeru NIP w określonym miejscu paragonu. W przypadku starszych modeli drukarek, po zaznaczeniu tego parametru podczas drukowania paragonu pojawi się błąd. Równocześnie zrezygnowano z drukowania numeru NIP w części niefiskalnej paragonu, w sytuacji, gdy zaznaczono parametr Wyświetlaj numer paragonu.

Problemy z drukowaniem fiskalnym dokumentów
Brak możliwości wydrukowania dokumentu na drukarce fiskalnej może być spowodowany m.in.:
- nieprawidłową konfiguracją systemu,
- niezgodnością wartości w elementach transakcji,
- zmianą stawki VAT w karcie towaru lub w elemencie transakcji,
- brakiem połączenia z drukarką fiskalną – problemy sprzętowe.
Nieprawidłowa konfiguracja systemu
Brak połączenia z drukarką w połączeniu terminalowym
Opis znajduje się w rozdziale: Najczęściej popełniane błędy konfiguracyjne.
Ustawienia portu COM dla drukarki FP600 starej homologacji
W trakcie testów okazało się, że dla drukarek Elzab FP600 starej homologacji należy ustawić sterowanie przepływem na: Sprzętowe.
Jeżeli ustawimy sterowanie przepływem na: brak, to dokumenty fiskalizują się na drukarce fiskalnej, a w systemie Comarch ERP XL otrzymujemy komunikat o braku możliwości zamknięcia dokumentu. Tym samym otrzymujemy niezafiskalizowany dokument w Comarch ERP XL mimo, iż zafiskalizował się on na drukarce fiskalnej.

Remedium
Dla drukarek Elzab FP600 starej homologacji ustawić sterowanie przepływem na: Sprzętowe.
Nieprawidłowe mapowanie stawek VAT
Jeżeli wykonano nieprawidłowe mapowanie stawek VAT – wskazano odpowiedniki o innych stawkach niż są zmapowane w drukarce fiskalnej – to dana pozycja dokumentu może wydrukować się na drukarce fiskalnej z inną stawką podatku niż wskazana w Comarch ERP XL lub może się nie wydrukować. Brak możliwości wydrukowania może objawić się komunikatem:

oraz anulowaniem paragonu na drukarce fiskalnej – komunikat na paragonie: „paragon anulowany”.
Remedium
Należy poprawnie zamapować stawki VAT wg instrukcji z rozdziału: Mapowanie stawek VAT.
Nieprawidłowa nazwa towaru
Każda drukarka fiskalna ma określoną minimalną długość nazwy towaru oraz listę znaków specjalnych, która nie jest obsługiwana. Jeżeli nazwa towaru nie spełnia kryteriów określonych w specyfikacji drukarki fiskalnej dana pozycja nie zostanie na niej wydrukowana. Może się to objawić następującym komunikatem:

Remedium
Należy zmienić nazwę towaru w karcie towaru w taki sposób, aby spełniała wymagania specyfikacji drukarki fiskalnej. Następnie usunąć i dodać daną pozycję z dokumentu, który chcemy zafiskalizować.
W takiej sytuacji należy zmienić nazwę towaru w taki sposób, aby spełniała kryteria ze specyfikacji.
Kod autoryzacyjny drukarki
Niektóre drukarki posiadają zaimplementowany „kod autoryzacyjny” ważny w zadanym okresie czasu. Przykładowo, jeżeli drukarka posiada 30 dniowy kod autoryzacyjny tzn. po 30 dniach drukarka przestaje działać i nie drukuje jakiekolwiek paragonu, w systemie prezentowany wówczas jest następujący komunikat:

Remedium
Należy sprawdzić czy „kod autoryzacyjny” funkcjonuje na urządzeniu i czy Użytkownik bądź Serwis wprowadził taki kod, który odblokowuje drukarkę „na zawsze”.
W przypadku, gdy drukarka nie posiada kodu autoryzacyjnego, a w systemie podczas zapisu dokumentu występuje komunikat: NowyParagon 3 należy wykonać z poziomu Comarch CDN XL, menu Fiskalne-> Raport dobowy. Po wykonaniu Raportu dobowego na drukarce problem powinien ustąpić.
Niezgodność wartości elementu
Element transakcji nie zostanie zafiskalizowany na drukarce fiskalnej jeżeli nie jest spełnione równanie ilość*cena=wartość. Jeżeli równanie jest niespełnione, to możemy uzyskać następujący komunikat:

oraz na drukarce fiskalnej: „paragon anulowany”.
Remedium
Należy sprawdzić, czy są zaznaczone parametry w Elemencie transakcji:
- Ilość*cena=wartość,
- Cena z dokładnością do groszy,
- Zakładka: {Kalkulacja}, „Od księgowych”.
Powyższe parametry powinny być zaznaczone dla fiskalizowanego elementu.
Następnie należy sprawdzić równanie ilość*cena=wartość. Jeżeli nie jest spełnione, to wprowadzić prawidłową wartość na element.
Zmieniona stawka podatku VAT dla danego towaru
Zmiana stawki podatku VAT w karcie towaru lub w elemencie transakcji może uniemożliwić zafiskalizowanie danej pozycji na drukarce fiskalnej. Objawia się to komunikatem:

oraz na drukarce fiskalnej: „błąd PTU paragon anulowany”.
Remedium
Rozwiązaniem jest:
- zmiana stawki podatku na taką jaka była zafiskalizowana przed zmianą lub
- zmiana nazwy towaru na nową – wtedy w drukarce fiskalnej zostanie dodana nowa nazwa z przypisaną do niej stawką podatku.
Problemy sprzętowe
Jeżeli mamy wprowadzone prawidłowo wszystkie ustawienia wg tego biuletynu, a mimo to nadal nie drukują się nam dokumenty na drukarce fiskalnej, to istnieje duże prawdopodobieństwo, że jest to spowodowane problemami sprzętowymi – uszkodzeniem drukarki fiskalnej, uszkodzeniem przewodów, uszkodzeniem portu COM itp.
Remedium
W takich sytuacjach należy:
- sprawdzić czy drukarka jest prawidłowo podłączona do komputera;
- spróbować ją podpiąć do innego stanowiska, które drukuje paragony na innej drukarce fiskalnej;
- skontaktować się z serwisem drukarek fiskalnych.
Lista komunikatów i przyczyna występowania
Sprzedaż: informacja (2092)

Patrz rozdział: Ustawienia portu COM dla drukarek FP600 starej homologacji.
Sprzedaż: informacja (2093), Szczegóły >> brak

Patrz rozdziały:
Sprzedaż: informacja (2093), Szczegóły >> Towar posiada nieprawidłową nazwę
Rysunek 33 Sprzedaż: informacja (2093), Szczegóły >> Towar posiada nieprawidłową nazwę (…)
Patrz rozdział: Nieprawidłowa nazwa towaru
Drukarki fiskalne z jakimi współpracuje program Comarch ERP XL
Poniżej przedstawiono modele drukarek fiskalnych współpracujących z systemem Comarch ERP XL w wersji 2021.- POSNET (oparte o protokół DF-3001, Thermal, Thermal HS i FV, HD, HD EJ, XL2 OnLine, Temo)
- ELZAB (Omega, Mera, Mera OnLine, ZETA),
- INNOVA (Profit, Market, DF-1),
- NOVITUS (Vivo, Vento, Quarto, Delio Prime (E) , Deon(E), Deon OnLine, Bono (E), Bono OnLine, HD Online),
- TORELL (Duo Pro, Andros),
- EMAR (Printo, Tempo 3),
- Epson TM-T801FV
XL030 - Obsługa dashboardów
Pulpit operatora
Dashboardy są to pulpity zmieniające wygląd interfejsu. Użytkownik Systemu może przygotować własny pulpit z obiektami, z których korzysta najczęściej, dzięki czemu dostęp do nich będzie szybszy, a układ spersonalizowany. Dodatkowo, poza standardowymi obiektami na pulpicie można dodać widżet z odwołaniem do dowolnej strony www, innego programu czy raportów BI. Włączenie dostępu do konfiguracji pulpitu odbywa się w: Ustawieniach użytkownika.

Pulpity predefiniowane
Wraz z możliwością kreowania własnych pulpitów dla Użytkowników, udostępnione zostały pulpity tzw. predefiniowane, stanowiące bazę jak pulpity mogą wyglądać, z przykładowymi obiektami i ułożeniem. Te predefiniowane pulpity mogą być przypisane do operatorów i w proponowanej wersji używane lub można je indywidualnie modyfikować wg własnych potrzeb i upodobań. Funkcjonalność dashboardów pozwala użytkownikowi zdefiniować własne pulpity, odrębnie do predefiniowanych.
Przypisywanie pulpitów predefiniowanych do operatora
Aby udostępnione predefiniowane pulpity, a także te pulpity, które zostały przygotowane przez administratora jako predefiniowane mogły być używane przez Użytkownika, należy Mu je przypisać. W tym celu na karcie operatora dodana została stosowna sekcja dla przypisywania predefiniowanego pulpitu. Z uwagi na możliwość korzystania z więcej niż jednego pulpitu, na liście prezentowane są wszystkie pulpity przypisane do operatora. Przypisanie pulpitu do operatora odbywa się poprzez kopiowanie rekordu w bazie z danym pulpitem predefiniowanym, a następnie uzupełnianie numeru operatora, któremu pulpit jest przypisywany. Jednocześnie udostępniona została opcja usuwania pulpitu konkretnemu operatorowi. Oznacza to usunięcie pulpitu operatora z bazy danych. Działanie jest tożsame z usunięciem pulpitu z poziomu konfiguracji.

Wskazanie predefiniowanego pulpitu jest możliwe również na wzorcu operatora. Dzięki temu można przy pomocy funkcjonalności aktualizacji kart operatorów grupowo przypisać operatorom konkretny predefiniowany pulpit. Także dodając nową kartę operatora w kontekście wzorca, można na samym początku przypisać do niego wybrany pulpit.

Obsługa pulpitu operatora

Domyślny wygląd pulpitu operatora podzielony jest na 3 sekcje:
W sekcji Konfiguracja znajdują się wszystkie dostępne widżety, które można przenieść na panele.
Sekcja z podłączonymi pulpitami – w tej części wyświetlana jest lista pulpitów podłączonych do danego operatora.
Sekcja, w której są widoczne wszystkie panele podłączone do danego pulpitu
Dodawanie nowego pulpitu
W sekcji z widokiem podłączonych pulpitów znajduje się przycisk służący do utworzenia nowego pulpitu.

Automatycznie po kliknięciu ‘Dodaj pulpit’ zostaje utworzony nowy pulpit z nazwą ‘Nowy …’. Nazwę pulpitu można zmienić poprzez kliknięcie prawym przyciskiem myszy na jego nazwie. Pojawi się lista z opcjami Usuń oraz Zmień nazwę.
Dodawanie paneli
Do każdego pulpitu można dodać dowolną ilość paneli. Nowy panel można dodać poprzez opcję ‘Dodaj panel’. Nowo utworzony panel zostaje dodany do obecnie używanego pulpitu z nazwą ‘Panel…’.

Rozmieszczenie paneli na pulpicie
Panele na pulpicie można rozmieścić na kilka różnych sposobów:
Panel przypięty – nowo utworzony panel jest dosunięty do krawędzi pulpitu. Tak przypięty panel nie zmienia wielkości po przypięciu. Można dowolnie zmienić jego wielkość. Nowo otwarte okna w programie powodują przesłonięcie panelu.

Panel pływający – panel nie dosunięty do żadnej krawędzi. Można zmieniać dowolnie jego wielkość. Otwarcie nowego okna w programie nie powoduje przesłonięcia panelu, który w takim ułożeniu widoczny będzie zawsze na wierzchu.

Panel zadokowany – panel zadokowany do krawędzi pulpitu. Podczas przesuwania panelu pokazują się opcje, gdzie można zadokować panel. Tak zadokowany panel zmienia swoją wielkość na domyślną, ale możliwa jest zmiana szerokości panelu. Taki panel jest widoczny spod otwieranych okien.


Panele połączone – panele można ze sobą łączyć w różnej konfiguracji. Jako dwa sklejone ze sobą panele lub jako zakładki, między którymi można się przełączać.

Opcja auto hide na panelach

Dla paneli została udostępniona funkcja Auto hide – autoukrywanie się panelu w postaci pinezki na nagłówku panelu. Panel, po włączeniu tej opcji, zwija się automatycznie, pozostawiając widoczny tylko nagłówek.
Ustawienia na panelach
Dla każdego panelu możliwa jest zmiana nazwy, jak i koloru. Opcje te dostępne są po wybraniu Ustawień z poziomu nagłówka panelu.

Dla paneli można ustawić kolor niestandardowy, wybierając pole z wielokropkiem.

Widżety
Na panel można dodać dowolną ilość widżetów poprzez opcję Przeciągnij i upuść. W tym celu należy wybrać interesujący nas widżet z wszystkich dostępnych w sekcji Konfiguracja i przeciągnąć go na konkretny panel. Możliwe jest również przeciągnięcie i dodanie całej grupy widżetów.
Konfiguracja widżetów
Dodane widżety można konfigurować. W tym celu należy najechać myszką na wybrany widżet i poprzez kliknięcie prawym przyciskiem myszy wybrać opcję Ustawienia.

W oknie ustawień widżetów, można odpowiednio skonfigurować widżet.

Dla każdego widżetu możliwa jest zmiana nazwy, zmiana typu, wielkości i koloru czcionki, jak również dodanie własnej ikony na widżecie lub wybranie filtra. Dla niektórych widżetów możliwy jest również wybór kontekstu. Dla każdego widżetu można indywidualnie zdefiniować kolor tła, wybierając z podanych lub wybrać niestandardowy, jak również zmienić wymiar na jeden ze zdefiniowanych.
Parametr Zliczaj służy do zliczania np. ilości dokumentów odpowiadających widżetowi. Można tam wstawić zapytanie zwracające pojedynczą wartość. Wynik tego zliczenia widoczny jest przy nazwie widżetu.
Konfiguracja widżetów niestandardowych
Na liście widżetów znajdują się widżety z ustawieniami niestandardowymi, są to m. in. Uruchom program, Zdjęcie, Przeglądarka WWW, BI Point.
Konfiguracja widżetu Uruchom program
Dla widżetu Uruchom program w ustawieniach możliwe jest określenie programu, który ma być otwierany po kliknięciu w widżet.

Po wybraniu przycisku wielokropka pojawia się okno wyboru aplikacji do podłączenia. W sekcji Parametry należy podać parametry uruchomienia programu np. jako program: C:\Windows\notepad.exe, a jako parametry: c:\mojplik.txt. Spowoduje to uruchomienie C:\Windows\notepad.ex\ mojplik.txt.
Konfiguracja widżetu Zdjęcie
Widżet Zdjęcie, to widżet służący do wyświetlanie zminiaturyzowanego zdjęcia jako ikony widżetu.


Konfiguracja widżetów BI Point i Przeglądarka www
Dodanie widżetów Przeglądarka WWW i BI Point możliwe jest tylko do panelu, dla którego nie są dodane inne widżety. Ustawienia tych widżetów dostępne są z nagłówka panelu z menu.

W ustawieniach widżetu BI Point w sekcji URL, domyślnie jest wpisany adres http://bicloud.comarch.pl.

W ustawieniach widżetu Przeglądarka WWW w sekcji URL, należy wpisać adres strony internetowej, która ma być wyświetlona.

Dla widżetu nie jest udostępniona pełna przeglądarka. Ideą tego widżetu jest możliwość wyświetlania strony, która będzie przydatna podczas pracy. By cofnąć się do poprzedniej strony, należy na stronie kliknąć prawy przycisk myszy i wybrać Wstecz.
XL140 - Przesyłki kurierskie - integracja z Comarch Shipping
Informacje ogólne
Współpraca z Comarch Shipping została wprowadzona w wersji 2020.2.2 Comarch ERP XL. Zmiany te nie były ujęte w wersji z instalatorem, tylko jako zestaw plików do wgrania.
W wersji 2021.0 Comarch ERP XL współpraca z Comarch Shipping obejmuje aktualną na dzień wydania funkcjonalność aplikacji, czyli obsługę zleceń dla kurierów DHL i DPD oraz obsługę trybu testowego.
W wersji 2022.1 Comarch ERP XL w Ribbonie modułu Administrator (menu Ogólne) został dodany przycisk pozwalający na uruchomienie aplikacji Comarch Shipping. Analogiczne zmiany wprowadzono w Ribbonie dla pozostałych modułów.
Przycisk jest aktywny, jeśli zalogowany operator ma na swojej karcie ustawiony parametr Użytkownik Comarch Shipping. Po wybraniu przycisku w oknie przeglądarki XL uruchamiana jest strona startowa aplikacji Comarch Shipping, na której można wykonywać wszystkie dozwolone dla użytkownika operacje tak samo, jak byłyby one wykonywane w zewnętrznej przeglądarce.
W wersji 2023.2 Comarch ERP XL w integracji z Comarch Shipping zostały obsłużone procesy, które dla zleceń pochodzących z Comarch ERP XL zostały wcześniej zablokowane, czyli możliwość rejestrowania i aktualizowania zleceń z więcej niż jedną paczką.
Dodatkowo wprowadzona została aktualizacja większej ilości danych na paczkach/wysyłkach, tak aby móc na bieżąco prezentować, jaki jest stan realizacji powiązanych zleceń w Comarch Shipping. Czyli informacje o numerach listów przewozowych i linku do śledzenia przesyłki są teraz zapisywane nie tylko na wysyłce, ale także na paczkach. Wraz z numerem listu zapisywany jest w Systemie również status takiej przesyłki.
Aktualizacja tych danych w Comarch ERP XL jest nadal wykonywana w trakcie operacji ręcznych: tworzenia zlecenia oraz aktualizacji danych ze zlecenia. Oprócz tego wprowadzono automatyczne pobieranie z Comarch Shipping danych o realizacji zlecenia/paczek za pomocą dedykowanej usługi synchronizacji.
Dodatkowo informacje o numerze przesyłki i linku do śledzenia są przesyłane na zamówienia sprzedaży powiązane z paczkami.
W wersji 2024.0 Comarch ERP XL w integracji z Comarch Shipping wprowadzono obsługę rodzajów przesyłek związanych z rodzajem usługi oraz aktualizację nazw kurierów przy ich pobieraniu z aplikacji.
W wersji 2024.1 Comarch ERP XL została wprowadzona możliwość pobierania wydruków etykiet dla zleceń z Comarch Shipping.Zmiany na paczkach i wysyłkach w Comarch ERP XL
Zmiany w generowaniu paczek i wysyłek z list dokumentów
W związku z tym, że generowanie zleceń do Comarch Shipping wymaga podania dla wysyłki dokładnie jednego adresu odbiorcy, nawet jeśli wysyłka zawiera kilka paczek, to zmodyfikowane zostało działanie tworzenia paczek i wysyłek obsługujących adres dostawy.
Dotychczasowe działanie parametru z konfiguracji, zakładka [Sprzedaż/Parametry 2] Kontroluj zgodność adresu dostawy dokumentów paczki pozwalało na tworzenie paczek z dokumentami, które miały ustawionego kontrahenta z tym samym adresem oraz takich, które w ogóle nie miały kontrahenta (np. paragony). Ta kontrola została teraz uściślona tak, że dokumenty bez kontrahenta będą zawsze wiązane do jednej paczki, a do innych tylko te na których kontrahent jest ustawiony.
W konfiguracji jest zaznaczony parametr: Kontroluj zgodność adresu dostawy dokumentów paczki. Na liście paragonów zaznaczono kilka dokumentów, z czego dwa nie mają przypisanego kontrahenta, a pozostałe mają kontrahenta zgodnego (z tym samym adresem). Po wybraniu operacji generowania paczek z zaznaczonych zostaną dodane dwie paczki z ustawionym parametrem: Dokumenty na ten sam adres, gdzie jedna będzie zawierała paragony bez kontrahentów, a druga pozostałe paragony.

Zaznaczenie nowego parametru skutkuje zmianą w wykonaniu operacji Wysyłka z zaznaczonych dostępnej w menu kontekstowym na listach dokumentów: handlowych, serwisowych i zamówień oraz na liście paczek. Ta operacja spowoduje najpierw utworzenie paczek z ustawionym parametrem: ”Dokumenty na ten sam adres (jak opisano powyżej)”, a następnie do każdej z tych paczek zostaje utworzona osobna wysyłka. Chodzi o to, aby każda wysyłka miała jednoznaczny adres dostawy. W tym przypadku będzie on pobierany z adresu na powiązanej paczce.
W wersji 2023.0 Comarch ERP XL został wprowadzony nowy parametr w konfiguracji Dane kontaktowe na paczce z osoby kontrahenta, o którym więcej w dalszej części biuletynu.
Zmiany na formatce paczki

- Wymiary: długość, szerokość i wysokość, wyrażone w centymetrach. Wymiarami można posługiwać się niezależnie od aplikacji Comarch Shipping
- Rodzaj przesyłki – możliwość wybrania rodzaju przysyłki z dostępnych dla danego kuriera w Comarch Shipping, które są importowane do XL z tej aplikacji. Tutaj najpierw konieczne jest wskazanie kuriera, aby została odpowiednio zawężona lista rodzajów.
Dane adresowe i osoba kontaktowa na dokumencie Paczki
Na dokumencie Paczki, zakładka [Ogólne] prezentowane są szczegółowe dane adresowe i kontaktowe, które są do niej przypisane. Dotychczas wyświetlany był tylko akronim powiązanego adresu.
Ustawienie adresu na paczce następuje na podstawie dokumentów do niej powiązanych, o ile w konfiguracji modułu Konfiguracja/Sprzedaż/Parametry 2 jest zaznaczony parametr Kontroluj zgodność adresu dostawy dokumentów paczki.
Od wersji 2023.0 ustawienie to decyduje również o tym, czy na paczce zostanie dodana osoba kontrahenta. Wybór osoby następuje automatycznie na podstawie dokumentów powiązanych. Można to też zrobić samodzielnie poprzez wybór odpowiedniego rekordu z listy osób przypisanych do kontrahenta.
Obecnie, gdy na paczkę jest pobierany adres z dokumentów powiązanych (zawsze z zakładki [Kontrahent docelowy]) i na tych dokumentach (na tej samej zakładce) jest wypełniona osoba kontrahenta, wówczas zostaje ona pobrana również na paczkę. Ponieważ na każdym z dokumentów może być ustawiona inna osoba, to sposób pobierania jest następujący:
- Podczas tworzenia paczek z listy dokumentów pobierana jest osoba z pierwszego dokumentu w kolejce, na którym jest ona wypełniona.
- Podczas dołączania dokumentów do paczek również pobierana jest osoba z pierwszego dokumentu w kolejce, na którym jest ona wypełniona. Przy czym tutaj pobranie może nie nastąpić, jeśli na paczce osoba jest już wypełniona.
Podczas usuwania powiązania dokumentów do paczki osoba nie jest modyfikowana aż do czasu usunięcia ostatniego powiązanego dokumentu. Wówczas następuje bowiem usunięcie z paczki adresu a wraz z nim też osoby kontaktowej.
Dopóki dokument Paczki nie jest zatwierdzony, to osobę kontrahenta można również uzupełnić, usunąć lub zmodyfikować samodzielnie, poprzez wybór dowolnej osoby z listy wszystkich osób kontrahenta. Ważne jest tylko, aby wcześniej został powiązany jakikolwiek dokument, na podstawie którego kontrahent dla paczki zostanie ustalony.
Wraz z ustawieniem osoby kontaktowej może nastąpić również pobranie na paczkę jej danych kontaktowych: telefon oraz e-mail. Ma to szczególne znaczenie dla współpracy z Comarch Shipping, o czym więcej w dalszej części biuletynu.
Standardowo jako dane kontaktowe dla paczki traktowane były dane z adresu do niej powiązanego. Teraz przy odpowiednim ustawieniu w konfiguracji modułu Sprzedaż (Konfiguracja/Sprzedaż/Parametry 2) nowego parametru Dane kontaktowe na paczce z osoby kontrahenta można sprawić, aby zostały one pobrane z osoby kontaktowej na paczce, o ile taka zostanie na niej wybrana. Wówczas od razu na paczce podmienia się zawartość w kontrolkach Telefon i E-mail, więc widać wprost, jakie dane kontaktowe są obowiązujące dla danej paczki.
Zmiany na formatce wysyłki
Na potrzeby przechowywania danych pobieranych ze zlecenia w Comarch Shipping w oknie wysyłki zostały dodane nowe pola oraz zmieniono układ okna, jak przedstawia poniższy rysunek.

Wydzielona została część Obsługa wysyłki, w której umieszczono pole Kurier z odwołaniem do listy słownikowej z rodzajami kurierów (dostępna w Słownikach kategorii, grupa Transport, magazyn). Obsługa pola zgodnie ze standardem, czyli jeśli ustawiono domyślny rekord w słowniku, to będzie on ustawiany na nowo dodawanych wysyłkach. Rekordy można również dezaktywować w słowniku, w przypadku, gdy nie są wykorzystywane.
Z polem Kurier ściśle powiązane jest dotychczasowe pole Spedytor, które pozwala ustawić kontrahenta obsługującego wysyłkę. Jeśli na kartach kontrahentów zostanie zaznaczony parametr: Spedytor i dodatkowo wybrany zostanie rodzaj kuriera, wówczas na wysyłce będzie możliwe wybranie jako Spedytora tylko takich kontrahentów: np. .
Jeśli wysyłka jest realizowana poprzez spedytora nie będącego kontrahentem, wówczas działanie pola Spedytor pozostaje bez zmian. Analogicznie, zmianie nie uległo działanie pól dotyczących samochodu oraz kierowcy – mogą one być wykorzystywane do ewidencji wysyłek realizowanych poza firmami kurierskimi.
Poniżej wydzielona została kolejna część Dane przesyłki, w której umieszczono nowe pola:
- Stan przesyłki – z odwołaniem do listy słownikowej o tej samej nazwie (dostępna w Słownikach kategorii, grupa Transport, magazyn). Do rekordów tego słownika zostały dodane predefiniowane stany dla zleceń z Comarch Shipping, które rozpoczynają się od wyrażenia ‘ZNP’ i rekordy te będą ustawiane automatycznie na wysyłkach integrowanych z tą aplikacją. Niezależnie od tego jest również możliwość korzystania ze słownika na standardowych zasadach, czyli dodając do niego własne pozycje, a następnie ustawianie stanów ręcznie na wysyłkach.
- Numer ZNP – pole widoczne dopiero, jeśli wysyłka zostanie przesłana do Comarch Shipping. Wyświetla numer zlecenia nadany jej w aplikacji. Obok numeru znajduje się przycisk lupki. Służy on do podglądu zlecenia w Comarch Shipping, o czym więcej w rozdziale ‘’Podgląd zlecenia z poziomu wysyłki’’.
- Punkt odbioru (ID) – możliwość wpisania identyfikatora punktu odbioru.
- Data nadania – możliwość ustawienia daty nadania.
Pozostałe pola w obszarze z danymi przesyłki działają bez zmian, czyli Numer listu służy przechowywaniu numeru nadanego przez kuriera po jego zarejestrowaniu, możliwe jest uzupełnienie wartości pobrania i ubezpieczenia wysyłki. W przypadku współpracy z Comarch Shipping pola te są integrowane z utworzonymi zleceniami, co jest szczegółowo opisane w kolejnym punkcie.
Dodatkowo zmieniono nazwę dotychczasowej zakładki [Opis] na [Inne], bowiem oprócz pola z opisem zawiera ona również nowe pole Link do śledzenia przesyłki, z możliwością wywołania podglądu takiego linku. W polu można wpisać adres otrzymany po nadaniu przesyłki, pod którym dostępne są informacje o tym, gdzie znajduje się ona aktualnie. Po wypełnieniu pola aktywny będzie przycisk do wywołania wpisanego adresu w oknie domyślnej przeglądarki.
![Zakładka [Inne] na wysyłce](https://pomoc.comarch.pl/xl/wp-content/uploads/2021/01/word-image-174.png)
Rozpoczęcie współpracy z Comarch Shipping
Uruchomienie usługi Comarch Shipping
Uruchomienie usługi rozpoczyna się w CSM od jej zakupu (lub wybrania wersji demonstracyjnej). Należy tutaj postępować zgodnie z dokumentacją aplikacji Comarch Shipping.
Konfiguracja połączenia i tworzenie kont użytkowników w aplikacji Comarch Shipping
W pierwszych wersjach aplikacji zakładanie kont użytkowników jest dostępne tylko jako migracja z poziomu systemu ERP i może być dokonywana tylko za pomocą loginu SSO, który ma w aplikacji uprawnienia Administratora. Jest to ten login, który zakłada usługę z poziomu CSM.
W pierwszym kroku należy ustawić dla właściwych operatorów Comarch ERP XL loginy SSO, którymi będą się posługiwać w aplikacji oraz ustawić dla nich parametr: Użytkownik Comarch Shipping.

W kolejnym kroku w oknie konfiguracji Comarch ERP XL, na zakładce [Aplikacje/Kurierzy] należy wpisać adres usługi Comarch Shipping i zapisać okno konfiguracji. Poprawny adres usługi to: https://shipping.comarch.com.

Po ponownym uruchomieniu okna na tej samej zakładce możliwe będzie wykonanie eksportu użytkowników do aplikacji. Zgodnie z informacją zamieszczoną poniżej przycisku eksportu, zostanie on wykonany dla operatorów z zaznaczonym parametrem: Użytkownik Comarch Shipping. Loginy SSO pobrane z kart tych operatorów zostaną dodane do listy użytkowników aplikacji (z rolą: Domyślny Użytkownik), a logowanie będzie się obywało za pomocą tych kont SSO.
Po poprawnym wykonaniu eksportu należy jeszcze zalogować się do aplikacji i aktywować konta nowo dodanych użytkowników, a w razie potrzeby ustawić niektórym rolę Administratora. Dopiero wtedy użytkownicy będą mogli w pełni korzystać z funkcjonalności aplikacji zgodnie z przypisanymi im rolami.
Więcej na temat ról w dokumentacji Comarch Shipping.
Import informacji o kurierach obsługiwanych w aplikacji
W oknie Konfiguracja/Aplikacje/Kurierzy w wersji 2022.0 Comarch ERP XL został dodany przycisk do importu danych o kurierach z aplikacji Comarch Shipping. Przy imporcie do słownika kategorii Kurierzy pobierane są następujące informacje:
- Wewnętrzny identyfikator kuriera wykorzystywany przy wymianie danych – informacja nie jest widoczna w interfejsie, ale jego przypisanie spowoduje, że kurier będzie widoczny w oknie generowania Zlecenia Nadania Przesyłki.
- Rodzaje przesyłek obsługiwanych przez danego kuriera – rodzaje można ustawiać na paczkach, co zostaje potem przekazane na zlecenia w aplikacji.

Jeśli nazwa kuriera z aplikacji jest zgodna z nazwą predefiniowanego rekordu ze słownika, wówczas importowane informacje zostaną przypisane do tego rekordu. Jeśli nie ma dokładnie takiej nazwy, wówczas w słowniku zostaje utworzony nowy rekord predefiniowany (oznaczony na niebiesko).
Dodatkowy parametr Oznaczaj aktywność kurierów na podstawie ustawień z aplikacji pozwala ustawić rekordy słownika kategorii Kurierzy na aktywne/nieaktywne w sposób odzwierciedlający stan w Comarch Shipping. Przy czym będzie to dotyczyło tylko tych kurierów, którzy są obsługiwani w aplikacji. Pozostałe rekordy słownika nie są modyfikowane.
Przycisk importu pobiera również dane słownikowe rodzajów przesyłek, które są widoczne w słowniku kategorii Kurierzy na osobnej zakładce [Rodzaje przesyłek].

Pobrane w ten sposób rodzaje przesyłek można wykorzystać na paczkach, z których są następnie przekazywane na zlecenie do Comarch Shipping. Aby ograniczyć w Comarch ERP XL listę rodzajów do tych, które są w danej bazie faktycznie wykorzystywane, można pozostałe oznaczyć jako nieaktywne. Dzięki temu nie będą one wyświetlane na listach do wyboru, analogicznie do innych nieaktywnych rekordów słownikowych.
Powiązanie kuriera Raben z aplikacją Comarch Shipping
W wersji 2022.0 Systemu dodaliśmy do bazy wewnętrzne identyfikatory kurierów, które służą do integracji z Comarch Shipping. Taki identyfikator wskazuje jednoznacznie, na jakiego kuriera w Comarch Shipping utworzyć zlecenie na podstawie wysyłki w Comarch ERP XL.
Ponieważ wersja miała być wydawana w zbliżonym terminie do nowej wersji Comarch Shipping, to identyfikator został przypisany w słowniku kategorii również dla kuriera Raben, który potem zmienił swoją nazwę w aplikacji na Raben Logistics Polska. Zmianę taką wprowadziliśmy również do Comarch ERP XL 2022.0.1, więc od tej wersji pojawił się dodatkowy kurier o pełnej nazwie i on będzie integrowalny z aplikacją. Dotychczasowy kurier o nazwie Raben pozostanie w słowniku, ale nie będzie mógł być wykorzystywany przy tworzeniu zleceń z poziomu wysyłek.
Tworzenie Zleceń Nadania Przesyłki z poziomu Comarch ERP XL
Warunki konieczne do pomyślnego utworzenia zlecenia
Aby pomyślnie udało się utworzyć zlecenie w Comarch Shipping muszą być spełnione następujące warunki:
- Od strony aplikacji Comarch Shipping:
- Musi być aktywny oraz ustawiony jako domyślny co najmniej jeden kurier – tylko takie ustawienie pozwala tworzyć zlecenia w aplikacji.
- Od strony Comarch ERP XL:
- Operator wykonujący operację tworzenia zlecenia musi mieć uzupełniony Login SSO, który został dodany jako użytkownik Comarch Shipping.
Zlecenia z listy wysyłek
Na liście wysyłek (dostępna z listy dokumentów handlowych, zakładka [Transportowe/Wysyłki] w menu kontekstowym udostępnione zostały operacje dotyczące Zleceń Nadania Przesyłki (w skrócie ZNP) w Comarch Shipping:
- Zlecenie Nadania Przesyłki (ZNP) pozwalający tworzyć zlecenia dla wybranej przesyłki w Comarch Shipping.
- Aktualizuj dane ZNP do aktualizacji danych przekazywanych z Comarch Shipping na wysyłkę w XL.
Operacja Zlecenie Nadania Przesyłki (ZNP) z listy wysyłek działa dla pojedynczego rekordu na liście. Po jej wybraniu następuje weryfikacja prawidłowości wysyłki, czyli sprawdzany jest:
- Stan wysyłki – musi być Zatwierdzona i niepowiązana ze zleceniem w Comarch Shipping,
- Adres wysyłki, czyli czy wszystkie przypisane paczki mają zaznaczony parametr Dokumenty na ten sam adres oraz czy adres dla paczek jest zgodny.
Jeśli weryfikacja zawiera błędy użytkownik zostaje o tym powiadomiony stosownym komunikatem i operacja zostaje przerwana. W przeciwnym razie pojawia się okno z parametrami dla tworzonego zlecenia.
Parametry dla tworzenia Zlecenia Nadania Przesyłki

- Kurier – jeśli nie wybrano na wysyłce, konieczne będzie wskazanie kuriera z listy słownikowej. Jest to jedyne pole obowiązkowe, bez którego nie będzie możliwości zaakceptowania okna i utworzenia zlecenia.
- Spedytor – możliwość wybrania kontrahenta, który został oznaczony na karcie jako Spedytor i ma wybranego tego samego kuriera, którego podano powyżej. Jeśli spedytora wybrano na wysyłce, wówczas zostanie ustawiony w tym oknie.
- Data nadania – możliwość wskazania daty, w której ma być nadana przesyłka.
- Płatność przy odbiorze – parametr zaznaczony, jeśli na wysyłce wypełniono pole Pobranie, w przeciwnym razie nie będzie możliwości jego zaznaczenia, ponieważ nie ma skąd pobrać tej wartości.
- …-wartość pobrania z wysyłki powiększ o kwotę – możliwość wpisania dodatkowej kwoty należnej za przesyłkę, jeśli nie została ona uwzględniona w kwocie pobrania; pole aktywne tylko jeśli parametr: Płatność przy odbiorze jest zaznaczony.
- Wartość ubezpieczenia z dwiema opcjami:
- Wg kwoty pobrania – wówczas na zleceniu jako wartość ubezpieczenia zostanie ustawiona taka sama kwota jak wartość pobrania.
- Z wysyłki – jeśli na wysyłce ustawiono wartość w polu Ubezpieczenie, wówczas można ją przekazać bezpośrednio na zlecenie.
- Rodzaj przesyłki – możliwość wybrania rodzaju przysyłki z dostępnych dla danego kuriera w Comarch Shipping, które są importowane do XL z tej aplikacji. Tutaj najpierw konieczne jest wskazanie kuriera, aby została odpowiednio zawężona lista rodzajów.
- Wymiary: długość, szerokość i wysokość, wyrażone w centymetrach. Wymiarami można posługiwać się niezależnie od aplikacji Comarch Shipping
- Punkt odbioru (ID) – możliwość wpisania identyfikatora punktu odbioru
Jeśli do zlecenia zostanie przesłana wartość ubezpieczenia, to zostanie ona ustawiona na zleceniu tylko wtedy, gdy w szablonie paczki została wybrana opcja ubezpieczenia przesyłki jako ‘Wartość z dokumentu źródłowego’. W przeciwnym razie kwota ubezpieczenia na zleceniu będzie pobierana jako stała wartość zadeklarowana w szablonie kuriera w Comarch Shipping. Przy ustawieniu na szablonie wartości ubezpieczenia jako ‘Stała wartość’ nie ma więc konieczności uzupełniania jej na wysyłce.
Na dole okna z parametrami możliwe jest wskazanie, aby poza utworzeniem zlecenia została wykonana dodatkowa operacja w Comarch Shipping: Zarejestruj przesyłkę u kuriera. Taka operacja powoduje nadanie numeru listu przewozowego u wybranego kuriera.
Po uzupełnieniu wszystkich parametrów i zaakceptowaniu okna następuje tworzenie zlecenia w Comarch Shipping.
Wyniki z przebiegu operacji wyświetlane są w logu. Część ewentualnych błędów związanych z połączniem z aplikacją wyświetlenia jest na tym oknie, natomiast pozostałe wynikające z błędów weryfikacji zlecenia po stronie aplikacji są tylko komunikowane i zgodnie z treścią komunikatu szczegóły można zobaczyć już na samym zleceniu w Comarch Shipping.
Na zlecenie poza parametrami w oknie Stwórz Zlecenie Nadania Przesyłki przekazywane są też dane z wysyłki:
- Dane odbiorcy przesyłki, czyli nazwa firmy i adres kontrahenta na dokumencie powiązanym z paczką/paczkami na wysyłce. Tutaj istotne jest, że na zleceniu wymagane jest podanie numeru telefonu (pobierany z pola Telefon1 karty kontrahenta) oraz adresu e-mail (pole E-mail z karty kontrahenta). Należy pamiętać o tym, że dane te powinny być zapisane na karcie kontrahenta przed utworzeniem dokumentu stanowiącego podstawę wysyłki.
- Ilość paczek – wyliczana na podstawie faktycznie powiązanych paczek, a nie pola uzupełnionego na wysyłce (na zakładce [Paczki]).
- Waga paczki – pobierana z wagi uzupełnionej dla każdej z powiązanych paczek. Istotne jest, aby waga dla paczek ustawiona była w kilogramach, gdyż taka jest jednostka przyjmowana przez kurierów.
- Kwoty Pobrania i Ubezpieczenia, jak opisano powyżej.
- Numer wysyłki oraz numery dokumentów powiązanych z paczkami na wysyłce.
Ustawienie rodzaju kuriera w oknie z parametrami warunkuje rodzaj zlecenia jaki zostanie utworzony. Następnie na takim zleceniu ustawiane są niezbędne informacje:
- Dokument źródłowy -> numer wysyłki
- Dokumenty powiązane -> numery dokumentów powiązanych do paczek z tej wysyłki.
- Dane odbiorcy -> z adresu kontrahenta, jak opisano powyżej.
- Dane nadawcy -> z adresu ustawionego w aplikacji.
- Ilość paczek -> ilość tych, które są powiązane do wysyłki, jak opisano powyżej.
- Całkowita waga przesyłki -> wyliczona jako suma z wag powiązanych paczek.
- Zawartość, na którą może składać się kilka elementów: numer dokumentu źródłowego, numery dokumentów powiązanych oraz treść ustawiona w szablonie. Sposób konfiguracji opisany w dokumentacji Comarch Shipping. Tutaj należy zwrócić uwagę, że im więcej elementów zostanie uwzględnionych, tym większa szansa, że przekroczona będzie dopuszczalna ilość znaków (np. dla kuriera DHL wynosi ona tylko 30 znaków).
- Ubezpieczenie przesyłki oraz Pobranie -> z wysyłki oraz z parametrów przed tworzeniem zlecenia, jak opisano powyżej oraz w kolejnych punktach.
- Data nadania pobrana -> z parametrów przed utworzeniem zlecenia
- Na liście paczek -> wszystkie będą miały ustawiony rodzaj Standardowa paczka, waga zostanie pobrana z paczek, wymiary z domyślnych wymiarów dla z szablonu.
- Usługi dodatkowe pobrane z ustawień w aplikacji.
W wersji 2022.0 Comarch ERP XL w oknie ZNP pojawiły się dodatkowo nowe pola:
- Rodzaj przesyłki,
- Wymiary,
- Id punktu odbioru.
Działanie tych parametrów jest następujące:
- Jeśli zostały wypełnione w oknie generowania, to niezależnie od tego, co jest na paczce i wysyłce, wówczas przesyłane na zlecenie są te okna generowania;
- Jeśli nie zostały wypełnione w oknie generowania (lub pozostawiono domyślne wartości zerowe), a są wypełnione na paczce lub wysyłce, wówczas przesyłane na zlecenie są te z paczki i wysyłki;
- Jeśli nie zostały wypełnione zarówno w oknie generowania, jak i na paczce lub wysyłce, wówczas pobierane są domyślne ustawione w Comarch Shipping dla danego kuriera (z szablonu kuriera ‘Szybka paczka’).
Niezależnie od tego, czy informacje na tworzonym zleceniu są pobierane z Comarch ERP XL czy też z domyślnego szablonu, po utworzeniu zlecenia są one automatycznie przekazywane na źródłowe dokumenty paczek/wysyłek do Comarch ERP XL.
Dodatkowo do Comarch Shipping przekazywane są od wersji 2022.0 Comarch ERP XL następujące informacje:- Akronim adresu kontrahenta odczytywany z adresu przypisanego do paczki w Comarch ERP XL,
- System, czyli nazwa systemu, z którego utworzone zostało zlecenie, w tym przypadku: Comarch ERP XL.
Podsumowując powyższe, w trakcie przesyłania informacji pomiędzy bazą danych Comarch ERP XL a Comarch Shipping przekazywane są następujące informacje:

Jeśli przy tworzeniu zlecenia będą błędy/braki w danych odbiorcy czy parametrach paczki (waga, wymiary), wówczas zlecenie zostanie utworzone, a w logu pojawi się informacja o tym, że zawiera ono błędy i należy je poprawić bezpośrednio w Comarch Shipping. To działanie pozostało bez zmian w stosunku do dotychczasowego.
Dane o zleceniu na wysyłce
Po pomyślnym utworzeniu zlecenia w Comarch Shipping na wysyłce w Comarch ERP XL jest ustawiany kurier, numer utworzonego zlecenia, jego stan oraz numer listu przewozowego (jeśli została wykonana rejestracja zlecenia u kuriera). Ze względu na to, że kwota ubezpieczenia wysłana z wysyłki w Comarch ERP XL może być różna niż ta, która ostatecznie została ustawiona na zleceniu (przy ustawieniu w szablonie przesyłki ‘Stała wartość’), to również kwota Ubezpieczenia jest przesyłana zwrotnie na wysyłkę.
Wyświetlanie powyższych danych na oknie wysyłki opisane jest szczegółowo w rozdziale ‘’Zmiany na formatce wysyłki’’.
Zgodnie ze standardowym działaniem operacji anulowania wysyłki dane pochodzące ze zlecenia są z niej również usuwane.
Podgląd zlecenia z poziomu wysyłki
Po zapisaniu na wysyłce numeru zlecenia aktywny jest przycisk lupki obok pola Numer ZNP. Służy on do podglądu zlecenia w Comarch Shipping. Szczególnie przydatny będzie przy ewentualnych błędach wyświetlonych w logu, aby zweryfikować szczegółowo poprawność utworzonego zlecenia. Na oknie zlecenia w Comarch Shipping będą bowiem zaznaczone na czerwono pola, które spowodowały błędy lub wyświetlony zostanie komunikat o innym konkretnym błędzie dla danego zlecenia.
Zlecenia z listy paczek
Analogiczne polecenie Zlecenie Nadania Przesyłki (ZNP) zostało dodane do menu kontekstowego na liście paczek. Dzięki temu po zaznaczeniu wcześniej utworzonych paczek jest możliwość wygenerowania z nich zleceń po uprzednim utworzeniu jednej lub kilku wysyłek. To, ile wysyłek i zleceń zostanie utworzonych zależy od tego, na ile różnych adresów utworzone są wybrane paczki.
- Jeśli adres jest zgodny, to powstanie jedna wysyłka.
- Jeśli są różne to powstanie tyle wysyłek, ile zostanie odnalezionych adresów. W przypadku kilku paczek na ten sam adres zostaną one powiązane z jedną wysyłką.
- Jeśli zostaną znalezione paczki bez adresu to zostaną one pominięte – nie zostaną z nich utworzone wysyłki. Przez paczki bez adresu rozumiemy takie, które nie mają zaznaczonego parametru ‘Dokumenty na ten sam adres’ lub parametr jest zaznaczony, ale do paczki związane są dokumenty bez kontrahenta, np. paragony.

Po zakwalifikowaniu właściwych paczek, w tle zostają utworzone odpowiednie wysyłki i wyświetli się okno z parametrami wysyłki, jak opisano w rozdziale ‘’Parametry dla tworzenia Zlecenia Nadania Przesyłki’’. Tutaj różnica w wypełnianiu parametrów jest następująca:
- Kurier –ponieważ nie wybrano go na dopiero co utworzonej wysyłce/wysyłkach, to konieczne będzie jego wskazanie.
- Spedytor – również nie wybrano go na wysyłce/wysyłkach, więc tu istnieje taka możliwość.
- Data nadania – możliwość wskazania daty, w której ma być nadana przesyłka.
- Płatność przy odbiorze – parametr może zostać zaznaczony, jeśli na wysyłce chcemy mieć wypełnioną wartość Pobrania. Po jego zaznaczeniu jako kwota pobrania do wysyłki wyliczona zostanie suma wartości brutto z powiązanych paczek.
- …-wartość pobrania z wysyłki powiększ o kwotę – możliwość wpisania dodatkowej kwoty należnej za przesyłkę, jeśli zostanie ona wypełniona to o taką wartość powiększy się kwota Pobrania wyliczona powyżej.
- Wartość ubezpieczenia z dwiema opcjami – bez zmian, jak opisano w w rozdziale ‘’Parametry dla tworzenia Zlecenia Nadania Przesyłki’’.
Po pomyślnym utworzeniu zlecenia w Comarch Shipping na wysyłce w XL są ustawiane dane jak opisano w rozdziale ‘’Dane o zleceniu na wysyłce’’.
Zlecenia z listy dokumentów
Analogiczne polecenie Zlecenie Nadania Przesyłki (ZNP) zostało dodane do menu kontekstowego na listach tych dokumentów, dla których można generować wysyłki, czyli dokumentów handlowych, serwisowych oraz zamówień.
Dzięki temu po wskazaniu właściwych dokumentów jest możliwość wygenerowania z nich zleceń po uprzednim utworzeniu jednej lub kilku paczek i wysyłek. To, ile paczek/wysyłek oraz zleceń zostanie utworzonych zależy od tego, na ile różnych adresów utworzone są wybrane dokumenty.
- Jeśli adres jest zgodny, to powstanie jedna paczka i do niej jedna wysyłka.
- Jeśli są różne to powstanie tyle paczek i powiązanych do niej wysyłek, ile zostanie odnalezionych adresów.
- Jeśli zostaną znalezione dokumenty bez adresu (np. paragony bez ustawionego kontrahenta) to zostaną one spięte do jednej paczki, a ta powiązana do jednej wysyłki. Taka wysyłka zostanie pominięta przy tworzeniu zlecenia do Comarch Shipping.

Po utworzeniu paczek i wysyłek oraz zakwalifikowaniu właściwych wysyłek dla zleceń wyświetli się okno z parametrami i działaniem, jak opisano w rozdziale ‘’Zlecenia z listy paczek’’.
Po pomyślnym utworzeniu zlecenia w Comarch Shipping na wysyłce w XL są ustawiane dane jak opisano w rozdziale ‘’Dane o zleceniu na wysyłce’’.
Osoba kontaktowa i dane kontaktowe przekazywane na zlecenie
Do dokumentu paczki została dodana możliwość ustawiania osoby kontaktowej oraz opcjonalnie jej danych kontaktowych, o czym więcej w rozdziale Dane adresowe i osoba kontaktowa na dokumencie Paczki.
Dane te są przekazywane na Zlecenia Nadania Przesyłki podczas ich tworzenia z poziomu Systemu (polecenie Zlecenie Nadania Przesyłki (ZNP) z wielu różnych list dokumentów) w następujący sposób:
- Osoba kontaktowa z paczki jest ustawiana jako Osoba kontaktowa Odbiorcy. Jeśli osoby nie ustawiono na paczce, wówczas nie ma zmian w stosunku do dotychczasowego działania i Osoba kontaktowa na zleceniu nie zostanie wypełniona.
- Dane kontaktowe przekazane na zlecenie są pobierane takie, jakie widoczne są na paczce. Czyli zależnie od konfiguracji mogą się tam znaleźć dane z adresu lub dane z osoby kontaktowej.
Rejestracja zleceń u kuriera z poziomu Comarch ERP XL
Na dole okna z parametrami do tworzenia ZNP możliwe jest wskazanie, aby poza utworzeniem zlecenia została wykonana dodatkowa operacja w Comarch Shipping: Zarejestruj przesyłkę u kuriera. Taka operacja powoduje nadanie numeru listu przewozowego u wybranego kuriera, zmianę stanu zlecenia oraz przesłanie zwrotnie tych informacji do Comarch Shipping.
Aby rejestracja u kuriera z poziomu Comarch ERP XL przebiegła poprawnie konieczne jest wypełnienie na zleceniu wszystkich wymaganych pól oraz wskazanie daty nadania pozwalającej na rejestrację.
W przypadku nie spełnienia ww. warunków zlecenie zostanie zapisane w Comarch Shipping, ale rejestracja nie powiedzie się. W logu pojawią się informacje o błędach.
Rejestracja zlecenia w serwisie kuriera z poziomu Comarch ERP XL jest możliwa tylko przy tworzeniu zlecenia w Comarch Shiiping. Nie została ona udostępniona jako osobna operacja. Jeśli więc z Comarch ERP XL zostanie tylko utworzone zlecenie, to pozostałe operacje dostępne dla zleceń w Comarch Shipping, czyli Rejestracja u kuriera, Zamawianie kuriera i Anulowanie w pierwszej wersji integracji są dostępne jedynie z poziomu samej aplikacji
Obsługa wielu paczek na jednym zleceniu
Od wersji 2023.2 Comarch ERP XL operacja Zlecenie Nadania Przesyłki (ZNP) wykonywana dla wysyłki z wieloma paczkami pozwala w Comarch Shipping utworzyć nowe zlecenie. Jedynie w przypadku, gdy dany kurier obsługuje tylko zlecenia jednopaczkowe, to przy próbie tworzenia takiego zlecenia dostajemy z API Comarch Shipping informację o błędzie i zlecenie nie zostanie utworzone. Wówczas konieczne jest anulowanie takiej wysyłki w Comarch ERP XL i utworzenie nowej z jedną paczką.
Zmianie uległo ustawianie rodzaju paczki w oknie generowania ZNP. Dla wysyłki, która ma powiązanych wiele paczek rodzaj nie jest ustawiany nigdy i należy go wybrać w parametrach samodzielnie. Jeśli nie zostanie wybrany tutaj, to rodzaj jest pobierany z każdej paczki powiązanej do wysyłki. Jedynie dla wysyłek z jedną paczką sprawdzane jest nadal ustawienie rodzaju na paczce i taka informacja jest pobierana na okno generowania.
Przy tworzeniu zlecenia każda paczka z Comarch ERP XL może mieć ustawione różne rozmiary i wagę, i to jest przesyłane na paczki przypisane na zleceniu. Natomiast w przypadku ustawionych różnych rodzajów paczek, jeśli w oknie generowania nie zostanie ustawiony żaden rodzaj, to na zlecenie zostaną przekazane te różne rodzaje. Na chwilę obecną takie zlecenie nie zostanie utworzone (pojawi się komunikat błędu z API), gdyż Comarch Shipping nie pozwala na takie ustawienie.
Numer paczki z Systemu jest teraz przekazywany zawsze do pola Zawartość na przesyłkach w Shipping tak, aby Klienci jednoznacznie mogli zidentyfikować paczkę z daną przesyłką. Do rozważenia jest więc teraz kwestia, czy dla pola Zawartość nadal sensownym jest przekazywanie numeru wysyłki. Jeśli nie, to należałoby w ustawieniach szablonów kurierów w Comarch Shipping odznaczyć parametr Zawartość przesyłki: Numer dokumentu źródłowego.

Po zarejestrowaniu zlecenia u kuriera do Comarch ERP XL można pobrać zwrotnie informację o numerze przesyłki oraz linku do jej śledzenia, jeśli dany kurier obsługuje tworzenie linków. Dane te są teraz prezentowanie z dokładnością do paczki. To samo zresztą dotyczy statusu przesyłki, który w Shipping jest zapisywany odrębnie dla pojedynczej paczki.
W tym celu na dole formatki paczki zostały dodane nowe pola: Numer listu oraz obok niego Status przesyłki i przycisk Link przesyłki do wywołania w przeglądarce informacji o realizacji przesyłki o podanym linku. Przycisk będzie aktywny tylko wtedy, gdy dany kurier generuje linki, bo tylko wtedy możliwe jest pobranie ich z Comarch Shipping.

Na samej wysyłce natomiast, nadal prezentowany jest numer listu i zapisywany link oraz dodatkowo Status przesyłki. Dane te są pobierane z pierwszej paczki powiązanej do zlecenia. Nie zawsze więc będą to dokładnie te same informacje, co na paczce. Można to zobaczyć na rysunku powyżej i poniżej, gdzie PC-6/23 jest powiązana z WYS-5/23, ale nie jest to pierwsza paczka dla tego zlecenia, więc numery na obu dokumentach są różne. Statusy natomiast są takie same, gdyż z reguły statusy poszczególnych paczek są zgodne. W przypadku niezgodnych statusów paczek, na zleceniu (a więc i na wysyłce) widoczny będzie status: Niejednoznaczny.

Uzupełnianie brakujących wartości w nowych polach na paczkach (numer listu, link przesyłki i status) i wysyłkach (status) w bazach po konwersji nie będzie wykonywane automatycznie. Aby zostały one wypełnione należy je pobrać z bazy Shipping wykonując dla wskazanych wysyłek operację Aktualizuj dane ZNP.
Z wysyłki w Comarch ERP XL może zostać usunięte powiązanie ze zleceniem z Comarch Shipping, jeśli wysyłka zostanie anulowana lub powiązane zlecenie zostało usunięte w Shipping i wykonano aktualizację danych ZNP. Na skutek usunięcia powiązania czyszczone są w Comarch ERP XL dane dotyczące Id zlecenia i jego statusu. Od nowej wersji czyszczone są w takim przypadku również nowe pola na wysyłce i powiązanych z nią paczkach: numer przesyłki, link do śledzenia oraz status przesyłki.
Aktualizacja danych na wysyłce z powiązanego zlecenia
Po utworzeniu zlecenia w Comarch Shipping operator systemu Comarch ERP XL ma możliwość aktualizowania danych ze zlecenia na wysyłkę. Jest to operacja wykonywana na żądanie i służy do tego polecenie w menu kontekstowym na liście wysyłek: Aktualizuj dane ZNP.
Po jego wybraniu dla zaznaczonych rekordów następuje aktualizacja następujących pól:
- Numer ZNP,
- Stan przesyłki,
- Numer listu przewozowego
- Kwota ubezpieczenia.
Jeśli w Comarch Shipping zostanie anulowane zlecenie, wówczas dane na nim nie są czyszczone, a jedynie zmienia się jego stan na Anulowany. W związku z tym na wysyłce dane te również pozostaną, czyli będzie ona nadal związana z tym zleceniem, a aktualizacja danych na wysyłce jedynie zmieni pole ze stanem przesyłki.
Dopiero w przypadku, gdy w Comarch Shipping zostanie usunięte zlecenie, wówczas dane o nim zostaną usunięte na wysyłce w trakcie wykonywania operacji aktualizacji danych.
Automatyczne pobieranie z Comarch Shipping informacji o realizacji przesyłek (usługa synchronizacji)
W celu zautomatyzowania pobierania z Comarch Shipping informacji o realizacji zleceń i zapisywania ich na paczkach i wysyłkach w wersji 2023.2 Comarch ERP XL umożliwione zostało dodanie usługi synchronizacji.
Aby zdefiniować usługę należy w oknie konfiguracji, na zakładce [Aplikacje]/[Kurierzy] zaznaczyć parametr 'Automatycznie aktualizuj na wysyłkach informacje o realizacji zleceń', a następnie wybrać przycisk 'Konfiguracja usługi synchronizacji'.

W uruchomionym oknie Ustawienia usługi postępować jak dla innych usług synchronizacji oddziałowych definiowanych w module Administrator oddziałów, np. synchronizacja dla e-Sklep. Szczegółowy opis definiowania usługi dostępny jest pod linkiem: https://pomoc.comarch.pl/xl/index.php/dokumentacja/synchronizacja-comarch-erp-xl-i-comarch-e-sklep/#3.
Po odznaczeniu w konfiguracji parametru Automatycznie aktualizuj na wysyłkach informację o aktualizacji zleceń następuje próba usunięcia usługi, o czym użytkownik jest powiadamiany stosownym komunikatem.
Należy pamiętać o tym, że usługa jest możliwa do dodania/usunięcia tylko wtedy, gdy moduł jest uruchomiony w trybie administratora systemu.
W oknie definiowania usługi jako Operator należy podać operatora z systemu Comarch ERP XL, który będzie mógł wykonywać aktualizacje na paczkach, wysyłkach oraz na powiązanych zamówieniach sprzedaży. Oznacza to, że operator ten musi posiadać niezbędne licencje do przeprowadzenia tych operacji, czyli licencje dla modułów: Administrator oraz Sprzedaż i Zamówienia. Dodatkowo musi to być operator ‘zalogowany’ w Comarch Shipping, aby możliwe było pobranie stamtąd informacji o realizacji zleceń.
Po zapisaniu okna z ustawieniami usługi zostanie ona utworzona, co można sprawdzić w Menadżerze Zadań, na zakładce [Usługi]. Usługa będzie mieć opis Usługa odpowiedzialna za synchronizację systemu Comarch ERP XL z Comarch Shipping i jeśli została poprawnie skonfigurowana, to powinna być od razu uruchomiona.
Usługa zgodnie z ustawionym Okresem testów sprawdza po stronie Comarch Shipping, dla jakich zleceń zostały zaktualizowane informacje o ich realizacji, czyli:
- czy pojawił się numer i link przesyłki na skutek rejestracji zlecenia u kuriera,
- czy zmienił się status przesyłki lub stan zlecenia. (Status przesyłki może być aktualizowany w Comarch Shipping ręcznie lub automatycznie, jeśli włączony został taki tryb w ustawieniach ogólnych aplikacji).
W przypadku takich zmian, jeśli dotyczą one zleceń powiązanych z wysyłką w Comarch ERP XL, to zaktualizowane dane zostaną zapisane na paczkach, wysyłkach oraz ewentualnie na powiązanych zamówieniach sprzedaży.
Dodatkowo, jeśli z poziomu Comarch Shipping zostanie usunięte zlecenie powiązane z wysyłką, to za pomocą usługi z takiej wysyłki w Comarch ERP XL zostanie usunięte powiązanie ze zleceniem.
Działanie usługi można na bieżąco kontrolować w logach z synchronizacji, które dostępne są jako dodatkowa opcja dla przycisku Comarch Shipping dostępnym na Ribbonie.

W związku z dodaniem usługi synchronizacji można teraz przyjąć następujący model współpracy z Comarch Shipping: zlecenia są tworzone z poziomu Systemu Comarch ERP XL, a następnie cała dalsza integracja jest wykonywana przez usługę, która przenosi do Comarch ERP XL informacje o realizacji tych zleceń. Więc operacja Aktualizuj dane ZNP dostępna na liście wysyłek może być wykorzystywana tylko w wyjątkowych sytuacjach, np. gdy w Comarch Shipping zmieniono ustawienia dla zlecenia czy przesyłki (kwota ubezpieczenia, rodzaj przesyłki czy jej waga/wymiary). Jeśli takie scenariusze nie występują, to używanie tej operacji nie jest konieczne.
Informacje o przesyłce na zamówieniu sprzedaży
W wersji 2023.2 Comarch ERP XL na zakładce [Realizacja] dokumentu ZS dodane zostały nowe pola, z informacją o przesyłce realizującej zamówienie: Numer przesyłki i Link przesyłki. Pola można wypełnić ręcznie na zamówieniach sprzedaży w każdym stanie, poza stanem: Anulowane.
Jeśli dokument ZS jest powiązany z paczką i na paczce tej znajdują się dane o przesyłce (będą to informacje pobrane z Comarch Shipping), wówczas nowe pola są automatycznie uzupełniane tymi danymi z paczki. Przy takiej operacji czyszczone są w tych polach wartości wypełnione wcześniej przez użytkowników, a dodatkowo po zapisaniu danych z paczki kontrolki te stają się niedostępne do edycji.

-
Pokaż powiązanie do paczki – wyświetla okno paczki powiązanej z zamówieniem, z której pochodzą te dane. Jeśli przycisk nie jest aktywny, to znaczy, że do zamówienia nie została powiązana paczka, w której znajdują się takie dane.
-
Link przesyłki – pozwala sprawdzić w przeglądarce historię przesyłki o podanym linku. Przycisk jest aktywny, tylko gdy pole jest wypełnione.
Powyższe pola są wypełniane automatycznie w przypadku pobierania z Comarch Shipping na paczkę danych o numerze przesyłki i linku, które są nadawane w Shipping w momencie rejestracji zlecenia u kuriera. Czyli mogą tu wystąpić następujące scenariusze:
- Zlecenie zostało utworzone w Comarch ERP XL bez rejestracji u kuriera, a dopiero potem następuje rejestracja z poziomu Shipping. Aby dane o numerze i linku zostały zapisane w Comarch ERP XL należy wykonać operację Aktualizuj dane ZNP dla wysyłki powiązanej z tym zleceniem.
- Zlecenie zostało utworzone w Comarch ERP XL z rejestracją u kuriera, co powoduje od razu pobranie danych o numerze i linku do Comarch ERP XL.
W każdym przypadku pobieranie danych z Shipping powoduje zapisanie ich zarówno na paczkach, jak i powiązanych zamówieniach, co jest widoczne w logu z operacji:

Obsługa rodzajów przesyłek związanych z rodzajem usługi
W integracji z Comarch Shipping w wersji 2024.0 Comarch ERP XL obsłużone zostały rodzaje przesyłek dla kuriera Poczta Polska, które ze względu na swoją specyfikę nie były dotychczas dostępne. Dla tego kuriera rodzaj przesyłki jest ściśle powiązany z rodzajem usługi, czyli dla różnych usług mogą występować te same rodzaje przesyłek.

Dlatego też dla Poczty Polskiej w nazwie rodzaju przesyłki została ujęta również nazwa rodzaju usługi, tak aby wyraźnie wskazać użytkownikom, który rodzaj przesyłki wybierają. Podobna specyfika występuje również dla kurierów Geodis, Allegro Inpost Kurier i Ambro Express, więc dla nich wprowadzone zostało analogiczne rozwiązanie.
Aby móc posługiwać się nowymi rodzajami przesyłek należy wykonać import tych danych z poziomu okna konfiguracji. Wówczas dla Poczty Polskiej po raz pierwszy zostaną pobrane te dane, a dla pozostałych kurierów zostaną zaktualizowane dotychczasowe.

Oznacza to, że po pobraniu tych danych dla kurierów Geodis, Allegro Inpost Kurier i Ambro Express w dotychczasowych rekordach pojawią się również nazwy z rodzajem usługi i tak będzie to prezentowane na utworzonych wcześniej paczkach. Aby mieć na nich poprawne dane wystarczy je zmienić dla paczek w buforze, które nie zostały jeszcze wysłane do Comarch Shipping lub wykonać operacje Aktualizuj dane ZNP dla wysyłek, które zostały już przesłane do Comarch Shipping.
Z punktu widzenia działania w Systemie przy tworzeniu paczek nie będzie żadnych zmian. Nadal na paczce lub w oknie generowania ZNP dokonuje się wyboru rodzaju przesyłki z listy rozwijanej, na której teraz prezentowane są nazwy rodzajów zawierające również nazwę usługi, o ile taką pobrano z Comarch Shipping. A ponieważ przy wiązaniu paczek do wysyłki nie ma kontroli zgodności rodzajów, to powiązanie ich z nazwą usługi nie wpłynie na dotychczasowe działanie.
Przesyłając zlecenie do Comarch Shipping dla wyżej wymienionych kurierów przekazywane są teraz łącznie dwie informacje: rodzaj usługi i rodzaj paczki. Dzięki temu na zleceniu ustawiają się prawidłowe dane.
Dodatkowo, jeśli rodzaj usługi i paczki są zgodne z tymi wybranymi na szablonie, to wszystkie inne parametry i ustawienia zostaną pobrane z takiego szablonu. Jeśli nie będą zgodne, to zostaną pobrane z domyślnych/ogólnych ustawień dla takiej konfiguracji rodzajów.

Sposób weryfikacji ustawionego rodzaju przesyłki zawierającego w sobie nazwę z rodzajem usługi przedstawiono na przykładach poniżej.
W Comarch ERP XL jest wysyłka dla kuriera Geodis, z dwiema paczkami. W każdym z poniższych scenariuszy tworzymy ZNP z tej wysyłki bez wskazywania w oknie generowania rodzaju przesyłki, czyli zostaje pobrana z paczek. Scenariusz 1 PC1 z rodzajem przesyłki Drobnica: 1/2 palety, PC2 z rodzajem przesyłki Drobnica: 1/2 palety. W Shipping powstanie zlecenie na obie te paczki. Scenariusz 2 PC1 z rodzajem przesyłki Drobnica: 1/2 palety, PC2 z rodzajem przesyłki Drobnica: Dłużyca. W Shipping nie powstanie zlecenie, a w logu pojawi się błąd mówiący o różnych rodzajach paczek: "Operacja nie powiodła się. Możliwe jest tworzenie zleceń z tylko jednym rodzajem paczki.". Scenariusz 3 PC1 z rodzajem przesyłki Drobnica: 1/2 palety, PC2 z rodzajem przesyłki Częściówka: Dłużyca. W Shipping nie powstanie zlecenie, a w logu pojawi się błąd jak wyżej. Scenariusz 4 PC1 z rodzajem przesyłki Drobnica: 1/2 palety, PC2 z rodzajem przesyłki Paczka: Paczka. W Shipping nie powstanie zlecenie, a w logu pojawi się błąd jak wyżej. Scenariusz 5 PC1 z rodzajem przesyłki Drobnica: 1/2 palety, PC2 z rodzajem przesyłki Częściówka: 1/2 palety. W Shipping powstanie zlecenie na obie te paczki i dla tego zlecenia zostanie ustawiony wspólny rodzaj usługi, chociaż w Comarch ERP XL było zadysponowane inaczej (!).
Pobieranie wydruków etykiet dla zleceń z Comarch Shipping
Dla zlecenia zarejestrowanego w Comarch Shipping serwis kuriera tworzy etykietę nadania zgodnie ze swoją specyfikacją. Etykieta ta jest widoczna na zleceniu, tak aby przed przekazaniem przesyłki kurierowi móc ją wydrukować i dołączyć do paczki.
Jeśli w Comarch ERP XL na paczkach i wysyłkach są wypełnione wszystkie niezbędne dla zlecenia dane, to pozwalają one założyć zlecenie w Comarch Shipping i jednocześnie je zarejestrować. Do bazy jest pobierany wówczas zwrotnie komplet informacji dotyczących przesyłki i zapisywany na wysyłce. Informacje te mogą być również potem aktualizowane na bieżąco z poziomu Systemu. W wersji 2024.1 Comarch ERP XL została wprowadzona możliwość wydrukowania etykiet nadania tak, aby ograniczyć Użytkownikowi konieczność wchodzenia do aplikacji Comarch Shipping.
Operację pobrania etykiet można wykonać na dwa sposoby:- Od razu przy tworzeniu i rejestracji zlecenia, jeśli zostanie zaznaczony parametr ‘Pobierz wydruki etykiet w formacie’

- Na żądanie, jeśli przesyłka została zarejestrowana w serwisie kuriera, po wybraniu na liście wysyłek nowego polecenia w menu kontekstowym ‘Pobierz wydruki etykiet w formacie’

Dla obu poleceń konieczne jest wybranie formatu wydruku, czyli wybrania jednej z dostępnych opcji: PDF, PDF (A4).

Po wybraniu każdego z poleceń do pliku PDF pobrane zostaną żądane etykiety i plik ten zostanie otwarty tak, aby możliwe było jego wydrukowanie zgodnie ze standardem. Sam plik będzie domyślnie zapisywany w katalogu plików tymczasowych, a wszystkie informacje zawarte są w logach z operacji, jak pokazano poniżej.

Jak widać na powyższym rysunku pobranie etykiety nie zawsze będzie możliwe. Sytuacja taka może zaistnieć, jeżeli w Comarch Shipping nie ma zlecenia o żądanym numerze lub zlecenie istnieje, ale nie można dla niego pobrać etykiety, np. jeśli zlecenie nie zostało jeszcze zarejestrowane u kuriera lub nie jest dostępna etykieta w wybranym formacie.
Zlecenia uruchamiane w przeglądarce
W przypadku, gdy do tworzonego z Comarch ERP XL zlecenia nie zostanie podana kluczowa dana blokująca zapis tego zlecenia, wówczas to zlecenie zostanie w Comarch ERP XL podniesione do edycji, celem uzupełnienia brakujących pól. Informacja o brakach znajduje się w standardowym komunikacie na zleceniu w Comarch Shipping.
Zlecenie jest otwierane do edycji w przeglądarce MS Edge uruchamianej w oknie Systemu.

Po uzupełnieniu brakujących pól i zapisaniu zlecenia następuje automatyczna aktualizacja danych z ZNP, dzięki czemu uzupełnione pola zostają od razu zapisane na paczce/wysyłce w Comarch ERP XL.
W obecnej wersji Comarch Shipping błąd taki będzie się pojawiał, jeśli dla zleceń wymagane będzie podanie punktu odbioru i nie zostanie ono wysłane z Comarch ERP XL. Dzięki temu będzie możliwe wybranie tego punktu z mapy udostępnianej w Comarch Shipping, bez konieczności ręcznego uzupełniania go w Comarch ERP XL.
W przyszłości, jeśli w aplikacji pojawią się nowi kurierzy, dla których wymagane będą inne kluczowe pola, ten schemat działania zostanie zachowany. Czyli wtedy takie zlecenia również będą edytowane w przeglądarce, gdzie trzeba będzie uzupełnić braki. Różnica będzie taka, że te braki nie zostaną zwrotnie zapisane na paczkach/wysyłkach, dopóki nie wprowadzona zostanie ich obsługa do mechanizmów integracji w Comarch ERP XL.
Pozwoli to jednak tworzyć zlecenia dla kurierów nowo wprowadzanych do Comarch Shipping, niezależnie od tego, czy wymagane pola znajdują się na dokumentach w Comarch ERP XL.
Od wersji XL 2022.0 również podgląd zlecenia jest wyświetlany w przeglądarce MS Edge uruchamianej w oknie Systemu, zamiast w zewnętrznej domyślnej przeglądarce użytkownika. Każdorazowo po zamknięciu zlecenia w tym oknie pojawia się pełna zawartość konta użytkownika w Comarch Shipping ze wszystkimi dostępnymi opcjami. Z poziomu tego okna możliwe jest więc wykonywanie wszystkich operacji dostępnych dla użytkownika w aplikacji.
Należy tutaj zwrócić uwagę, że zlecenie uruchamiane w trybie tworzenia (z błędem kluczowym) lub w trybie podglądu, dla użytkowników przypisanych do wielu baz Comarch Shipping, wymaga od nich wcześniej wyboru kontekstu bazy. Jeśli wybrana zostanie nieprawidłowa, wówczas zlecenie nie zostanie otwarte, a pojawi się komunikat błędu.

Należy więc pamiętać o prawidłowym wyborze bazy Comarch Shipping, szczególnie w przypadku zleceń edytowanych w procesie ich generowania, gdyż to pozwoli uzupełnić dla nich od razu brakujące pola.
Tworzenie zleceń w trybie testowym
Współpraca z nową wersją aplikacji Comarch Shipping, która pozwala na tworzenie zleceń w trybie testowym nadal opiera się na tych samych, co dotychczas zasadach:
- Przy uruchomionym w Comarch Shipping trybie testowym dla danego kuriera normalnie tworzy się ZNP z poziomu Comarch ERP XL – informacja o tym, że jest ono utworzone w trybie testowym jest widoczna jedynie w Comarch Shipping.
- Przy wyłączeniu w Comarch Shipping trybu testowego dla danego kuriera usuwane są z tej aplikacji zlecenia utworzone w tym trybie. Aby taka zmiana była widoczna w Comarch ERP XL, to należy na istniejących wysyłkach wykonać operację Aktualizuj dane ZNP. Na wysyłkach zostaną wyczyszczone informacje o numerze ZNP, stanie przesyłki oraz numerze listu przewozowego.
XL145 - Współpraca z Comarch WMS-rezerwacje on line
Rezerwacje magazynowe WMS
W obecnym mechanizmie współpracy pomiędzy Comarch ERP XL a Comarch WMS udostępniono możliwość rezerwowania zasobów pod realizację wydań magazynowych w obu systemach. Dzięki temu nie będzie sytuacji, w których ten sam zasób został uwzględniony na dokumencie magazynowym w WMS, a jednocześnie został rozchodowany na dokumencie handlowym w XL, bowiem rezerwowanie będzie odbywało się online, niezależnie od usługi synchronizacji. Do zarezerwowania pobrać można ilość dostępną wyliczoną wg stanów handlowych XL lub magazynowych WMS, o czym szczegółowo w dalszych punktach. Weryfikacja stanów magazynowych oraz zakładanie rezerwacji pod transakcje WMS będą możliwe do włączenia jako jedno ustawienie dla magazynu, o ile został na nim wybrany Sposób pracy z WMS: Ilościowo oraz zasobowo.Uruchamianie rezerwowania zasobów
Na karcie magazynu dodano parametr Rezerwuj zasoby w oparciu o, z następującymi opcjami:- Stany handlowe, czyli dostępne ilości faktycznie przyjęte na dokumentach handlowych w XL oraz dokumentach magazynowych WMS. Tutaj zawsze będzie gwarantowana ilość handlowa pod wydania magazynowe, zgodnie z kolejnością ich tworzenia.
- Stany magazynowe WMS, gdzie brane pod uwagę są ilości dostępne pochodzące tylko z dokumentów magazynowych WMS. W tym przypadku może się zdarzyć, że nie uda się wystawić dokumentu handlowego do wydania magazynowego, do czasu przyjęcia danego zasobu dokumentem handlowym.

- Przy konwersji dla każdego istniejącego magazynu WMS ustawienie będzie identyczne, jak było w oknie konfiguracji przed konwersją.
- Przy dodawaniu nowego magazynu należy pamiętać o odpowiednim ustawieniu parametru w nowej lokalizacji.
- Przy włączaniu rezerwowania zasobów parametr będzie automatycznie zaznaczany bez możliwości zmiany. Działanie tej kontroli będzie jednak różne, zależnie od wybranej opcji rezerwowania.
Ustalanie dostępnych ilości
Działanie parametru Kontrola ilościowa stanów na (W)ZWM w zależności od ustawienia rezerwowania zasobów.- Jeśli rezerwowanie zasobów nie będzie włączone, wówczas kontrola możliwej do wprowadzenia na (W)ZWM ilości jest wyliczana jako dostępny stan handlowy (czyli z uwzględnieniem ważnych rezerwacji zasobowych) pomniejszony o wystawione już inne (W)ZWM (w tym także ten bieżący), które nie zostały jeszcze zafakturowane. Takie kontrolowanie jest na poziomie globalnej ilości, tzn. nie jest tu brana pod uwagę konkretna partia. Działanie takie było obecnie i zostało zachowane.
- W przypadku zaznaczenia parametru Rezerwuj zasoby w oparciu o stany handlowe dodając nowy dokument (W)ZWM system w pierwszej kolejności sprawdza, czy taki towar jest dostępny w stanach handlowych XL oraz w stanach magazynowych WMS. Weryfikacja odbywa się na podstawie ustalonej ilości oraz poszczególnych parametrów partii możliwych do wpisania na elemencie. Poszukiwanie wolnych zasobów odbywa się zgodnie z ustawieniem pobierania zasobów na karcie towaru (FIFO, LIFO, Wg daty ważności oraz Wybór działający jak FIFO).
- Jeśli będzie zaznaczony parametr Rezerwuj zasoby w oparciu o stany magazynowe WMS wówczas dodając nowy dokument (W)ZWM system sprawdza, czy taki towar jest dostępny w stanach magazynowych w WMS. Tutaj również weryfikacja odbywa się na podstawie ustalonej ilości oraz poszczególnych parametrów partii możliwych do wpisania na elemencie. Poszukiwanie wolnych zasobów odbywa się zgodnie z ustawieniem pobierania zasobów na karcie towaru (FIFO, LIFO, Wg daty ważności oraz Wybór działający jak FIFO).
- magazynowa WMS na 100 szt. z zasobem z FZ1,
- ‘w przyszłość’ na 55 szt. z partią zapisaną na (W)AWD2,
- magazynowa WMS na 60 szt. z zasobem z FZ2.
- magazynowa WMS na 100 szt. z zasobem z FZ1,
- magazynowa WMS na 60 szt. z zasobem z FZ2.
- magazynowa WMS na 100 szt. z zasobem z FZ1 (partia 1),
- ‘w przyszłość’ na 55 szt. z partią 2 zapisaną na (W)AWD2,
- magazynowa WMS na 60 szt. z zasobem z FZ2 (partia 3).
- magazynowa WMS na 100 szt. z zasobem z FZ1 (partia 1),
- ‘w przyszłość’ na 55 szt. z partią 2 zapisaną na (W)AWD2,
- magazynowa WMS na 5 szt. z zasobem z FZ2 (partia 3).
Automatyczne tworzenie rezerwacji magazynowych WMS
Przy włączonym na karcie magazynu rezerwowaniu zasobów do dokumentu (W)ZWM tworzone są rezerwacje magazynowe WMS, które charakteryzują się tym, że zawsze obowiązują: są ustawione jako aktywne, blokujące towar, bez określonych dat aktywacji i obowiązywania. Dodatkowo mają one zawsze przypisany zasób. To wszystko gwarantuje, że istnieje możliwość ich zrealizowania w dowolnym momencie za pomocą dokumentu handlowego. Przy dodawaniu dokumentu (W)ZWM z ręki po wybraniu towaru na elemencie System podpowiada pierwszą wolną partię dla tego towaru, więc jeśli partie są różnicowane po cesze, to będzie podpowiadał cechę z tej partii. Zmiana cechy będzie dozwolona tylko na taką, dla której zostanie odnaleziony jakiś wolny zasób. W przypadku gdy zasobu nie będzie, wówczas cecha zostanie automatycznie przestawiona na tą z pierwszego zasobu (tak to działa również dla wybranej cechy <nieokreślona>). W przypadku, gdy dokument (W)ZWM jest wystawiany do dokumentu handlowego, wówczas rezerwacje magazynowe WMS są również tworzone tak, aby w Comarch WMS zostały zarezerwowane odpowiednie zasoby. W samym XL nie blokują one jednak towarów, gdyż taka blokada jest już zapewniona przez źródłowy dokument handlowy. Po przesynchronizowaniu takiego dokumentu (W)ZWM przypisane do niego rezerwacje magazynowe WMS zostają usunięte. W przypadku, gdy dokument (W)ZWM jest wystawiany do zamówienia, również tworzone są rezerwacje magazynowe WMS tak, aby w Comarch WMS zostały zarezerwowane odpowiednie zasoby. Tworzenie tych rezerwacji magazynowych odbywa się wg następujących zasad:- Jeśli na zamówieniu jest aktywna rezerwacja zasobowa, to zasób z tej rezerwacji jest ustalany na rezerwacji magazynowej WMS.
- W przeciwnym razie (rezerwacja zasobowa jest nieaktywna lub istnieje rezerwacja niezasobowa), wówczas dla rezerwacji magazynowej wyszukiwany jest pierwszy dostępny zasób; dostępny handlowo lub magazynowo w zależności od wybranej opcji rezerwowania zasobów.
Automatyczne tworzenie i przekształcanie rezerwacji WMS ‘w przyszłość’
W przypadku włączonego rezerwowania zasobów w oparciu o stany magazynowe WMS zasada wyszukiwania wolnych zasobów jest tutaj taka sama, jak opisano w rozdziale Ustalanie dostępnych ilości. Różni się tylko tym, że do wolnych zasobów wliczane są zasoby magazynowe, niezależnie od tego, czy mają przypisane zasoby handlowe czy nie. W takim przypadku może się więc okazać, że zabrakło ilości handlowej w XL do utworzenia rezerwacji magazynowej WMS i wówczas tworzone są tzw. rezerwacje ‘w przyszłość’. Jako że dla ilości nie ma jeszcze stanu handlowego w XL, to nie jesteśmy w stanie określić dla nich konkretnej dostawy. W związku z tym rezerwacje te będą powiązane tylko z identyfikatorem konkretnej partii. Będzie to zatem dotyczyło nowych (W)ZWM, które:- Zostały dodane z ręki
- Zostały wygenerowane z zamówień lub innych dokumentów z rezerwacjami, o ile rezerwacje te nie były zasobowe.
- magazynowa WMS na 100 szt. z zasobem z FZ1,
- ‘w przyszłość’ na 55 szt. z partią zapisaną na (W)AWD2,
- magazynowa WMS na 60 szt. z zasobem z FZ2.
Ustawienie parametru | Działanie | |
Przydzielaj tworzone zasoby do rezerwacji | W pierwszej kolejności przydzielaj zasoby do rezerwacji magazynowych… | |
Zaznaczony | Zaznaczony | W pierwszej kolejności przekształcane są rezerwacje ‘w przyszłość’, a w drugiej rezerwacje niezasobowe pochodzące z zamówień oraz dokumentów z modułów Produkcja czy Serwis (jak dotychczas). Ilość możliwa do wykorzystania dla rezerwacji niezasobowych będzie pomniejszona o te wykorzystane wcześniej dla rezerwacji ‘w przyszłość’. |
Zaznaczony | Nie zaznaczony | W pierwszej kolejności przekształcane są rezerwacje niezasobowe pochodzące z zamówień oraz dokumentów z modułów Produkcja czy Serwis (jak dotychczas), a w drugiej rezerwacje ‘w przyszłość’. Ilość możliwa do wykorzystania dla rezerwacji ‘w przyszłość’ będzie pomniejszona o te wykorzystane wcześniej dla rezerwacji niezasobowych. |
Nie zaznaczony | Zaznaczony | Przekształcane są tylko rezerwacje ‘w przyszłość’. Nie będą przekształcane rezerwacje niezasobowe pochodzące z zamówień oraz dokumentów z modułów Produkcja czy Serwis (jak dotychczas) |
Nie zaznaczony | Nie zaznaczony |
Kontrola wartości cech przy rezerwowaniu na (W)ZWM
Przy tworzeniu rezerwacji magazynowych WMS i rezerwacji ‘w przyszłość’ warto zwrócić jeszcze uwagę na różnice w zakładaniu rezerwacji w zależności od ustawienia na towarze:- Parametru Oznacz partię towaru – Identyfikatorem dostawy, co częściowo zostało już opisane w rozdziale Ustalanie dostępnych ilości.
- Oraz Pobieranie zasobów wg cech, z opcjami: Preferuj… lub Wymagaj.
Rezerwowanie w oparciu o stany handlowe
Dla rezerwowania w oparciu o stany handlowe nie ma znaczenia parametr Oznacz partię towaru – Identyfikatorem dostawy, gdyż rezerwacje zawsze będą zakładane tylko na dostępne stany handlowe zgodnie z ustawieniem pobierania zasobów wg cech:- Wymagaj – jeśli zostanie znaleziona dostawa z cechą podaną na rezerwacji z zamówienia, to zostanie dodany element i założona rezerwacja na taką dostawę, a jeśli nie będzie takiej dostawy, to element się nie doda. Tutaj wyszukiwanie pierwszej dostawy również jest robione zgodnie z ustawieniem pobierania zasobów dla danego towaru (FIFO/LIFO)
- Preferuj… (obie opcje) – jeśli zostanie znaleziona dostawa z cechą podaną na rezerwacji z zamówienia, to zostanie dodany element i założona rezerwacja na taką dostawę, a jeśli nie będzie takiej dostawy, to element i rezerwacja zostanie założona na inną dostawę. Obie dostawy są wyszukiwane zgodnie z ustawieniem pobierania zasobów dla danego towaru (FIFO/LIFO).
Rezerwowanie dla stanów magazynowych WMS
Dla rezerwowania w oparciu o stany magazynowe parametr Oznacz partię towaru – Identyfikatorem dostawy, ma znaczenie, gdyż rezerwacje będą zakładane zarówno na dostępne stany handlowe, jaki i na stany magazynowe: Wymagaj – zasób z cechą podaną na rezerwacji z zamówienia jest szukany zgodnie z ustawieniem pobierania zasobów dla danego towaru (FIFO/LIFO) zarówno w stanach handlowych, jak magazynowych WMS. Element jest dodawany i zostaje założona rezerwacja na pierwszy, który zostanie znaleziony wg powyższego algorytmu.- Dla nie zaznaczonego parametru Oznacz partię towaru – Identyfikatorem dostawy istnieje tylko jeden zasób z tą samą cechą, więc jeśli posiada on stany handlowe to zostaną one zarezerwowane w pierwszej kolejności. Dopiero ich brak spowoduje zarezerwowanie zasobu, który jest tylko na magazynie WMS, czyli powstanie rezerwacja ‘w przyszłość’.
- Dla zaznaczonego parametru Oznacz partię towaru – Identyfikatorem dostawy może istnieć wiele zasobów z tą samą cechą, może się więc zdarzyć, że pomimo stanów handlowych dla danego towaru zarezerwowany zostanie zasób, który jest tylko na magazynie WMS, czyli powstanie rezerwacja ‘w przyszłość’ zamiast zwykłej rezerwacji magazynowej WMS.
Usuwanie i przywracanie rezerwacji magazynowych WMS
Podczas anulowania dokumentów (W)ZWM usuwane są wszystkie jego elementy, więc jednocześnie usunięte zostają powiązane z nimi rezerwacje. Rezerwacje magazynowe WMS przestają pełnić swoją funkcję blokowania zasobów w momencie, gdy owe zasoby zostają rozchodowane na dokumencie handlowym. Dlatego też przy tworzeniu dokumentów handlowych do (W)ZWM z rezerwacjami magazynowymi WMS działają następujące mechanizmy:- Po dodaniu dokumentu handlowego rezerwacje magazynowe WMS zostają zrealizowane,
- Po zatwierdzeniu dokumentu handlowego rezerwacje magazynowe WMS zostają usunięte z Systemu.
- Po usunięciu dokumentu handlowego na rezerwacjach magazynowych WMS usuwana jest informacja o ilości zrealizowanej,
- Po anulowaniu dokumentu handlowego rezerwacje magazynowe WMS zostają ponownie dodane do Systemu.
- Po spięciu z dokumentem handlowym w buforze rezerwacje magazynowe WMS zostają zrealizowane,
- Po spięciu z zatwierdzonym dokumentem handlowym rezerwacje magazynowe WMS zostają usunięte z Systemu,
- Nie jest możliwe spięcie dokumentu (W)ZWM posiadającego rezerwacje ‘w przyszłość’.
Ręczna obsługa rezerwacji magazynowych
‘Ręczne’ dodawanie i usuwanie rezerwacji magazynowych Na liście dokumentów magazynowych w oknach Pulpit dyspozytora na zakładce [Dokumenty] oraz Dokumenty/Magazynowe na zakładce [Wydania] dodano nowe polecenia w menu kontekstowym:
- Nie mają przypisanych rezerwacji,
- Jest na nich ustawiony magazyn, na którym jest ustawiona opcja rezerwowania zasobów,
- Są niezatwierdzone, czyli nie mają zaznaczonych parametrów Realizuj w WMS ani Zamknięty.
- Nie zostały przesynchronizowane do WMS (sytuacja taka może wystąpić czasowo po zaznaczeniu parametru Realizuj w WMS, a następnie jego odznaczeniu).
- Operacja Rozdziel zasoby pomiędzy rezerwacje wykonywana dla dokumentu przychodu,
- Operacja przepinania zasobów pomiędzy rezerwacjami wołana na elemencie zamówienia/zlecenia,
- Operacja zwalniania zasobów z rezerwacji podczas korygowania dokumentu przychodowego.
Anulowanie/korekta dokumentów przychodowych z kontrolą wydań magazynowych
Podczas anulowania dokumentów handlowych zakładających dostawy, np. FZ jest sprawdzane czy te dostawy nie zostały już rozchodowane na dokumentach handlowych lub magazynowych (dla magazynów innych niż WMS). Dzięki rezerwacjom magazynowym WMS możliwa jest również kontrola stopnia ich wydania na dokumentach (W)ZWM i jeśli takie wydanie już nastąpiło, wówczas następuje blokada anulowania takich dokumentów handlowych. Analogicznie działa to dla anulowania dokumentu (W)AWD z zaznaczonym parametrem ‘Realizuj w WMS’ – jest ono możliwe tylko wtedy, gdy zasoby nie zostały jeszcze wydane na dokumentach magazynowych. W przeciwnym razie anulowanie zostanie zablokowane i pojawi się stosowny komunikat. Podczas wystawiania korekty ilościowej dla dokumentów handlowych zakładających dostawy, ilość możliwa do skorygowania ustalana jest z uwzględnieniem rezerwacji magazynowych WMS z tą dostawą – ilość zarezerwowana musi pozostać na dokumencie korekty. Przy próbie wprowadzenia większej ilości do skorygowania niż jest do dopuszczalne, pojawia się standardowy komunikat o braku ilości.XL147 - Współpraca z Comarch WMS - zmiany
Dokumenty magazynowe WMS w powiązaniu z dokumentami kaucji
Dla sprawnej obsługi tzw. opakowań kaucjonowanych na magazynie WMS konieczne było umożliwienie tworzenia za pomocą jednej operacji dokumentów handlowych na zwykłe towary wraz dokumentami na kaucję, gdzie obydwa te dokumenty będą ze sobą automatycznie wiązane. Od wersji 2021.1 Systemu jest to możliwe, o ile na źródłowym dokumencie magazynowym znajdzie się również pozycja na opakowanie kaucjonowane.Powiązanie towaru z jednostką logistyczną WMS
W aplikacji Comarch WMS Zarządzanie możliwe jest powiązanie jednostki logistycznej z kartą towaru Comarch ERP XL. Po takiej operacji w XL na karcie towaru powstaje oznaczenie, że jest on traktowany jako:- Opakowanie kaucjonowane, jeśli towar jest dodatkowo oznaczony parametrem Kaucja,
- Opakowanie jednorazowe, jeśli towar nie jest dodatkowo oznaczony parametrem Kaucja.

- zaznaczony parametr Rejestruj w jednostkach całkowitych,
- nie zaznaczony parametr Oznacz dostawę kodem EAN towaru,
- nie zaznaczone parametry z grupy Oznacz partię towaru, czyli Datą ważności i Identyfikatorem dostawy,
- brak wypełnionej klasy cechy,
- dodatkowo towar ten nie może posiadać stanów.
Dodawanie opakowań kaucjonowanych do dokumentu magazynowego
Jeśli na dokumencie magazynowym WMS zostanie ręcznie dodany element na towar z ustawieniem Opakowanie kaucjonowane lub Opakowanie jednorazowe, to element ten zostaje automatycznie oznaczony w ten sam sposób.
Generowanie dokumentów handlowych wraz z dokumentami kaucji
W sytuacji odwrotnej, gdy dokumentem źródłowym jest dokument magazynowy WMS z elementami oznaczonymi jako Opakowania kaucjonowane, to dla tych elementów może zostać zawsze wygenerowany tylko dokument handlowy kaucji. Dodatkowo, jeśli na magazynowym razem z Opakowaniem kaucjonowanym znajdzie się zwykły towar i/lub Opakowanie jednorazowe, wówczas operacja generowania dokumentu handlowego do magazynowego spowoduje automatyczne utworzenie dwóch dokumentów:- żądany dokument handlowy z pozycjami na zwykłe towary i/lub Opakowania jednorazowe,
- dokument kaucji z pozycjami na Opakowania kaucjonowane.
Pozostałe funkcjonalności dla opakowań kaucjonowanych i jednorazowych
Jak wspomniano na początku rozdziału oznaczenia na pozycjach dokumentów magazynowych WMS są zawsze dziedziczone z ustawień na kartach towarów i w zdecydowanej większości nie będzie potrzeby ich zmiany. Jedynie w przypadku zakupu/sprzedaży pustych opakowań kaucjonowanych, gdy dokumentem wyjściowym jest dokument magazynowy WMS, należy usunąć oznaczenie na Opakowania kaucjonowane na pozycjach dokumentu magazynowego tak, aby dało się z nich wygenerować dokumenty handlowe zamiast dokumentów kaucji. W tym celu w menu kontekstowym na liście pozycji dokumentu magazynowego WMS dodano operację Usuń oznaczenie pozycji na opakowania kaucjonowane. Po jej wykonaniu wskazane pozycje z oznaczeniem Opakowania kaucjonowane mają usuwane to oznaczenie. Operacja dostępna tylko dla dokumentów w buforze. Zmieniono sposób weryfikacji pozycji przy operacji spinania dokumentów handlowych (zwykłych oraz dokumentów kaucji) z dokumentami magazynowymi. Zasadnicza zmiana polega na tym, że jeśli na dokumencie magazynowym WMS znajdują się pozycje na zwykłe towary oraz na Opakowania kaucjonowane, to spinając taki dokument z:- Dokumentem handlowym – pomijane są z magazynowego pozycje na Opakowania kaucjonowane, nie powodują one blokady spięcia dokumentów, jak było dotychczas;
- Dokumentem kaucji – uwzględniane są z magazynowego tylko pozycje na Opakowania kaucjonowane, a pozycje na zwykłe towary są pomijane i nie blokują spięcia dokumentów.
Dokumenty (W)ZWM na pełne /niepełne jednostki pomocnicze
Nowa funkcjonalność ma wpływ na ergonomię pracy magazynierów, dzięki umożliwieniu tworzenia dokumentów wydań na magazynie, na pełne lub niepełne palety czy inne jednostki pomocnicze. W przypadku kilku palet niepełnych, w Comarch WMS Magazynier uda się skompletować towar tak, aby zapełniać kolejne palety/jednostki pomocnicze w całości. Realizacja polega na możliwości generowania z zamówienia dwóch osobnych dokumentów (W)ZWM. Na jednym z tych dokumentów będą wyodrębnione takie ilości dla pozycji, które uda się przeliczyć na jednostkę pomocniczą w wartości całkowitej i dokument ten zostanie oznaczony jako wystawiony ‘na pełne jednostki’. Pozostałe ilości zostaną dogenerowane na drugim (W)ZWM bez oznaczenia jw. Takie działanie będzie można włączyć/wyłączyć poprzez odpowiednie ustawienie na definicji dokumentu.Konfiguracja ustawień dla podziału na pełne/niepełne jednostki
Na karcie towaru na jednostce pomocniczej znajduje się parametr, wskazujący, czy przy generowaniu z zamówień należy wykonywać dzielenie (W)ZWM na pełne/niepełne jednostki.

Generowanie i obsługa (W)ZWM z podziałem na pełne/niepełne jednostki
Przy generowaniu (W)ZWM z ZS/ZW przy pomocy nowego ustawienia na definicji dokumentu może zostać wykonany podział ilości z elementów źródłowych z zamówienia, jeśli jest na nim chociaż jedna pozycja z ustawioną jednostką pomocniczą wskazującą na konieczność podziału. Podział wykonywany jest w następujący sposób:- Całkowite ilości z elementów ZS/ZW w jednostce pomocniczej i odpowiadające im ilości w jednostce podstawowej są umieszczane na dokumentach (W)ZWM oznaczonych jako wystawione na pełne jednostki pomocnicze.

- Pozostałe ilości z takich podzielonych elementów oraz elementy bez jednostek pomocniczych wskazujących na podział lub w ogóle bez jednostek pomocniczych, zostaną dodane automatycznie do drugiego dokumentu (W)ZWM. Ten dokument nie ma ustawienia, że jest na pełne jednostki pomocnicze.


- Automatyczny podział na pełne/niepełne jednostki jest wykonywany tylko przy generowaniu dokumentów (W)ZWM bezpośrednio z ZS/ZW.
- Nie jest dostępny dla generowania (W)ZWM z innych dokumentów, czyli np. jeśli z ZS/ZW jest generowany dokument handlowy i do niego od razu powstaje (W)ZWM, wówczas algorytm do podziału względem jednostki pomocniczej nie jest wołany.
- Podział nie jest również wykonywany na istniejących dokumentach (W)ZWM podczas wykonywania operacji spinania zamówień z dokumentami magazynowymi.
- Zachować zmianę ilości, co będzie skutkowało zmianą oznaczenia na dokumencie, czyli przestanie on być dokumentem na pełne jednostki pełne jednostki.
- Nie zapisywać zmiany ilości, czyli dokument pozostanie bez zmian.
Możliwość zmiany partii na dokumencie wydania w WMS (wydanie do zamówienia z rezerwacją zasobową)
Dotychczas podczas wystawiania dokumentu (W)ZWM do zamówienia z rezerwacją zasobową, na dokumencie (W)ZWM był ustalany dokładnie ten sam zasób, który znajdował się na rezerwacji i nie było możliwości jego zmiany ani w Comarch ERP XL ani od strony Comarch WMS. Od wersji XL 2021.1 oraz Comarch WMS 2021.5 możliwa jest w WMS zmiana zasobu na przekazanym do realizacji dokumencie (W)ZWM do zamówienia z rezerwacją zasobową, o ile na takim dokumencie (W)ZWM istnieją rezerwacje magazynowe WMS. Taką samą zmianę można też wykonać, jeśli zamówienie jest realizowane wprost w Comarch WMS, czyli zostaje od razu wystawiany dokument ZWM do zamówienia. Przy zmianie zasobu na takim dokumencie w Comarch WMS działają standardowe mechanizmy ustalania, czy dany zasób jest dostępny handlowo w Comarch ERP XL. Jeśli nie będzie dostępny, wówczas podmiana zasobu nie będzie możliwa, gdyż niedopuszczalnym jest, aby do rezerwacji zasobowej na zamówieniu utworzona została rezerwacja ‘w przyszłość’. Jeśli zmiana zasobu będzie możliwa, wówczas zostanie ona przesynchronizowana do Comarch ERP XL na rezerwacje magazynowe WMS oraz na powiązanie z nimi źródłowe rezerwacje zasobowe z zamówienia. Dzięki temu zagwarantowane jest wystawienie poprawnego dokumentu handlowego do pary dokumentów: zamówienie z dokumentem magazynowym WMS. Operacja zmiany zasobu jest dostępna dla uprawnionego operatora WMS, a uprawnienia te można nadawać w Comarch WMS Zarządzanie. Więcej na ten temat w dokumentacji aplikacji Comarch WMS.Obsługa dokumentów wewnętrznych dla magazynów zbiorczych WMS
Zmieniona została obsługa dokumentów przesunięć międzymagazynowych z poziomu Comarch ERP XL pomiędzy magazynami składowymi jednego magazynu zbiorczego WMS. Magazyn zbiorczy, czyli tzw. magazyn wirtualny WMS, jest to magazyn dodawany tylko po stronie Comarch WMS jako magazyn nadrzędny, do którego podpinane są magazyny składowe. Magazynami składowymi mogą być magazyny z systemu Comarch ERP XL, które mają włączoną obsługę WMS. Dotychczas przesunięcia MMW/MMP pomiędzy magazynami składowymi jednego magazynu zbiorczego były zarządzane po stronie WMS. Oznacza to, że w samym XL nie dało się wystawić takich dokumentów, które jako magazyn źródłowy i docelowy miały ustawione magazyny składowe tego samego magazynu zbiorczego. W przypadku takich dokumentów pojawiała się w XL informacja, że mogą być wystawione jedynie w Comarch WMS. Teraz blokada ta została zniesiona i dokumenty takie będą mogły powstawać. Dotyczy to wystawiania dokumentów MMW z ręki oraz generowania ich z innych dokumentów. Podczas zatwierdzania dokumentów MMW na magazyny wirtualne, niezależnie od ustawień w definicji dokumentu, będzie od razu generowany cały komplet dokumentów, czyli:- (W)ZWM do MMW – w stanie Zamknięty, ale bez Realizuj w WMS
- MMP zatwierdzony oraz (W)AWD możliwy do realizacji tylko w WMS.
- Przy anulowaniu MMP wymagane jest również anulowanie powiązanego (W)AWD i to działanie pozostało bez zmian. Dodatkowo przy anulowaniu MMP na magazyny składowe jednego magazynu zbiorczego są automatycznie anulowane powiązane dokumenty MMW i (W)ZWM.
- Przy anulowaniu (W)AWD wymuszane jest również anulowanie powiązanego MMP, jeśli jest ono wystawione na magazyny składowe jednego magazynu zbiorczego. Co za tym idzie zostanie anulowane jest również powiązane MMW i (W)ZWM (jw.).
Zmiany w inwentaryzacji
W zakresie inwentaryzacji wprowadzono dwie zmiany dotyczące baz z włączoną współpracą z Comarch WMS.- Dodano możliwość prowadzenia inwentaryzacji na magazyny składowe jednego magazynu zbiorczego WMS. Inwentaryzacja zaplanowana z poziomu Comarch ERP XL będzie dotyczyć wszystkich magazynów, które w aplikacji Comarch WMS wchodzą w skład magazynu zbiorczego z obsługą położeń zmiennych. Nie będzie możliwości utworzenia w XL inwentaryzacji na pojedynczy magazyn składowy.
- Na arkuszu inwentaryzacyjnym został dodany nowy parametr Tylko j. logistyczne WMS. Parametr jest widoczny na arkuszu tylko, jeśli na nagłówku inwentaryzacji wybrano magazyn z włączoną współpracą z WMS, a jego aktywność jest tylko do momentu, kiedy na arkuszu nie ma dodanego żadnego towaru.
- Jeśli zaznaczony, wówczas możliwe do dodania są towary z oznaczeniem Opakowania kaucjonowane oraz Opakowania jednorazowe,
- Jeśli niezaznaczony, wówczas możliwe do dodania są tylko zwykłe towary, czyli inne niż opisano powyżej.
Kolumna Magazynowe dla PW i RW z inwentaryzacji
Na liście dokumentów handlowych w kolumnie Magazynowe dla dokumentów RW oraz PW utworzonych z inwentaryzacji na magazynie WMS wyświetlany jest stan: Nie dotyczy. Dla takich dokumentów nie jest bowiem możliwe utworzenie dokumentów magazynowych po stronie Systemu. Są one tworzone jedynie w Comarch WMS celem wyrównania stanów magazynowych.Prezentowanie w komunikatach o blokadzie dokumentu informacji szczegółowych z WMS
We współpracy Comarch ERP XL z Comarch WMS istnieją sytuacje, w których przesynchronizowane dokumenty (W)AWD oraz (W)ZWM mogą być edytowane w Systemie XL lub w aplikacjach WMS albo mogą nie być jeszcze w pełni zsynchronizowane. Jeśli w takim momencie inny użytkownik próbuje je edytować, wówczas jest informowany o blokadzie dostępu spowodowanej używaniem tego rekordu przez innego użytkownika.
I jeśli blokada jest wynikiem edycji dokumentu z poziomu Systemu XL, to w komunikacie widnieje wprost akronim użytkownika blokującego dokument. Natomiast w przypadku edycji dokumentu z poziomu aplikacji WMS wyświetla się ogólnie akronim użytkownika WMSADMIN, czyli nie wiadomo dokładnie, kto lub co blokuje dany rekord. Dlatego od wersji 2024.0 w szczegółach komunikatów wskazujących na blokadę przez WMSADMIN można znaleźć informację o rzeczywistej przyczynie blokady takiego dokumentu i możliwego sposobu jej usunięcia, czyli:
- Informacja, że dokument aktualnie jest edytowany przez konkretnego użytkownika w aplikacji Comarch WMS lub Comarch WMS Magazynier (ze wskazaniem na jego login). Blokada zostanie usunięta, jeśli ten użytkownik zakończy edycję dokumentu w podanej aplikacji.
- Dokument nie może zostać zrealizowany, ponieważ brak danego towaru na stanie magazynu (ze wskazaniem na nazwę magazynu). Ale dokument zostanie zrealizowany automatycznie, jeśli dany towar będzie dostępny na stanie tego magazynu.
- Dokument nie został prawidłowo przesłany za pomocą usługi synchronizacji Comarch WMS Service do aplikacji Comarch ERP XL. Należy więc sprawdzić czy usługa synchronizacji Comarch WMS Service działa poprawnie.
- Dokument nie został jeszcze w całości przesłany za pomocą usługi synchronizacji Comarch WMS Service. Należy więc odświeżyć usługę synchronizacji Comarch WMS Service lub sprawdzić poprawność działania.
XL150 - Obsługa list Devexpress
Obsługa list typu DevExpress
W systemie ERP XL dla wybranych list, docelowo wszystkich, została wprowadzona obsługa w standardzie Devexpress. Technologia Devexpress to elastyczny sposób obsługi okien systemu zwłaszcza w kontekście organizacji i zarzadzania listami. W systemie ERP XL usprawnienia zostały wprowadzone w zakresie sortowania, grupowania oraz filtrowania na listach.Sortowanie
Sortowanie obejmuje praktycznie każdą kolumnę listy w technologi Devexpress. Obecnie jest to tylko kilka list w systemie, m.in. bilans stanu towarów, FSE- zakładka Intrastat/koszty dodatkowe, kontrola jakości w produkcji.



Grupowanie
Grupowanie na liście może być określone wg dowolnej kolumny. Na wybranej kolumnie można uruchomić prawy klawisz myszy i z menu podręcznego wybrać „grupuj według tej kolumny”


Filtrowanie
Filtrowanie szybkie
Filtrowanie szybkie odbywa się po nagłówkach kolumn, każda kolumna w nagłówku zawiera symbol



Kreator filtra
Listy można filtrować w dowolnym układzie i wg dowolnego pola . Służy do tego Kreator filtra. Pozycja w menu podręcznym.

Definiowanie dodatkowych kolumn
Z uwagi na konstrukcję zapytania dla list Devexpress konieczna jest zmiana podejścia do definiowania dodatkowych kolumn. Dla takich list definicja nie będzie już zwykłym select'em, ale JOIN'em dołączanym do bazowego zapytania. Ponieważ wszystkie kolumny z bazowych tabel są dostępne w zapytaniu więc dla nich w ogóle nie trzeba pisać zapytań, są dostępne wprost z listy. Dla bardziej złożonych przypadków trzeba będzie wypełnić JOIN'a np: CDN.Atrybuty ON Atr_ObiNumer = A.BsN_ID AND Atr_ObiTyp = 14448 AND Atr_ObiLp = 0 AND Atr_AtkID = 1 W ten sposób będą dostępne wszystkie kolumny z tabeli cdn.Atrybuty do wybrania na liście. Gdy chcemy ograniczyć kolumny lub wywołać funkcję tabelaryczną wtedy zapytanie będzie takie : (SELECT Atr_Wartosc,Atr_ObiNumer,Atr_ObiTyp,Atr_ObiLp,Atr_AtkID FROM CDN.Atrybuty) ATR ON ATR.Atr_ObiNumer = A.BsN_ID AND ATR.Atr_ObiTyp = 14448 AND ATR.Atr_ObiLp = 0 AND ATR.Atr_AtkID = 1 Tabele zapytania głównego listy mają prefiks "A". Konsekwencją takiej konstrukcji jest brak możliwości walidacji zapytania na oknie definicji - dlatego walidacja nie jest dostępna.



Definiowanie dodatkowych kolumn - wyjątki
Nie zawsze połączenie dodatkowej kolumny będzie z wykorzystaniem prostego join do głównej tabeli z aliasem A wyświetlanych obiektów. W przypadku list stronicowanych wyświetlane wyniki są prezentowane za pomocą VIEW, który ma zdefiniowane własne nazwy kolumn i to do nich należy wykonywać połączenie. Przykładowo, lista Serwisowane urządzenia (moduł Serwis > Urządzenia) tworzy taki tymczasowy widok:


XL153 – Wydruki w formacie sPrint
Wydruki w formacie sPrint
Comarch sPrint to aplikacja, dzięki której użytkownicy mogą sprawnie drukować dowolny dokument na podstawie danych z systemu, z którym jest zintegrowana. Ponadto mogą korzystać z intuicyjnego Edytora, w ramach którego stworzą swój własny wydruk od podstaw lub też wprowadzą zmiany we wcześniej przygotowanych szablonach.
Wersja Comarch ERP XL 2022.1 została zintegrowana z nowym narzędziem.
Instalator wersji automatycznie instaluje również aplikację sPrint.
Dotyczy wersji Comarch ERP XL 2022.1 i 2023.0:
Przed zainstalowaniem nowej wersji XL lub jej aktualizacji zalecane jest odinstalowanie aplikacji Comarch sPrint, gdyż zostanie ona zawsze zainstalowana wraz z wersją XL.
Od wersji Comarch ERP XL 2023.1: Przy aktualizacji wersji XL 2023.1 jest wykonywany automatyczny upgrade aplikacji sPrint do nowszej wersji. Oznacza to, że nie ma już konieczności odinstalowywania aplikacji ręcznie, ponieważ wersja sPrint 0.5 zostanie zaktualizowana do najnowszej 2023.0. Mechanizm automatycznych aktualizacji sPrint będzie już zawsze wykonywany przy aktualizacji kolejnych wersji XL.W konfiguracji wydruków dodano nowy typ wydruku: sPrint.

Ustawienie nowego typu będzie możliwe do momentu wypełnienia definicji wydruku. Oznacza to, że zgodnie ze standardem nie będzie aktywny na wydrukach predefiniowanych, które mają już definicję.
Działanie na wydrukach pozostaje zgodne ze standardem, w szczególności:
- Na wydrukach użytkownika będzie możliwe wybranie nowego typu: sPrint.
- Aby zapisać taki wydruk konieczne jest zaimportowanie definicji wydruku na zakładce [Definicja].
- Wydruki predefiniowane o nowym typie będą miały w nazwie dodane wyrażenie: [sPrint].
Informację o tworzeniu wydruków w formacie sPrint można znaleźć na stronie https://pomoc.comarch.pl/sprint/.
Lista standardowych wydruków sPrint w Comarch ERP XL
W wersji Comarch ERP XL 2022.1 dla modułu Sprzedaż udostępniono następujące standardowe wydruki w nowym formacie:
- Lista dokumentów > Reklamacje > Zgłoszenie reklamacji zakupu,
- Lista dokumentów > Reklamacje > Zgłoszenie reklamacji sprzedaży,
- Zamówienia > Sprzedaż > Lista zamówień,
- Kontrahenci > Karta kontrahenta,
- Bony > Bon
- Faktura sprzedaży FS -> Faktura VAT. Zawartość i układ wydruku są analogiczne jak dla dotychczasowego wydruku w formacie Crystal Reports.
- FSK: Faktura VAT-korekta,
- FSE: Faktura eksportowa,
- FSL: Faktura VAT zaliczkowa,
- FEL: Faktura eksportowa zaliczkowa,
- FS końcowa: Faktura zaliczkowa FS końcowa,
- (s)FS końcowa i (S)FS końcowa,
- FSE końcowa: Faktura zaliczkowa- FSE końcowa,
- (s)FSE końcowa i (S)FSE końcowa,
- FKE: Faktura eksportowa- korekta,
- KSL: Faktura zaliczkowa FS korekta,
- KEL: Korekta faktury eksportowej zaliczkowej,
- (Z)FSK: Faktura VAT – korekta zbiorcza [elementy],
- (Z)FKE: Faktura eksportowa – korekta zb. [elementy],
- FSK/FKE typu korekta danych: Korekta danych,
- FSK ręczna: Korekta do FS niezarejestrowanej,
- FKE ręczna,
- WZE – Wydanie eksportowe.
- Oferta sprzedaży OS
- Zamówienie sprzedaży ZS
- Wydanie zewnętrzne WZ
- Wydanie kaucji WKA
Kod QR do przelewu na wydruku faktury VAT w formacie sPrint
Dodatkową opcją, którą posiada nowy wydruk Faktura VAT [sPrint] jest umieszczanie na niej kodu QR dla płatności. W oknie z parametrami przed wydrukiem w formacie sPrint pojawił się nowy Drukuj kod QR do przelewu.

Jeśli parametr zostanie zaznaczony, wówczas na wydruku pod podsumowaniem płatności zostanie wydrukowany kod QR umożliwiający automatyczne tworzenie przelewu do Sprzedawcy. Aby jednak kod się pojawił, to musi być spełnionych kilka warunków:
- Dokument musi być zatwierdzony;
- Na dokumencie musi być jakaś kwota do zapłaty, czyli w grę wchodzą tylko dokumenty nierozliczone lub częściowo rozliczone;
- Dokument nie może mieć zaznaczonego parametru Podzielona płatność (MPP);
- Jest znany numer rachunku bankowego Sprzedawcy.
Jeśli chociaż jeden z poniższych warunków nie będzie spełniony, wówczas kod QR nie będzie drukowany, nawet jeśli przed wydrukiem zostanie zaznaczony parametr Drukuj kod QR do przelewu.
![Kod QR na wydruku Faktura VAT [sPrint]](https://pomoc.comarch.pl/xl/wp-content/uploads/2023/07/word-image-51340-48.png)
W kodzie QR zakodowane są informacje z kwotą pozostałą do zapłaty oraz z danymi Sprzedawcy (tymi samymi, które są umieszczone na wydruku):
- Nazwa firmy pobierana z pierwszej linii nazwy na pieczątce,
- NIP firmy z pieczątki,
- Numer konta, na które ma nastąpić płatność.
Wystarczy postępować zgodnie z opisem przy kodzie QR, czyli zeskanować go przy użyciu bankowej aplikacji mobilnej, która posiada taką funkcjonalność, aby automatycznie utworzył się przelew z wypełnionymi ww. danymi. Dzięki temu realizacja płatności z tytułu dokumentu staje się znacznie prostsza.
Uruchamianie Comarch sPrint wraz z uruchamianiem Comarch ERP XL
W celu zwiększenia ergonomii działania na aplikacji Comarch sPrint możliwe jest takie skonfigurowanie Systemu, aby uruchamiała się ona w tym samym momencie co Comarch ERP XL. Umożliwia to przyspieszenie działań Użytkownika w przypadku konieczności uruchomienia wydruku w formacie sPrint. W tym celu w oknie Konfiguracja komputera dostępnym w module Administrator lub z poziomu Shella, na zakładce [Wydruki i wykresy] dodano parametr Uruchamiaj sPrint przy uruchamianiu systemu.
XL135 - Tworzenie i rozchodowanie zasobów w WMS
Ustalanie ilości na (W)ZWM
Podczas dodawania pozycji na dokumencie wydania z magazynu WMS można włączyć kontrolę ilości wprowadzanych na poszczególne pozycje. Znaczenie mają tu następujące parametry:- Kontrola ilościowa stanów na (W)ZWM (definicja karty magazynu)
- Uwzględniaj rezerwacje oraz Chronologia rezerwacji (definicja dokumentu ZWM, zakładka Inne, Rezerwacje)
Parametry | Działanie przy ustalaniu ilości na (W)ZWM w XL przy jej tworzeniu lub generowaniu z ZS |
![]() |
Brak kontroli ilości, czyli można dodać w XL (W)ZWM do bufora ze wskazaniem realizacji w WMS, na zasób, który nie jest dostępny. Wtedy w WMS jest to widoczne jako ‘brak magazynowy’ i nie można zrealizować dokumentu. Można natomiast zatwierdzić taki dokument w XL, jeśli operator ma uprawnienia do zamykania dokumentów ZWM/AWD, co będzie prowadziło do niezgodności stanów magazynowych. |
![]() ![]() |
Ilość możliwa do dodania wyliczana jest jako dostępny stan handlowy pomniejszony o wystawione już inne (W)ZWM, które nie zostały jeszcze zafakturowane (w tym także ten bieżący) oraz o wszystkie inne aktywne rezerwacje z tym samym zasobem |
![]() ![]() |
Takie ustawienie ma znaczenie tylko dla (W)ZWM generowanego z ZS. Ilość możliwa do dodania wyliczana jest jako dostępny stan handlowy pomniejszony o wystawione już inne (W)ZWM, które nie zostały jeszcze zafakturowane (w tym także ten bieżący) oraz o wszystkie inne aktywne rezerwacje (zasobowe oraz ilościowe), które mają priorytet wyższy niż rezerwacja na źródłowym ZS. |
![]() ![]() |
Takie ustawienie ma znaczenie tylko dla (W)ZWM generowanego z ZS. Ilość możliwa do dodania wyliczana jest jako dostępny stan handlowy pomniejszony o wystawione już inne (W)ZWM, które nie zostały jeszcze zafakturowane (w tym także ten bieżący) oraz o wszystkie inne aktywne rezerwacje (zasobowe oraz ilościowe), które mają priorytet wyższy lub równy niż rezerwacja na źródłowym ZS. Przy czym dla równych priorytetów pierwszeństwo będzie miała rezerwacja z ZS, jeśli jej data realizacji jest wcześniejsza. |
Obsługa pobierania zasobów podczas fakturowania (W)ZWM
Każdy magazyn wskazany do obsługi WMS ma możliwość określenie sposobu współpracy pomiędzy w zakresie pobierania zasobów na dokumenty handlowe sprzedaży generowane do dokumentów (W)ZWM. Dotyczy to ustawienia na karcie magazynu:
Sposób pracy z magazynem: Tylko ilościowo
W tym ustawieniu dopuszcza się, by partie na dokumencie magazynowym i wynikające z dostawy na dokumencie handlowym były różne. Ważne jest jedynie, aby pobrana do (W)ZWM ilość towaru nie przekraczała ilości dostępnej na magazynie (patrz punkt 1). Po zmianie partii w WMS (w stosunku do tego co zostało zadysponowane w systemie ERP), zmiana partii jest synchronizowana do systemu ERP. Jednak przy generowaniu dokumentów handlowych, jeżeli nie ma stanu handlowego do wydanej partii, to w dalszej kolejności jest sprawdzana tylko zgodność ilościowa towaru wydanego z towarem fakturowanym (zgodność partii jest pomijana). Dokładna informacja co zostało wydane/przyjęte (jaka partia) znajduje się tylko na dokumentach magazynowych (w systemach WMS i ERP XL). Innymi słowy, jeżeli w Comarch ERP XL nie ma stanu handlowego odpowiadającemu wydanej partii, na dokumencie handlowym pobierany jest stan handlowy wg ustalonej dla danego towaru reguły pobierania (FIFO/LIFO). Przy takim podejściu:- Comarch ERP XL prowadzi w stanach handlowych tylko ewidencję ilościową towarów – ile danego towaru jest w stanie zafakturować
- WMS prowadzi natomiast dokładną ewidencję zasobów magazynowych (co z jaką cechą zostało przyjęte/wydane)
Sposób pracy z magazynem: Ilościowo oraz zasobowo
Przy takim ustawieniu nie jest wskazane, aby partie na dokumencie magazynowym i wynikające z dostawy na dokumencie handlowym były różne. Ważne jest, aby pobrana do (W)ZWM partia towaru była faktycznie dostępna do wydania (np. nie zarezerwowana pod inne wydanie). W tym modelu pracy przy generowaniu dokumentów handlowych kontrolowana jest zarówno zgodność ilości jak i zasobów (partii). Ponieważ po zmianie partii w WMS (w stosunku do tego co zostało zadysponowane w systemie ERP), zmiana partii jest synchronizowana do systemu ERP, to w efekcie może nie być możliwe wygenerowanie faktury, jeżeli w systemie ERP dana partia nie jest dostępna do sprzedaży. Może się tak stać na skutek jej wcześniejszego zarezerwowania lub jeśli do dokumentów magazynowych (przyjęć dostaw) nie zostały wygenerowane dokumenty handlowe (W)AWD bez PZ/FZ. Dokładna informacja co zostało wydane/przyjęte (jaka partia) znajduje się na dokumentach magazynowych (w Systemach WMS i ERP XL) oraz na dokumencie handlowym, jeżeli proces przebiega w kolejności: od zamówień i dokumentów magazynowych tj.: (W)AWD->PZ/FZ; (W)ZWM->WZ/FS; ZZ->(W)AWD->PZ/FZ; ZS->(W)ZWM->WZ/FS. Przy takim podejściu (takiej ścieżce procesów):- Comarch ERP XL prowadzi w stanach handlowych zarówno ewidencję ilościową towarów – ile danego towaru jest w stanie zafakturować, jak i ewidencję zasobową – z jaką cechą, datą ważności znajduje się towar do sprzedaży
- WMS natomiast dalej prowadzi dokładną ewidencję zasobów magazynowych (co z jaką cechą zostało przyjęte/wydane i na jakie położenie), co przy rozpoczynaniu procesu od dokumentów magazynowych lub zamówień jest zgodne z systemem ERP
Pobieranie poszczególnych właściwości towaru podczas realizacji ścieżek handlowych dla dokumentów WMS
Realizacja wydań i przyjęć magazynowych możliwa jest do zrealizowania za pomocą operacji handlowych prowadzonych różnymi ścieżkami. Najpełniejszymi i jednocześnie najbardziej zalecanymi są tutaj:- Od strony zakupowej: ZZ – (W)AWD w buforze – AWD – (W)AWD aktualizacja/zatwierdzone – FZ/PZ
- Od strony sprzedażowej: ZS – (W)ZWM w buforze – ZWM – (W)ZWM aktualizacja/zatwierdzone – FS/WZ
- Tylko ilościowo
- Ilościowo oraz zasobowo
Oznaczanie zasobu na dokumentach datą ważności
Znaczenie ma tutaj parametr na towarze Oznacz partię towaru datą ważności:- TAK – ustawia na pozycji (W)AWD lub na subelemencie dokumentów zakupowych (jeśli nie są generowane z magazynowych) datę ważności z karty towaru; można ją zmienić.
- NIE – nie ustawia na dokumentach j.w., data ważności zostaje pusta i nie można jej zmienić/ustawić.
Dokument | Pobieranie przy generowaniu | Edycja daty ważności |
ZZ | Nie dotyczy | Brak takiego pola |
(W)AWD w buforze | Proponuje z karty towaru | TAK, można zmienić na dowolną |
AWD | Proponuje z (W)AWD | TAK, można zmienić na dowolną |
(W)AWD aktualizacja i zatwierdzanie | Z AWD | NIE |
FZ | Z dokumentu źródłowego (W)AWD | NIE |
ZS | Nie dotyczy | Brak takiego pola |
(W)ZWM w buforze | Domyślnie Proponuje z pierwszej partii towaru zapisanej w bazie, nawet jeśli taki zasób został już sprzedany | TAK, można zmienić na dowolną datę, która jest dostępna na stanach w ERP XL (z zakupowych) |
ZWM | Proponuje daty, jak opisano obok | TAK, można zmienić na dowolną, która jest dostępna na stanach w WMS (z AWD) |
(W)ZWM aktualizacja i zatwierdzanie | Z ZWM | NIE |
FS, jeśli współpraca: Tylko ilościowo | Z dokumentu źródłowego (W)ZWM, a jeśli zabraknie ilości w stanach handlowych XL, to z dostępnego stanu handlowego (dokumentu zakupowego) wg ustawień z towaru: FIFO/LIFO | NIE |
FS, jeśli współpraca: Ilościowo oraz zasobowo | Z dokumentu źródłowego (W)ZWM, a jeśli zabraknie ilości w stanach handlowych ERP XL, to dokument nie zostanie wystawiony | NIE |
Oznaczanie zasobu na dokumentach kodem EAN
Dodatkowy parametr na towarze Oznacz dostawę kodem EAN towaru:- TAK – ustawia na pozycji (W)AWD lub na subelemencie dokumentów zakupowych (jeśli nie są generowane z magazynowych) kod EAN z karty towaru; można ją zmienić.
- NIE – nie ustawia na dokumentach j.w., EAN zostaje pusty, ale można go zmienić/ustawić.
Dokument | Pobieranie przy generowaniu | Edycja kodu EAN |
ZZ | Nie dotyczy | Brak takiego pola |
(W)AWD w buforze | Z karty towaru, jeśli wypełniono | TAK, można zmienić |
AWD | Nie dotyczy | NIE, brak takiego pola (można jedynie wpisać zamiast kodu towaru, żeby potwierdzić dany towar – wtedy należy wpisać EAN z karty towaru) |
(W)AWD aktualizacja i zatwierdzanie | Z (W)AWD, bo i tak nigdzie tego nie można zmienić | NIE |
FZ | Z (W)AWD | NIE |
ZS | Nie dotyczy | Brak takiego pola |
(W)ZWM w buforze | Proponuje z pierwszej partii towaru zapisanej w bazie, nawet jeśli taki zasób został już sprzedany | TAK, można zmienić na dowolny kod, który jest dostępny na stanach w ERP XL (z zakupowych) |
ZWM | Uwzględnia stan magazynowy i zmienia EAN z ERP XL na właściwy | NIE |
(W)ZWM aktualizacja i zatwierdzanie | Z ZWM | NIE |
FS, jeśli współpraca: Tylko ilościowo | Z dokumentu źródłowego (W)ZWM, a jeśli zabraknie ilości w stanach handlowych ERP XL, to z dostępnego stanu handlowego (dokumentu zakupowego) wg ustawień z towaru: FIFO/LIFO | NIE |
FS, jeśli współpraca: Ilościowo oraz zasobowo | Z dokumentu źródłowego (W)ZWM, a jeśli zabraknie ilości w stanach handlowych ERP XL, to dokument nie zostanie wystawiony | NIE |
Oznaczanie zasobu na dokumentach klasą i wartością cechy
Dokument | Pobieranie przy generowaniu | Edycja kodu EAN |
ZZ | Nie dotyczy | TAK – można ustawić dowolnie klasę i wartość cechy |
(W)AWD w buforze | Klasę z karty towaru, jeśli wypełniono; wartości nie ustawia | TAK, można zmienić dowolnie klasę i wartość cechy |
AWD | Z (W)AWD | TAK, można zmienić dowolnie klasę i wartość cechy |
(W)AWD aktualizacja i zatwierdzanie | Z AWD | NIE |
FZ | Z dokumentu źródłowego (W)AWD | NIE |
ZS | Klasę z karty towaru, jeśli wypełniono; wartości nie ustawia | TAK – można ustawić dowolnie klasę i wartość cechy, system ostrzega, jeśli wybrano klasę i/lub wartość, której nie ma na stanie handlowym, można jednak zapisać taką pozycję. |
(W)ZWM w buforze | Proponuje z pierwszego wolnego zasobu, czyli koryguje wartość ustawioną na ZS na zgodną z zasobami | TAK, można zmienić na dowolną cechę, która jest dostępna na stanach w ERP XL (z zakupowych). |
ZWM | Z (W)ZWM | TAK, można zmienić na dowolną, która jest dostępna na stanach w WMS (z AWD) |
(W)ZWM aktualizacja i zatwierdzanie | Z ZWM | NIE |
FS, jeśli współpraca: Tylko ilościowo | Z dokumentu źródłowego (W)ZWM, a jeśli zabraknie ilości w stanach handlowych ERP XL, to z dostępnego stanu handlowego (dokumentu zakupowego) wg ustawień z towaru: FIFO/LIFO | NIE |
FS, jeśli współpraca: Ilościowo oraz zasobowo | Z dokumentu źródłowego (W)ZWM, a jeśli zabraknie ilości w stanach handlowych ERP XL, to dokument nie zostanie wystawiony | NIE |
Dodatkowe parametry dla wystawiania dokumentów sprzedaży z wydania magazynowego WMS
Przy wystawianiu dokumentów handlowych z (W)ZWM znaczenie mają jeszcze dodatkowe parametry, które decydują o tym, jaki zasobów zostanie ostatecznie pobrany na dokument sprzedaży. Ustawień tych dokonujemy w konfiguracji/WMS/Pobieranie zasobów wg:- Partii
- Klasy i cechy dostawy
- EAN
- Daty ważności
Pobieranie zasobów wg | Działanie przy generowaniu dok. handlowych z (W)ZWM | Efekt na dokumencie sprzedaży, jeśli znajdzie poszukiwany zasób (niezależnie jaki ustawiono sposób pracy z WMS: Ilościowo czy Ilościowo i zasobowo) |
Partii oraz na towarze ustawione Oznacz partię: Identyfikatorem dostawy | Szuka w stanach handlowych identyfikatora dostawy powiązanej z partią ustaloną na (W)ZWM. | Doda na FS pozycję z zasobem zgodnym z (W)ZWM. Powiąże pozycję z dostawą o identyfikatorze powiązanym z partią z (W)ZWM. |
Partii oraz na towarze nie ustawione: Oznacz partię: Identyfikatorem dostawy | Szuka w stanach handlowych partii zgodnej z (W)ZWM, czyli pierwszego ‘wolnego’ zasobu o takiej samej klasie i wartości cechy, EAN oraz dacie ważności | Doda na FS pozycję z zasobem zgodnym z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o takiej partii z dokumentu zakupowego. |
Klasy i cechy dostawy, EAN, Daty ważności | J.w. | j.w. |
Klasy i cechy dostawy | Szuka w stanach handlowych pierwszego ‘wolnego’ zasobu o zgodnej z (W)ZWM klasie i wartości cechy. Resztę parametrów z (W)ZWM pomija. | Doda na FS pozycję zgodną z klasą i wartością cechy z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o takiej klasie i wartości cechy z dokumentu zakupowego. |
EAN | Szuka w stanach handlowych pierwszego ‘wolnego’ zasobu o zgodnym z (W)ZWM numerze EAN. Resztę parametrów z (W)ZWM pomija. | Doda na FS pozycję zgodną z EAN z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o tym samym EAN z dokumentu zakupowego. |
Daty ważności | Szuka w stanach handlowych pierwszego ‘wolnego’ zasobu o zgodnej z (W)ZWM dacie ważności. Resztę parametrów z (W)ZWM pomija. | Doda na FS pozycję zgodną z datą ważności z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o takiej dacie ważności z dokumentu zakupowego. |
Klasy i cechy dostawy, EAN | Szuka w stanach handlowych pierwszego ‘wolnego’ zasobu o zgodnej z (W)ZWM: klasie i wartości cechy oraz EAN. Resztę parametrów z (W)ZWM pomija. | Doda na FS pozycję zgodną z klasą i wartością cechy oraz EAN z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o takiej klasie i wartości cechy oraz EAN z dokumentu zakupowego. |
Klasy i cechy dostawy, Daty ważności | Szuka w stanach handlowych pierwszego ‘wolnego’ zasobu o zgodnych z (W)ZWM: klasie i wartości cechy oraz dacie ważności. Resztę parametrów z (W)ZWM pomija. | Doda na FS pozycję zgodną z klasą i wartością cechy oraz datą ważności z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o takiej klasie i wartości cechy oraz dacie ważności z dokumentu zakupowego. |
EAN, Daty ważności | Szuka w stanach handlowych pierwszego ‘wolnego’ zasobu o zgodnych z (W)ZWM: EAN oraz dacie ważności. Resztę parametrów z (W)ZWM pomija. | Doda na FS pozycję zgodną z EAN oraz datą ważności z (W)ZWM. Powiąże pozycję z pierwszą ‘wolną’ dostawą o takim samym EAN oraz dacie ważności z dokumentu zakupowego. |
- Brakująca ilość zostanie pobrana z pierwszego ‘wolnego’ zasobu o dowolnych parametrach, jeśli ustawiono sposób współpracy z WMS: Tylko ilościowo.
- Zostanie zablokowane dodawanie dokumentu sprzedaży (z informacja o braku zasobów), , jeśli ustawiono sposób współpracy z WMS: Ilościowo oraz zasobowo.
XL159- Najczęściej zadawane pytania ERP XL-Comarch Mobile
Synchronizacja tryb automatyczny
Po wykreowaniu oddziału należy ustawić odpowiednie parametry aby synchronizacja mogła zostać przeprowadzona poprzez tryb automatyczny. W oknie edytowanego oddziału zakładka Automat synchr. należy zaznaczyć parametr Synchronizuj automatycznie, uzupełnić Adres serwera oraz odpowiedni numer sesji Windows.





Synchronizacja za pomocą usługi
Po wykreowaniu oddziału należy ustawić odpowiednie parametry aby synchronizacja mogła zostać przeprowadzona poprzez usługę. W oknie edytowanego oddziału zakładka Automat synchr. należy zaznaczyć parametr Synchronizuj automatycznie Synchronizuj z wykorzystaniem usługi, uzupełnić Adres serwera oraz odpowiedni numer sesji Windows.




- Konto Usługi:
- Użytkownik: konto domenowe na którym ma powstać usługa, licencje weryfikowane są z wpisanego klucza w konfiguracji komputera zakładka Klucz na danym koncie domenowym
- Hasło: hasło użytkownika domenowego
- Identyfikator operatora ( z którego pobierane są licencje ERP XL do synchronizacji )
- Operator: karta operatora ERP XL
- Hasło: hasło operatora ERP XL
- Zakładka Oddziały
Weryfikacja logów automatycznej synchronizacji
Logi są dostępne na pasku/wstążce za pomocą opcji .
Podczas Przełączania w tryb automatyczny pojawia się komunikat jak niżej

Wystąpił problem z działaniem usługi synchronizacji
Remedium:- Czy konto domenowe, na którym działa usługa ma uprawnienia do logowania się w trybie usługi (Zasady zabezpieczeń lokalnych, folder zasady lokalne – przypisywanie praw użytkownika – logowanie w trybie usługi), ponadto, zalecane jest, żeby użytkownik, na którym działa usługa, miał uprawnienia administracyjne Windows
- Czy w zmiennej środowiskowej Path nie znajduje się ścieżka do wcześniejszych wersji systemu Comarch ERP XL, na pierwszym miejscu ma być wpis do aktualnej wersji ERP XL
- Czy podgląd zdarzeń Windows nie zwraca komunikatów o nieprawidłowościach w działaniu usługi synchronizacji
- Usunąć usługę z poziomu Administratora oddziałów, następnie należy sprawdzić czy w rejestrze Windows nie zostały wpisy o nazwie usługi, która została usunięta, jeśli są należy je usunąć, gdy wpisów w rejestrze nie ma możemy ponownie dodać usługę w Administratorze Oddziałów
Brak licencji na moduł zamówień (NowyDokumentZam-33)

Brak licencji na moduł Serwis

Brak licencji na moduł Sprzedaż (NowyDokument-81)

Brak możliwości w strukturze firmy powiązanej z oddziałem zaznaczenia na formie płatności Dostępna w oddziale i zapis takiego centrum

Brak bieżącego okresu obrachunkowego



Brak zaczytania zapisów kasowych

Korygowanie dokumentów pochodzących z oddziału w ERP XL
Typ Dokumentu | Opis |
RW | Brak możliwości anulowania, skorygowania dokumentu, należy przyjąć towar dokumentem PW |
FS | Brak możliwości anulowania, można wystawić korektę FSK |
ZS | Można anulować, otworzyć dokument |
OS | Brak możliwości anulowania, skorygowania, należy zmienić status oferty |
MMW/MMP | Brak możliwości anulowania, skorygowania, należy przesunąć towar nowym MMW/MMP |
Możliwość określenia dostępnych typów dokumentów dla Operatora z poziomu aplikacji Comarch Mobile
W Comarch CDN XL istnieje możliwość ograniczenia rodzaju wystawianych dokumentów dla Operatora zalogowanego na urządzeniu mobilnym. W celu ograniczenia praw do wystawienia określonego dokumentu na urządzeniu mobilnym należy w Comarch CDN XL w Centrum domyślnym Operatora Mobile odznaczyć dozwoloną operację na dokumencie: wystawianie i edycja.
XL165 - ChatERP (Beta) w Comarch ERP XL
Informacje ogólne
Comarch ChatERP to eksperymentalna usługa wirtualnego asystenta w fazie testów BETA, która pozwala na realizację poleceń skierowanych do niego przez uprawnionych użytkowników Systemu. W pierwszej odsłonie potrafi on udzielić informacji dotyczących części danych zgromadzonych w systemie oraz wyjaśnić funkcje działające w ramach samego oprogramowania Comarch ERP XL.
Odpowiedzi udzielone przez ChatERP są generowane przez algorytmy AI, co oznacza, że zarówno dane z pytań, jak i z uzyskanych odpowiedzi są przesyłane do Comarch lub Open AI w celu świadczenia usługi. Dlatego też korzystanie z usługi naszego inteligentnego asystenta stanowi jednoczesne wyrażenie zgody na przesłanie danych zawartych w pytaniach i odpowiedziach do firmy Comarch lub podwykonawców technologicznych. Aby w tej wymianie danych ograniczyć ryzyko nadmiernego przetwarzania informacji:
- Użytkownik korzystający z usługi zobowiązuje się do nieprzekazywania w zadawanych pytaniach danych osobowych, wrażliwych i innych stanowiących tajemnicę firmy;
- mechanizm generowania odpowiedzi w ChatERP (Beta) nie dopuszcza takich, które skutkowałyby przetwarzaniem danych osobowych.
Jest to również istotne ze względu na fakt, że wszelkie informacje zawarte w zadawanych pytaniach i udzielonych odpowiedziach są zapisywane i wykorzystywane do celów treningowych doskonalenia usługi.
Dostęp do Comarch ChatERP w Systemie
Wersja Comarch ERP XL 2024.0
W Komunikatorze do paska bocznego dodana została zakładka [Chat ERP (Beta)], która pozwala otworzyć okno rozmowy z wirtualnym asystentem. Aby zakładka była widoczna dla zalogowanego operatora, to konieczne jest przyznanie mu dostępu do ChatERP w wersji testowej Beta. W tym celu na karcie operatora (zakładka [Parametry]/[Uprawnienia]) dodano parametr Dostęp do ChatERP (Beta). Aby faktycznie operator miał dostęp do okna rozmowy z ChatERP, to musi mieć również zaznaczony parametr Używaj komunikatora.
Przy włączaniu parametru pojawia się informacja o tym, że wersja testowa Beta nie obsługuje uprawnień operatorów, w związku z czym należy rozważyć, czy przyznanie dostępu danemu operatorowi jest zasadne i bezpieczne z punktu widzenia dostępu do danych, które szczegółowo opisano poniżej.
W treści jest również wskazanie na konieczność przestrzegania przepisów o ochronie danych osobowych przez uprawnionych użytkowników, o czym będą oni informowani bezpośrednio w oknie czatu.

Widok i działanie okna rozmowy z ChatERP (Beta) jest taki jak sam, jak każdej innej rozmowy w komunikatorze. Różnica jest tylko w:
- widoku górnego paska, gdzie pod przyciskiem Pomoc znajduje się link do tego biuletynu,
- ostrzeżenia na górze okna o konieczności przestrzegania przepisów o ochronie danych w treści pytań,
- braku możliwości zadawania pytań głosowych w dolnej części, gdzie wpisywana jest treść pytania.

W oknie prezentowanych jest domyślnie 100 ostatnich wiadomości wymienianych przez użytkownika z inteligentnym asystentem.
Nowe okno rozmowy od wersji Comarch ERP XL 2024.1
Dotychczasowe okno rozmowy z inteligentnym asystentem ChatERP dostępne z poziomu Komunikatora XL zostało zmienione. Od nowej wersji uruchamianie okna możliwe jest z poziomu Ribbona, gdzie w menu każdego modułu Sztuczna inteligencja pojawił się nowy przycisk ChatERP.

Przycisk jest aktywny tylko dla operatorów, którzy mają ustawiony parametr Dostęp do ChatERP (Beta).
Od wersji 2025.0 korzystanie z usługi Comarch ChatERP (Beta) wymaga akceptacji przez firmę regulaminu określającego zasady, zakres i warunki świadczenia takiej usługi. Regulamin zawiera m.in. warunki powierzenia do przetwarzania danych osobowych w ramach usługi.
Informacje o konieczności zaakceptowania niniejszego regulaminu znajdują się obecnie w dwóch miejscach:- W oknie komunikatu wyświetlanego przy włączaniu dostępu na karcie operatora (parametr Dostęp do ChatERP (Beta) na zakładce [Parametry]/[Uprawnienia])
- W oknie komunikacji z inteligentnym asystentem Comarch dostępnym z poziomu Ribbona (menu Sztuczna Inteligencja), gdzie dla operatora z uprawnieniami administratora pojawia się poniższe okno startowe, o ile zgoda nie została jeszcze wyrażona i przesłana do Comarch.

W oknie wyświetlana jest informacja o konieczności zachowania ostrożności w danych przekazywanych do pytań oraz wymaganych w odpowiedziach, w której chodzi głównie o przestrzeganie przepisów o ochronie danych osobowych. Stąd też można uruchomić dokumentację dotyczącą zapytań obsługiwanych przez asystenta.

Po użyciu przycisku Rozpocznij rozmowę przechodzimy do okna komunikacji z ChatERP, które przebiega wg dotychczasowych zasad. Na początku mamy więc wiadomość powitalną, gdzie przykładowe pytanie jest wyświetlone jako przycisk, którego użycie spowoduje wysłanie dokładnie takiego zapytania do asystenta.
W trakcie oczekiwania na odpowiedź użytkownik jest informowany, że przygotowywana jest odpowiedź, i dopiero po jej otrzymaniu można wprowadzić kolejne i użyć przycisku Wyślij.

Ogólne zasady komunikacji nie uległy zmianie, więc nadal wskazane jest, aby polecenia dotyczyły tylko zakresu danych opisanych w biuletynie https://pomoc.comarch.pl/xl/index.php/dokumentacja/xl165-chaterp-w-comarch-erp-xl/.
Rozmowy z inteligentnym asystentem ChatERP (Beta)
Zakres danych dostępny w wersji Beta, czyli o co jest sens pytać
W rozmowie można odpytywać ChatERP o możliwości Systemu, czyli odpytać o konkretne listy, obiekty oraz możliwość wykonywania dowolnych operacji. W zakresie dokumentacji użytkownika dysponuje on szeroką wiedzą, dzięki czemu potrafi podać natychmiastową, przetworzoną i konkretną odpowiedź, zamiast odsyłania do określonego fragmentu instrukcji.
Pierwsza wersja ChatERP udostępniona w wersji Comarch ERP XL 2024.0 potrafi również udzielić odpowiedzi na podstawowe pytania o dane handlowe w Systemie, które zostały wyszczególnione w tabeli.
Przykład pytania | Co zawiera odpowiedź | Wskazówki dotyczące pytań i odpowiedzi |
---|---|---|
Wyszukaj 5 kontrahentów, którzy w ostatnim tygodniu/miesiącu/roku kupili towar o kodzie … | Odpowiedź zwróci akronimy kontrahentów, którzy w podanym okresie kupili towar o podanym kodzie. | Wyniki pobierane są jedynie z dokumentów FS i posortowane alfabetycznie po kodzie kontrahenta. Jeśli w poleceniu nie podano: - ilości kontrahentów, to zwróci jeden rekord; - okresu (tydzień/miesiąc/rok), to zwróci wyniki z ostatniego miesiąca od daty bieżącej. |
Pokaż 5 kontrahentów z największymi zakupami z ostatniego miesiąca/tygodnia/roku | Odpowiedź zwróci akronimy kontrahentów, którzy kupili najwięcej w podanym okresie wraz z sumaryczną kwotą sprzedaży dla każdego z nich. | Wyniki pobierane są jedynie z dokumentów FS i posortowane rosnąco po sumarycznej ilości transakcji na FS. Jeśli w poleceniu nie podano: - ilości kontrahentów, to zwróci jeden rekord; - okresu (tydzień/miesiąc/rok), to zwróci wyniki z ostatniego miesiąca od daty bieżącej. |
Pokaż 5 największych moich dostawców z ostatniego miesiąca/tygodnia/roku | Odpowiedź zwróci akronimy kontrahentów, od których dokonaliśmy największych zakupów w podanym okresie wraz z sumaryczną kwotą tych zakupów dla każdego z nich. | Wyniki pobierane są jedynie z dokumentów FZ i posortowane rosnąco po sumarycznej ilości transakcji na FZ. Jeśli w poleceniu nie podano: - ilości kontrahentów, to zwróci jeden rekord; - okresu (tydzień/miesiąc/rok), to zwróci wyniki z ostatniego miesiąca od daty bieżącej. |
Pokaż 5 największych dłużników | Odpowiedź zwróci akronimy kontrahentów i kwotę zadłużenia na dzisiaj dla każdego z nich. | Wyniki wyliczane są jako suma nierozliczonych płatności (typu należność). Jeśli w poleceniu nie podano ilości kontrahentów, to zwróci jeden rekord. |
Pokaż 5 największych wierzycieli | Odpowiedź zwróci akronimy kontrahentów i kwotę zobowiązania na dzisiaj w stosunku do każdego z nich. | Wyniki wyliczane są jako suma nierozliczonych płatności (typu zobowiązanie). Jeśli w poleceniu nie podano ilości kontrahentów, to zwróci jeden rekord. |
Podaj sprzedaż dla kontrahenta o akronimie … z ostatniego miesiąca/tygodnia/roku | Odpowiedź zwróci listę towarów sprzedanych dla podanego kontrahenta w podanym okresie. Możliwe do wyświetlania będą: kod i nazwa towaru oraz ilość z j.m. | Wyniki pobierane są jedynie z dokumentów FS i posortowane zgodnie z kolejnością dokonywania transakcji na FS. Jeśli w poleceniu nie podano okresu (tydzień/miesiąc/rok), to zwróci wyniki z ostatniego miesiąca od daty bieżącej. |
Pokaż 5 najczęściej sprzedawanych towarów w ostatnim miesiącu z ostatniego miesiąca/tygodnia/roku | Odpowiedź zwróci listę towarów sprzedanych w największej ilości w podanym okresie. Możliwe do wyświetlania będą: kod i nazwa towaru oraz ilość z j.m. | Wyniki pobierane są jedynie z dokumentów FS i posortowane malejąco po sumarycznej ilości z transakcji na FS. Jeśli w poleceniu nie podano: - ilości towarów, to zwróci jeden rekord; - okresu (tydzień/miesiąc/rok), to zwróci wyniki z ostatniego miesiąca od daty bieżącej. |
Pokaż 5 najczęściej kupowanych towarów w ostatnim miesiącu/tygodniu/roku | Odpowiedź zwróci listę towarów zakupionych w największej ilości w podanym okresie. Możliwe do wyświetlania będą: kod i nazwa towaru oraz ilość z j.m. | Wyniki pobierane są jedynie z dokumentów FZ i posortowane malejąco po sumarycznej ilości z transakcji na FS. Jeśli w poleceniu nie podano: - ilości towarów, to zwróci jeden rekord; - okresu (tydzień/miesiąc/rok), to zwróci wyniki z ostatniego miesiąca od daty bieżącej. |
Pokaż wzrost sprzedaży w bieżącym roku (kwotowo i/lub procentowo) | Odpowiedź zwróci kwotę i/lub procent wzrostu (albo spadku) sprzedaży w bieżącym roku. | Wynik stanowi porównanie sumarycznej wartości sprzedaży z dokumentów FS za okres bieżącego roku i analogiczny okres roku poprzedniego. |
Pokaż 5 faktur sprzedaży z przeterminowanymi płatnościami o więcej niż 7 dni | Odpowiedź zwróci: akronim kontrahenta, numer faktury, przeterminowaną nierozliczoną kwotę płatności i jej termin. | Wyniki posortowane są malejąco po nierozliczonych kwotach z FS. Jeśli w poleceniu nie podano ilości rekordów lub ilości dni, wówczas nie będzie możliwe udzielenia odpowiedzi. |
Pokaż 5 niezrealizowanych zamówień sprzedaży (lub zakupu) przeterminowanych więcej niż 7 dni | Odpowiedź zwróci listę zamówień z podaniem szczegółów: akronim kontrahenta, nr zamówienia, data realizacji. | Wyniki posortowane są rosnąco po dacie realizacji z ZS. Jeśli w poleceniu nie podano ilości rekordów lub ilości dni, wówczas nie będzie możliwe udzielenia odpowiedzi. Natomiast dla braku określenia rodzaju zamówień (sprzedaży/zakupu) wyświetlone zostaną wyniki dla ZS. |
Pokaż 5 towarów które zalegają powyżej 60 dni na magazynach | Odpowiedź zwróci listę zalegających towarów na wszystkich magazynach. Możliwe do wyświetlania będą: kod i nazwa towaru, ilości dni zalegania i kod magazynu. | Wyniki posortowane są malejąco po ilości dni zalegania. Jeśli w poleceniu nie podano ilości rekordów lub ilości dni, wówczas nie będzie możliwe udzielenia odpowiedzi. |
Pokaż 5 towarów które zalegają powyżej 60 dni na magazynie … | Odpowiedź zwróci listę zalegających towarów na podanym magazynie. Możliwe do wyświetlania będą: kod i nazwa towaru, ilości dni zalegania i kod magazynu. | Wyniki posortowane są malejąco po ilości dni zalegania. Jeśli w poleceniu nie podano ilości rekordów lub ilości dni, wówczas nie będzie możliwe udzielenia odpowiedzi. |
- Dla pytań o kontrahentów w odpowiedzi zostaną przekazane tylko ich akronimy, bez podawania żadnych dodatkowych informacji z kart tych kontrahentów. W przypadku towarów natomiast może to być zarówno kod, jak i nazwa z karty towaru.
- Dla zapytań o sprzedaż, czyli np. kontrahenci z największymi zakupami lub najczęściej sprzedawane towary, są one obecnie wyliczane na podstawie wartości czy ilości z samych dokumentów FS. W analogicznych pytaniach dotyczących dokumentów zakupowych (np. najwięksi dostawcy), wyliczenia są wykonywane z wartości/ilości na dokumentach FZ.
- Jeśli w poleceniu podano dużą ilość rekordów do wyświetlenia, to w oknie odpowiedzi zostanie wyświetlona tylko taka ich część, która mieści się w tym polu, a na końcu będzie znak: … Nie ma więc sensu żądać ilości większej niż kilkanaście rekordów, bo podana odpowiedź może być nieczytelna dla użytkownika lub zostać obcięta.
- Jeśli w poleceniu nie podano ilości rekordów do wyświetlenia, to w większości przypadków domyślnie zostanie wyświetlony jeden rekord, który najbardziej odpowiada warunkom zapytania, czyli np. najczęściej sprzedawany/kupowany towar, największy dłużnik/wierzyciel itp. Ale w przypadku, gdy określona dana jest wymagana (np. wspomniana ilość rekordów lub ilość dni przeterminowania), to pojawia się informacja o braku kompletnych danych do udzielenia odpowiedzi. Więcej szczegółów w powyższej tabeli.
- W odpowiedzi na pytanie może pojawić się ogólny komunikat błędu: ‘Ups, coś poszło nie tak… Spróbuj ponownie za chwilę.’, co może oznaczać, że nastąpiło chwilowe zerwanie komunikacji z ChatERP lub wystąpił inny niezidentyfikowany błąd uniemożliwiający udzielenie odpowiedzi.
Co jeszcze potrafi ChatERP (Beta)?
Wersja Beta usługi dla Comarch ERP XL 2024.0 pozwala również na wykonanie prostej operacji, czyli wstrzymania transakcji dla kontrahentów. Można zdecydować czy wstrzymać je dla konkretnego rekordu o podanym akronimie, czy dla kilku największych dłużników, czy może idąc krok dalej, dla tych dłużników, których poziom zadłużenia przekroczył określoną kwotę.
Przykład polecenia | Co zawiera odpowiedź | Wskazówki dotyczące odpowiedzi |
---|---|---|
Wstrzymaj transakcje dla kontrahenta o akronimie … | Odpowiedź zwróci informację o wstrzymaniu transakcji dla podanego kontrahenta i zaznaczy na jego karcie parametr ‘Wstrzymano transakcję’. | Jeśli kontrahent nie zostanie znaleziony wówczas operacja nie zostanie wykonana, o czym użytkownik zostanie poinformowany w treści odpowiedzi. |
Wstrzymaj transakcje dla 2 największych dłużników | Odpowiedź zwróci akronimy kontrahentów (największych dłużników), dla których został zaznaczony parametr ‘Wstrzymano transakcję’. | Jeśli w poleceniu nie podano ilości rekordów, wówczas operacja zostanie wykonana dla jednego rekordu. Jeśli kontrahent nie zostanie znaleziony wówczas operacja nie zostanie wykonana, o czym użytkownik zostanie poinformowany w treści odpowiedzi. |
Wstrzymaj transakcje dla 2 dłużników, których kwota zadłużenia przekracza … | Odpowiedź zwróci akronimy kontrahentów (o zadłużeniu większym niż podano), dla których został zaznaczony parametr ‘Wstrzymano transakcję’. |
Wstrzymanie transakcji polega na ustawieniu dla kontrahenta odpowiedniego parametru, na podstawie którego blokowane jest dla niego wiele działań dotyczących dokumentów. Z tego też powodu jej wykonanie zlecone przez ChatERP jest dodatkowo kontrolowane przez System, czyli wywołuje komunikat, w którym użytkownik musi potwierdzić zamiar wykonania takiej operacji.

Od wersji 2025.0 w komunikacji z inteligentnym asystentem Comarch weryfikowane są uprawnienia dostępu Użytkownika do żądanych informacji lub do wykonania zleconej operacji. Dzięki temu otrzyma on odpowiedź tylko na takie zapytania, które dotyczą dostępnych dla niego informacji. Nie uda mu się również wykonać takich operacji, które są dla niego zablokowane (z poziomu interfejsu lub poprzez API).
Przy obecnie obsługiwanych poleceniach weryfikowane są na karcie operatora dostępy do modułów oraz przypisane zakazy. Brak dostępu do modułu lub zakaz mogą bowiem blokować dostęp do określonych danych lub operacji. W takim przypadku:
- Dla zapytań o dane z bazy asystent wysyła w odpowiedzi informację o braku uprawnień.
- Dla wykonania operacji najczęściej zostaje wyświetlony odpowiedni komunikat z Systemu, który również pokazałby się przy próbie wykonania jej z interfejsu. Dodatkowo informacja ta jest zawarta w odpowiedzi od asystenta.
Nowe polecenia obsługiwane w wersji Comarch ERP XL 2024.1
W nowej wersji Systemu dodano obsługę poleceń dotyczących limitów kredytowych kontrahenta, które przedstawia poniższa tabela.
Przykład pytania | Co zawiera odpowiedź | Wskazówki dotyczące pytań i odpowiedzi |
---|---|---|
Pokaż pozostały limit kredytowy dla kontrahenta … | Odpowiedź zwróci kwotę limitu pozostałego dla podanego kontrahenta wraz z datą jego obowiązywania, jeśli aktualnie jakiś limit jest dla niego ustawiony. | Jeśli w poleceniu podano nieprawidłowy akronim kontrahenta, to w odpowiedzi znajdzie się taka informacja. |
Ustaw limit kredytowy nieograniczony dla kontrahenta … | Odpowiedź zwróci informację o ustawieniu limitu nieograniczonego dla podanego kontrahenta i zaznaczy na jego karcie parametr ‘Limit nieograniczony’. | Jeśli podany kontrahent nie zostanie znaleziony wówczas operacja nie zostanie wykonana, o czym użytkownik zostanie poinformowany w treści odpowiedzi. |
Ustaw limit kredytowy kontrahentowi ... w wysokości … od dnia … | Odpowiedź zwróci informację o ustawieniu limitu w żądanej kwocie dla podanego kontrahenta i doda do listy limitów nowy rekord z: - datą OD zgodną z podaną, - datą DO ‘Brak ograniczenia’, - kwotą zgodną z podaną. | Jeśli podany kontrahent nie zostanie znaleziony lub podana kwota będzie spoza dopuszczalnego zakresu, wówczas operacja nie zostanie wykonana, o czym użytkownik zostanie poinformowany w treści odpowiedzi. Jeśli nie podano daty, wówczas jako data OD zostanie przyjęta data bieżąca. |
Ustaw dla kontrahenta … dozwolone przeterminowanie płatności na … dni. | Odpowiedź zwróci informację o ustawieniu żądanej ilości dni przeterminowania dla podanego kontrahenta i ustawi tą ilość dni na jego karcie, na zakładce [Limity kredytowe]. | Jeśli podany kontrahent nie zostanie znaleziony lub podana ilość dni będzie spoza dopuszczalnego zakresu, wówczas operacja nie zostanie wykonana, o czym użytkownik zostanie poinformowany w treści odpowiedzi. |
W wersji Comarch ERP XL 2024.1 obsługiwane są zarówno dotychczasowe, jak i nowe polecenia.
Nowe polecenia obsługiwane w wersji Comarch ERP XL 2025.0
W komunikacji z Comarch ChatERP nadal rozwijany jest obszar działań handlowych prowadzonych z kontrahentami. Od wersji 2025.0 obsługiwane są polecenia:
- Zarezerwuj dla kontrahenta [akronim] towar [kod towaru] na magazyn [kod magazynu] w ilości [ilość] do dnia DD-MM-RRRR.
- Wystaw zamówienie sprzedaży (lub zakupu) dla kontrahenta [akronim] na [ilość] jednostek towaru [kod towaru].
- Wystaw fakturę sprzedaży (lub zakupu) dla kontrahenta [akronim] na [ilość] jednostek towaru [kod towaru].
- Zatwierdź [numer dokumentu, np. ZS-255/12/24].
Pogrubionym drukiem oznaczono dane, które są wymagane, aby polecenie zostało wykonane. Nowe rezerwacje lub dokumenty zostaną dodane z jednostką podstawową ustawioną dla towaru, nie ma więc konieczności wpisywania jednostki w treści samych poleceń.
Zgodnie ze standardowym działaniem asystenta powyższe operacje zostaną wykonane dopiero po zaakceptowaniu komunikatu systemowego, w którym Użytkownik potwierdza zamiar ich wykonania.
XL146-Dobre praktyki. Konfiguracja, zarządzanie Microsoft SQL Serwer oraz bazami danych.
Konfiguracja serwera
Po zainstalowaniu serwera Microsoft SQL Serwer należy zwrócić uwagę na kilka rzeczy:
- Zaznaczony parametr SQL Server and Windows Authentication mode

- Zmienić parametry serwera w zakładce Advanced:

- Blocked Process Threshold – parametr, który odpowiada za rejestrację blokad przez dodatek SQL Server Profiler. Domyślnie ustawiona jest wartość 0 oznacza to, że żadne blokady nie są rejestrowane. Parametr wyrażony jest w sekundach. W tym przypadku będą rejestrowane blokady trwające 3 sekundy i więcej. Parametr ten nie ma bezpośtredniego wpływu na wydajność serwera.
- Optimize for Ad hoc Workloads – parameter, odpowiadający za przetrzymywanie pełnych zapytań wywoływanych Ad – hoc na serwerze. Domyślna wartość False. Parametr warto zmienić na True, ze względu na to, iż podczas pracy w Systemie Comarch ERP XL, wywoływana jest spora liczba zapytań Ad-hoc. Niektóre z nich bardzo rzadko, w związku z tym nie ma potrzeby przetrzymywania ich w buforze. Jeśli zapytanie pojawi się częściej, trafi wówczas w całości do bufora. Pozwoli to zaoszczędzić pamięć RAM na serwerze.
- Cost Threshold For Parallelism – parametr określający jak kosztowne zapytania mają być zrównoleglane. Dla Systemu Comarch ERP XL przyjmuje się że wartości te mogą przybierać wartości od 25 do 50. Przykładowe ustawienie 50 oznacza że tylko zapytania o wyliczonym koszcie przez SQL Server powyżej 50 będą zrównoleglane.
- Max Degree of Parallelism (Max DoP) – parametr określający ile vCPU lub CORE może wziąć udział w zrównoleglaniu zapytania. Domyślna wartość wynosi 0 oznacza to, że o tym ile rdzeni lub wątków zaangażować decyduje SLQ Server. Przyjmuje się że parametr ten nie powinien wynosić więcej niż połowa dostępnych wątków lub CORE dla serwera na którym zainstalowany jest Microsoft SQL Serwer.
- Do określenia rodzajów blokad możemy posłużyć się zapytaniem:
Bazy danych
Konfiguracja
- Dla baz danych pod względem wydajności oraz bezpieczeństwa jest ich na macierzy w RAID 01/10. To rozwiązanie kosztowne ale zapewnia najlepszą wydajność oraz bezpieczeństwo danych. Łączy zalety RAID 1 orz 0. RAID 5/6 to rozwiązanie kompromisowe pomiędzy bezpieczeństwem i wydajności a ceną. Rozwiązanie dla mniejszych baz.
- Bazy danych, logi oraz buckupy powinny znajdować się na osobnych dyskach (systemach dyskowych). Jeśli nie jest to możliwe bazy oraz logi mogą znajdować się w tej samej lokalizacji. Dla bezpieczeństwa backupy powinny być umieszczone na osobnym systemie dyskowym, aby w razie awarii można było przywrócić funkcjonowanie bazy danych. Kopie baz warto również przenosić na zewnętrzne nośniki.
- Baza TempDB – baza systemowa odpowiedzialna w dużej mierze za wydajność systemów. Jeśli jest taka możliwość baza powinna znajdować się na najszybszym dysku (systemie dyskowym).
- Warto podzielić ją na pliki, nie więcej niż vCPU (maszyny wirtualne) CORE (maszyny fizyczne) na serwerze.

Serwisowanie bazy
Backupy
Backupy baz ich rodzaj i częstotliwość ustawia się zgodnie z oczekiwaniami Klienta. Rodzaje podstawowych kopii baz danych:- Full – Kopia całej bazy danych, włącznie z procedurami funkcjami etc. Jeśli stosujemy inne rodzaje backupowania, to i tak co jakiś czas zaleca się wykonanie pełnej kopii bazy.
- Differential –Tworzenie kopii zapasowej tylko tych danych, które uległy zmianie od czasu ostatniej pełnej kopii zapasowej.
- Transaction log – backup loga bazy danych, log zawiera wszystkie informacje na temat operacji wykonanych na bazie danych (konieczne włączenie Recovery Model Full). Każda kolejna kopia zwiera informacje o zdarzeniach które wydarzyły się pomiędzy kolejnymi kopiami.
Aktualizacja statystyk oraz odbudowa indeksów
Od wersji 2016 SQL Server zmianie uległ algorytm dotyczący częstotliwości aktualizacji statystyk. W kolejnych wersjach działa on poprawnie. Jednak można w oknie serwisowym, po skończonej pracy przeprowadzić aktualizację statystyk, korzystając z Maintenance Plans lub wprowadzając do JOB’a polecenie T-SQL. Można również przeprowadzić reorganizacje największych i najbardziej pofragmentowanych indeksów (powyżej 2500 stron i stopień fragmentacji powyżej 5%). Raz w tygodniu można wykonać reindeksację największych i najbardziej pofragmentowanych indeksów (2500 stron, stopień fragmentacji powyżej 50%).Konfiguracja maszyn wirtualnych
W przypadku konfigurowania maszyn wirtualnych na serwerze, należy zwrócić uwagę na ilość przypisywanych gniazd procesorów dla wirtualnych CPU (vCPU). Część wirtualizatorów dla jednego vCPU przypisuje pojedyncze gniazdo. W przypadku najnowszych wersji Microsoft SQL Server Standard maksymalna ilość obsługiwanych gniazd wynosi cztery.![]() |
Przykład: Jeśli dla maszyny zostanie przypisanych 8 vCPU i 8 gniazd to SQL będzie wykorzystywał tylko 4 gniazda i 4 vCPU pozostałe cztery nie będą brały udziału w operacja wykonywanych na SQL Serwerze. Dobrą praktyką jest przypisanie takiej ilości gniazd jaka znajduje się na maszynie fizycznej. Natomiast jeśli z jakiejś przyczyny zostanie przydzielona inna ilość to należy się stosować do założenia, że na 8 vCPU można przypisać jedno gniazdo (dla 16 vCPU – 2 gniazda itd.).a |