Techniczne i integracje

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.

Uwaga
Jeżeli parametr zostanie wyłączony w momencie, gdy procesy są uruchomione, będzie możliwe wykonanie bieżącej akcji, jednak jej wykonanie nie spowoduje przejścia do następnego etapu (zadania) procesu.

Uwaga
Wykorzystanie funkcjonalności procesów wymaga zaznaczenia osobnej opcji w kluczu sprzętowym (opcja licencji).

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.

Przyklad
Definiowany jest proces polegający na obsłudze zamówienia sprzedaży. Podczas definiowania tego procesu, określane są akcje do wykonania w jego ramach. Akcje te mogą być akcjami zdefiniowanymi przez Użytkownika, lub wybranymi z akcji predefiniowanych w systemie. Wśród akcji predefiniowanych w systemie znajduje się akcja kluczowa: Dodanie zamówienia sprzedaży. Akcji tej nie trzeba definiować – przy definiowaniu procesu polegającego na obsłudze zamówienia sprzedaży, będzie ona dostępna do wyboru z listy akcji kluczowych, właściwych ze względu na rodzaj dokumentu, który ma być obsłużony. Podobnie – jeżeli definiowany jest proces obsługi oferty zakupu, jedną z akcji kluczowych, możliwych do wybrania jest akcja kluczowa: Dodanie oferty zakupu. Lista akcji kluczowych predefiniowanych w systemie będzie wyświetlana w oknie: Definicja akcji, po nacisnięciu w wierszu: Akcja kluczowa.

Akcje kluczowe możliwe do wykonania przy definiowaniu procesu, polegającego na obsłudze zamówienia sprzedaży (wśród nich – akcja kluczowa: Dodanie zamówienia sprzedaży).

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.
Definiowanie akcji, polegającej na generowaniu dokumentu z zamówienia sprzedaży – wybranie akcji kluczowej.
  • 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.
Definiowanie akcji polegającej na generowaniu dokumentu z zamówienia sprzedaży – wprowadzenie nazwy dokumentu, który zostanie wygenerowany z zamówienia

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.

Uwaga
Parametr “Uruchom ponownie gdy jest już zakończony” pozwala na ponowne wykonanie tego procesu i czynności pomimo tego, że już taki proces dla zadanego obiektu był wykonany.
Definicja Akcji: Uruchomienie innego procesu

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.

Definicja Akcji: Uruchomienie innego procesu z przekazanymi parametrami
Uwaga
Przedstawione powyżej to przykład zastosowania opisanej funkcjonalności, nie ma sensu biznesowego, zwraca ostatnio dodany TrN_GIDNumer i TrN_GIDTyp faktury sprzedaży.

Wysłanie wiadomości e-mail

Definicja Akcji: Wysłanie wiadomości e-mail, ze zdefiniowanymi parametrami dla okna: Definicja Akcji.

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
Przyklad
Treść zakładki: Parametry, która umożliwia wysłanie wiadomości e-mail na adres podany na karcie kontrahenta, o zamówieniu obsługiwanym przez proces: <DO>!@SQL('Select KNT_EMail From CDN.KntKarty (NOLOCK) join CDN.ZAMNAG (NOLOCK) on ZaN_KntNumer = Knt_GIDNumer where ZaN_GIDNumer='&@OBINUMER)</DO> <TEMAT>test</TEMAT> <TRESC>!'Dokument:'&@SQL('Select CDN.NumerDokumentu(CDN.DokMapTypDokumentu(ZAN_GIDTyp,ZAN_ZamTyp, ZAN_Rodzaj),0,0,ZAN_ZamNumer, ZAN_ZamRok, ZaN_ZamSeria,0) From CDN.ZamNAg (NOLOCK) Where ZaN_GidNumer='&@OBINumer)</TRESC>
Przyklad
Zastosowanie tekstu z zapytaniem SQL wewnątrz treści: <TRESC>!'Witaj '&@SQL('Select trn_kntnumer From cdn.TraNAg (NOLOCK) Where Trn_GidNumer='&@OBINumer) &' dalsza treść, numer dokumentu @NumerDokumentu zakończenie' </TRESC> Efekt: Witaj 1 dalsza treść, numer dokumentu FS-3/23/04 zakończenie
Przyklad
Zapytania wymagające użycia wartości typu string w zapytaniu muszą być otoczone apostrofem podwójnie, np. standardowo w zapytaniu stosujemy '1800-12-28', w procesie należy zapisać ''1800-12-28''  : <TRESC>!'Faktura '&@SQL ('select DATEADD(day,trn_data3,CONVERT(DATETIME,''1800-12-28'',120)) from cdn.TraNag where TrN_GIDNumer = @OBINumer')</TRESC> Efekt: Faktura 27.04.2023
Przyklad
Zastosowanie wylistowania wyników zapytania: A) <TRESC>!@SQL('list "" select ZaE_Twrkod + CHAR(9) + CHAR(9) + CHAR(9) +convert(varchar(10), ZaE_Ilosc) + CHAR(13) + CHAR(10) from cdn.zamElem where ZaE_GIDNumer = '&@OBINumer)</TRESC> Efekt: T1     1.0000 T2     1.0000 T3     1.0000 B) <TRESC>!@SQL('list ", " select zae_Twrkod + CHAR(9) + convert(varchar(10), ZaE_Ilosc) from cdn.zamElem where zae_gidnumer = '&@OBINumer)</TRESC> Efekt: T1           1.0000, T2          1.0000, T3          1.0000

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.

Definicja parametru Uruchomienia programu zewnętrznego
Wynik przekazania obiektu do zewnętrznej aplikacji

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.

Definicja Akcji: Zmiana etapu dokumentu w obiegu, zakładka parametry

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.

Przyklad
Za pomocą akcji kluczowych, predefiniowanych dla zamówień sprzedaży możliwe jest określenie pełnej ścieżki obiegu dokumentów – od wygenerowania zamówienia sprzedaży, poprzez jego potwierdzenie, wygenerowanie dokumentu handlowego z zamówienia i zakończenie procesu. Ponadto, aby uwzględnić możliwe opcje tego obiegu, w definicji procesu można również uwzględnić takie czynności, jak: otwarcie zamówienia, jego odrzucenie lub anulowanie (którym odpowiadają akcje kluczowe). Kondtrukcja procesu umożliwia automatyczne przechodzenie do następnej czynności po wykonaniu poprzedniej.
Uwaga
W kolejnych wersjach systemu ERP XL, planowana jest rozbudowa procesów o obsługę kolejnych dokumentów, za pomocą akcji kluczowych.

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.

Okno XL Work Automat, w którym określa się przedział czasowy wykonywania akcji automatycznych.
Okno XL Work Automat, zakładka Parametry, określenie interwału czasowego

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.

Lista folderów, zawierających obiekty, dla których możliwe jest utworzenie definicji procesu (zaznaczony folder: Inne procesy, umożliwiającym utworzenie definicji procesu bez obiektu).

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.
Uwaga
Definicje procesów zaimportowane z XL w wersji na MSSQL nie będą działać poprawnie na ERP XL działającym na PostgreSQL

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.

Schemat procesu: Obsługa zamówienia zakupu.

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).
Otworzona definicja procesu: Obsługa zamówienia zakupu.

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.

Wybór opcji: Dodaj zadanie, z menu w oknie: Definicja procesu.

Zostanie otworzone okno: Definicja zadania procesu.

Otworzone okno definicje zadania procesu, dla którego podano kod i nazwę.

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.

Definicja procesu: Obsługa zamówienia zakupu, z zadaniami: AZ, WW, GD.

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.

Definicja zadania procesu (AZ).

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.
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.

Okno otwierane po naciśnięciu przycisku: Akcje, w oknie: Definicja czynności procesu.

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.

Okno definicji 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.

Wybranie akcji: 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).

Akcja: Potwierdzenie zamówienia zakupu, na liście akcji dla definicji procesu.

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.

Definicja czynności procesu ze zdefiniowaną akcją: Potwierdzenie zamówienia zakupu.

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.

Zadania wyświetlone w oknie: Definicja procesu (Zamówienie zakupu), zakładka: 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.

Definicja czynności procesu z określoną Akcją do wykonania i Wynikiem, jaki nastąpi po wykonaniu Akcji.

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.
Zakładka: Opiekunowie, z rozwiniętym menu kontekstowym w oknie: Definicja czynności procesu.
  • 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.

Okno: Struktura firmy, otwierane po wybraniu opcji: Ze struktury firmy, w oknie: Definicja czynności procesu.

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.

Definicja czynności procesu z przypisanym Opiekunem – centrum SAD 1a.

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).

Definicja zadania procesu z przypisaną Czynnością: Potwierdzenie zamówienia zakupu.

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.

Definicja czynności procesu: Odrzucenie zamówienia zakupu.

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.

Definicja procesu: Obsługa zamówienia zakupu, ze zdefiniowanymi zadaniami i przypisanymi do nich czynnościami.

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.

Definicja procesu: Obsługa zamówienia zakupu, 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: C:\Magda Zyguła\screny dla klientów\ikonki\f.bmp [Zamknij proces].

Poniżej został przedstawiony schemat wykonywania poszczególnych czynności w procesie: Sprawdzenie wysokości sprzedaży.

Schemat procesu: 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.

Definicje procesów.

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.

Definicja procesu: Sprawdzenie wysokości sprzedaży.

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.

Definicja procesu: Sprawdzenie wysokości sprzedaży, z wyznaczonymi zadaniami.

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ń.

Definicja zadania procesu (Czekaj) z określoną datą realizacji.

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ść.
Dodawanie czynności do zadania: AKTYWNY.
  • Zostanie otworzone okno: Definicja czynności procesu.
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].

Definicja Akcji automatycznej.

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

Akcja automatyczna na liście akcji w oknie: Definicja procesu.

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

Definicja czynności procesu: Akcja automatyczna, z przypisaną Akcją.
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.
Definicja statusu wynikowego czynności z przypisanym Wynikiem: E-MAIL.
  • 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.
Definicja statusu wynikowego: E-MAIL, z podanym warunkiem SQL.

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.

Definicja statusu wynikowego: AKTYWNY.

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.

Definicja czynności procesu: Akcja automatyczna, po przypisaniu Wyników: E-MAIL i AKTYWNY.
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.

Definicja czynności procesu: Akcja automatyczna, z przypisanym Opiekunem automatycznym.

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:

Definicja procesu: Sprawdzenie wysokości sprzedaży.

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.

p0ro

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.
h
Historia procesu, z rozwiniętą lista dostępnych definicji procesu.

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.

Historia procesu z opcjami wykonania akcji w ramach wybranej definicji.

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].

Okno: Procesy do uruchomienia z zaznaczonym procesem: Sprawdzenie wysokości sprzedaży, gotowym do uruchomienia.

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

Okno: Proces, z podstawowymi danymi 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:

Nowe akcje kluczowe dostępne dla obiektu Bilans stanu towarów
  • 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

Uwaga
Obecnie nie obsługujemy automatycznego uruchamiania procesu, proces zawsze musi zostać uruchomiony ręcznie.

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”.

bst
Ustalanie planowanego terminu automatycznego przeliczenia dokumentu BST

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:

Nowe akcje kluczowe dostępne dla obiektu Bilans stanu towarów
  • 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”.

plan produkcji
Ustalanie planowanego terminu automatycznego przeliczenia dokumentu Planu 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).

Definicja procesu Przypisywania zasobów do rezerwacji

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)
Parametry akcji kluczowej Rezerwowanie zasobu

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:

Nowe akcje kluczowe dla obiektu: Zlecenie produkcyjne
  • 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ń.
Przykładowa parametryzacja dla akcji: Planowanie zlecenia produkcyjnego
  • 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:

Predefiniowane definicje procesów z wykorzystaniem nowych akcji kluczowych, udostępnionych do budowania 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.

Uwaga
Aby w każdym przypadku tworzenie dokumentów magazynowych zadziałało poprawnie, to wpisane na zakładce symbole muszą być oddzielone przecinkiem, ale bez dodatkowej spacji pomiędzy nimi. Tak też celowo zostało to ujęte w treści do tego punktu.

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.

Wskazówka
Pomimo tego, że dokumenty przychodu czy rozchodu wskazują jednoznacznie na dokumenty magazynowe przychodowe lub rozchodowe, to zostaną dodane zawsze wszystkie typy magazynowych, aby dla korekt możliwe było wystawianie dokumentów magazynowych o przeciwnych kierunkach przepływu.

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.
Wskazówka

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").

cf
Parametr: Obsługa procesów za pomocą usługi
C:\Users\Magdalena.Zygula\Desktop\IMG_30082017_143246_0.png
Uprawnienia operatora

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
Prezentacja danego procesu w formie graficznej

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.

Akcja wysłania dokumenty do KSeF i pobrania UPO w procesie zdefiniowanym dla faktury sprzedaży
Akcja wysłania dokumenty do KSeF i pobrania UPO w procesie zdefiniowanym dla faktury sprzedaży

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  
Akcja wysłania faktury do KSeF z dodatkowym warunkiem zadania
Akcja wysłania faktury do KSeF z dodatkowym warunkiem zadania
  • 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  
Akcje wysłania faktury do KSeF zależna od statusu wynikowego poprzedniej czynności
Akcje wysłania faktury do KSeF zależna od statusu wynikowego poprzedniej czynności

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ń.

Przyklad

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.

Predefiniowany proces automatycznego pobierania faktur zakupu z KSeF
Predefiniowany proces automatycznego pobierania faktur zakupu z KSeF

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)
Przyklad
Zdefiniowany filtr zawęża listę kontrahentów do mających siedzibę w konkretnym mieście. Aby dla każdego miasta nie definiować osobnego filtra, można zdefiniować jeden filtr, zawierający parametr dynamiczny określający miasto. Po wybraniu przez Użytkownika takiego filtra i naciśnięciu przycisku lejka – zostanie wyświetlone dodatkowe okno, służące wpisaniu wartości - nazwy miasta i zastosowaniu filtra na liście. Po zaakceptowaniu zapisu, program wstawia do filtra, w miejsce definicji parametru dynamicznego, wprowadzoną wartość (nazwę miasta) i stosuje filtr na liście.

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).
Uwaga
Zastosowanie przełącznika H powoduje bezwarunkowe ukrycie parametru, w związku z czym, dla takiego parametru nie jest alokowane miejsce na ekranie.
 

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:
@X - check @O(RadioPrompt:RadioValue{[|RadioPrompt:RadioValue]...}) - option @LsXXX(Biblioteka.dll|CallLookupFunkcjaU[(ParametryCallLookupFunkcjaU)]) lub @LnXXX(Biblioteka.dll|CallLookupFunkcjaU[(ParametryCallLookupFunkcjaU)]) - lookup @R(Zapytanie)

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).
Uwaga
Ponieważ nazwa parametru jest kluczowa i wewnętrznie w klasie nie może być pusta – w przypadku jej pominięcia następuje podstawienie Nazwy wartością Promptu. Należy jednak zwrócić uwagę na to, że jeśli w prompcie występuje akcelerator - jest on także wstawiany do nazwy. W związku z tym np. w tekście Kolumna1=?@n3|&Parametr:1 OR Kolumna2=??Parametr, ciąg ??Parametr nie zostanie podstawiony wartością parametru Parametr (należy użyć ??&Parametr).
  • 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):
Spacja; ‘)’; ‘}’; ‘+’; ‘-‘; ‘*’; ‘/’; ‘,’; ‘%’; ‘=’; ‘|’; ‘<13,10>’,                                                   (SZ 1) znalezionych po rozpoczęciu Default-u i niewystępujących wewnątrz literału stringowego (‘...’) albo w przypadku braku takiego wystąpienia:
  • koniec tekstu.                                                                                              (SZ 2)
Uwaga
Jeśli Default dla parametrów stringowych bez sekwencji zakończenia, zawiera którykolwiek ze znaków wymienionych wyżej (w szczególności spację), musi być otoczony apostrofami, np. ?@s20|Akronim|&Akronim:’A B’ (z sekwencją zakończenia można tak: ?@s20|Akronim|&Akronim:A B@?, Lub tak: ?@s20|Akronim|&Akronim:’A B’@?).

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).

Przyklad
Tekst, w którym jest umieszczony parametr stanowi filtr, do którego chcemy dokleić (AND) filtr FiltrApp przekazywany z aplikacji, osadzamy parametr: ?@s255_NQ|FiltrApp|Filtr aplikacji:@?. Zastosowanie modyfikatora _NQ pozwoliło wstawić fragment filtra bez otaczających apostrofów, mimo stringowego formatu parametru. Wstawienie apostrofów prowadziłoby do błędu, np. uzyskalibyśmy filtr końcowy postaci: ... AND ‘BNa_BnaID>10’.

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).

Przyklad
Tekst, w którym jest umieszczony parametr stanowi wywołanie procedury, której drugim parametrem jest parametr stringowy, odpowiadający numerowi rachunku bankowego: OP_KASAI.DLL|CALLBRPLISTA('BRA',?@n6_Q|RachunekID|Rachunek:0@?). Umieszczenie całego parametru w apostrofach spowoduje, że parametr ten nie będzie „widziany” przez parser.
Uwaga
Stosowanie modyfikatorów ma sens tylko dla samodzielnych definicji parametrów (tzw. stara składnia), stanowiących jednocześnie deklarację parametru i odwołanie do jego wartości. Jeśli definicja jest częścią deklaracji @PAR … PAR@, to stosowanie modyfikatorów nie ma sensu – deklaracje są w całości usuwane z tekstu. W tym przypadku modyfikatory należy umieszczać w odwołaniach do wartości parametrów (np. ??_QNazwa).

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)).

Przyklad
Przykład 1: (poprawne ale nieefektywne wstawienie pustej linii pomiędzy kontrolki parametrów: ??Akronim i ??SprawdzajDaty) @PAR ?@s20|Akronim|&Akronim:@? PAR@ @PAR ?@n1|PustaLinia|Pusta linia:@? @HIDE() PAR@ @PAR ?@X|SprawdzajDaty|&Sprawdzaj daty:1@? PAR@ Przykład 2: (linia nie będzie wstawiona) @PAR ?@s20|Akronim|&Akronim:@? PAR@ @PAR ?@Hn1|PustaLinia|Pusta linia:@? PAR@ @PAR ?@X|SprawdzajDaty|&Sprawdzaj daty:1@? PAR@

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:

Przyklad
Przykład 3: (poprawne i zalecane wstawienie pustej linii pomiędzy kontrolki parametrów ??Akronim i ??SprawdzajDaty). @PAR ?@s20|Akronim|&Akronim:@? PAR@ @PAR ?@EOL PAR@ @PAR ?@X|SprawdzajDaty|&Sprawdzaj daty:1@? PAR@
 

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.
Rozwinięcie
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ę.
Rozwinięcie
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)
jeśli wstawiamy parametr do dowolnego tekstu w XL-u albo do filtra TPS z KF lub parametrów wydruku RW w Optimie, albo
  • 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()
Zwraca bieżącą datę i czas w postaci YYYY-MM-DD HH:MM:SS
  • 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)
Przypadek zachodzący, gdy długość przekazanego jako pierwszy parametr ciągu znaków przekracza 4. Zwraca podaną parametrami datę i czas w postaci YYYY-MM-DD HH:MM:SS z tym, że data jest obliczana z wyrażenia: _DateExpr a dwa następne parametry są ignorowane. Przykłady
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@
Uwaga
Aby walidować parametry typu DT – należy używać modyfikatorów _Q: Ustalony moment z walidacją: @PAR ?@DT|dt4|t&4:2003-03-22 10:00:00@? @COND(??_Qdt4 >= ??_Qdt3) @CONDMSG(dataczas ''Do'' nie może być mniejsza niż dataczas ''Od'') PAR@ Rozwinięcia: …WHERE CRK_TerminOd <= ??dt1 … WHERE YMDHMS(CRK_TerminOd) <= ??_YMDHMS_dt1 …
Kontrolki
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).
Rozwinięcie
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)
jeśli wstawiamy parametr do dowolnego tekstu w XL-u albo do filtra TPS z KF lub parametrów wydruku RW w CDN Optima, albo
  • 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ą.

Kontrolki
OPTION{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).

Uwagi

Zaleca 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ątkowa

Wartość 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.

Kontrolki
PROMPT + 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’).

Uwaga

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|@?.

  Kontrolki
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
Rozwinięcie

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:
OFN_ALLOWMULTISELECT EQUATE(00000200h) OFN_CREATEPROMPT EQUATE(00002000h) OFN_ENABLEHOOK EQUATE(00000020h) OFN_ENABLETEMPLATE EQUATE(00000040h) OFN_ENABLETEMPLATEHANDLE EQUATE(00000080h) OFN_EXPLORER EQUATE(00080000h) OFN_EXTENSIONDIFFERENT EQUATE(00000400h) OFN_FILEMUSTEXIST EQUATE(00001000h) OFN_HIDEREADONLY EQUATE(00000004h) OFN_LONGNAMES EQUATE(00200000h) OFN_NOCHANGEDIR EQUATE(00000008h) OFN_NODEREFERENCELINKS EQUATE(00100000h) OFN_NOLONGNAMES EQUATE(00040000h) OFN_NONETWORKBUTTON EQUATE(00020000h) OFN_NOREADONLYRETURN EQUATE(00008000h) OFN_NOTESTFILECREATE EQUATE(00010000h) OFN_NOVALIDATE EQUATE(00000100h) OFN_OVERWRITEPROMPT EQUATE(00000002h) OFN_PATHMUSTEXIST EQUATE(00000800h) OFN_SHOWHELP EQUATE(00000010h) OFN_SHAREAWARE EQUATE(00004000h) OFN_SHAREFALLTHROUGH EQUATE(2) OFN_SHARENOWARN EQUATE(1) OFN_SHAREWARN EQUATE(0)

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).

Kontrolki
brak 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).

Uwaga
W tekście należy używać zawsze pełnej deklaracji parametru (@PAR … PAR@), a nie samej definicji. W zasadzie użycie apostrofów ograniczających jest konieczne tylko, gdy w tekście do wyświetlenia występują nawiasy (), {} lub inne zastrzeżone sekwencje specjalne. Jednak dla większego bezpieczeństwa zaleca się zawsze używać apostrofów ograniczających. Jeśli w wyświetlanym tekście mają być apostrofy – w deklaracji należy je zdublować.
Kontrolki
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
 
Przyklad
Kolumna1 = ?@n3|MójParametr|&Mój parametr:255@? OR Kolumna2 = ?@n3|MójParametr|&Mój parametr:255@?
Należy mieć na uwadze fakt, że pomimo tego, iż w tekście istnieje kilka wystąpień tego samego parametru (a więc parametru o takiej samej nazwie Nazwa), to i tak będzie wykreowana tylko jedna kontrolka, a jej ustawienia będą zgodne z pierwszym wystąpieniem parametru (jeśli to wystąpienie posiada znacznik ukrycia H - kontrolka parametru nie będzie w ogóle wykreowana). Ustawienia następnych wystąpień są ignorowane.
  • Skrócone odwołanie do parametru – składnia skróconego odwołania do parametru:
??[(_Q|_NQ)][Modyfikator…]Nazwa                                                                                    (PD2) przy czym Nazwa nie może zawierać spacji z Modyfikator. Modyfikator ustala niestandardowe rozwijanie parametru i może być równy jednemu z poniższych ciągów znaków: _RES2_ (wymuszenie wstawiania ‘kodu’ zamiast ‘ID’ dla parametrów typu DROPDOWN i LOOKUP), _YMD_ (wstawianie wartości datownikowego parametru w formacie YYYY-MM-DD) _HMS_ (wstawianie wartości czasowego parametru w formacie HH:MM:SS) _ YMDHMS_ (wstawianie wartości datowoczasowego parametru w formacie YYYY-MM-DD HH:MM:SS) _ DQ_ (dublowanie apostrofów wewnątrz wartości).

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.

Przyklad
Kolumna1 = ?@n3|MójParametr|&Mój parametr:255@? OR Kolumna2 = ??MójParametr

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.
Przyklad
Można to wykorzystać np. przy ustalaniu warunku na daty z zakresu dat: warunek COND(??DataOd<=??DataDo) zakładamy tylko na DataDo. Jeśli założylibyśmy warunek na obie daty to przy zmianie zakresu 01.01.2003 – 31.01.2003 na 01.02.2003 – 28.01.2003 musielibyśmy najpierw zmienić datę końcową, a potem początkową, co jest niewygodne.
Uwaga
Jeśli mają zostać walidowane parametry typu DT – należy używać modyfikatorów _Q: @PAR ?@DT|dt4|t&4:2003-03-22 10:00:00@? @COND(??_Qdt4 >= ??_Qdt3) @CONDMSG(dataczas ''Do'' nie może być mniejsza niż dataczas ''Od'') PAR@
  Dla ułatwienia posługiwania się opcjami @M[SG] i @T[IP] wprowadzono następujący element składni: @M[SG](=T[IP]) – przepisanie tip-u do message’a @T[IP](=M[SG]) – przepisanie message’a do tip-u Nie ma tu znaczenia kolejność występowania tych opcji. Użycie deklaracji parametrów pozwala na:
  • 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).
Istotną różnicą pomiędzy deklaracją parametru a jego definicją jest to, że deklaracje parametrów są w całości usuwane z tekstu przed jego wykonaniem. Jeśli dany parametr ma gdziekolwiek w tekście deklarację – zostanie ona użyta do określenia własności parametru, nawet jeśli przed deklaracją występuje pełna definicja parametru.
Przyklad
W poniższym przykładzie Akronim jest zawsze UPPER a ponadto jest disablowany za każdym razem gdy Numer > 10. Z kolei Numer to spin o zakresie (–100; 100) i skoku 2, disablowany w przypadku gdy Akronim = ‘D’. Wreszcie spin Hide jest ukrywany, jeśli Numer=30. Parametr DataDo musi mieć wartość nie mniejszą od wartości parametru DataOd a przynajmniej jeden z checków FA, PA musi być zaznaczony. @PAR ?@S20|Akronim|&Akronim:ALA@? @U(), @D(??Numer > 10) @MSG(Akronim kontrahenta) @TIP(=MSG) PAR@ @PAR ?@N-15.2|Numer|&Numer:20.0@? @RL(-100) @RH(100) @S(2) @D(??Akronim = 'D') PAR@ @PAR ?@N-15.2|Hide|&Hide:1.0@? @H(??Numer = 30) PAR@ @PAR ?@N-3|Do|&Do:10@? @RL(??Od) @RH(??Od + 10) PAR@ @PAR ?@D17|DataDo|&Do:{Today()+1}@? @COND(??DataDo >= ??DataOd) @CONDMSG(Data Do nie może być wcześniejsza niż data Od) PAR@ @PAR ?@X|PA|&Paragony:1@? @COND(??FA + ??PA > 0) @CONDMSG(Przynajmniej jeden typ dokumentu musi być zaznaczony) PAR@

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.

Uwaga
Aby aplikacja wykorzystująca XL API mogła być łatwo przenoszona pomiędzy komputerami, wskazane jest, aby folder, w którym jest zainstalowany program Comarch ERP XL, był umieszczony w ścieżce dostępu systemu Windows. Umożliwi to aplikacji zewnętrznej odszukanie odpowiednich bibliotek DLL. W przypadku, gdy aplikacja zewnętrzna jest umieszczona w kartotece z bibliotekami programu Comarch ERP XL, powyższy warunek nie jest konieczny.

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.

Przyklad
Obiektem, który tworzy logiczną całość jest np. faktura. Tworzenie takiego obiektu z poziomu funkcji API ograniczają funkcje XLNowyDokument oraz XLZamknijDokument. Jeżeli przerwanie działania aplikacji nastąpi po wywołaniu pierwszej z nich, a przed zamknięciem dokumentu, to dokument taki zostanie wycofany z bazy danych. Jeżeli natomiast zostanie poprawnie zakończone wywołanie funkcji XLZamknijDokument, to dokument taki jest zapisywany na stałe w bazie danych nawet, jeżeli błąd aplikacji wystąpi przed wylogowaniem się poprzez funkcję XLLogout (dokument jako logiczna całość został wprowadzony poprawnie).

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).

Przyklad
Zestaw funkcji jest jeden. Różne są zestawy parametrów tych funkcji (z sufixami _1, … , _12) w bibliotece dynamicznej CDN_API.DLL są funkcje bez sufiksów. Rozpoznanie wersji jest realizowane w ten sposób, że każda struktura ma pole: Wersja, które jest sprawdzane przy wywołaniu poszczególnych funkcji i w zależności od tej wartości, wewnętrznie wołane są funkcje z odpowiednimi sufiksami. Użycie jednocześnie 2 wersji API nie jest polecane, jeśli chodzi o funkcje dotyczące tego samego obszaru, tzn. nie powinno się stosować funkcji dodającej nagłówek w wersji 1 a funkcji dodającej pozycje w wersji 5. Choć możliwe jest działanie w takich przypadkach funkcji, to nie polecamy takiego rozwiązania. Natomiast stosowanie różnych wersji w różnych obszarach Comarch ERP XL jest jak najbardziej dopuszczalne. Tzn. można wystawić zamówienie zestawem funkcji w wersji 1, a fakturę zestawem funkcji w wersji np. 5.

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.
Uwaga
W przypadku wielokrotnego wywoływania tej samej funkcji API (np. dodawanie wielu pozycji do FS) konieczne jest czyszczenie struktury (zmienne typu Long należy wypełnić 0, zmienne typu String - pustym ciągiem ””) wykorzystywanej w funkcji każdorazowo po jej użyciu. Jest to konieczne, ponieważ w niektórych polach struktury zwracane są wartości, które w przypadku nie wyczyszczenia ich, będą użyte przy ponownym wykorzystaniu struktury.

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 Then

MsgBox("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 Then

MsgBox("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 Then

MsgBox("Błąd dodawania pozycji: " & Wynik)

End If With Zamkniecie

.Wersja = 12

.TrybZamkniecia = 2

End With Wynik = XLZamknijDokumentZam_12(IDDokumentu, Zamkniecie) If Wynik <> 0 Then

MsgBox("Błąd zamykania nagłówka: " & Wynik)

End If Wynik = XLlogout_12(Sesja) If Wynik <> 0 Then

MsgBox("Błąd wylogowania: " & Wynik)

End If

End Sub

W 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.

Uwaga

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 Then

Wynik = 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 Integer

Dim 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 - 1

With 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 Sub

Dodaj 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.
2. Warunki związane z samym systemem ERP XL dla wszystkich systemów operacyjnych:
  • Baza systemu ERP XL musi być podpięta dla wszystkich użytkowników komputera
(wpis o bazie musi być w rejestrze w gałęzi HKEY_LOCAL_MACHINE: [HKEY_LOCAL_MACHINE\SOFTWARE\CDN\CDNXL\MSSQL\Bazy] – 32bit [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\CDN\CDNXL\MSSQL\Bazy] 64 bit)
  • Musi być wpisany klucz HASP
[HKEY_LOCAL_MACHINE\SOFTWARE\CDN\HASPXL] Lub [HKEY_LOCAL_MACHINE\SOFTWARE\CDN\HASP] “Serwer”=”Tu nazwa serwera 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:
Użytkownik ASPNET musi być w grupie użytkownicy, użytkownik na którym działa IIS i ASP musi mieć prawa do katalogu z systemem ERP XL - chodzi o to żeby ten użytkownik miał uprawnienia do uruchomienia ERP XL. [/su_list] 3. Na systemach serwerowych (2003,2008, 2012) i VISTA, Win 7, 8 najlepiej utworzyć dla takiej aplikacji osobną pulę aplikacji. Użytkownik, na którym działa pula (domyślnie Usługa Sieciowa) musi mieć prawo do katalogu z systemem Comarch ERP XL, aby miał uprawnienia do uruchomienia systemu. 4. Dodatkowo funkcje API powinny być wołane w trybie wsadowym. 5. Na C8 - nowy interfejs - przed logowaniem do API trzeba zawołać poniższy kod. //jeśli C8 wołana jest metoda z ClaRUN.dll public class Cdnsys { [DllImport("ClaRUN.dll")] static extern void AttachThreadToClarion(int _flag); public void AttachThread() {

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
Na potrzeby ww. udostępnione zostały trzy funkcje:
  • 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

Plik z kontrahentami
Plik z dokumentami
Plik z wizytami handlowymi
Plik z raportami i rozliczeniami

Sekcja informacyjna (INFOBLOK)

Tabela 1 Sekcja informacyjna i odpowiednik pól w tabelach bazy ERP XL
Atrybut 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
  1. Podmiot gospodarczy
  2. Odbiorca finalny
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
Email 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
EMail 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
Email 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*)

Uwaga
Uwaga: W sekcji wysyłana jest analogiczna struktura tagów dla każdego węzła XMLa, w którym się znajdują.
Tabela 5 Sekcja z atrybutami kontrahenta i odpowiednik pól w tabelach bazy ERP XL
<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*)

Uwaga
Uwaga: W sekcji wysyłana jest analogiczna struktura tagów dla każdego węzła XMLa, w którym się znajdują.
Tabela 6 Sekcja z załącznikami kontrahenta i odpowiednik pól w tabelach bazy ERP XL
<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
  1. Sprzedaż na paragon fiskalny
  2. Dokument fiskalny nie wydrukowany na drukarce
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

Spis treści

Informacje ogólne

Instalacja Comarch POS

Konfigurowanie Usługi synchronizacji POS

Usługa Comarch POS Agent

Comarch POS Agent Broker

Konfiguracja Oddziału/Stanowiska POS

Zmiany w konfiguracji oddziałów Comarch POS

Uruchomienie stanowiska POS

Przesyłanie danych do stanowisk POS

Odbieranie danych ze stanowisk POS

Przesyłanie podstawowych promocji do oddziałów Comarch POS

Pytania i odpowiedzi

Informacje ogólne

Od wersji 2019.2.1 została udostępniona możliwość współpracy z Comarch POS.
Wersja Comarch ERP XLComarch POS
od wersji 2019.2.1 do wersji 2020.02019.0
od wersji 2020.1 do 2020.2.02019.5.1
2020.2.22019.5.4
2021.02021.0
od wersji 2021.01 do wersji 2021.0.22021.1
2021.12021.6
od wersji 2022.0 do wersji 2022.0.12022.0
2022.0.22022.1
2022.12022.5
2023.02023.0
2023.12023.0
2023.22023.5
2024.02024.0
2024.12024.5
2025.02024.5
Informacje o współpracy konkretnej wersji Comarch ERP XL z wersją POS udostępniane są w dokumencie Zmiany funkcjonalne wprowadzone w Comarch ERP XL do danej wersji. Comarch POS skonfigurowany z Comarch ERP XL, daje możliwości tworzenia stanowisk pracy detalicznej, na których mogą być wystawiane paragony lub faktury. Dokumenty wystawiane na stanowiskach POS są następnie przesyłane do centrali, czyli do bazy Comarch ERP XL Oprócz dokumentów handlowych oraz korekt do nich, możliwe jest również wystawianie zapisów kasowych KP i KW oraz dodawanie i modyfikacja kart kontrahentów.

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.
Okno wyboru wersji Comarch POS
W tym celu wybieramy opcję – Akcje zaawansowane, a następnie pobranie wskazanej wersji produktu. Po zainstalowaniu odpowiedniej wersji należy dodać komponent- Comarch POS Na zakładce Konfiguracja dodać produkt Comarch Retail.
Dodanie produktu Comarch Retail
Dla produktu Comarch Retail dodać komponent Comarch Retail POS.
Dodanie komponentu Comarch Retail POS
Skonfigurować komponent Comarch Retail POS. Okno konfiguracji otwierane jest poprzez zaznaczenie komponentu oraz wybranie z głównego menu przycisku [Konfiguracja]. W oknie należy wprowadzić dane dotyczące połączenia bazy danych stanowiska POS.
Konfiguracja komponentu Comarch Retail POS
  • 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.
Uwaga
Z jednej bazy lokalnej może korzystać tylko jedno stanowisko POS.
Zapisać zmiany oraz zamknąć okno konfiguracji produktów przez wybranie odpowiednio przycisku [Zapisz], a następnie [Zamknij].
Przyciski [Zapisz] oraz [Zamknij] w oknie Konfiguracja
W razie potrzeby utworzenia nowej bazy POS, backup pustej bazy POS można znaleźć w katalogu Autoupdate np. https://pomoc.comarch.pl/autoupdate/ Standardowo POS instaluje się w lokalizacji: c:\Nazwa profilu w AU\Comarch Retail\Comarch Retail POS Aktualizacja oraz deinstalacja wersji powinna się odbyć również za pomocą Comarch Auto Update- akcje zaawansowane- odinstalowanie wskazanej wersji produktu. Od wersji Comarch ERP XL 2021.0 oraz Comarch POS 2021.0 do współpracy między systemami konieczne będzie wykorzystywanie nowych komponentów: Comarch POS Agent oraz Comarch  POS Agent Broker. Komponenty te należy zainstalować za pomocą Comarch ERP AutoUpdate wraz z instalacją Comarch  POS. Instalacja komponentów POS Agent oraz POS Agent Broker została opisana w instrukcji dostępnej pod adresem https://pomoc.comarch.pl/pos/documentation/comarch-retail-pos-broker/

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.
Uwaga
Aby dodać usługę synchronizacji konieczne jest uruchomienie modułu Administrator oddziałów w trybie Administratora
 
Komunikat przy dodawaniu usługi Comarch POS
  Na zakładce [Oddziały] należy przypiąć te oddziały, które mają być synchronizowane za pomocą danej usługi. Możliwe jest dodawanie wielu usług w przypadku instalacji posiadających dużą ilość oddziałów z wieloma stanowiskami.
Okno konfiguracji Usługi synchronizacji POS
Wskazówka
Od wersji Comarch ERP XL 2020.2 po wycięciu sesji usługi synchronizacji Comarch POS, co 30 sekund będzie sprawdzała czy bieżąca sesja jest aktywna, jeśli nie jest to nastąpi wylogowanie i ponowne zalogowanie wraz z utworzeniem nowej sesji.

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:
Komunikat wyświetlany, gdy usługa POS Agent jest odinstalowana
Po naciśnięciu przycisku OK otworzy się okno konfiguratora:
Konfigurator usługi POS Agent
W konfiguratorze należy podać:
  • 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
Usługę instaluje się za pomocą przycisku Instaluj. Poprawność wcześniej wprowadzonych danych można zweryfikować za pomocą przycisku Sprawdź. Natomiast przycisk Rejestruj służy do rejestracji usługi POS Agent. W celu weryfikacji tego, czy proces zakończył się poprawnie, należy przejść na zakładkę [POS Agent] na oddziale w Comarch ERP XL i sprawdzić, czy zaktualizowane zostały wpisy w polach: Host, Port i GUID.

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
Uwaga
Aktualizacja stanów realizowana jest w oparciu o stany handlowe dostępne.

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
W celu sprawdzenia pod jakim adresem została udostępniona usługa Comarch POS Agent Broker należy:
  • 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
Więcej informacji znajduje się w dokumentacji Comarch POS: https://pomoc.comarch.pl/retail/documentation/comarch-retail-pos-broker/
Uwaga
  http://localhost/POSAgentBroker jest to domyślny adres w przypadku głównego profilu programu Comarch ERP Auto Update. 

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.
Dodawanie rejestru bankowego
Rejestr kasowy musi być oddziałowy. Należy także przypisać operacje – przychodowe i rozchodowe przykładowo rozchód, przychód, które także powinny mieć zaznaczony czek „oddziałowe”.
Dodawanie operacji kasowo/bankowych
Na zakładce Raporty, przyciski są wyszarzone. Nie ma możliwości dodania raportu, ponieważ jest on tworzony samoistnie podczas dodawania operacji w systemie. Raport tworzy się gdy zsynchronizuje się pierwszy wpis do danego rejestru (KP/KW wystawione w POS) lub nastąpi synchronizacja dokumentu, który jest oznaczony jako opłacony (czyli na def. stanowiska POS nie ma zaznaczonego parametru „bez KP/KW” dla danego rejestru). Do tej pory raporty kasowe do rejestrów oddziałowych Comarch POS były otwierane podczas przesłania pierwszego zapisu kasowego i zamykane ręcznie po stronie Comarch ERP XL. Po zamknięciu raportu, przy kolejnej synchronizacji, otwierany był kolejny raport. Aktualnie można ustawić na stanowisku aby raport kasowy otwierany był zgodnie z datą i godziną otwarcia sesji na danym stanowisku. Kolejne zapisy i rozliczenia dodawane są do otwartego raportu. W momencie zamknięcia sesji w Comarch POS (zamknięcie dnia), w XL sprawdzane są zapisy kasowe i jeśli wszystkie zostały dodane do raportu, raport jest zamykany zgodnie z datą i godziną zamknięcia sesji na stanowisku POS. Podczas zamykania raportu następuje sprawdzenie czy wszystkie zapisy kasowe oraz rozliczenia dokumentów zostały dodane. Raport pozostaje niezamknięty do czasu wczytania poprawnie wszystkich zapisów z danego okresu (od otwarcia do zamknięcia sesji). Dodatkowo umożliwiono ręczne zamykanie raportów, które zostały otwarte na podstawie sesji na stanowisku POS, jednakże opcje te należy stosować awaryjnie. W polu Numer raportu na raporcie kasowym otworzonym na podstawie sesji zapisywany jest numer sesji na stanowisku POS (wpis z tabeli SalesReports.Sessions pola Numberstring). Jeśli poprzedni raport został zamknięty ręcznie, nowy raport w polu Numer raportu będzie wyświetlał numer dokumentu. Na przesłanym zapisie kasowym w opisie dodana została informacja odnośnie formy płatności.
Rejestr kasowy zakładka Raporty
W przypadku rejestru bankowego nie zaznaczamy czeku „oddziałowy”. Jeśli POS ma mieć określoną inną grupę kontrahentów, należy utworzyć ją w XL. Taka grupa będzie w późniejszych krokach wskazywana w kreacji nowego oddziału POS. Tak samo odnośnie grupy towarów.
Lista kontrahentów
Należy także dodać odpowiednie uprawnienia Operatorowi co szczegółowo opisane jest w Parametry operatorów (moduł Administrator). Aby dodać nowy oddział typu Comarch POS należy:
  • 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.
Kreacja nowego oddziału Comarch POS:
Kreator nowego oddziału
W pierwszym kroku kreatora należy wskazać jakie typy dokumentów mają być obsługiwane w POS – obecnie do wyboru są paragony i faktury oraz wybrać domyślny magazyn. Należy wskazać zwykły magazyn nie oddziałowy.
Kreator nowego oddziału krok 1
W drugim kroku należy ustawić parametry konfiguracyjne, które zostaną przesłane na wszystkie stanowiska POS danego oddziału.
Kreator nowego oddziału krok 2
  • 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.
W trzecim kroku należy określić domyślne grupy towarów i kontrahentów, z których dane będą przekazywane do oddziału POS oraz domyślny cennik. Wybranie Grup głównych spowoduje wysyłanie wszystkich towarów i kontrahentów do oddziału. Oddzielnie należy wskazać grupę, do której będą trafiać kontrahenci dodani w POS.
Kreator nowego oddziału krok 3
Uwaga
Aby kontrahenci zostali przesłani do Comarch POS oprócz wskazania odpowiedniej grupy powinni mieć ustawioną cenę oraz formę płatności która jest wysłana do POS, w przeciwnym wypadku kontrahent nie zostanie przesłany do POS.
W kroku czwartym dodawane jest Centrum w Strukturze firmy. Przyciskiem plusa należy dodać nowe Centrum, uzupełnić nazwę, opis, przypisać odpowiednią Pieczątkę firmy. Jeśli o w oddziale POS powinny być inne dane niż w centrali wówczas należy utworzyć nową Pieczątkę firmy dedykowaną dla oddziału POS.
Kreator nowego oddziału krok 4
Następnie należy dodać wszystkie rejestry, które będą później dostępne na oddziale. Rejestry typu kasa musza być oddziałowe. Kolejna zakładka Serie- jest wyszarzona, ponieważ serię dodajmy w ustawieniach oddziału w kolejnych krokach. Ceny- należy dodać dostępne cenniki, Rejestry VAT- sprzedaż i zakup oraz kolejno możliwość wybrania magazynów i operatorów. Przed zapisaniem Centrum konieczne jest ustalenie na zakładce [Formy płatności], które z form płatności mają być widoczne w oddziale. Należy edytować żądaną formę płatności oraz zaznaczyć parametr – Dostępna w oddziale. Po zapisaniu okna Centrum następuje powrót do kreatora i zakończenie kreacji Oddziału. Po zakończeniu kreacji Oddziału konieczne jest zdefiniowanie kolejnych ustawień w systemie.

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
Oddział zakładka Ogólne
Zakładka [Towary] prezentuje grupy wysyłanych towarów oraz cenę domyślną. Dodano dwie tabele, w których można zdefiniować grupy szybkiej sprzedaży, czyli grupy, które pojawią się bezpośrednio na interfejsie POS a po kliknięciu w nie wyświetlane będą towary z tej grupy oraz towary ulubione, czyli te najczęściej wybierane do sprzedaży.
Oddział zakładka Towary

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.

Grupy szybkiej sprzedaży
Do listy tej należy dodać wszystkie grupy, które mają być prezentowane w POS jako grupy do szybkiego dostępu towarów. Towary, które mają przypisaną daną grupę jako grupę domyślna na zakładce [Grupy] będą prezentowane w POS po kliknięciu w określony kafelek prezentujący określoną grupę towarową. W konfiguracji grup do POS możliwe jest ustawienie kolejności wyświetlania grup w POS za pomocą przycisków: Przesuń o jedną pozycję w górę lub w dół  . Dodane grupy można usuwać pojedynczo lub zbiorczo zaznaczając odpowiednie pozycje. W każdym momencie można tez wzbogacić listę o nowe pozycje. Ustawiona kolejność przycisków grup przesyłana jest na wszystkie stanowiska POS przypisane do oddziału. Aby prezentacja grup w POS była wygodna i czytelna dla operatora, możliwe jest również wysłanie grafiki (obrazu), która będzie prezentowana na odpowiednim kafelku w POS. W tym celu należy na karcie grupy, na zakładce [Załączniki] dodać załącznik o typie obraz i zaznaczyć na nim parametr POS.
Obraz przypisany do grupy szybkiej sprzedaży wysyłany do POS

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.
Uwaga
Po dodaniu jakiejkolwiek Grupy szybkiej sprzedaży lub Ulubionego towaru nie będzie możliwości zmiany drzewa towarów wysyłanych do POS, czyli parametr Wysyłaj towary z grupy będzie nieaktywny do zmiany. Aby zmienić zakres wysyłanych towarów do POS należy najpierw usunąć pozycje z obu list

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.
POS – widok listy grup, do których przypisany jest towar
Dzięki przesyłaniu powiązania z wszystkimi grupami, mogą być wykorzystywane promocje na grupy inne niż domyślna. Dla towaru zostanie naliczona każda promocja na grupę, do której należy towar (o ile grupa ta jest przesyłana do POS). Na zakładce [Kontrahenci] znajduje się tylko konfiguracja związana z importem i eksportem kontrahentów.
Oddział zakładka Kontrahenci
Oddział zakładka Kontrahenci
W sekcji Kontrahenci ustawione są grupy kontrahentów, czyli wysyłanych do POS oraz importowanych z POS. W obszarze ,,Limit kredytowy'' znajdują się parametry służące do obsługi limitów kredytowych. Funkcjonalność ta jest szczegółowo opisana w rozdziale: Obsługa limitów kredytowych.
  • 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.
Oddział zakładka Waluty
Aktualnie walutą domyślną jest PLN- bez możliwości zmiany. Zakładka [MMW/MMP] prezentuje ustawienia dotyczące przesunięć międzymagazynowych
Oddział zakładka MMW/MMP
Automatyczne generowanie PW/RW przy niezgodnościach podczas przyjęcia dostawy - na podstawie dokumentu PRP generowane są dokumenty PW/RW wynikające z innych ilości zrealizowanych na MMP. Maksymalna ilość towarów dla ręcznie tworzonego MM- (MMW)- maksymalna ilość pozycji na dokumencie wystawianym w Comarch POS,  zostanie wyświetlony odpowiedni komunikat dotyczący blokady dodania większej ilości elementów niż wskazana w tym parametrze. Przy konfiguracji oddziału na zakładce [Parametry] został dodany parametr: 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. 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. 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 - W celu uaktywnienia opcji logowania za pomocą karty, w konfiguracji stanowiska POS na formularzu Oddziału Comarch POS został dodany parametr Logowanie za pomocą karty. Parametr domyślnie nie jest zaznaczony.
Oddział POS zakładka Parametry
Aby logowanie za pomocą karty było możliwe, konieczne jest powiązanie operatora z pracownikiem oraz ustalenie numeru karty do logowania w Comarch POS. Na karcie operatora na zakładce [Ogólne] należy przypisać pracownika. System kontroluje przypisanie pracownika do operatora pracującego w POS i nie pozwala na dodanie tego samego pracownika do wielu kart operatorów. Należy pamiętać, że po przypisaniu pracownika do operatora, do Comarch POS będą wysyłane dane osobowe pracownika a nie operatora, dlatego na karcie pracownika należy uzupełnić imię i nazwisko.
Powiązanie operatora z pracownikiem
Dane karty do logowania należy zdefiniować na karcie pracownika na zakładce [RCP]. Należy dodać nową kartę RCP lub skorzystać z istniejącej. Na formularzu karty należy wypełnić jej numer oraz zaznaczyć parametr Karta do logowania w Comarch POS.
Nowy parametr dla karty RCP pracownika
Tylko jedna karta może mieć zaznaczony parametr opisany powyżej. W przypadku karty do logowania w POS ignorowane są ustawienia dotyczące okresu obowiązywania karty. Po ustawieniu powyższych danych parametr w konfiguracji oddziału dotyczący logowania oraz informacje o numerach kart pracowników przesyłane są do wszystkich stanowisk POS i operatorzy mogą logować się z wykorzystaniem czytnika kart. Obsługa inwentaryzacji - parametr odpowiedzialny za wykonanie operacji związanych z inwentaryzacją w oddziałach. 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.

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).

Uwaga
Funkcjonalność ta będzie dostępna od wersji 2025.0 Comarch POS.
Ignoruj termin płatności ustawiony na dokumencie ZS .Parametr dotyczący ustawiania terminu płatności na dokumentach FS lub PA wystawianych do ZS. Domyślnie jest odznaczony. Jeśli parametr zostanie zaznaczony wówczas podczas generowania faktury lub paragonu do zamówienia, termin z zamówienia zostanie zignorowany i ustawiony na podstawie ustawień karty kontrahenta. Warunkiem do ustalenia terminu na dokumencie handlowym wg powyższego jest ustawienie w konfiguracji stanowiska oddziału POS przynajmniej jednej płatności odroczonej czyli takiej, dla której nie są generowane automatyczne rozliczenia KP/KW.W Systemie Comarch POS na formularzu faktury prezentowana jest informacja o ustawionym terminie płatności. Informacja o terminie płatności przekazywana jest do Comarch ERP XL i odpowiednio zapisana na zakładce [Płatności] dokumentu handlowego. Rodzaj noty dla importowanych not debetowych- należy wybrać rodzaj noty, zgodnie z którym będzie dodawana nota po jej zaimportowaniu z POS do XL Na zakładce [Stanowiska POS] należy dodać oddzielne stanowiska dla każdego punktu sprzedaży detalicznej pracującej z wykorzystaniem Comarch POS. Jeśli uprzednio nie został dodany rejestr kasowy/bankowy należy go zdefiniować przed dodaniem stanowiska oraz ustalenie na nim na zakładce [Operacje] odpowiednich rodzajów operacji (przychodowych i rozchodowych). Rejestr bankowy nie może mieć zaznaczonego czeku „oddziałowy”. W systemie można zdefiniować kilka stanowisk POS. Dla nowo dodanego stanowiska należy przypisać inny rejestr, który uprzednio musi być dodany w rejestrach kasowo bankowych oraz wybrany przy kreowaniu nowego oddziału w zakładce „rejestry”.
Wybór rejestru
Na zakładce [Synchronizacja] należy ustawić operatora z uprawnieniami do wystawiania dokumentów, który jest konieczny do zapisywania dokumentów i innych przesłanych z POS danych. Konieczne jest również wpisanie hasła, jeśli operator je posiada. Ten sam operator musi być dodany na zakładce [Operatorzy] Centrum powiązanego z odziałem POS.
Uwaga
Do ustawienia danych Operatora na zakładce Synchronizacja konieczne jest uruchomienie modułu Administrator Oddziałów w trybie Administratora. Dla każdego oddziału należy wybrać innego operatora odpowiadającego za synchronizację.
Na zakładce [POS Agent] dla każdego istniejącego oddziału Comarch POS należy zdefiniować Agenta, definiuje się również magazyny przypisane do danego oddziału Comarch POS, więcej na temat opisano w rozdziale Zmiany w konfiguracji oddziałów Comarch POS. Dla każdego stanowiska POS należy ustawić, kod, nazwę, serię. Seria musi być oddziałowa. Należy również pamiętać, aby dla ustalonej serii zaznaczyć na zakładce [Dokumenty] odpowiednie pozycje, czyli FS i PA. Seria musi mieć przypisane rejestry zakupu i sprzedaży. Należy sprawdzić czy Seria ustawiła się na centrum oraz na definicjach dokumentów FS i PA jako domyślna. W tabeli Formy płatności dostępne są te formy, które w Centrum mają zaznaczony parametr Dostępna w oddziale. Dla każdej formy płatności można ustalić nazwę, która będzie prezentowana w POS, rejestr, do którego mają trafiać zapisy wynikające z zapłaty daną formą, ustawić parametr Bez KP/KW, który określa, czy dana forma płatności ma powodować powstawanie zapisów KP/KW oraz parametr Wyczyść po zamknięciu sesji. Na stanowisku można przypisać tylko jeden rejestr kasowy oddziałowy, ten rejestr można przypisać do kilku form płatności. Natomiast można przypisać kilka rejestrów bankowych.
Stanowisko POS- Ogólne
Bez KP/KW oznacza, że do dokumentów z daną płatnością nie będą generowane dokumentu zapłaty KP/KW czyli dokument nie będzie rozliczony Wyczyść po zamknięciu sesji powoduje zerowanie stanu kasy dla danej formy płatności po zamknięciu dnia. Zaznaczenie tego parametru jest niedostępne dla gotówki, dla której saldo zamknięcia równe jest saldu otwarcia na kolejny dzień.

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
Po pierwszej synchronizacji stanowiska z Comarch POS następuje blokada zmiany typu aplikacji. W kontrolce Licencja użytkownik ma możliwość wyboru pomiędzy opcjami:
  • Front Office
  • Back Office
  • Front Office + Back Office
Da nowo dodawanych stanowisk oraz stanowisk oddziałów już istniejących standardowe ustawienie to:
  • Typ aplikacji: POS
  • Licencja: Front Office + Back Office
Na zakładce [Parametry] należy ustawić parametry związane z tym konkretnym stanowiskiem POS.
Stanowisko POS- Parametry
Stanowisko POS- Parametry
  • 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.
Otwarcie dnia w Comarch POS
Okno otwarcia dnia zostanie otworzone każdorazowo jeśli poprzednie zamknięcie aplikacji zakończyło się podsumowaniem dnia i opcją „zamknij dzień”.
  • 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.
Na zakładce [Urządzenia zewn.] należy wybrać rodzaj drukarki fiskalnej oraz określić, czy jest używana oraz w jaki sposób szuflada kasowa.
Stanowisko POS- Urządzenie zewn.
Na zakładce [Operatorzy] należy dodać tych operatorów, którzy będą mieli prawo pracy na danym stanowisku POS. Operator dodany do stanowiska POS automatycznie dodawany jest do Centrum powiązanego z danym oddziałem. Wprowadzono kilka udogodnień pozwalających w szybszy sposób przypisywać operatorów do POS.
  • Z poziomu stanowiska POS
Aktualnie nie jest konieczne wcześniejsze dodanie operatora do centrum firmy. Na oknie stanowiska na zakładce [Operatorzy] można wybrać opcję z menu rozwijanego przy przycisku: Dodaj operatora z listy wszystkich operatorów. Po wybraniu tej opcji zostanie wyświetlona lista wszystkich operatorów bez względu na to czy zostali przypisani do powiązanego centrum firmy. Po zaznaczeniu wybranych operatorów zostaną oni dodani do Stanowiska POS i równocześnie do centrum firmy, o ile do tej pory nie byli dodani.
Dodawanie operatorów do stanowiska POS
Podczas odpinania operatorów ze stanowiska POS, nie są oni usuwania z centrum firmy.
  • Z poziomu karty Operatora
Na karcie Operatora, na zakładce [POS] dodano podzakładkę [Stanowiska POS]. Na zakładce tej prezentowane są wszystkie stanowiska, na których może pracować operator bez względu na to, do którego Sklepu (oddziału POS) należą. Na liście prezentowane są kod i nazwa stanowiska oraz nazwa Centrum powiązanego z oddziałem POS. Z poziomu tego okna możliwe jest równoczesne przypisywanie operatora do wybranych stanowisk. Po wybraniu opcji Przypnij operatora do stanowisk POS, zostanie wyświetlona lista w formie drzewa, gdzie stanowiska POS pogrupowane są wg oddziałów. Możliwe jest zaznaczenie dowolnych stanowisk i przypisanie ich do operatora. Ctrl+A spowoduje zaznaczenie wszystkich stanowisk. Zaznaczenie linii na poziomie oddziału spowoduje zaznaczenie wszystkich stanowisk danego oddziału
Dodawanie stanowisk POS do operatora
Jeśli dany operator nie był jeszcze przypisany do centrum firmy, którego stanowiska są przypinane, automatycznie zostanie dodany do centrum. Jeśli będzie to jedyne centrum operatora, zostanie przypisane jako centrum domyślne. Jeśli dodawane stanowisko będzie przypisane do innego centrum, wówczas pojawi się komunikat z pytaniem czy przypisać operatora do danego centrum. Jeśli odpowiedź będzie twierdząca wówczas stanowisko POS zostanie przypięte do operatora jak również zostanie przypisane odpowiednie centrum. Po odpowiedzi NIE, stanowisko ani centrum nie zostaną przypisane do operatora. Na oknie komunikatu dodano dodatkowy parametr pozwalający na wyłączenie pytania przy dodawaniu kolejnych stanowisk. Pytanie pojawi się ponownie po kolejnym zalogowaniu do sytemu, przy wystąpieniu analogicznej sytuacji. Jeśli operator jest już powiązany z danym stanowiskiem POS, podczas dodawania stanowisk zostanie ono pominięte bez dodatkowego komunikatu. W oknie Wybór stanowisk POS wyświetlanym podczas przypisywania stanowisk POS do karty operatora, dodano pole filtra. Po wpisaniu fragmentu kodu stanowiska lista jest zawężana do pozycji spełniających warunek filtra, następnie korzystając z klawiszy <Ctrl+A> można szybko zaznaczyć stanowiska i przypisać je do karty operatora. Po dodaniu stanowisk, filtr jest czyszczony i można przystąpić do wyszukiwania kolejnych stanowisk. Z poziomu okna operatora możliwe jest też odpinanie stanowisk od operatora. Możliwe jest wskazanie wielu stanowisk i seryjne ich odpięcie. Po tej operacji operatorzy nie są usuwani z centrum firmy, do którego byli przypisani, dzięki temu można łatwej ich dodać do innego centrum (oddziału Comarch POS).
  • Z poziomu listy operatorów
Na liście Operatorów dodano przycisk Przypnij operatorów do stanowisk POS, dzięki któremu możliwe jest równoczesne przypisywanie wielu operatorów do wielu stanowisk POS. Po zaznaczeniu wybranych operatorów, należy wybrać opcje jw., a następnie wskazać stanowiska wg zasad opisanych wcześniej. Zasady wiązania operatorów ze stanowiskami POS są analogiczne jak w przypadku wykonywania tego z karty operatora, tyle, że dotyczą wielu operatorów. Na zakładce [Wydruki] znajdują się wszystkie wydruki wykorzystywane w Comarch POS. Po podniesieniu wydruku możliwe jest oznaczenie, czy dany wydruk ma być wysyłany do POS.
Stanowisko POS- Wydruki
Domyślnie parametr ten jest zaznaczony dla wydruków: Faktura sprzedaży, Paragon, Korekta ilościowa faktury sprzedaży, Korekta ilościowa paragonu, Operacje kasowe, Zamknięcie zmiany kasjera. Na zakładce tej znajduje się również parametr Drukowanie na domyślnej drukarce systemowej. Po jego zaznaczeniu nie będzie konieczności wskazywania drukarki, wydruk od razu trafi na drukarkę domyślna.
Uwaga
Stanowisko POS, dodane na oddziale musi mieć ustawione:
  • 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.
Konfiguracja praw operatorów
Na zakładce tej można też przechowywać Profile POS. Profil POS, czyli własny zdefiniowany wygląd ekranu można wyeksportować z POS a następnie zapisać na liście Profili na wzorcu operatora. Dodane do listy profile wysyłane są do wszystkich operatorów przypisanych do danego wzorca. Na karcie grupy operatorów, na zakładce POS został dodany domyślny profil o nazwie XL_POS_WersjaERPXL przygotowany dla instalacji Comarch POS współpracujących z Comarch ERP XL. Zdefiniowany domyślnie profil (motyw interfejsu) został tak przygotowany, aby po jego zsynchronizowaniu do POS dostępne były tylko te opcje, które mogą być realizowane w połączeniu POS z XL. Użytkownicy, którzy wcześniej zdefiniowali własny profil, nadal pozostaną przy tym ustawieniu. Dla nich nie będzie dodawany domyślny profil w zależności od wersji XL_POS_WersjaERPXL. Jeśli poprzednio był wykorzystywany profil XL_POS_WersjaERPXL należy usnąć go z listy, a następnie dodać nowy profil. Pozostawienie dwóch profili będzie wiązało się z koniecznością wyboru profilu podczas logowania do Comarch POS. Po wybraniu profilu z listy dostępnych jako Typ należy wybrać Profile POS. W przypadku używania własnych profili nie ma konieczności zmiany profilu na najnowszy, warto jednak zadbać o odkrycie w menu głównym POS kafla Back office, w celu udostępnienia opcji uzgadniania stanów towaru. Dla nowych instalacji Comarch POS aktualny profil podpowiada się domyślnie.
  • 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
Wskazówka
Zakazy dotyczące dokumentów ustawia się na Wzorcu operatora

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.
Uwaga
Aby wartość dokumentów, naliczonych rabatów była zgodna, operator wskazany na synchronizacji oddziału powinien mieć zaznaczony parametr Bez ograniczeń dla Maksymalnego rabatu na dokumentach sprzedaży.

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.

POS Agenta w XLu

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.

Uwaga
Każdy oddział Comarch POS musi posiadać własny magazyn lub magazyny. Magazyn przypisany do jednego POS Agenta nie może zostać przypisany do innego POS Agenta.

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.
Menu główne Comarch POS
Uzgodnienie stanów będzie również konieczne w przypadku podpięcia w konfiguracji oddziału na zakładce [POS Agent] magazynu, na którym są niezerowe stany towaru. Przycisk Uzgadniania stanów magazynowych można wykorzystać również w sytuacji, gdy z jakiegokolwiek powodu stany towaru w POS nie zgadzają się z tymi w Systemie XL. Po wykonaniu operacji stany towarów w POS będą zgodne ze stanami handlowymi dostępnymi w Systemie XL. Stany towaru w POS przechowywane są aktualnie w podziale na magazyny. Prezentowana jest również informacja o ilości rezerwacji zasobowych. Rezerwacje te wpływają na stan towaru w POS.

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.
Wskazanie domyślnego kontrahenta
Uwaga
Wskazany na definicji PA kontrahent będzie ustawiany jako domyślny zarówno dla paragonów, jak i faktur.

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.
Kody kreskowe własne
Uwaga
Zdefiniowane kody kreskowe są przesyłane dla jednostek dodatkowych
Od wersji 2020.2.1 została udostępniona funkcjonalność obsługi kodów wagowych analogiczna jak w Comarch ERP XL.

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.
Ustawienie jednostki proponowanej dla sprzedaży
Jeśli na żadnej z jednostek pomocniczych nie zostanie ustawiony powyższy parametr, wówczas jednostką domyślną będzie jednostka podstawowa. Domyślna jednostka działa w POS nieco inaczej niż w Systemie XL. Jeśli towar ma przypisaną jednostkę domyślną inną niż podstawowa, wówczas jednostka domyślna zostanie podstawiona na elemencie dokumentu, o ile towar zostanie dodany z listy towarów, bądź wyszukany po kodzie zwykłym. W przypadku, gdy towar ma przypisany kod kreskowy podstawowy (powiązany z jednostką podstawową), podczas dodawania towaru za pomocą tego kodu kreskowego, zostanie podstawiona jednostka podstawowa, a nie domyślna. W przypadku gdy dla towaru zdefiniowano więcej jednostek pomocniczych i mają one przypisane własne kody kreskowe, podczas dodawania towarów do dokumentu za pomocą tych kodów, podstawiona zostanie jednostka powiązana z wybranym kodem, a nie 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).
Karta magazynu- Generowanie MMP po stronie 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.
Dokument MMP przycisk PRP
Po wybraniu przycisku PRP wyświetlany jest raport rozbieżności dla danego przesunięcia, gdzie prezentowane są wszystkie pozycje wraz z informacjami o ilości wydanej i rzeczywiście przyjętej. Dodatkowo rozbieżności (jeśli występują) prezentowane są w kolumnach Braki lub Nadwyżki. W przypadku wystąpienia niezgodności użytkownik musi sam zdecydować w jak sposób chce skorygować powstałe niezgodności. Np. w przypadku nadwyżki może wystawić nowy dokument MMW na ilość prezentowaną w kolumnie Nadwyżka.
Raport rozbieżności do MMP
Dla raportu został również przygotowany wydruk prezentujący zarejestrowane rozbieżności.
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. Dopiero po wygenerowaniu dokumentu MMP towar trafi na magazyn, do którego został zwrócony.
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ętrznePo 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
Po zmianie statusu zamówienia, informacja o tym przesyłana jest do POS, gdzie zamówienie zmienia swój status na zgodny z ustawionym w XL. Zamówienia przesłane z POS nie mogą być:
  • 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.
Uwaga
W polu Magazyn źródłowy nie należy ustawiać opcji <Wszystkie> gdyż dokumenty z nieokreślonym magazynem nie będą mogły być przesłane na inne stanowiska 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)
Słownik ten wypełniony jest wartościami predefiniowanymi, ale można go rozbudowywać o kolejne pozycje zgodnie z potrzebami użytkownika.
  • Statusy płatności na zamówieniu w POS (moduł Administrator, Listy/Słowniki kategorii/Transakcje)
Słownik ten wypełniony jest wartościami predefiniowanymi, ale można go rozbudowywać o kolejne pozycje zgodnie z potrzebami użytkownika.

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.
Wskazówka
Do POS nie będą wysyłane zamówienia, gdzie dla jednej pozycji towaru zostało utworzonych wiele rezerwacji z różnymi partiami towaru. Jeśli zaistnieje potrzeba wystawiania i wysyłania takiego zamówienia do POS, to dla każdej partii towaru o różnych wartościach należy utworzyć odrębne pozycje zamówienia.
Aby zamówienie wystawione w XLu pojawiło się na danym stanowisku POS należy na liście zamówień w POS nacisnąć przycisk Odśwież. Zamówienie importowane są również podczas wykonywania pełnej synchronizacji na danym stanowisku POS.

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
Aby wystawianie dokumentów PW i RW w POS było możliwe wprowadzono szereg zmian, które opisano poniżej.

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.
Wybranie w kreatorze nowych typów dokumentów
W przypadku użytkowników, którzy posiadają już skonfigurowane oddziały Comarch POS, koniecznym jest zaznaczenie na definicji dokumentów PW i RW w centrum firmy, z którym jest powiązany oddział Comarch POS, parametru Wystawianie i edycja.
Włączenie możliwości wystawiania dokumentów PW/RW
Informacje o możliwości wystawiania dokumentów PW i RW są przekazywane do POS wraz z:
  • 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.
Okno definicji przyczyny wystawienia PW, RW

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).
Parametry na definicji dokumentu PW
Dokumenty PW i RW wystawione w POS nie mogą być anulowane w Comarch ERP XL, natomiast mogą być anulowane w Comarch POS a informacja o tym jest przesyłana do XL, gdzie następuje również anulowanie dokumentu.

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.
Ustalanie typów dokumentów podczas kreacji oddziału Comarch POS
Jeśli użytkownicy mają już zdefiniowane oddziały POS, aby umożliwić wystawianie dokumentów PZ na stanowiskach POS konieczne jest zaznaczenie opcji Wystawianie i edycja na definicji dokumentu PZ w kontekście centrum powiązanego z oddziałem POS.
Aktywacja obsługi PZ na definicji dokumentu
Na definicji dokumentu PZ automatycznie ustawiane są następujące parametry:
  • 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.  
Dodawanie dokumentu PZ w Comarch POS
Podczas wystawiania dokumentów PZ w POS możliwe jest:
  • 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)
Wskazówka
W przypadku braku ustalenia ceny zakupu w POS, podczas importu dokumentów ceny na pozycjach PZ zostaną ustalone standardowo jak podczas dodawania dokumentów ręcznie w XLu (wg ostatniej ceny zakupu lub ceny wg kontrahentów, jeśli jest ustalona).
Wskazówka
Jeśli pracownicy na stanowiskach POS nie będą wprowadzać cen na podstawie dokumentu zakupu czyli będą rejestrować dokumenty PZ tylko ilościowo, warto odznaczyć na definicji dokumentu PZ dla centrum powiązanego z oddziałem POS parametr Ustalona wartość dostawy. Możliwe bedzie wówczas uzupełnienie lub zmodyfikowanie cen na zaimpotrowanych dokumentach PZ.
  • 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 
Dokumenty PZ wystawione w POS nie podlegają edycji, korekcie ani nie mogą być anulowane na stanowisku POS. Zatwierdzenie dokumentu PZ w POS powoduje zwiększenie stanów towaru na wybranym magazynie POS z wykorzystaniem usługi Comarch POS Agent – zwiększenie ilości towaru widoczne jest na wszystkich stanowiskach POS. Po zatwierdzeniu dokumentu PZ trafia on automatycznie do bazy Comarch ERP XL i zwiększa stany handlowe towaru. Zwiększenie stanów magazynowych następuje po wygenerowaniu do PZ dokumentu magazynowego; wygenerowanie dokumentów magazynowych zależy od ustawień na definicji PZ dla centrum powiązanego z oddziałem POS. Po stronie systemu Comarch ERP XL dokument może być korygowany za pomocą dokumentów PZK natomiast nie jest możliwe jego anulowanie. Na podstawie dokumentu PZ mogą być tworzone dokumenty handlowe (spinacz nagłówkowy lub elementowy); dokumenty te nie są synchronizowane do Comarch POS.

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.
Ustalanie typów dokumentów podczas kreacji oddziału Comarch POS
Ustalanie typów dokumentów podczas kreacji oddziału Comarch POS
Jeśli użytkownicy mają już zdefiniowane oddziały POS, aby umożliwić wystawianie dokumentów RLS na stanowiskach POS konieczne jest zaznaczenie opcji Wystawianie i edycja na definicji dokumentu RLS w kontekście centrum powiązanego z oddziałem POS. Na definicji dokumentu RLS dodano nowy parametr o nazwie: Domyślny termin rozpatrzenia reklamacji w Comarch POS, którego wartość jest ustawiona na 14 dni. Użytkownik może tę wartość zmienić; na jej podstawie będzie ustawiona data rozpatrzenia reklamacji, która zostanie wyliczana jako data wystawienia RLS + ilość dni wskazana na definicji dokumentu.
Definicja dokumentu RLS pod kątem jego obsługi w Comarch POS
Definicja dokumentu RLS pod kątem jego obsługi w Comarch POS

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
Przyczyna reklamacji zapisywana jest w XLu na pozycji, w polu Przyczyna reklamacji, w postaci treści na podstawie wybranej wartości ze słownika przesyłanego do POS. Daty usterki oraz rozpatrzenia reklamacji zapisywane są w XLu na zakładce [Nagłówek] w polu Opis.
Daty umieszczone w polu Opis na dokumencie reklamacji w XLu
Daty umieszczone w polu Opis na dokumencie reklamacji w XLu
Reklamacje wystawione w POS trafiają do systemu Comarch ERP XL ze stanem Zatwierdzona i statusem Rozpatrywana. Dokument RLS wystawiony w POS może zostać od razu uznany. Po zatwierdzeniu dokumentu RLS na stanowisku POS trafia on automatycznie do bazy XL ze stanem Rozpatrzona i statusem Uznana.

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
Na reklamacjach pochodzących z POS możliwe jest wykonywanie innych akcji oraz generowanie dokumentów takich jak korekta do PA/FS, RLZ czy dokumenty magazynowe, jednak informacja o tym nie jest synchronizowana do POS. Aktualizacja reklamacji w Comarch POS następuje po naciśnięciu przycisku Odśwież na liście reklamacji. W XLu możliwe jest również Otwarcie zamkniętej wcześniej reklamacji. Po otwarciu reklamacji, jest ona aktualizowana w POS i otrzymuje stan zgodny ze stanem w XLu czyli W realizacji. Po otwarciu reklamacja może być na powrót rozpatrywana. Reklamacje aktualizowane w Xlu są przekazywane tylko na stanowisko, na którym zostały wystawione. Nie ma możliwości pobrania reklamacji na innym stanowisku POS. Taka funkcjonalność będzie realizowana w kolejnych wersjach systemu.

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.
Uwaga
Należy zwrócić uwagę czy karta towaru o typie bon powiązana z rodzajem przesyłanych bonów jest wysyłana do POS, czyli czy zawiera się w drzewie grup towarów wysyłanych do PO

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
Ustawienie rodzaju noty na definicji rodzaju bonu
Na definicji oddziału Comarch POS, na zakładce [Parametry] należy wybrać rodzaj noty, zgodnie z którym będzie dodawana nota po jej zaimportowaniu z POS do XL. Jeśli podczas sprzedaży zostanie wybrany bon o rodzaju powiązanym z definicją not, wówczas system POS automatycznie ustawi podczas sprzedaży tego bonu rodzaj dokumentu – nota memoriałowa NM. Po zatwierdzeniu okna sprzedaży do listy dokumentów zostanie dodana nota. Jeśli na dokumencie sprzedaży znajda się towary i bony lub bony powiązane i niepowiązane z notami, wówczas podczas zatwierdzania sprzedaży system automatycznie wygeneruje dwa dokumenty:
  • paragon na towary i bony niepowiązane z notami
  • notę na bony powiązane z definicją noty
Dla takiej sprzedaży płatność będzie wspólna odpowiednio rozliczona na obu dokumentach. Wystawione noty trafią do Comarch ERP XL na listę not memoriałowych w menu Księgowość/Noty memoriałowe. W polu rodzaj dokumentu zostanie ustawiony rodzaj noty przypisany na zakładce [Parametry] oddziału Comarch POS. Seria zostanie ustawiona zgodnie z serią zdefiniowaną na stanowisku POS. Dla każdego wydanego bonu zostanie dodana oddzielna pozycja, gdzie na zakładce [Ogólne] zarejestrowany będzie numer wydanego bonu.
Numer wydanego bonu na pozycji noty memoriałowej

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.
Uwaga
Klawiatura numeryczna nie jest dostępna w sytuacji gdy użytkownik równocześnie zaznaczy parametr: Domyślnie korzystaj z przycisków szybkiej sprzedaży.

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.

Centra na formatce towaru powiązanego
Centra na formatce towaru powiązanego
  • 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
Do POS przesyłane są zamienniki towaru, które spełniają następujące warunki:
  • 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]
Towary powiązane widoczne na karcie towaru (artykułu)
Towary powiązane widoczne na karcie towaru (artykułu)
  • 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.

Towary powiązane widoczne podczas dodawania towarów do dokumentu
Towary powiązane widoczne podczas dodawania towarów do dokumentu

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.
Ustawienie obsługi limitu kredytowego na oknie konfiguracji oddziału Comarch POS
Ustawienie obsługi limitu kredytowego na oknie konfiguracji oddziału Comarch POS

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.

Konfiguracja form płatności na stanowisku POS na potrzeby obsługi limitów kredytowych
Konfiguracja form płatności na stanowisku POS na potrzeby obsługi limitów kredytowych

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.

Parametry uwzględniania w limicie dokumentów bez płatności i zamówień
Parametry uwzględniania w limicie dokumentów bez płatności i zamówień

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.

Parametry określające działanie po zatwierdzeniu dokumentu przekraczającego limit
Parametry określające działanie po zatwierdzeniu dokumentu przekraczającego limit

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.
Ustawienie płatnika na karcie kontrahenta
Ustawienie płatnika na karcie kontrahenta

Uwaga
Limit płatnika będzie obsługiwany tylko wówczas, gdy płatnikiem będzie kontrahent. W sytuacji, gdy płatnikiem będzie bank, urząd, pracownik lub centrala, limit płatnika nie będzie uwzględniany. W takiej sytuacji limit będzie pobierany z kontrahenta.

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.

Ustawienie płatnika na karcie kontrahenta
Ustawienie płatnika na karcie kontrahenta

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).

Przypisanie akwizytora do kontrahenta
Przypisanie akwizytora do kontrahenta

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)

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/Numerktó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ę.
Pytanie o gotowość danych do zamknięcia inwentaryzacji
Pytanie o gotowość danych do zamknięcia inwentaryzacji

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.
Uwaga
Nie zaleca się dokonywania sprzedaży i rejestrowania innych dokumentów w POS na magazynach, na których trwa inwentaryzacja. Dokumenty te nie trafią do bazy systemu Comarch ERP XL, do czasu zamknięcia inwentaryzacji. Po zamknięciu inwentaryzacji dokumenty zostaną zaimportowane, ale czas ich importu może być bardzo długi, ze względu na ilość nagromadzonych dokumentów.
Uwaga
 Może też wystąpić rozbieżność w stanach towarowych pomiędzy bazami Comarch POS a Comarch ERP XL wynikająca z faktu, że XL nie aktualizuje stanów towaru podczas trwania inwentaryzacji, lecz dopiero po jej zamknięciu. Generowane są wówczas dokumenty na różnice inwentaryzacyjne odnoszące się do stanów z momentu wygenerowania arkuszy inwentaryzacyjnych (czyli nie uwzględniających dokumentów wystawiony w trakcie inwentaryzacji).

Uzgadnianie stanów towarów podczas trwania inwentaryzacji w POS

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

Wskazówka
Jeśli w poszczególnych sklepach wykorzystywane są różne typy cen, wówczas w celu poprawnego przesyłania dokumentów pomiędzy sklepami konieczne jest dodanie cenników innych sklepów w konfiguracji Centrów powiązanych z oddziałami POS.
Wskazówka
Jeśli w poszczególnych sklepach wykorzystywane są różne waluty, wówczas w celu poprawnego przesyłania dokumentów pomiędzy sklepami konieczne jest dodanie walut wykorzystywanych w innych sklepach na oknie konfiguracji oddziału POS.
Dokument wyszukany bazie Xla, automatycznie jest pobierany i zapisywany na liście dokumentów w POS. Jeśli do paragonu wystawiono fakturę, jest ona również pobierana. Dotyczy to również faktur wystawionych do tych dokumentów w Systemie Comarch ERP XL. Na liście dokumentów pojawi się zarówno paragon jak i faktura wraz z informacją o powiązaniu tych dokumentów. W przypadku paragonów z wystawionymi do nich fakturami wyszukiwanie może być realizowane zarówno po numerze paragonu jak i faktury. Paragony i faktury, do których wystawiono korekty pobierane są wraz z korektami, które są powiązane i widoczne na liście dokumentów w POS. Dotyczy to również korekt wystawionych do tych dokumentów w Systemie Comarch ERP XL. Wyjątkiem jest sytuacja gdy w XLu wystawiono korektę wartościową lub stawki VAT. Wówczas paragon czy faktura nie zostaną przekazane do Comarch POS, gdyż nie byłoby możliwe uwzględnienie tych korekt w dalszym procesie wystawiania dokumentów (kolejne zwroty lub faktura).
Uwaga
Na stanowisko POS możliwe jest pobranie dokumentów wystawionych na innych stanowiskach danego oddziału POS oraz w innych oddziałach POS. Nie ma możliwości pobierania dokumentów wystawionych w Centrali czyli bezpośrednio w bazie w Comarch ERP XL. Jest to związane z możliwościami wystawiania w Systemie XL faktur i paragonów, gdzie na jednej pozycji dokumentu może być pobranych wiele różnych partii i dostaw, podczas gdy do Comarch POS konieczne jest wskazanie jednej konkretnej partii dla każdej pozycji.
Uwaga
Nie są wyszukiwane dokumenty wystawione dla kontrahentów niezarejestrowanych w bazie POS, na którym realizowane jest wyszukiwanie ani dokumenty z pozycjami niesprzedawanymi w danym sklepie.

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.
Magazyn na korektach- W przypadku wystawiania dokumentów zwrotu, towar trafi na magazyn domyślny oddziału, na którym realizowany jest zwrot bez względu z jakiego magazynu realizowana była sprzedaż.

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.
Konfiguracja Comarch webPOS
Konfiguracja Comarch webPOS

Logowanie do Comarch webPOS

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.
Nowy typ stanowiska POS: webPOS
Nowy typ stanowiska POS: webPOS

Inne zmiany

Uwaga
Zmiany w imporcie faktur do paragonów oraz korekt paragonów i faktur. W polu Faktura na zakładce [Nagłówek] zapisywany jest numer dokumentu przesłany z Comarch POS. W przypadku faktur będących spinaczami paragonu, w XLu symbol dokumentu to RA natomiast w Comarch POS numeracja jest jednolita i wszystkie faktury posiadają symbol FS. Podobnie jest w przypadku korekt gdzie w XLu dokumenty posiadają oznaczenie FSK lub PAK, natomiast w POS odpowiednio FS i PA. Aby zachować zgodność numeracji przy wysyłce do JPK_VAT7, w polu Faktura zapisywany jest numer dokumentu z oznaczeniem jakie zostało wydrukowane na dokumencie w Comarch POS.
Uwaga
Zmiany w przesyłaniu magazynu powiązanego z definicją dokumentów FS i PA. Jeśli na formatce magazynu, na zakładce [Dokumenty] zostanie odznaczony parametr dotyczący wystawiania FS lub PA, wówczas nie będzie możliwe wystawianie tych dokumentów w POS na magazyn, który ma odznaczony dany typ dokumentu.

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

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.
Numer i typ karty kontrahenta wysyłany do Comarch POS
Numer i typ karty kontrahenta wysyłany do Comarch POS
Uwaga
Zmiana numeru karty na karcie kontrahenta spowoduje zmianę w Comarch POS. Jeśli jednak kod zostanie usunięty z pola Karta na karcie kontrahenta, nie zostanie on usunięty w Comarch POS. Nadal możliwe będzie wyszukiwanie po tym kodzie. Dodanie tego samego kodu na innej karcie spowoduje wysłanie go do POS. Podczas wyszukiwania kontrahentów zostanie odszukany kontrahent z obecnie ustawionym numerem karty oraz ten, dla którego numer był ustawiony wcześniej. Dlatego nie zaleca się usuwania numeru karty, dla kontrahentów wysyłanych do POS.

Przesyłanie jednostek wagi i miary towaru

Dla każdej jednostki miary towaru możliwe jest określenie wagi i objętości. Aby objętość lub waga towaru zostały wysłane do Comarch POS dla poszczególnych towarów, konieczne jest dodanie do listy jednostek w Comarch ERP XL, jednostek zgodnie z oznaczeniami, które są wykorzystywane do określenia wagi lub objętości. Dla każdej jednostki miary towaru możliwe jest określenie wagi i objętości. Aby objętość lub waga towaru zostały wysłane do Comarch POS dla poszczególnych towarów, konieczne jest dodanie do listy jednostek w Comarch ERP XL, jednostek zgodnie z oznaczeniami, które są wykorzystywane do określenia wagi lub objętości.
Jednostki wagi i objętości dla jednostek
Jednostki wagi i objętości dla jednostek
Wystarczy dodać tylko te jednostki miary lub objętości, które w rzeczywistości są wykorzystywane do określenia wagi lub objętości na towarach wysyłanych do Comarch POS. W powyższym przypadku, konieczne jest dodanie do listy jednostek, jednostek o symbolach: Gram, Kg i cm3. Po dodaniu jednostek do listy, zostaną one przesłane do Comarch POS. Informacje te nie są prezentowane w interfejsie systemu, można je wykorzystać np. do raportowania.

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.
Uwaga
Przed uruchomieniem Comarcg POS wymagane jest uruchomienie Usługi w Menadzerze zadań
Na oknie, które zostanie wyświetlone przy pierwszym uruchomieniu należy uzupełnić:
  • 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.
Okno startowe Comarch POS
Po poprawnym podaniu danych następuje pierwsza synchronizacja z oddziałem zdefiniowanym w XLu a następnie system przechodzi do logowania. Należy podać login operatora przypisanego do danego stanowiska POS oraz hasło: admin. Hasło należy zmienić po zalogowaniu do POS. Przy każdym uruchomieniu stanowiska POS odbywa się synchronizacja danych słownikowych i konfiguracyjnych z Comarch ERP XL. Możliwe jest też wykonywanie ręcznej synchronizacji z poziomu aplikacji Comarch POS po wybraniu opcji: Aktualizacja danych.
Uwaga
Przed uruchomieniem aplikacji należy zweryfikować 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) Zalecane jest, żeby użytkownik, na którym działa usługa, miał uprawnienia administracyjne Windows.

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
Błędy dodawania zapisów do Comarch ERP XL można zobaczyć w opcji Log automatycznej synchronizacji. (Administrator Oddziałów- Ogólne)
Uwaga
  • 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
Uwaga
Przesyłanie informacji czy towar podlega rabatowaniu uzależnione jest od ustawienia parametru, który znajduje się na karcie towaru na zakładce Upusty, Nie stosuj żadnych upustów.
Aktualnie możliwe rabaty do przeslania to:
  • 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
Ogólne zasady przesyłania promocji (rabatów)
  • Podstawowym kryterium jest Centrum, do którego przypięta jest promocja
Do oddziału Comarch POS mogą zostać przesłane rabaty zdefiniowane dla Centrum powiązanego z oddziałem Comarch POS lub dla centrum nadrzędnego w stosunku do Centrum powiązanego z oddziałem POS. W szczególności przesyłane będą rabaty zdefiniowane do Centrum Głównego (tzw. roota w Strukturze firmy). Promocje, które nie są związane z konkretnym Centrum czyli KNT i KNU będą wysyłane zawsze.
  • Kryterium kontrahentów
Przesyłane będą te rabaty, które zdefiniowane są dla grupy wskazanej na oddziale Comarch POS jako grupa do eksportu lub importu kontrahentów lub grup podrzędnych w stosunku do niej. Ustawienie Grupy kontrahentów dla promocji przeznaczonej dla wszystkich kontrahentów
Uwaga
W Comarch POS rabaty na grupy kontrahentów wyliczane są inaczej niż Comarch ERP XL. Naliczany jest tylko ten rabat, który został zdefiniowany dla grupy ustawionej na karcie kontrahenta jako grupa domyślna, podczas gdy w XLu rabaty pochodzące z różnych grup są sumowane. Należy zwrócić uwagę na ten fakt podczas definiowania promocji, które mają być wysyłane do Comarch POS.
Przesyłane będą również te promocje (rabaty), które zostaną zdefiniowane dla konkretnych kontrahentów tzn. te, które na zakładce [Kontrahenci] mają przypisanego przynajmniej jednego kontrahenta wysyłanego do oddziału Comarch POS.
  • Kryterium towarów
Promocje na grupę towarów: przesyłane będą tylko te rabaty, które zdefiniowane są dla grupy towarów wskazanej w polu Eksport z grupy na oddziale Comarch POS lub grup jej podrzędnych.
Uwaga
Jeśli promocja ma być zastosowana dla wszystkich towarów np. jest to promocja na Grupę Główną, natomiast w konfiguracji oddziału Comarch POS jest wskazana inna grupa, wówczas konieczne jest dodanie tej grupy do promocji na zakładce [Towary].
Konfiguracja promocji działającej na wszystkie towary w Comarch POS
Uwaga
W Comarch POS rabaty na grupy towarów wyliczane są inaczej niż Comarch ERP XL. Naliczany jest tylko ten rabat, który został zdefiniowany dla grupy ustawionej na towarze jako grupa domyślna, podczas gdy w XLu rabaty pochodzące z różnych grup są sumowane. Należy zwrócić uwagę na ten fakt podczas definiowania promocji, które mają być wysyłane do Comarch POS.
Promocja na towary: przesyłane będą tylko te rabaty, na definicji których przynajmniej jeden dodany towar jest wysyłany do Comarch POS.
  • Ograniczenia ze względu na formy płatności oraz sposoby dostawy
Jeśli na promocji będą wskazane konkretne formy płatności bądź sposoby dostawy, to taka promocja nie będzie wysyłana. Wysyłane będą tylko te promocje, dla których zostanie ustawiona opcja .
  • Ograniczenia ze względu na magazyn
Jeśli na promocji na zakładce [Magazyny] będzie ustawiona opcja lub wskazany magazyn przypisany do Centrum powiązanego z oddziałem ComarchPOS wówczas promocja będzie wysyłana. Jeśli żaden magazyn wskazany na promocji, nie będzie przypisany do Centrum j.w., wówczas promocja nie będzie wysyłana.
  • Ograniczenia ze względu na rodzaj dokumentów
Wysyłane będą tylko te rabaty, dla których w ustawieniu Rodzaj dokumentów wybrano opcję Wszystkie bądź Rozchodowe.
  • Inne ograniczenia
Nie będą wysyłane rabaty, dla których zaznaczono parametr: Powtarzać co:, gdyż moduł rabatowy nie obsługuje cykliczności działania promocji. Przesyłanie nagłówka promocji - parametry Dla każdej promocji będą przesyłane następujące ustawienia nagłówka:
  • nazwa promocji
  • typ promocji
  • priorytety promocji
  • sposób łączenia z poprzednią; do wyboru: dodaj lub mnóż
  • ustawienie parametru: Pomijaj kolejne rabaty
Nie będzie przesyłana informacja o Limicie oraz Wymaganym progu transakcji, gdyż w Comarch POS limity nie są obsługiwane.

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.
Uwaga
 W przypadku rabatów WTR nie są przesyłane infromacje o gratisach.

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
Do Comarch POS wysyłane są elementy promocji, gdzie rabat ma typ procentowy, wartościowy lub typu stała cena. Nie będzie wysyłany rabat typu: Narzut na cenę zakupu, gdyż takie rabaty nie są obsługiwane w Comarch POS.
  • Rabaty progowe
Możliwe jest wysyłanie rabatów progowych procentowych i wartościowych. Jeśli na danej promocji towar będzie występował wiele razy, ale z różnymi progami, wówczas zostanie przesłany jako promocja progowa. Nie jest jednak możliwe przesyłanie rabatów różnego typu dla jednej pozycji na promocji. Nie powinno być sytuacji, że dla jednego progu towaru rabat będzie procentowy, dla innego wartościowy a dla kolejnego typu stała cena.
Uwaga
W przypadku rabatów progowych dla każdego progu tego samego towaru musi być ustawiony ten sam typ rabatu: wartościowy lub procentowy. W przypadku nie zastosowania powyższej zasady promocja nie zostanie wysłana do POS.
Poprawne zdefiniowanie promocji progowych dla towarów

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].
Przy zaznaczonym powyższym parametrze, podczas wystawiania dokumentów promocje będą naliczane automatycznie po spełnieniu określonych warunków. Wybierana jest zawsze pierwsza promocja (wg kolejności na liście promocji w Comarch ERP XL), dla której spełnione są warunki na dodanych pozycjach. W przypadku, gdy parametr nie będzie zaznaczony, wówczas po dodaniu pozycji można wybrać przycisk Nalicz promocje. Zasady naliczania promocji będą takie same jak przy automatycznych promocjach, jednak system nie będzie wyszukiwał promocji po dodaniu każdej pozycji do dokumentu. Jeśli dla pakietu zostały zdefiniowane gratisy, to po zatwierdzeniu dokumentu system przypomni o możliwości skorzystania z opcji gratisu dla promocji.
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.
Możliwość ustawiania kolejności promocji pakietowych za pomocą przycisków góra/dół
Możliwość ustawiania kolejności promocji pakietowych za pomocą przycisków góra/dół
Kolejność promocji pakietowych ma znaczenie w naliczaniu promocji na dokumentach wystawianych na stanowiskach POS. Jeśli dane pozycje na dokumencie będą spełniały warunki więcej niż jednej promocji, wówczas zostanie naliczona ta promocja, która w Comarch ERP XL jest wyżej na liście (ma wyższy Priorytet2).
Wskazówka
Promocje pakietowe wysyłane są do Comarch POS zawsze z priorytetem 0, dlatego nie należy ustawiać priorytetu 0 dla innych promocji.
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 
Comarch ERP XL dla promocji pakietowych możliwy jest do ustawienia parametr Max ilość pakietów ogółem lub dla kontrahenta. W module rabatowym wykorzystywanym w Comarch POS nie ma możliwości przesłania analogicznych ustawień, dlatego ustawienie to będzie ignorowane. Oznacza to, że jeśli na pakiecie zostanie ustawiony limit, to nie będzie on respektowany na stanowiskach POS. Warto rozważyć, czy pakiet z ustalonymi limitami wysyłać do oddziału POS i ustawić odpowiednie centra na zakładce [Miejsca w strukturze firmy], jeśli promocja taka nie powinna być wysyłana.
  • Inne rabaty a promocje pakietowe 
Bez względu na ustawienie parametru Pomiń rabaty nagłówka (GLO) na definicji promocji pakietowej, w Comarch POS rabaty nagłówka są zawsze pomijane. Promocje pakietowe nie łączą się z innymi rabatami.
  • Parametry dla gratisów 
W module rabatowym POS brak dla gratisów odpowiednika opcji Mnóż. Wszystkie gratisy będą traktowane tak, jakby opcja Mnóż był zaznaczona. Brak w module rabatowym również opcji Edycja ilości wydawanych gratisów, dlatego opcja ta będzie ignorowana. Brak opcji Wymagany w Comarch ERP XL, która jest dostępna w Comarch POS, jest natomiast parametr Domyślny. Parametr Domyślny będzie traktowany w Comarch POS jako wymagany, czyli do spełnienia warunków pakietu konieczne będzie dodanie do koszyka gratisu określonego jako domyślny. Gratis, który nie będzie oznaczony jako domyślny nie będzie konieczny do naliczenia pakietu.
  • Naliczenie pakietów dla innej jednostki niż podstawowa
    • Promocja pakietowa stała
Pakiet nie zostanie naliczony, gdy towar zostanie dodany w innej jednostce niż podstawowa.
    • Promocja pakietowa elastyczna
Pakiet zostanie naliczony, ale nie zostaną uwzględnione przeliczniki towaru, co oznacza, że stała cena dla jednostki pomocniczej będzie taka sama jak dla podstawowej, a próg będzie spełniony przy analogicznej ilości jednostek pomocniczych jak podstawowych.
  • Promocja pakietowa elastyczna towar wymagany
Zaznaczenie parametru Wymagany na pozycji promocji elastycznej nie będzie respektowane w Comarch POS, to oznacza, że promocja zostanie naliczona nawet wówczas, gdy wymagany towar nie zostanie dodany do dokumentu.
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.
Parametr pozwalający na naliczanie rabatów do stałej ceny
Parametr pozwalający na naliczanie rabatów do stałej ceny
Parametr pozwalający na naliczanie rabatów do stałej ceny
Jeśli parametr nie zostanie zaznaczony wówczas ustalona stała cena, będzie ceną ostateczną i nie będą miały do niej zastosowania inne promocje. Jeśli parametr zostanie zaznaczony wówczas naliczanie kolejnych promocji będzie uzależnione od ustawienia parametru Pomiń następne promocje dostępnego na zakładce [Ogólne] promocji.
Uwaga
Do Comarch POS nie są wysyłane informacje na temat Limitów oraz Wymaganego progu transakcji zapisane na elementach promocji. Rabat taki zadziała na stanowisku Comarch POS bez względu na ustawienia tych parametrów. Jeśli ustawienia te są wymagane, wówczas nie należy wysyłać takich rabatów do oddziału Comarch POS.

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
Sposób B
  • 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
Sposób C
  • 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
Na tę okoliczność można zdefiniować rejestr K/B o nazwie Rejestr zwrotów na POS i w nim rejestrować zwroty kasy Klientowi – dodać opis w polityce rachunkowości Czy z poziomu POS można zafiskalizować fakturę? Jeśli istnieje konieczność zafiskalizowania FS w POS należy zmodyfikować procedurę aby zwracała True dla tego parametru. Ustawienie jest przesyłane z procedury [CDN].[POS_EksportUstawienia], pole cast('False' as nvarchar(max)) as [PrintInvoicesOnReceiptPrinter], jest ustawione na sztywno jako False. Czy POS we współpracy z XL obsługuje artykuły typu- usługa? Aby zwykły towar był widoczny w POS musi mieć założoną partię. natomiast od wersji ERP XL 2022.1 umożliwiono przesyłanie kart towarowych o typie usługa. Dlaczego nie działa ikona Parking? Parking w wersji 2019.0 POS we współpracy z XL od wersji 2019.2.1 nie jest obsłużony. Czy z poziomu POS mogę podejrzeć zasoby? Obecnie funkcjonalność zasobów z poziomu POS nie jest obsłużona. Dlaczego dokumenty nie synchronizują się? Należy w pierwszej kolejności sprawdzić ścieżkę PATH w zmiennych środowiskowych, która musi odnosić się do folderu w którym znajduje się wersja XL na której pracujemy. Blokada sprzedaży z cena 0,00.
Dodano blokadę generowania dokumentów na Comarch POS z ceną 0,00. Odpowiada za to parametr AllowPriceZeroOnDocumentItem=false
Blokada synchronizacji bazy przez inne stanowisko Została nałożona blokada synchronizacji z bazą Comarch POS, która była już używana przez inne stanowisko, pole PSA_GUID w tabeli cdn.PicoStanowiska. Czy operator może mieć jako centrum domyślne centrum POS? Operator wykorzystany do synchronizacji jako centrum domyślne musi mieć ustawione centrum nadrzędne w stosunku do centrum, które jest powiązane z oddziałem POS. Gdzie sprawdzi logi błędów dotyczące braku synchronizacji np dokumentów? Od wersji Comarch ERP XL 2020.2 zostały uszczegółowione logi dotyczące błędów przy synchronizacji w tabeli cdn.PicoLogElem, zostanie wyświetlony numer dokumentu (poprzednio był tylko GUID) oraz numer błędu z opisem którego dotyczy brak możliwości np przesynchronizowania dokumentu co ERP XL Zmiana mechanizmu pobierania zasobów pomiędzy Comrch POS-ERP XL Dodano ustawialne w CDN.Konfig w polu i Kon_Numer = -153, w przypadku wartości 0 System działa na dotychczasowych zasadach, gdy wartość zostanie zmieniona System będzie pobierał zasoby według ustawienia z karty towaru FIFO/LIFO, będą ignorowane partie wskazane w Comarch POS.
Numer błędu i komunikatPrzyczynaRozwiązanie
XLDodajRaport zwróciła błąd:-1Najprawdopodobniej została wycięta sesja operatora, na którego założona na którego ustawiona jest synchronizacjaW 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:8148błędna data otwarcia pokrywa się z innym raportemNależy zmodyfikować daty na raporcie
XLZamknijRaport zwróciła błąd:8034komunikat wskazuje, że raport został już zamkniętyNależy otworzyć raport, aby dokumenty przeszły do XLa
XLDodajZapis zwróciła błąd:8007Komunikat 8007 oznacza: nie znaleziono bieżącego okresu obrachunkowegoNależ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:-3Niepoprawnie 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:-6Niepoprawnie 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:33Nie 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łądDo takiego dokumentu nie można wygenerować korekty
XLNowyDokument zwróciła błąd:71-Oryginał korekty w buforzeNależ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 stanowiskuNależy sprawdzić czy dokument nie jest wyświetlony na czerwono w XLu
XLOtworzDokument zwróciła błąd:339Błą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:-1Błą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:17Zabrakł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:53Podano 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)
Inne błędy :
  1. Błąd przy pierwszej synchronizacji Brak kodu stanowiska w konfiguracji
08:32:48.7414 ERROR ---------EXCEPTION OCCURED---------: Brak kodu stanowiska w konfiguracji. Comarch.POS.Library.Errors.RetailInvalidPosStationException w Comarch.POS.Presentation.Base.ViewModels.StartScreen.StartScreenViewModel.ValidatePosCode() w Comarch.POS.Presentation.Base.ViewModels.StartScreen.StartScreenViewModel.InitialAsyncOperations(CancellationToken token, Object o) w Comarch.POS.Library.Models.Async`1.<>c__DisplayClass28_0.MvW8ZbA6l2() w System.Threading.Tasks.Task`1.InnerInvoke() w System.Threading.Tasks.Task.Execute() --------------------- 08:33:08.8110 INFO [NOTIFICATION] Uzyskano połączenie z usługą danych POS, kod stanowiska jest poprawny 08:33:23.1080 INFO [SETTINGS] Changes confirmed(Login was set to sa; ) 08:33:23.1080 INFO Closing view DbConfigurationView Należy zweryfikować:
  • 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
  1. Przy wyłączonym parametrze generuj PW na brakujące towary mimo dostępnej ilości towaru generuje się PW:
Należy zweryfikować:
  • 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
  1. Wystąpił błąd podczas importu dokumentu handlowego (…). W bazie XL nie znaleziono kontrahenta. Knt_GuidDane=…
Należy zweryfikować:
  • Czy nie została wycięta sesja na operatora odpowiedzialnego za synchronizację
  • Kolejno wymusić ponowne przesynchronizowanie kontrahentów lub adresu do XLa
update Entities.Customers set WasSentToERP=0, IsDefault=0 where Id=… update Addresses.AddressHeaders set WasSentToERP=0, IsDefault=0 where Id=…
  • Gdyby dokumenty były dodane w XLu jako do bufora to należy usunąć taki dokument i ponownie wymusić synchronizację
update Documents.TradeDocuments set WasSentToERP=0 where Id=…
  1. Brak widoczności przyczyn korekty sprzedaży w POS
Należy zweryfikować:
  • 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.

Uwaga
Zapisujemy do kolejki historii tylko bieżący wykres startowy i eksploracje (każdą). Cofanie ani posuwanie się wprzód nie dopisuje do kolejki rekordów, a tylko przesuwa pointer wskazujący bieżącą pozycję. Eksploracja usuwa wszystkie rekordy z kolejki historii będące „po rekordzie” odpowiadającym eksplorowanemu wykresowi, dopisuje rekord docelowego podwykresu i ustawia na nim pointer. Powoduje to „zapominanie” części historii po wykonaniu eksploracji, ale jest to standardowe zachowanie

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).

Przyklad
Zapytanie SELECT BRa_Akronim, BRa_BraID, Bra_SaldoBO, Bra_Symbol FROM cdn.BnkRachunki spowoduje, że wartości akronimów zostaną wpisane do kolumny typu LONG a jako wartości punktów zostanie podstawione zero (konwersja Bra_Symbol do DECIMAL(20,4)).
Wszystkie kolumny zwracane przez SELECT muszą być nazwane. Jeśli więc w liście tej występują agregaty lub stałe – należy koniecznie użyć aliasów (np. SELECT PunktID=1, TrN_TrNID, TrN_NumerPelny, RazemNetto=SUM(TrE_WartoscNetto) FROM ... ).

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.

 
Przyklad
Zmienne dynamiczne są podstawiane pod parametry dynamiczne tylko dla bieżącego wykresu startowego (nie dotyczą podwykresów – tam występuje dziedziczenie wartości parametrów o zgodnej 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).

Uwaga
Przy rozwijaniu wstawki jej rozwinięcie pobierane jest z tej bazy (wykresów standardowych lub użytkownika), z której pobrano definicję wykresu. W przypadku nie znalezienia wstawki o podanej nazwie, jeśli mamy do czynienia z wykresem użytkownika, wstawka jest następnie poszukiwana w bazie wykresów standardowych
.

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.

Uwaga
Warto zwrócić uwagę na fakt, że przed sekwencją kończącą IF@ (IFNOT@) musi występować, co najmniej jedna spacja, zatem deklaracja: @IF(FAPA) xxx IF@ nie jest poprawna, gdyż bezpośrednio przed końcowym IF@ występuje enter zamiast spacji

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:

SymbolGr Znaczenie Wartości D PD D(*) PD(*)
HeaderName Tytuł wykresu 1 1
XAxisName Tytuł osi X 1 1
YAxisName Tytuł osi Y 1 1
Type Typ wykresu 1 – kolumnowy, 2 – liniowy, 4 – kołowy,... 1 1 1 1
Depth Głębokość 3D 0 – wykres 2D, >0 – wykres 3D 0 1 100 1
LineWidth Grubość linii 1-10 (dotyczy typu 2) 2 1 0
PointWidth Grubość słupka 1-10 (dotyczy typu 1) 0 0
ShowDataLabels Wyświetla wartości punktów 0 – nie pokazuje, 1 – pokazuje 1 1 1 1
Series Definicje serii Kol,...,Kol gdzie Kol,...,Kol - numery kolumn zapytania (4<=Kol<=11). 4 1 4 1
NoHeadOnCols Wykaz kolumn, które mają nie mieć headera Kol,...,Kol gdzie Kol,...,Kol - numery kolumn zapytania (1<=Kol<=11). 0 0
HideCols Wykaz kolumn, które mają być ukryte (zerowej szerokości) Kol,...,Kol gdzie Kol,...,Kol - numery kolumn zapytania (1<=Kol<=11). 0 0
AutoRefresh Automatyczne odświeżanie 0 – nie, 1 – tak 0 1 1 1
SkipFirstExec Nie wykonywanie akcji (zapytania, procedury) za pierwszym razem, dopiero po odświeżeniu. Dotyczy tylko wykresu startowego. 0 – wykonuj akcję także przy pierwszym wykonaniu wykresu, 1 – nie wykonuj akcji przy pierwszym wykonaniu wykresu (np. nie chcemy wykonywać zapytania z domyślnymi wartościami parametrów) 0 1 1 1

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.

Uwaga
Parametry NoHeadOnCols, HideCols, mimo że formalnie przynależą do parametrów graficznych – dotyczą tabeli z wynikami, a nie wykresu. Stąd nie należy się dziwić, że wykres typu: tylko tabela, ma aktywne pole z parametrami graficznymi.

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}
Uwaga
Nazwy stałych graficznych są CASE SENSITIVE.

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.

Formularz definicji wykresu, zakładka Ogólne.

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.

.
Uwaga
W trybie testowym nie są oczywiście przesyłane do wykresu żadne zmienne dynamiczne, które normalnie aplikacja przesyła dla potrzeb inicjalizacji niektórych parametrów dynamicznych wykresu – wszystkie te parametry zostają więc zainicjalizowane swoimi wartościami domyślnymi, określonymi w deklaracji lub definicji (inaczej jest w przypadku normalnego wykonania wykresu).
[Zabezpiecz wykres] - służy do założenia hasła blokującego zmiany w definicji wykresu dla użytkowników nieznających hasła. Przy wejściu na formularz tak zabezpieczonego wykresu nie mamy możliwości dokonania jakichkolwiek zmian chyba, że wciśniemy przycisk z kluczykiem i wpiszemy poprawne hasło

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.

Formularz definicji wykresu, zakładka Zapytanie, okno: Zapytanie
Formularz definicji wykresu, zakładka Zapytanie, okno: Parametry graficzne.
Formularz definicji wykresu, zakładka Opcje wysyłania wyników.

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 wykresów (standardowych).

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ę).

Lista wstawek tekstowych (do wykresów standardowych).

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).

Formularz wstawki tekstowej (standardowej).

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.

Uwaga
Od wersji XL2019.0 zalecamy prezentację daty w ERP XL jako tekst, jest to związane z różnicami jakie wynikają z użycia nowszych wersji SQL serwer oraz sterowników ODBC ( SQL Native Client). Datę można przekazać jako tekst według przykładu: select lp = 1, cast(DATEADD(DAY, ZN.ZaN_DataWystawienia ,CONVERT(DATE,'1800-12-28',120)) as varchar) AS [Data wystawienia], ZN.ZaN_DataWystawienia from cdn.ZamNag zn
Wynik1
Okno operacyjne wykresów, zakładka Wykres.
Wynik1
Okno operacyjne wykresów, zakładka Parametry graficzne.
Wynik3
Okno operacyjne wykresów, zakładka Dane serii wykresu.
Wynik4
Okno operacyjne wykresów, zakładka Wysyłanie wyników.

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.

Uwaga
Zdefiniowany komunikat nie daje możliwości określenia ważności (severity) wyzwolonego komunikatu. System Comarch ERP XL wyświetla komunikaty o ważności nie mniejszej niż 16.

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.
Komunikat spowodowany wyzwoleniem triggera CDN.ZmianaNazwyTowaru

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ę.

ListaDodakow
Lista dodatków

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.

EdycjaDodatku
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.

Przyklad
Przykładowy warunek callbacka na zalogowanego operatora: if (Runtime.ConfigurationDictionary.NumerOperatora == 1) {return false;}
Przyklad
Przykładowy warunek na stan towaru: if (TwrKarty.Twr_Typ==1) {return false;} else {return true;}
Uwaga
Warunek callbacka Małej Hydry jest sprawdzany tylko w momencie uruchamiania formatki.
Uwaga
Aby warunek oparty o bufor tabeli działał prawidłowo, należy wyłączyć na operatorze Otwieranie okien w trybie zaawansowanym. W przeciwnym wypadku operator będzie miał możliwość przechodzenia między obiektami (np. dokumentami) bez ponownego sprawdzania warunku callbacka.
Przyklad
Dodatkowo warunki można definiować za pomocą sqlQuery, nazwy pól, tabel oraz wielkość znaków powinny być takie same jak w bazie danych. string sqlQuery = "select case when "+ZamNag.ZaN_Stan+" = 4 AND "+ZamNag._ZaN_OpeNumerZ+" = 1 then 1/0 else 0 end"; if (Runtime.ConfigurationDictionary.ExecSql(sqlQuery, true) == 1) return true; else return false;
EdycjaSubskrypcjiProcedury
Edycja subskrypcji procedury

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)

EdycjaAkcjiNaKontrolce
Edycja akcji na kontrolce3
Uwaga
Akcja Wymagaj może być użyta tylko dla wybranych kontrolek. Dotyczy przede wszystkim kontrolek, dla których istnieje stan „bez wartości” np. kontrolek tekstowych. Akcja nie może być natomiast wykorzystana np. dla kontrolki check, gdyż kontrolka zawsze przyjmuje wartość (0 lub 1).

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.

Uwaga
Od wersji systemu Comarch ERP XL 2020 Hydra używa wersji Microsoft .NET Framework 4.5.1

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

Uwaga
Lista możliwych kolorów została przedstawiona w pliku kolory.txt w załącznikach do biuletynu. Przed przypisaniem wartości należy przekonwertować kody kolorów z notacji szesnastkowej do postaci dziesiętnej.

FontStyleRaw – format tekstu

Uwaga
Możliwe wartości dla wybranych formatów:

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"

Uwaga
W przypadku przypisywania ikony na podstawie pliku należy podać pełną ścieżkę do ikony w formacie: @”C:\WINDOWS\msnms.ico”. W przypadku przypisywania standardowej ikony ERP XL należy podać nazwę ikony w formacie: „~EXPORT20.ICO”. Pełna lista istniejących ikon nie jest dostępna na zewnątrz.

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

Uwaga
Jeżeli w etykiecie dodamy znak & to pojawi się możliwość wywołania przycisku z klawiatury zgodnie z kolejną literą. Przykładowo przycisk o etykiecie &nazwa pozwoli na wywołanie kliknięcia poprzez alt+n.

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:

Przyklad
parent = GetWindow(); menu1 = parent.AllChildren.Add(ControlTypes.menu); menu1.Visible = true; menu1.TextRaw = "Nowe menu"; menu2 = menu1.AllChildren.Add(ControlTypes.menu); menu2.Visible = true; menu2.TextRaw = "Menu poziom 2"; item1 = menu1.AllChildren.Add(ControlTypes.item); item1.Visible = true; item1.TextRaw = "Element 1"; item2 = menu1.AllChildren.Add(ControlTypes.item); item2.Visible = true; item2.TextRaw = "Element 2"; item3 = menu2.AllChildren.Add(ControlTypes.item); item3.Visible = true; item3.TextRaw = "Element 3";

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

Uwaga
Aby przejść do kolejnego elementu listy można wykorzystać zdarzenie ScrollDown: Runtime.WindowController.PostEvent(idkontrolki, Events.ScrollDown); Ewentualnie może zajść potrzeba wkliknięcia się w daną listę za pomocą zdarzenia SelectControl: Runtime.WindowController.SelectControl(i);

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

Przyklad
Przykładowe ustawienia dla pól typu data zostały przedstawione w pliku daty.txt w załącznikach. Data powinna być przekazana w formacie Clariona, czas w formacie Timestamp.
ValueRaw – określenie wartości domyślnej w polu (wymagane ustawienie UseRaw=”1”) Zmiana wartości w kontrolce: Runtime.WindowController.Change(kontrolka.Id, "wartość")
Przyklad
Przykład na zmianę wartości rabatu na dokumencie ZS: Runtime.WindowController.Change(Parent.AllChildren["?ZaN:Rabat"].Id, "50"); Runtime.WindowController.PostEvent(Parent.AllChildren["?ZaN:Rabat"].Id , Events.Accepted);

.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

Uwaga
Generalnie właściwości CheckedRaw oraz UseRaw powinny przyjmować wartości 0 oraz 1, jednak odczyt wartości kontrolek poprzez Hydrę zwraca wartości ustawione z poziomu zbudowania okna dlatego mogą pojawić się inne wartości np. wartość 2 dla zaznaczonej kontrolki. W przypadku gdy dana kontrolka zwraca wartość inną niż 0 wówczas ma wartość TRUE. Przy ustawianiu wartości kontrolek z poziomu Dużej Hydry zalecamy używanie wartości 0 i 1.

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

 
Przyklad
Przykładowy kod na obsłużenie kontrolki o typie dropcombo: ClaWindow combo = Parent.Children.Add(ControlTypes.dropcombo); combo.Visible = true; combo.Bounds = new Rectangle(200, 255, 70, 10); combo.FromRaw = "wartosc1|wartosc2|wartosc3"; combo.SelectedRaw = "2"; combo.ScreenTextRaw = "wartosc2"; AddSubscription(true, combo.Id, Events.NewSelection,new TakeEventDelegate(komunikat));

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.

Przyklad
Runtime.WindowController.LockThread(); Runtime.WindowController.UnlockThread(); MessageBox.Show("Tekst komunikatu");

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.

Uwaga
Dla wersji SE systemu Comarch ERP XL zalecamy dokumentację Clariona w wersji 5.5, natomiast dla wersji z nowym interfejsem w wersji 8).

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:

 
Przyklad
string tekst = ""; // ******** Zalecana konstrukcja: ***************** int y = 0; while (y < 5000) { tekst += "wartosc " + y + "|"; y++; } polelist.FromRaw = tekst; //********* Niezalecana konstrukcja: ************** int y = 0; while (y < 5000) { polelist.FromRaw += "wartosc " + y + "|"; y++; }
 

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.

Przyklad
polelist = zakladka.AllChildren.Add(ControlTypes.list); polelist.Visible = true; polelist.Bounds = new Rectangle(20, 20, 260, 260); polelist.FormatRaw = "160L*~Naglowek~@s40@#1#"; string tekst = ""; tekst = "wartosc1|32768|-1|-1|-1|";  

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.
Przyklad
if (polecheck.UseRaw == "0") { Runtime.WindowController.Change(polecheck.Id, "1"); } else { Runtime.WindowController.Change(polecheck.Id, "0"); } Runtime.WindowController.PostEvent(polecheck.Id, Events.Accepted);

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.
Uwaga
Od wersji systemu Comarch ERP XL 2020.0.0 zmieniony zostanie obiekt Hydra.ActiveRuntime.Repository.Connection z SQLConnection na interfejs IDbConnection
Uwaga
Od wersji systemu Comarch ERP XL 2021.0.0 zalecane jest tworzenie własnego Connection Stringa za pomocą zmiany definicji funkcji bazodanowej : CDN.PodajDodatkowyConnectString; obiekt: Runtime.ActiveRuntime.Repository.Connection i zwracany przez niego Connection String mogą zostać wycofany z udostępnienia w przyszłych wersjach ze względów bezpieczeństwa. Dostęp do samodzielnie zdefiniowanego Connestion Stringa w Hydrze jest poprzez pole: Runtime.ActiveRuntime.Repository.ConnectionString;
 

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()

Uwaga
Powyższe funkcje zwracają aktualną datę ustawioną w programie. Jeżeli data zostanie zmieniona w programie, to również zmieniona zostanie zwrócona przez funkcję.

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)

Przyklad
Przykładowe podniesienie formatki może mieć postać: GID gid = Runtime.ConfigurationDictionary.UruchomFormatkeWgGID (gidtyp, gidfirma, gidnumer, gidlp, Hydra.Request.ViewRecord); gdzie: gidtyp, gidfirma, gidnumer, gidlp – zmienne liczbowe przekazane z aplikacji Hydra.Request – określenie trybu podniesienia formatki. Możliwe tryby to: ChangeRecord, DeleteRecord, InsertRecord, SelectRecord, ViewRecord
 

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.

Uwaga
Załączony przykład ukrywa kolumnę na liście jednak może okazać się konieczne dodatkowe zabezpieczenie przed możliwością rozszerzenia kolumny przez operatora.

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.

Uwaga
Funkcjonalność 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.

Przyklad
public override void Exit() { base.Exit(); MessageBox.Show("komunikat");}

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).

Przyklad
ClaWindow Kontrahent = ParentOkno.Children["?cKop_Knt:Akronim"]; ClaWindow Kontrahent2 = ParentOkno.Children["?Kontrahent:Button"]; AddSubscription(true, Kontrahent.Id, Events.Accepted, new TakeEventDelegate( OnOpenWindow2)); AddSubscription(false, Kontrahent2.Id, Events.Accepted, new TakeEventDelegate( OnOpenWindow2));

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.

Uwaga
W przypadku niektórych list należy uwzględnić sytuację, gdy przechodzenie następuje pomiędzy różnymi dokumentami – przykładowo dokumenty korekt mają inne IdProcedury niż oryginalne dokumenty.

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.

Przyklad
public bool OpenWindow(Procedures ProcId, int ControlId, Events Event) { AddSubscription(true, GetWindow().AllChildren["?ListaZam"].Id, Events.XLPopup, new TakeEventDelegate(BeforePopup)); AddSubscription(false, GetWindow().AllChildren["?ListaZam"].Id, Events.XLPopup, new TakeEventDelegate(AfterPopup)); return true; } public bool BeforePopup(Procedures ProcId, int ControlId, Events Event) { XLPopup crPopup = Runtime.WindowController.GetPopup(); //Dodanie nowej pozycji do menu na końcu lNowaPozPos = crPopup.lstItems.Count; crPopup.lstItems.Add(new XLPopupItem() { sText = "-", lPosition = lNowaPozPos, lLevel = 0, sIcon = "" }); //Separator crPopup.lstItems.Add(new XLPopupItem() { sText = "Nowa pozycja", lPosition = lNowaPozPos+1, lLevel = 0, sIcon = ".\\icons\\prod\\Wozek.ico" }); //Dodanie ikony do istniejącej pozycji oraz deaktywacja usuwania try { crPopup.lstItems.Find(pi => pi.sText.Equals("Dodaj kolumny")).sIcon = ".\\icons\\prod\\Narzedzie.ico"; crPopup.lstItems.Find(pi => pi.sText.Equals("&Formaty listy")).sIcon = ".\\icons\\prod\\Narzedzie.ico"; crPopup.lstItems.Find(pi => pi.sText.Equals("Usuń")).bDisabled = true; }catch{} Runtime.WindowController.SetPopup(crPopup); return true; } public bool AfterPopup(Procedures ProcId, int ControlId, Events Event) { XLPopupItem crPopupItem = Runtime.WindowController.GetPopupItem(ControlId); if (crPopupItem.lPosition == lNowaPozPos+1) { MessageBox.Show(crPopupItem.ToString()); return false; } return true; }

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().

Przyklad
public bool OnOpenWindow(Procedures ProcID, int ControlID, Events Event) { for (int i = 1; i < 20; i++) { nazwaKontrolki = Runtime.WindowController.GetControlName(i).ToString();   MessageBox.Show("Nazwa kontrolki : " + nazwaKontrolki); }   return true; }

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.

Przyklad
Godzina_Spin = ClaInfoOkienkoLogistyczneGroup_Group.Children.Add(ControlTypes.spin); Godzina_Spin.TextRaw = "@T1"; Godzina_Spin..Bounds = new Rectangle(20, 20, 50, 10) Godzina_Spin.RangeLowRaw = "0000000"; Godzina_Spin.RangeHighRaw = "8640000"; Godzina_Spin.ValueRaw = "1"; Godzina_Spin.Visible = true; Godzina_Spin.StepRaw = "6000";

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_Hydra    

XL086 - 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:
Rysunek 1 Parametr służący do weryfikacji obecności cen wysyłanych do e-Sklepu
Rys.1 Parametr służący do weryfikacji obecności cen wysyłanych do e-Sklepu

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

Rys.2 Komunikat o braku ceny aktualnej na karcie towarowej wysyłanej do e-Sklepu
  • 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.

Rys.3 Tabela cdn.PicoLog

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 towaru

Komunikat  ś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-ERP  
Błąd podczas dodawnia kontrahenta ESKL1_1 BŁĘDY:
Wystąpił niezidentyfikowany błąd. Błąd najprawdopodobniej jest spowodowany złym działaniem otoczenia programu. () (NowyKontrahent--2147217900) Niepoprawny numer NIP
Należy zweryfikować czy w szczegółach kontrahenta w panelu administracyjnym e-Sklepu dany Kontrahent zarejestrowany jako Krajowy, Unijny czy PozaUnijny. Jeżeli jest jako Krajowy należy zmodyfikować na Unijny lub PozaUnijny w przypadku gdy kontrahent posiada zagraniczny numer NIP.

Problemy 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:

Rys.4 Eksport różnicowy cennika

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.

Przyklad
1. Wersją zainstalowaną jest wersja 2019.1 Następnie pobrano kompilację w wersji aktualnej i na niej wykreowano/bądź podniesiono bazę współpracującą z Comarch ERP e-Sklep. W takiej sytuacji usługa może nie zadziałać.

Przyklad
2. Jeżeli na jednym serwerze na bazie A, na oddziale o ID=1 zdefiniujemy usługę do synchronizacji z MOS, a na bazie B, na oddziale o ID=1 zdefiniujemy usługę do synchronizacji z e-Sklepem to usługa synchronizacji z e-Sklepem nie zadziała.

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">

&#02;&#10;H07&#10;D11&#10;m&#10;1911008000800041&#10;<xsl:value-of select="@Twr_Kod" />&#10;3a6210000000050&#10;<xsl:value-of select="@Twr_EAN" />&#10;PCS&#10;E&#10;

</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.

Uwaga
Zalecane jest, aby nie korzystać z zapytań typu select *. Przy wpisywaniu nazw kolumn należy zwrócić uwagę na wielkość liter gdyż XML jest ‘case sensitive’

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:

&#02;&#10;H07&#10;D11&#10;m&#10;1911008000800041&#10;<xsl:value-of select="@Twr_Kod" />&#10;3a6210000000050&#10;<xsl:value-of select="@Twr_EAN" />&#10;PCS&#10;E&#10;

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.

Uwaga
W przypadku niektórych drukarek język instrukcji sterujących drukarką jest dość skomplikowany np. drukarki DYMO. Dlatego w ich przypadku należy posłużyć się zestawem obiektów COM, dostarczanych przez producenta.

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.

Parametry komputera, zakładka Kolektor
Parametry komputera, zakładka 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.

Definicja rekordu kolektora
Definicja rekordu kolektora

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.

Parametry portu COM, przez który będzie prowadzona transmisja danych
Parametry portu COM, przez który będzie prowadzona transmisja danych
Parametry komputera dla kolektora CipherLab
Parametry komputera dla kolektora CipherLab
Definicja rekordu kolektora CipherLab
Definicja rekordu kolektora CipherLab

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

Aplikacja umożliwiająca przeprogramowanie rekordu kolektora CipherLab – rekord
Aplikacja umożliwiająca przeprogramowanie rekordu kolektora CipherLab – rekord

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.

Aplikacja umożliwiająca przeprogramowanie rekordu kolektora CipherLab – ustalenie długości pola oraz jej zablokowanie
Aplikacja umożliwiająca przeprogramowanie rekordu kolektora CipherLab – ustalenie długości pola oraz jej zablokowanie

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.

COM_PHL1300
Parametry portu COM, przez który będzie prowadzona transmisja danych – OPTICON PHL2700.
Parametry komputera dla kolektora OPTICON PHL2700
Parametry komputera dla kolektora OPTICON PHL2700
Definicja rekordu kolektora OPTICON PHL2700 w trybach Inwentura, Sprzedaż oraz Magazyn – współpraca z kolektorem możliwa tylko dla takiej definicji rekordu
Definicja rekordu kolektora OPTICON PHL2700 w trybach Inwentura, Sprzedaż oraz Magazyn – współpraca z kolektorem możliwa tylko dla takiej definicji rekordu
Definicja rekordu kolektora OPTICON PHL2700 w trybie Numery seryjne (w tym trybie przesyłana ilość będzie zawsze równa 1) – współpraca z kolektorem możliwa tylko dla takiej definicji rekordu
Definicja rekordu kolektora OPTICON PHL2700 w trybie Numery seryjne (w tym trybie przesyłana ilość będzie zawsze równa 1) – współpraca z kolektorem możliwa tylko dla takiej definicji rekordu

Uwaga

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

COM_PHL1300
Parametry portu COM, przez który będzie prowadzona transmisja danych – OPTICON PHL1300.
Parametry komputera dla kolektora OPTICON PHL1300
Parametry komputera dla kolektora OPTICON PHL1300
Definicja rekordu kolektora OPTICON PHL1300
Definicja rekordu kolektora OPTICON PHL1300

Uwaga

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

COM_DOLPHIN
Parametry portu COM, przez który będzie prowadzona transmisja danych – DOLPHIN.
Parametry komputera dla kolektora DOLPHIN.
Parametry komputera dla kolektora DOLPHIN.
Definicja rekordu kolektora DOLPHIN.
Definicja rekordu kolektora DOLPHIN.

Uwaga

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.

COM_DOLPHIN
Parametry portu COM, przez który będzie prowadzona transmisja danych – Denso BHT
Parametry komputera dla kolektora Denso BHT
Parametry komputera dla kolektora Denso BHT
Definicja rekordu kolektora Denso BHT
Definicja rekordu kolektora Denso BHT

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.
Wczytaj pozycje – usuwa istniejące pozycje i dodaje dane przesłane z kolektora
Wczytaj pozycje – usuwa istniejące pozycje i dodaje dane przesłane z kolektora
Dodaj nowe pozycje – dodaje pozycje do istniejących na dokumencie
Dodaj nowe pozycje – dodaje pozycje 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.

Inwentaryzacja – dodawanie odczytów inwentaryzacyjnych z kolektora
Inwentaryzacja – dodawanie odczytów inwentaryzacyjnych 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.

Uwaga

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).

  1. 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.
  2. 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.

Okno główne Migratora.
Okno główne Migratora.

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:

Formatka migracji danych.
Formatka migracji danych.

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.

Wybieranie arkusza Excel.
Wybieranie arkusza Excel.

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

Dane wczytane na kanwę.
Dane 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 kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kodvarchar40Kod grupy towaroweTak
3Nazwavarchar255Nazwa grupy towarowejTak
4Grupa ścieżkivarchar255Ś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

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kodvarchar40Kod towaruTak
3Typtinyint1Typ towaru (1 - towary, 2 - produkty, 3 - koszt, 4 - usługa)Tak
4Nazwavarchar255Nazwa towaru w systemieTak
5Kaucjatinyint1Czy towar jest kaucją (0 lub pole puste - nie, 1 - tak)
6SWWvarchar20Numer SWW/PKWiU
7EANvarchar40Kod EAN towaru
8JMvarchar8Podstawowa jednostka miary
9GrupaPodvarchar1Symbol stawki VAT dla zakupu (np. A, B, C, itp.)
10StawkaPodvarchar1Stawka VAT dla zakupu (np. 0, 8, 23 itp.)
11GrupaPodSprvarchar1Symbol stawki VAT dla sprzedaży (np. A, B, C, itp.)
12StawkaPodSprvarchar1Stawka VAT dla sprzedaży (np. 0, 8, 23 itp.)
13Symbolvarchar40Symbol, numer katalogowy towaru. Dodatkowe pole do dowolnego wykorzystania.
14KlasaCechavarchar20Czy dostawy towarów będziemy oznaczać dodatkową cechą. Jeśli tak, to w tym polu wpisujemy nazwę tej cechy.
15Magazynvarchar10Kod magazynu, do którego ma być domyślnie przyjmowany towar.
16MarzaMindecimalZakładana minimalna marża na towarze wyrażona w procentach.
17KosztUTyptinyint1Koszt typu usługi: 1-procentowy, 2-wartościowy
18KosztUslugidecimalJeż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
19AkcyzadecimalAkcyza dla towaru (stawka podatku akcyzowego wyrażona liczbą w procentach)
20ClodecimalCło dla towaru (Stawka cła wyrażona w procentach)
21PCNvarchar10Kod PCN dla towaru
22TwrGrupavarchar255Ścieżka do grupy towarowej, w której ma znaleźć się dany towar oddzielona znakami: \|
23Opisvarchar511Możliwość wypełnienia pola opisem dodatkowym towaru.

Towary Cenniki

Lp.

TowaryCenniki.xls

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kodvarchar40Kod towaruTak
3Numertinyint1Numer ceny. Jest to liczba widoczna przy cenniku na karcie towarowej.Tak
4Walutavarchar5Symbol waluty, w jakiej jest wyrażona cena.
5WartośćdecimalWartość ceny
6MarzadecimalMarża zakładana. Jeżeli wybrano aktualizację ceny przy nowej dostawie, cena sprzedaży zostanie zaktualizowana ceną zakupu powiększona o zakładaną marżę.
7Zaok.tinyint1Jak 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.
8Aktualizacjatinyint1Czy aktualizować cenę przy nowej dostawie: 0 – nie, 1 – tak.

Towary Dostawcy
Lp.

TowaryDostawcy.xls

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kod_towaruvarchar40Kod towaruTak
3Akronimvarchar20Skrócona nazwa dostawcy z systemu Comarch ERP XLTak
4KlasaKntsmallintTyp kontrahenta: 8 – Dostawca, 16 – Odbiorca, 24 – Dostawca/OdbiorcaTak
5CenadecimalCena towaru u dostawcy. W wartości używać kropki zamiast przecinka.
6Walutavarchar5Symbol waluty.
7Jmzvarchar8Jednostka pomocnicza.
8CzassmallintCzas dostawy/wysyłki w dniach. Wykorzystywany do optymalizowania generowanie Zamówień Zakupu z poziomu dokumentu Bilansu Stanu Towarów.
9DataAktDateData aktualizacji ceny w formacie RRRR-MM-DD.
10KodKntvarchar40Kod 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

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kod_towaruvarchar40Kod towaruTak
3Jmzvarchar8Symbol jednostki pomocniczejTak
4PrzeliczLLicznik przelicznika
5PrzeliczMdecimalMianownik 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.
6EANvarchar40Kod EAN jednostki pomocniczej

Towary normatywy

Lp.

TowaryNormatywy.xls

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kod_towaruvarchar40Kod towaruTak
3Kod_magazynuvarchar10Kod magazynuTak
4IloscZamsmallintIlość zamawiana towaru. Parametr wykorzystywany na potrzeby Bilansu Stanu Towarów.
5IloscMinsmallintIlość minimalna towaru. Parametr wykorzystywany na potrzeby Bilansu Stanu Towarów.
6IloscMaxsmallintIlość maksymalna towaru. Parametr wykorzystywany na potrzeby Bilansu Stanu Towarów.

Towary Receptury

Lp.

TowaryReceptury.xls

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kod_towaruvarchar40Kod usługi lub produktu, dla którego dodajemy recepturę.Tak
3Symbolvarchar20Symbol towaruTak
4Nazwavarchar40Nazwa towaru
5TypRecepturylongTyp receptury: 1-kompletacyjna, 2-dekompletacyjna, 3- serwisowaTak
6Ilośćvarchar12Ilość wyprodukowanego towaruTak
7KosztEwidvarchar16Koszt ewidencyjny
8Opisvarchar2000Opis receptury
9KlasaCechyvarchar20Klasa cechy receptury
10Cechavarchar20Cecha receptury
11Jmvarchar8Jednostka miary w jakiej określona jest receptura dla towaru musi być określona dla towaru (zakładka opakowanie)
12URLvarchar255URL receptury
13Towarvarchar40Kod składnika towaru, który dodajemy do recepturyTak
14ilosc_sklvarchar12Ilość składnikaTak
15ZamiennikilongCzy dopuszczalne są zamienniki (1 – tak, 0- nie)
16TypPozycjilongTyp pozycji (1- składnik, 3- robocizna, 4- produkt uboczny)
17TypCechy_skllongTyp cechy składnika (0-nieistotne, 1- na zlecenie, 2- z receptury)
18Ubytekvarchar6Ubytek w procentach
19Kosztvarchar16Koszt składnika
20Opis_sklvarchar2000Opis składnika
21KlasaCechy_sklvarchar20Klasa cechy składnika
22Cecha_sklvarchar20Cecha składnika
23Jm_sklvarchar8Jednostka 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

OpisWymagane
Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Akronimvarchar20Akronim grupy kontrahentówTak
3GrupaSciezkaŚ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
LPAkronimGrupaSciezka
1DOSTAWCY
2KRAJOWIDOSTAWCY
3ZAGRANICZNIDOSTAWCY
4UNIJNIDOSTAWCY\|ZAGRANICZNI
5POZAUNIJNIDOSTAWCY\|ZAGRANICZNI
Tak

Kontrahenci

Lp.

Kontrahenci.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Typsmallint20Typ kontrahenta. Możliwa do wprowadzenia jedna z trzech wartości: 8 – dostawca, 16 – odbiorca, 24 – dostawca/odbiorcaTak
3AkwizytorboolCzy 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.
4Akronimvarchar20Skrócona nazwa kontrahenta.Tak
5Nazwa1varchar50Pierwsza część nazwy kontrahenta.Tak
6Nazwa2varchar50Druga część nazwy kontrahenta.
7Nazwa3varchar50Trzecia część nazwy kontrahenta.
8KodPvarchar10Kod pocztowy.
9Miastovarchar30Miasto.Tak
10Ulicavarchar30Ulica.
11adresvarchar30Dodatkowe pole adresu.
12NIPPrefixvarchar13Prefiks numeru nim, np. PL, DE.Tak
13NIPvarchar13Numer NIP z kreskami oddzielającymi poszczególne grupy cyfr, np. 677-00-65-406Tak
14REGONvarchar20Numer Regon
15PESELvarchar11Numer PESEL w sytuacji, gdy kontrahent jest osobą fizyczną
16Bankvarchar20Kod 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.
17NRRACHUNKUintegerNumer rachunku bankowego
18NRBsmallintCzy numer rachunku jest zgodny ze standardem NRB. Dopuszczalne wartości 0 lub 1.
19OdlegloscdecimalOdległość do kontrahenta, pole informacyjne.
20Krajvarchar2Kod kraju, np. PL – Polska.
21Wojewodztwovarchar30Nazwa województwa.
22Powiatvarchar30Nazwa powiatu.
23Gminavarchar30Nazwa gminy.
24Telefon1varchar30Numer telefonu do kontrahenta.
25Telefon2varchar30Numer telefon do kontrahenta.
26FAXvarchar30Numer faksu do kontrahenta.
27Modemvarchar30Dodatkowe pole na numer kontaktowy do kontrahenta.
28TELEXvarchar30Obecnie pole na kartotece kontrahenta posiada etykietę GSM, więc możemy tutaj wpisać numer telefonu komórkowego.
29EMAILvarchar255Domyślny adres e-mail kontrahenta. Adresy e-mail poszczególnych osób od kontrahenta są rejestrowane na zakładce Osoby.
30URLvarchar255Adres strony internetowej kontrahenta.
31SeriaFAvarchar10Seria 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ń.
32AkronimOpiekunavarchar30Skrócona nazwa opiekuna kontrahenta.
33MagKodvarchar10Kod magazynu, na który będą składane zamówienia zarejestrowane w Pulpicie Kontrahenta.
34OUTLOOKURLvarchar50Jeż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\.....
35Rejestrbankowyvarchar10Rejestr 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ń.
36SposóbDostawyvarchar20Nazwa sposobu dostarczania towaru zarówno od jak i do kontrahenta.
37AkronimAkwizytorvarchar30Skró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.
38Platnikvarchar30Akronim płatnika. Jeżeli pole pozostawimy puste, w polu płatnika ustawi się migrowany kontrahent, więc takie rozwiązanie proponujemy.
39WalSymbolvarchar5Symbol waluty, w jakiej mają być wystawiane transakcje z danym kontrahentem.
40AkwProwizjasmallintProwizja akwizytora. Pole informacyjne do ewentualnego wykorzystania w raportowaniu.
41GLNvarchar40Numer 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.
42RabatsmallintDomyś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.
43MAXLIMITWARTsmallintWartość kredytu kupieckiego.
44LimitPoTerminiesmalintJaki procent kredytu kupieckiego mogą stanowić płatności przeterminowane.
45CechaOpisvarchar40Opis z kartoteki kontrahenta przepisywany na dokument.
46MarzasmallintUstalona, proponowana marża.
47GrupaSciezkavarchar1999Ścieżka do grupy, w której ma znajdować się kartoteka kontrahenta.
48OpisvarcharNotatka związana z danym Klientem, umieszczana na zakładce Uwagi.
49FormaPltinyint2Forma 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.
50TERMINPLSPRintegerTermin płatności dla sprzedaży w dniach.
51FORMAPLZAKinteger2Forma 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.
52TERMINPLZAKsmallintTermin płatności dla zakupów w dniach.
53LimitTerminowybool1Rodzaj limitu związanego z kredytem kupieckim (-1 wg wzorca, 0-nieograniczony 1-terminowy)
54RejonintegerNazwa rejonu, do którego przynależeć ma kontrahent. Rejon jest jeszcze jednym z kryteriów podziałowych kartotek kontrahentów.
55PlatnikVattinyint1Czy kontrahent jest płatnikiem VAT: 0 – nie jest, 1 – jest płatnikiem VAT.
56Statustinyint1Status kontrahenta: 1 – Podmiot gospodarczy, 2 – Odbiorca finalny
57JednostkaPowiazanatinyintParametr 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.
58CenasmallintNumer rodzaju ceny sprzedaży domyślny dla dokumentów. Dla 0 – cena domyślna.
59RozliczeniaDewizowetinyintCzy dla kontrahenta stosowane rozliczenie dewizowe: 0 – nie, 1 – tak.
60RodzajintegerRodzaj kontrahenta np. Inny, Partner, domyślnie Kontrahent
61MAXDNIPOTERMINIEintegerDozwolone przeterminowanie
62DATAWYGASNIECIAintegerData zakończenia obowiązywania limitu kredytowego. Termin bez ograniczeń dla daty 2058-01-19.

Kontrahenci Adresy

Lp.

KontrahenciAdresy.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Akronimvarchar20Akronim kontrahenta, z którym ma być powiązany dany adres.Tak
3AkronimAdresvarchar20Skrócona nazwa kontrahenta
4WysylkowyboolCzy dany adres jest adresem wysyłkowym: 0 – nie, 1 – tak.
5Nazwa1varchar50Pierwsza część nazwy kontrahenta.
6Nazwa2varchar50Druga część nazwy kontrahenta.
7Nazwa3varchar50Trzecia część nazwy kontrahenta.
8NIPPrefiksvarchar13Prefiks numeru NIP, np. PL, DE.
9NIPEvarchar13Numer NIP kontrahent, bez kresek.
10REGONvarchar20Numer Regon.
11PESELvarchar11Numer PESEL.
12BANKvarcharKod 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.
13NRRACHUNKUintegerNumer rachunku bankowego
14KodPvarchar10Kod pocztowy.
15Miastovarchar30Miasto.
16Ulicavarchar30Ulica.
17Adresvarchar30Dodatkowe pole adresu.
18Krajvarchar2Kod kraju, np. PL.
19Wojewodztwovarchar30Nazwa województwa.
20Powiatvarchar30Nazwa powiatu.
21Gminavarchar30Nazwa gminy.
22Telefon1varchar30Numer telefonu do kontrahenta.
23Telefon2varchar30Numer dodatkowego telefonu do kontrahenta.
24FAXvarchar30Numer faksu do kontrahenta.
25Modemvarchar30Dodatkowe pole na numer kontaktowy do kontrahenta.
26TELEXvarchar30Obecnie pole na kartotece kontrahenta posiada etykietę GSM, więc możemy tutaj wpisać numer telefonu komórkowego.
27Emailvarchar255Adres e-mail kontrahenta związany z konkretnym adresem.
28KontoDostawcyvarchar30Konto dostawcy z planu kont.
29KontoOdbiorcyvarchar30Konto odbiorcy z planu kont.

Kontrahenci Osoby

Lp.

KontrahenciOsoby.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Akronimvarchar20Akronim kontrahenta, z którym ma być związana osoba.Tak
3Imię_i_nazwiskovarchar40Imię i nazwisko osoby.Tak
4Tytułvarchar40Tytuł osoby
5Stanowsikovarchar40Stanowisko (wartość pobierana ze słownika definiowalnego w Comarch ERP XL)
6Upowaznionasmallint1Czy osoba jest upoważniona do odbioru faktur VAT: 1 – tak, 0 – nie.
7UpowaznionaZamtinyint1Czy osoba jest upoważniona do składania zamówień: 1 – tak, 0 – nie.
8UpowaznionaDoKontinyint1Czy osoba jest upoważniona do kontaktów: 1 – tak, 0 – nie.
9Telefon1varchar30Telefon kontaktowy.
10Telefon2varchar30Telefon kontaktowy.
11Faxvarchar30Numer faksu.
12Emailvarchar255Adres e-mail.
13Notatkivarchar1024Pole na notatki.
14RolaintegerNazwa 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 kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Typ_dokumentysmallint3Typ dokumentu jaki ma być wystawiony (słownie - np. RW, PZ)Tak
3Numer_dokumentuvarchar40Numer dokumentu wystawionego przez kontrahenta, wg jego numeracji
4Numer_DokHistvarchar40Numer oryginalnego dokumentu wystawionego przez kontrahenta, wg jego numeracji
5Seriavarchar5Seria dokumentu
6Numer_pozycjiintegerNumer pozycji dokumentuTak
7Typ_korektytinyint1Typ korekty (1 - ilościowa, 2 - wartościowa, 3 – VAT, 5 – ilościowa na plus)
8Kod_magazynuZrdstring11Kod magazynu źródłowego
9Kod_magazynuDocstring11Kod magazynu docelowego
10Data_dokumentuintegerData dokumentu
11Akronimvarchar20Akronim kontrahenta, dla którego ma być dokumentTak
12Forma_platnoscivarchar7Forma płatności (Gotówka, Przelew, Kredyt, Czek, Karta, Inne)
13Termin_platnosciinteger10Termin płatności
14Kod_towaruvarchar40Kod towaruTak
15Iloscinteger13Ilość towaru (części ułamkowe po przecinku)Tak
16Wartoscinteger14Wartość towaru (cena*ilość)
17Grupa_VATGrupa podatku VAT (np. A, B)
18Stawka_VATvarchar2Stawka podatku VAT (np. 3, 6)
19Status_VATStatus podatku VAT: 0 – zwolniony, 1 – podatek, 2 - nie podlega
20Opisvarchar3999Opis elementu transakcji
21Rejestrvarchar5Do jakiego rejestru VAT ma trafić dokument
22DataSprinteger10W zależności od typu dokumentu data sprzedaży lub data zakupu
23DataVatinteger10Data zapisu w rejestrze
24DataMaginteger10Data przyjęcia/wydania
25JMvarchar8Pomocnicza jednostka miary
26Avistabool1Czy dokument typu avista? Tak / Nie (domyślnie)
27CechaDostawyvarchar255Wartość cechy towaru z dostawy
28Data_ważności_dostawyintegerData 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’
29JMZvarchar8Jednostka pomocnicza
30MPPtinyint1Mechanizm podzielonej płatności 0 – nie, 1 – tak.

Dokumenty importowe

Lp.

DokImp.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Typ_dokumentuvarchar40Typ dokumentu jaki ma być wystawiony 16 lub 3344 - FAITak
3Numer_dokumentuvarchar40Numer dokumentu
4Numer_DokHistvarchar40Numer oryginalnego dokumentu wystawionego przez kontrahenta, wg jego numeracji
5Numer_pozycjiintegerNumer pozycji dokumentu
6Typ_korektytinyint1Typ korekty (1 - ilościowa, 2 - wartościowa, 3 – VAT, 5 – ilościowa na plus)
7Numer_dokumentu_kortinyint1Numer dokumentu Korekty
8Numer_pozycji_korintegerNumer pozycji na korekcie
9Data_dokumentudata10Data dokumentu
10Akronimvarchar20Akronim kontrahenta, dla którego ma być wystawiony
11Forma_platnoscivarchar7Forma płatności (Gotówka, Przelew, Kredyt, Czek, Karta, Inne)
12Termin_platnosciinteger10Termin płatności
13UwagiUwagi na dokumencie
14Kod_towaruvarchar40Kod towaru
15Iloscinteger13Ilość towaru (części ułamkowe po przecinku)
16Wartoscinteger14Wartość towaru (cena*ilość)
17Stawka_VATvarchar2Stawka VAT
18Typ_obrotu
19Walutavarchar3Waluta w jakiej jest wystawiany dokument
20JMvarchar8Pomocnicza jednostka miary

Dokumenty magazynowe

Lp.

DokMag.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Typ_dokumentuvarchar3Typ dokumenty słownie np. PMTak
3Numer_DokHistvarchar40Opis dla dokumentu
4Numer_pozycjiintegerNumer pozycji na dokumencie (jeśli pozycja ma nr 1 to najpierw jest tworzony nagłówek dokumentu)Tak
5Kod_magazynuvarchar11Kod magazynu, na którym operuje dokument
6Data_dokumentuinteger10Data dokumentu
7Akronimvarchar20Akronim kontrahentaTak
8Kod_towaruvarchar40Kod towaruTak
9Iloscinteger13Ilość towaruTak
10JMvarchar8Pomocnicza jednostka miary

Dokument SAD

Lp.

DokSAD.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Typ_dokumentuvarchar3Typ dokumentu jaki ma być wystawiony
17 lub 3376 – SAD
18 lub 3377 – SSC
23 lub 3378 – FWZ
24 lub 3379 – FWS

3Numer_dokumentuvarchar40Numer dokumentu
4Numer_DokHistvarchar40Numer dokumentu historycznego
5TypPodmiotuintegerTyp podmiotu (32-kontrahent, 4304-urząd)
6KursLintegerLicznik 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
7KursMintegerMianownik kursu waluty
8Numer_pozycjiintegerNumer pozycji na dokumencie
9Typ_korektytinyint1Typ korekty 1 - ilościowa, 2 - wartościowa
10DataWplywuWystawieniadata10Data wpływu/wystawienia
11DataPrzyjeciaVatdata10Data przyjęcia/vat
12DataZgloszeniaZakupudata10Data zgłoszenia/zakupu
13Akronimvarchar20Akronim kontrahenta
14Forma_platnoscivarchar7Forma płatności (Gotówka, Przelew, Kredyt, Czek, Karta, Inne)
15Termin_platnosciintegerTermin płatności
16UwagiUwagi na dokumencie
17TowarKodvarchar40Kod towaru
18Iloscinteger13Ilość towaru (części ułamkowe po przecinku)
19Wartoscinteger14Wartość towaru (cena*ilość)
20Stawka_VATvarchar2Stawka VAT
21Typ_obrotu
22Walutavarchar3Waluta w jakiej jest wystawiany dokument
23Kwotavarchar14Nazwa kwoty (musi być w definicjach kwot)
24Nazwavarchar80Wartość kwot
25RodzajintegerNumer (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
26Rejestrvarchar5Rejestr VAT
27JMvarchar8Pomocnicza jednostka miary

Dokumenty Umów

Lp.

DokUmw.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszu
2Umowa_Akronimvarchar20Akronim kontrahenta lub kod banku
3Umowa_Typvarchar512Ścieżka typu umowy, kody umowy oddzielone "\" pomijając gałąź "Wszystkie"
4Umowa_Rodzajvarchar128Nazwa rodzaju umowy
5Aneksowana_IdintegerNumer identyfikacyjny umowy, która chcemy zaaneksować, jak nie znajdzie po ID to szuka po numeratorze
6Aneksowana_NumerintegerNumer dokumentu umowy do którego wystawić aneks
7Aneksowana_MiesiactinyintMiesiąc dokumentu umowy do którego wystawić aneks, gdy numeracja roczna to 0
8Aneksowana_RoksmallintRok dokumentu umowy do którego wystawić aneks
9Aneksowana_Seriavarchar5Seria dokumentu umowy do którego wystawić aneks
10Aneksowana_NettoTyptinyintTyp w jakim zostanie uwzględniona kwota z kolumny Netto
0 - różnicowa
1 - na określoną
11Numer_obcyintegerNumer dokumentu z systemu zewnętrznego
12Data_zawarciaintegerData zawarcia dokumentu umowy
13Data_rozpoczęciaintegerData rozpoczęcia obowiązywania umowy
14Data_zakończeniaintegerData zakończenia obowiązywania umowy
15Walutavarchar3Waluta nagłówka umowy
16Nettodecimal15Wartość netto umowy
17StawkaVATvarchar2Stawka vat np. 'A 23.00' kropka i miejsca dziesiętne wymagane
18SeriaDokvarchar5Seria dokumentu dla numeratora
19NumerDokvarchar40Numer dokumentu dla numeratora
20Opisvarchar1024Opis nagłówka umowy
21ProjektIdintegerNumer identyfikacyjny projektu, z którym umowa jest związana
22Stantinynt1Stan umowy: 0 Bufor, 1 Potwierdzona, 2 Odrzucona, 3 Zakończona, 4 Anulowana
23StabOpisIdintegerOpis wybranego stanu pochodzący ze słownika kategorii, brak to pierwszy z listy
24AneksPowodIdintegerNumer 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 kolumnyTyp danychIlość znaków
1LpLiczba porządkowaTak
2Nazwavarchar40Nazwa klasy atrybutuTak
3TypsmallintTyp atrybutu: 1 – flaga, 2 – tekst, 3 – liczba, 4 – lista, 5 – SQL, 10 + obiektyTak
4GIDTypsmallintGIDTyp obiektu, do którego ma być dodana klasa atrybutuTak
5ELEMENTsmallintTyp elementu. Rozróżnienie obiektu, gdy ten sam GIDTyp: 0 – nagłówek, 1 – pozycja, 2 - składnik
6WartośćWartość klasy atrybutu, jeśli klasa ma typ 4 - lista
7FormatFormat 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, @s50Tak

Wartość Atrybutu

Lp.

AtrybutyWartości.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LpLiczba porządkowaTak
2TypsmallintTyp obiektu: 16 – Towary, 32 – kontrahenci, 368 – środki trwałeTak
3Akronimvarchar20Akronim obiektu: kod dla towaru, akronim kontrahenta, akronim środka trwałegoTak
4Nazwa_Klasy_Atrvarchar40W 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 kolumnyTyp danychIlość znaków
1LpintegerLiczba porządkowaTak
2Kodvarchar40Kod gniazdaTak
3Nazwavarchar100Nazwa gniazda
4Oddzialvarchar40Nazwa oddziału
5Opisvarchar512Opis gniazda
6Planowanatinyint1Planowanie: 0 – nie, 1 – szczegółowo, 2 – zgrubnie, 3 - zawsze
7Typtinyint1Pole przyjmuje wartość 1 – gniazdo robocze
8PlanujStrategicznietinyint1Uwzględnianie gniazda roboczego w planowaniu strategicznym. 0 – gniazdo nie będzie uwzględniane, 1 – gniazdo będzie uwzględniane przy planowaniu strategicznym.
9ZdolnoscWOkresiedecimalZdolność produkcyjna gniazda roboczego
10ZdolnoscWOkresieJedntinyint1Jednostka zdolności produkcyjnej: 0 – minuty, 1 – godziny, 2 – dni.
11DopuszczalneObciazeniesmallintDopuszczalne procentowe obciążenie gniazda.
12Zmiennatinyint1Określenie czy zasoby mogą być zmieniane dla różnych terminów: 1 – tak, 0 – nie (domyślnie)
13CzyZrownoleglactinyint1Zwiększanie liczby zasobów: 1 – tak, 0 – nie
14KontynuacjaPracytinyint1Wybór kontynuacji pracy zasobu: 1- tak, 0 – nie.
15TenSamZasobWPartiitinyint1Czy 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 kolumnyTyp danychIlość znaków
1LpintegerLiczba porządkowaTak
2IdTechnologiaCzynnoscintegerPTC_ID operacji w technologii Tak
3IdFunkcjiintegerPFU_ID – id gniazda roboczego
4KodFunkcjivarchar40Kod gniazda roboczego
5LiczbaObiektowsmallintLiczba zasobów
6WszystkiesmallintOkreślenie czy gniazdo robocze ma być wymagane dla operacji podrzędnych: 1 – tak, 0 – nie.
7ZmiennatinyintOkreślenie czy zasoby mogą być zmieniane dla różnych terminów: 1 – tak, 0 – nie
8TenSamZasobWPartii
tinyintCzy 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 kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kodvarchar40Kod obiektu (zasobu)Tak
3Nazwavarchar100Nazwa obiektu
4Oddzialvarchar40Kod oddziału
5KodOjcavarchar40Kod obiektu nadrzędnego
6Obiektvarchar100Kod obiektu z ERP XL (towaru, kontrahenta …)
7Kalendarzvarchar40Nazwa kalendarza
8Kontovarchar30Konto księgowe
9ZmianaStawkadecimalStawka za przezbrojenie gniazda
10ZmianaCzasintegerCzas potrzebny na zmianę
11ZmianaCzasJedninteger1Jednostka czasu zmiany (0 – sekunda, 1 – minuta, 2 – godzina, 3 – dzień, 4 – tydzień)
12DopuszczaZasobyinteger1Czy dopuszczać zasoby: 1 – tak, 0 - nie
13RejestrowacUzycieinteger1Czy rejestrować użycie: 1 – tak, 0 - nie
14StawkaStalavarchar20Stawka stała
15StawkaCzasvarchar20Stawka za czas
16StawkaCzasMvarchar15Mianownik stawki za czas
17StawkaCzasMJedntinyintJednostka czasu mianownika
Wartości: 0 - sekundy 1 - minuty 2 - godziny 3 - dni 4 – tygodnie
18StawkaIloscdecimalStawka za ilość
19StawkaIloscMdecimalMianownik stawki za ilość
20ObiTypsmallintTyp 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.
21ObiNumerintegerNumer obiektu

Obiekty w funkcjach

Arkusz służy przypisaniu gniazda roboczego do zasobu.

Lp.

ProdObiektyFunkcje.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Obiektvarchar40Kod zasobuTak
3Funkcjavarchar40Kod gniazda roboczegoTak
4ObiektIdintegerId zasobu
5FunkcjaIdintegerId gniazda roboczego
6GrupaintegerWiele obiektów na jednym gnieździe jednocześnie
7OddzialIdintegerId oddziału
8WydajnoscCzasintegerMianownik wydajności – czas
9WydajnoscCzasJedntinyintJednostka mianownika wydajności (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie)
10CzasintegerCzas przetwarzania minimalnej ilości
11CzasJedntinyintJednostka czasu przetwarzania (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie)
12CzyStawkitinyintCzy stosować specjalne stawki dla gniazda: 0 – nie, 1 – tak
13StawkaStalaAtrintegerId klasy atrybutu stawki stałej
14StawkaCzasAtrintegerId klasy atrybutu stawki za czas
15StawkaCzasMintegerMianownik stawki za czas
16StawkaCzasMJedntinyintJednostka mianownika stawki za czas (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie)
17StawkaIloscAtrintegerId klasy atrybutu stawki za ilość
18CzasPrzygotowaniaintegerCzas przygotowania
19CasPrzygotowaniaJedntinyintJednostka czasy przygotowania (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie)
20StawkaPrzygotowaniaAtrintegerKlasa atrybutu dla stawki przygotowania
21CzasZakonczeniaintegerCzas zakończenia
22CzasZakonczeniaJedntinyintJednostka czasu zakończenia (0 – sekundy, 1 – minuty, 2 – godziny, 3 – dni, 4 – tygodnie)
23StawkaZakoczeniaAtrtinyintKlasa atrybutu dla stawki zakończenia
24Oddzialvarchar40Kod oddziału
25MinIloscdecimalMinimalna ilość przetwarzania
26MaxIloscdecimalMaksymalna ilość przetwarzania
27Jednostkavarchar8Jednostka parametrów ilościowych
28WydajnoscIloscdecimalLicznik wydajności – ilość
29StawkaStaladecimalStała stawka
30StawkaCzasdecimalStawka za czas
31StawkaIloscdecimalStawka za ilość
32StawkaIloscMdecimalMianownik stawki za ilość
33StawkaPrzygotowaniadecimalStawka za przygotowanie
34StawkaZakonczeniadecimalStawka za zakończenie
35KlasaStalaAtrvarchar255Kod klasy atrybutu stawki stałej
36KlasaCzasAtrvarchar255Kod klasy atrybutu stawki za czas
37KlasaIloscAtrvarchar255Kod klasy atrybutu stawki za ilość
38KlasaPrzygotowaniavarchar255Kod klasy atrybutu za przygotowanie
39KlasaZakonczeniaAtrvarchar255Kod klasy atrybutu za zakończenie

Czynności produkcyjne w technologii

Lp.

ProdTechnologieCzynnosci.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LpintegerLiczba porządkowa wpisu w arkuszuTak
2Kodvarchar40Kod technologiiTak
3Nazwavarchar100Nazwa technologii
4TwrKodvarchar512Kod towaru
5KntAkronimvarchar20Akronim kontrahenta
6KnDAkronimvarchar20Akronim kontrahenta docelowego
7Iloscvarchar20Ilość, dla której jest rozpisany proces produkcji
8IloscMinvarchar20Minimalna ilość produkowana
9IloscProdvarchar20Ilość produkowana ma być wielokrotnością IloscProd
10IloscPlanvarchar20Planować w porcjach ilości
11Jednostkavarchar8Jednostka operacji
12Oddzialvarchar40Kod oddziału
13Opisvarchar123Opis technologii
14StawkaStalavarchar20Stawka stała
15StawkaIloscvarchar20Stawka za ilość
16StawkaIloscMvarchar20Mianownik stawki za ilość
17StawkaCzasvarchar15Stawka za czas
18StawkaCzasMintegerMianownik stawki za czas
19StawkaCzasMJedntinyintJednostka mianownika stawki za czas: 0 - sekundy 1 - minuty 2 - godziny 3 - dni 4 - tygodnie
20WymagajPodaniaStanuOperacji
tinyintCzy na technologii zaznaczyć: Wymagaj podania stanu dla operacji, której ilość jest różna od ilości realizacji: 1- tak, 0- nie
21Kod_czynnoscivarchar40Kod operacjiTak
22Nazwa_czynnoscivarchar100 Nazwa operacjiTak
23CzasPrzygotowawczyintegerCzas przygotowawczy operacji
24CzasPrzygotowawczyJedninteger1Jednostka dla czasu przygotowawczego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
25CzasPlanowanyintegerCzas planowany dla ilości nominalnej
26CzasPlanowanyJedninteger1Jednostka czasu planowanego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
27CzasRozliczeniowyintegerCzas rozliczeniowy
28CzasRozliczeniowyJedninteger1Jednostka czasu rozliczeniowego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
29Opis_czynnoscivarchar1023Opis operacji
30UslKodvarchar40Kod usługi
31Ilosc_czynnoscidecimalIlość operacji
32IloscMin_czynnoscivarchar20Ilość minimalna operacji
33IloscMax_czynnoscivarchar20Ilość maksymalna operacji
34IloscPlan_czynnoscivarchar20Planować w ilości po
35JednostkaCzynnoscivarchar8Jednostka ilości dla operacji
36Oddzial_czynnoscivarchar40Nazwa oddziału
37StawkaStala_czynnoscivarchar20Stawka stała
38StawkaCzas_czynnoscivarchar20Stawka za czas
39StawkaCzasM_czynnosciintegerMianownik stawki za czas
40StawkaCzasJedn_czynnoscivarchar20Jednostka mianownika stawki za czas
41StawkaIlosc_czynnoscivarchar20Stawka za ilość
42StawkaIloscM_czynnoscivarchar20Mianownik stawki za ilość
43CzasPrzygotowawczyRozliczeniowyintegerCzas rozliczeniowy dla czasu przygotowawczo - zakończeniowego
44CzasPrzygotowawczyRozliczeniowyJedntinyintJednostka czasu rozliczeniowego - przygotowawczo-zakończeniowego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
45OstepPointegerOdstęp czasu do zaplanowania operacji po zaplanowaniu poprzedniej operacji
46OdstepPoJmtinyintJednostka czasu odstępu między operacjami po poprzedniej
47OdstepPrzedintegerOdstęp między operacjami przed następną.
48OdstepPrzedJmtinyintJednostka czasu odstępu między operacjami przed następną
49PlanowanatinyintOperacja planowana: 0 - nie, 1 - częściowo, 2 - całościowo
50DowolneZasobytinyintPozwala wprowadzać dowolne zasoby magazynowe
51WymaganatinyintCzy operacja jest wymagana
52WieleTerminowtinyintPozwala na wiele terminów
53EtaptinyintCzy operacja jest kamieniem milowym:
1 - tak
0 - nie
54KontrolaJakoscitinyintCzy dana operacja jest kontrolą jakości: 1- tak, 0- nie
55TwrTypCzynnoscUslugasmallintTyp usługi, która odpowiada operacji
56TwrNumerCzynnoscUsluga
integerNumer usługi, która odpowiada operacji
57KooperacjatinyintCzy operacja jest kooperacją: 1- tak, 0- nie
58NiePlanujWPartiach
tinyintCzy operacja nie ma być planowana w partiach: 1- tak, 0- nie
59KodZasobvarchar40Kod materiału/produktu Tak
60NazwaZasobvarchar100Nazwa materiału/produktu
61TypZasobinteger1Typ zasobu (0 - produkt, 1 - materiał, 2 - materiał pomocniczy)
62MgazynZasobvarchar10Kod magazynu
63TwrKodZasobvarchar40Kod towaru
64CenaZasobvarchar20Cena towaru
65IloscZasobvarchar20Ilość materiału/produktu
66KosztZasobinteger1Sposób wyliczenia kosztu (0 - rzeczywisty, 1 - ewidencyjny, 2 - ważony, 3 - cena zakupu)
67JednostkaZasobvarchar8Jednostka
68PlanowanyCalosciowoZasobintegerUwzględniaj przy planowaniu całościowym
69ZrodloZasobinteger1Ź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)
70DopasowanieIlosciZasobvarchar20Dopasowanie ilości
71KlasaIloscAtrZasobvarchar40Kod klasy atrybutu z ilością
72IloscAtrZasobintegerKlasa atrybutu z ilością
73IloscMinZasobvarchar20Ilość minimalna
74KlasaIloscMinAtrZasobvarchar40Kod klasy atrybutu z ilością minimalną
75IloscMinAtrZasobintegerKlasa atrybutu z ilością minimalną
76IloscMaxZasobvarchar20Ilość maksymalna
77KlasaIloscMaxAtrZasobvarchar40Kod klasy atrybutu z ilością maksymalną
78IloscMaxAtrZasobintegerKlasa atrybutu z ilością maksymalną
79IloscFormatZasobintegerIlość miejsc po przecinku
80WagaKosztuZasobvarchar20Waga kosztu
81WagaIloscZasobintegerCzy waga wg ilości zasobu
82JednostkaPomZasobvarchar8Jednostka pomocnicza
83IloscPomZasobvarchar20Ilość pomocnicza
84IloscPomMinZasobvarchar20Ilość pomocnicza min
85IloscPomMaxZasobvarchar20Ilość pomocnicza max
86PropIloscZasobintegerCzy proponować ilość
87PropIloscPomZasobintegerCzy proponować ilość pomocniczą
88EdycjaCechyZasobintegerEdycja cechy
89KlasaCechyZasobvarchar20Klasa Cechy
90CechaZasobvarchar20Wartość cechy
91PodlegaKJtinyintCzy materiał/produkt podlega kontroli jakości: 1- tak, 0- nie
92MaterialKanbantinyintCzy dany materiał jest materiałem kanbanowym: 1- tak, 0- nie
93IdWzorcaNrPartiiintegerID wzorca numeru partii
94Zamiennik
integerMateriał, dla którego definiujemy zamiennik. Należy podać Lp. materiału z arkusza, dla którego definiujemy zamiennik.
95TechnologiaZasobintegerLP. 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 kolumnyTyp danychIlość znaków

Wymagane

Wymagane

1LPintegerLiczba porządkowa wpisu w arkuszuTak
2Kod_magazynuvarchar10Kod magazynu, na którym ustalamy stan początkowy. Kod musi być tożsamy z kodami magazynów zdefiniowanych w systemie Comarch ERP XL.
3Data_dokumentudata10Data, 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.
4Akronimvarchar20Akronim kontrahenta, na którego ma być wystawiony dokument. Pole może pozostać niewypełnione.
5Kod_towaruvarchar20Kod towaru z bazy systemu Comarch ERP XL.Tak
6IloscintegerIlość towaru w jednostce podstawowej jaka ma znaleźć się na magazynie.Tak
7WartoscintegerWartość wprowadzanego na magazyn zasobu towaru.
8Data_waznoscidata10Jeżeli jest potrzeba, możemy dany zasób oznaczyć datą ważności w formacie RRRR-MM-DD.
9Cecha_klasaJeż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.
10Cecha_wartoscWartość zdefiniowanej powyżej klasy cechy.
11LP_AtrybutintegerLiczba porządkowa wpisu w arkuszu dotycząca atrybutu związanego z dokumentem PW.
12Typsmallint2Określenie w którym miejscu ma zostać dodany atrybut: 0 - nagłówek dokumentu, 1 - pozycja dokumentu.
13AtrybutvarcharNazwa klasy atrybutu.
14Wartosc_atrWartość zdefiniowanej powyżej klasy atrybutu.

BO Dostawy

Lp.

BODostawy.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerTak
2Typ_dokumentusmallintTak
3Akronimvarchar20Tak
4Kod_magazynuvarchar10
5Numer_dokumentu
6Data_dokumentudata10
7Numer_DokHistvarchar40
8Opisvarchar20
9Numer_pozycjiintegerTak
10Kod_towaruvarchar40Tak
11IloscintegerTak
12Wartoscinteger

Zgody

Poniżej została przedstawiona charakterystyka arkuszy migracyjnych katalogu Zgody.

Kontrahenci Zgody

Lp.

KontrahenciZgody.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszu.Tak
2Akronimvarchar20Akronim kontrahenta, którego dotyczy zgoda.Tak
3RodzajZgodyvarchar255Rodzaj zgody wg słownika kategorii.Tak
4RodzajZgodyWersjaintegerWersja rodzaju zgody wg słownika kategorii.Tak
5DataUdzieleniaData10Data udzielenia zgody, format: RRRR MM DDTak
6ZrodloUdzieleniavarchar255Źródło udzielenia zgody, wg słownika kategorii.
7IPvarchar100IP komputera, z którego została udzielona zgoda.
8URLvarchar255URL, link do treści zgody lub plik poświadczający o wyrażeniu zgody.
9FormaKontaktuintegerForma kontaktu określona dla danej zgody: E-mail, Telefon, Sms, Przesyłka, Inne.
10Szczegolyvarchar1000Dodatkowe informacje.
11DataWycofaniaData10Data wycofania zgody, format: RRRR MM DD
12PowodWycofaniavarchar255Powód wycofania zgody wg słownika kategorii.
13ZrodloWycofaniavarchar255Źródło wycofania zgody, wg słownika kategorii.

Osoby Zgody

Lp.

OsobyZgody.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszu.Tak
2Akronimvarchar20Akronim kontrahenta, z którym ma być związana osoba.Tak
3ImieNazwiskovarchar40Imię i nazwisko osoby, której zgoda dotyczy.Tak
4RodzajZgodyvarchar255Rodzaj zgody wg słownika kategorii.Tak
5RodzajZgodyWersjaintegerWersja rodzaju zgody wg słownika kategorii.Tak
6DataUdzieleniaData10Data udzielenia zgody, format: RRRR MM DDTak
7ZrodloUdzieleniavarchar255Źródło udzielenia zgody, wg słownika kategorii.
8IPvarchar100IP komputera, z którego została udzielona zgoda.
9URLvarchar255URL, link do treści zgody lub plik poświadczający o wyrażeniu zgody.
10FormaKontaktuintegerForma kontaktu określona dla danej zgody: E-mail, Telefon, Sms, Przesyłka, Inne.
11Szczegolyvarchar1000Dodatkowe informacje.
12DataWycofaniaData10Data wycofania zgody, format: RRRR MM DD
13PowodWycofaniavarchar255Powód wycofania zgody wg słownika kategorii.
14ZrodloWycofaniavarchar255Źródło wycofania zgody, wg słownika kategorii.

Pracownicy Zgody

Lp.

PracownicyZgody.xls

Opis

Wymagane

Nazwa kolumnyTyp danychIlość znaków
1LPintegerLiczba porządkowa wpisu w arkuszu.Tak
2Akronimvarchar20Akronim pracownika, którego dotyczy zgoda.Tak
3RodzajZgodyvarchar255Rodzaj zgody wg słownika kategorii.Tak
4RodzajZgodyWersjaintegerWersja rodzaju zgody wg słownika kategorii.Tak
5DataUdzieleniaData10Data udzielenia zgody, format: RRRR MM DDTak
6ZrodloUdzieleniavarchar255Źródło udzielenia zgody, wg słownika kategorii.
7IPvarchar100IP komputera, z którego została udzielona zgoda.
8URLvarchar255URL, link do treści zgody lub plik poświadczający o wyrażeniu zgody.
9FormaKontaktuintegerForma kontaktu określona dla danej zgody: E-mail, Telefon, Sms, Przesyłka, Inne.
10Szczegolyvarchar1000Dodatkowe informacje.
11DataWycofaniaData10Data wycofania zgody, format: RRRR MM DD
12PowodWycofaniavarchar255Powód wycofania zgody wg słownika kategorii.
13ZrodloWycofaniavarchar255Ź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 kolumnyTyp danychIlość znaków
1LPintegerTak
2Numerinteger
3Kategoriavarchar255Tak
4Celvarchar4000
5KategorieOsobvarchar4000
6KategorieDanychvarchar4000
7KategorieOdbiorcowvarchar4000
8terminyUsunieciavarchar4000
9InfDodatkowevarchar4000

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:

Informacja o zakończeniu migracji
Informacja o zakończeniu migracji

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

Architektura zabezpieczeń klucza HASP

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).

Konfiguracja uprawnień operatora systemu ERP XL

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:

Konfiguracja systemu ERP XL

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.

Uwaga
Odstępstwem, które wymaga konfiguracji nazwy serwera klucza, bez względu na to, czy serwer zabezpieczeń działa w oparciu o główny serwer bazy, czy też o dodatkowy serwer SQL, jest system ERP XL działający w sesji terminalowej i obsługujący drukarki fiskalne, w oparciu o moduł obsługi drukarek fiskalnych za pośrednictwem połączenia terminalowego firmy COMARCH. Użytkowanie tego modułu wymaga posiadania odrębnej licencji. Licencja ta jest pobierana przez aplikację dopiero w momencie pierwszego uruchomienia terminalowego sterownika fiskalnego. Mechanizm pobierania licencji przez sterownik, wymaga explicite zdefiniowanej nazwy serwera klucza w konfiguracji komputera.

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ń.

Uwaga
Konfiguracja klucza typu NetHasp ze zdalnym serwerem klucza nie jest obsługiwana. Klucz powinien zostać wpięty do serwera, na którym pracuje baza danych.

Modele instalacji ERP XL z serwerem klucza HASP

Instalacja jednostanowiskowa

Instalacja jednostanowiskowa

Instalacja sieciowa

Typowa instalacja sieciowa

Instalacja sieciowa z wyodrębnionym serwerem zabezpieczeń

Typowa 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:

Okno odwołania systemu do klucza

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:

Wpis w rejestrze systemu Windows

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:

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:

Lista pobranych licencji z poziomu SQL

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):

Monitor Menadżera Kluczy, informacje o ilości licencji
Monitor Menadżera Kluczy, licencje pobrane przez konkretnych 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:

Widok z interfejsu webowego

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:

Idle Time z poziomu Menadżera Kluczy

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).

Widok z poziomu XL

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

Widok z poziomu Menadżera Kluczy

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:

Widok z poziomu Menadżera Kluczy

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>

Uwaga

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:

namenazwa parametru
typetyp 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
valuewartość parametru
calcprzyjmuje 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.

Uwaga
wszystkie wyrażenia należy tworzyć zgodnie z syntaktyką języka JScript. Dotyczy to zmiennych PARAM, pól FIELD jak i obliczania wyrażeń typu true/false (np. dla atrybutów hide).

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

@PRINTERnazwa 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:''@?.
@VIEWERnazwa programu służącego do podglądu wydruku, domyślnie jest to „notepad.exe” .
@CODEPAGEsposó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.
@INPUTCODEtekst wejściowy dla algorytmu przekodowania polskich liter. Inicjalizowany zgodnie z parametrem @CODEPAGE.
@OUTPUTCODEtekst wyjściowy dla algorytmu przekodowania polskich liter. Inicjalizowany zgodnie z parametrem @CODEPAGE.
@PRINTERTYPEtyp 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_NARROWkod 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_BOLDkod 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
@CRznak cofnięcia karetki do początku strony (domyślnie znak o kodzie 13)
@LFznak przejścia do nowej linii (domyślnie znak o kodzie 10)
@FFznak końca strony (domyślnie znak o kodzie 12)
@BSznak cofnięcia karetki o jeden znak (domyślnie znak o kodzie 8)
@PAGENOnumer strony
@PAGETOTłączna liczba stron wydruku
@LINENOnumer linii na stronie
@PAGELENGTHliczba 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:

nameJeżeli atrybut nazwa jest ustawiony, to pole jest traktowane tak jak parametr, tzn. wartość aktualnie drukowanego pola jest zapamiętywana jako zmienna
typeTyp pola. Dopuszczalne wartości to text i number (domyślnie text). Od ustawienia typu pola zależy jego formatowanie, wyrównywanie itp.
valueWartość pola. Może być podana jako wartość (jeżeli calc=”false”) lub jako wyrażenie (jeżeli calc=”true”)
alignSposó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)
widthSzerokość pola.
precDla pól typu number oznacza liczbę miejsc po przecinku.
calcOkreśla, czy value zawiera wartość (calc=”false”) czy wyrażenie (calc=”true”)
fillZnak dopełniający pole do pełnej szerokości podanej w width. Domyślnie spacja.
hideJeżeli hide=”true” to pole jest ukrywane
hidezeroJeżeli hidezero=”true” to dla pól typu number ukrywane są nieznaczące miejsca po przecinku (w ich miejsce pojawia się spacja)
blankzeroJeżeli blankzero=”true” to pola typu number o wartości 0 są ukrywane.

Uwaga

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).

Uwaga
Aby wydruk z procedurą serwerową wykonał się poprawnie, rola ERPRaport musi mieć prawa wykonywania tej procedury. Dla naszej przykładowej procedury: CDN.wydrTabelkaPlatnosciIVat należałoby dodatkowo wykonać poniższe zapytanie: GRANT EXECUTE ON CDN.wydrTabelkaPlatnosciIVat TO CDNRaport

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('&lt;?xml version=&quot;1.0&quot;

encoding=&quot;windows-1250&quot;?&gt;')"/>

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.

Uwaga
W powyższej definicji xsl:template należy zwrócić uwagę na to, żeby we fragmencie <xsl:value-of select="@Frm_Nazwa1" /> Frm_Nazwa1 to nazwa kolumny z zapytania SQL i jest ona identyczna (ważne duże, małe litery) !
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

Spis treści

Informacje wstępne

Wymiana dokumentów za pomocą systemu ECOD

Eksport dokumentów dokonywany dla sieci elektrotechnicznych

Wymiana dokumentów typu faktura za pomocą systemu ECOD

Wymiana katalogu produktów za pomocą systemu ECOD

Wymiana zamówień za pomocą systemu ECOD

Obsługa Awiza wysyłki w programie Comarch ERP XL

Obsługa Potwierdzenia dostawy w programie Comarch ERP XL

Informacje dodatkowe

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

Przyklad
DOSTAWCA na pieczątce firmy ma numer GLN 11111111111111, ODBIORCA GLN 2222222222222. DOSTAWCA widnieje w bazie ODBIORCY jako kontrahent z numerem GLN 111111111111 oraz GLN adresu wysyłkowego (zależny od adresu docelowego, może być zgodny z adresem kontrahenta lub nie). ODBIORCA widnieje na bazie DOSTAWCY jako kontrahent z numerem GLN 22222222222222 oraz GLN adresu wysyłkowego. Na obu bazach widnieją towary o tych samych numerach EAN.

  • wskazać folder, do którego będą przekazywane odpowiednie pliki xml: Parametry komputera/Wymiana danych (w zależności od sposobu wymiany dokumentów)
Parametry komputera wybór sposobu tworzenia się struktury folderów.

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

Parametry komputera wskazanie folderu plików wyeksportowanych

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.

Uwaga

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.

Uwaga

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

Uwaga
W przypadku gdy oba atrybuty, atrybut o nazwie „FeeValue” i atrybut o nazwie „KGO”, zostały dodane na pozycję dokumentu faktury sprzedaży, linia <FeeValue> zostanie wypełniona wartością atrybutu „FeeValue”.

Uwaga
W przypadku gdy oba atrybuty, atrybut o nazwie „FeeValue” i atrybut o nazwie „KGO”, zostały przypięte do obiektu element faktury zakupu, wówczas przy imporcie dokumentu faktury zakupu, na pozycję dokumentu zostanie dodana pierwsza odszukana klasa atrybutu.

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.PCEWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OSZZ, FS, FSK, OS, FSE, FKE
KGM, kgKGMWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OSZZ, FS, FSK, OS, FSE, FKE
MTR, metr, mMTRWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OSZZ, FS, FSK, OS, FSE, FKE
MTK, m2, metr kwadratowyMTKWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OS
LTR, litrLTRWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OSZZ, FS, FSK, OS, FSE, FKE
PR, paraPRWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OSZZ, FS, FSK, OS, FSE, FKE
TNE, tona, tona metrycznaTNEWZ, PZ, ZZ, FS, FSK, WZE, FSE, FKE, OSZZ, FS, FSK, OS, FSE, FKE
KMT, kilometrKMTFS, FSK, OS, FSE, FKEZZ, FS, FSK, OS, FSE, FKE
PA, pa, pacz, op, opa, opak, opakowPAFS, FSK, OS, FSE, FKEZZ, FS, FSK, OS, FSE, FKE
SET, kpl, kompletSETFS, FSK, OS, FSE, FKEZZ, FS, FSK, OS, FSE, FKE
CT, kartonCTFS, FSK, OS, FSE, FKE
PK, paczkaPKFS, FSK, OS, FSE, FKE

Uwaga
W przypadku gdy symbol jednostki jest inny niż wyżej wymieniony lub z innych powodów nie udaje się go zinterpretować, w pliku przesyłany jest symbol PCE.

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 fakturySymbol i pełny numer dokumentu FS/FSK lub FSE/FKE, zgodnie z przyjętym w systemie schematem numeracji
<InvoiceDate>2009-10-20</InvoiceDate>Data fakturyData wystawienia FS, FSE.
<SalesDate>2009-10-20</SalesDate>Data sprzedażyData 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 duplikatuLinia 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ściData płatności z pola Płatność/Do
<InvoicePaymentTerms>7</InvoicePaymentTerms>Termin płatności w dniachIlość dni liczona jako różnica pomiędzy datą sprzedaży i datą płatności
<InvoicePaymentType>42</InvoicePaymentType>Forma płatnościForma 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ściAdnotacja 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 korektyLinia 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 zwrotachWartość 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ówieniaWartość atrybutu „BuyerOrderNumer”, zdefiniowanego na zakładce Atrybuty dokumentu FS/FSK, FSE/FKE.
<BuyerOrderDate>2009-10-20</BuyerOrderDate>Data zamówieniaWartość 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 korygowanejWypełnianie jak dla sekcji Line Reference
<InvoiceReferenceDate>2009-10-30</InvoiceReferenceDate>Data faktury korygowanejWypeł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ącegoNumer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta głównego na dokumencie FS, FSE
<TaxID>125236665588</TaxID>NIP kupującegoNIP zdefiniowany na formatce adresu, który jest adresem kontrahenta głównego
<AccountNumber></AccountNumber>Konto bankowe
<Name>ABS</Name>Nazwa kupującegoAkronim zdefiniowany na formatce adresu, który jest adresem kontrahenta głównego FS, FSE
<StreetAndNumber>Handlowa 3</StreetAndNumber>Ulica i numerDane 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łatnikaNumer GLN wprowadzony na formatce adresu, który jest adresem płatnika na dokumencie FS, FSE
<TaxID>125236665588</TaxID>NIP płatnikaNIP zdefiniowany na formatce adresu, który jest adresem płatnika
<AccountNumber></AccountNumber>Konto bankowe płatnika
<Name>ABS</Name>Nazwa płatnikaAkronim zdefiniowany na formatce adresu, który jest adresem płatnika FS, FSE
<StreetAndNumber>Handlowa 3</StreetAndNumber>Ulica i numerDane 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 odbiorcyGLN odbiorcy faktury
<TaxID>125236665588</TaxID>NIP odbiorcyNIP odbiorcy faktury
<AccountNumber></AccountNumber>Konto bankoweKonto bankowe odbiorcy faktury
<Name>ABS</Name>NazwaNazwa odbiorcy faktury
<StreetAndNumber>Handlowa 3</StreetAndNumber>Ulica i numerDane 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ącegoNumer GLN zdefiniowany na pieczątce firmy przypisanej do centrum będącego właścicielem dokumentu FS, FSE
<TaxID>125236669902</TaxID>NIP sprzedawcyNIP 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 numerDane 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łuDane z sekcji Organ rejestrowy pieczątki odszukanej jw. (zakładka Deklaracje)
</Seller>
<Payee>
<ILN>1515151515155</ILN>GLN odbiorcy płatnościZgodny z Seller/ILN
<TaxID>125236669902</TaxID>NIP odbiorcy płatnościZgodny z Seller/TaxID
<AccountNumber>1245555666668555</AccountNumber>Konto bankowe odbiorcy płatnościNumer rachunku bankowego z zakładki Nagłówek dokumentu FS, FSE
<Name>ABS</Name>Nazwa odbiorcy płatnościDane 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 firmyDane 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 fakturzeKolejny 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 produktuNazwa 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 nettoWartość 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 VATTo pole nie jest eksportowane, jeżeli stawka jest równa 0% (zwolniony).
<TaxCategoryCode>S</TaxCategoryCode>Kod stawkiKod 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ściWartość 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 cenyWartość 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 korektyWartość 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 odpadamiCena wyliczona jak dla linii InvoiceUnitNetPrice, pomniejszona o FeeValue
<NetAmountWithautFee>46.00</NetAmountWithautFee>Wartość bez ww. kosztówUnitNetPriceWithoutFee x InvoiceQuantity
<FeeValue>0.45</FeeValue>Jednostkowy koszt gospodarowania odpadamiWartość 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. kosztuFeeValue x InvoiceQuantity
</ProductFeeDetails>
<Line-Item>
<Line-Order>
<BuyerOrderNumber>ZZ-15/09/SER2</BuyerOrderNumber>Numer zamówieniaLinia nie wypełniana dla FSK/(S)FSK, FKE/(S)FKE w przypadku istnienia atrybutu „BuyerOrderNumber”.
<BuyerOrderDate>2009-10-20</BuyerOrderDate>Data zamówieniaLinia 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 VATTo pole nie jest eksportowane, jeżeli stawka jest równa 0% (zwolniony).
<TaxCategoryCode>S</TaxCategoryCode>Kod stawkiKod 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 kontrahentaDla adresu, który jest adresem kontrahenta głównego FS, FSE nie zdefiniowano numeru GLNOdnaleźć adres wskazany na FS, FSE jako adres kontrahenta głównego i wpisać na formatce adresu numer GLN
Nie określono GLN kontrahentaDla adresu, który jest adresem kontrahenta docelowego na FS, FSE nie zdefiniowano numeru GLNOdnaleźć adres wskazany na FS, FSE jako adres kontrahenta docelowego i wpisać na formatce adresu numer GLN
Nie określono GLN firmy na pieczątceDo centrum będącego właścicielem dokumentu FS, FSE nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru GLNPrzypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer GLN
Nie określono numeru NIP firmyDo centrum będącego właścicielem dokumentu FS, FSE nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru NIPPrzypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer NIP
Nie określono numeru rachunku na rejestrze dokumentuNa zakładce Nagłówek dokumentu FS, FSE nie wybrano rejestru bankowegoWybrać 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, FSEJeż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 fakturyNumer faktury przepisywany jest do pola Faktura na zakładce Nagłówek dokumentu FZ
<InvoiceDate>2009-10-06</InvoiceDate>Data fakturyNa tej podstawie ustalana jest data wystawienia dokumentu FZ
<InvoiceDuplicateDate>2009-10-10</InvoiceDuplicateDate>Data duplikatuJeż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>WalutaWaluta 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ściNa 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 dniachTermin 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ściNa 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ściAdnotacja 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ącegoNa 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ściNa 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 towaruNa 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 nabywcyJeż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 sprzedawcyJeż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 produktuNazwa 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 nettoJeż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 VATNa tej podstawie ustalana jest stawka VAT pozycji dokumentu FZ
<TaxCategoryCode>S</TaxCategoryCode>Kod stawkiIstotna 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 odpadamiJeż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 walutyW programie XL nie zdefiniowano waluty o symbolu zgodnym z przesyłaną waluta fakturySprawdzić w sekcji <Invoice-Currency> importowanego pliku symbol waluty, zdefiniować taką walutę w systemie
Nie udało się odnaleźć kontrahenta o numerze GLN: 1256565656565W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w plikuWprowadzić 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 1255555555555W 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łanymNa towarze, którego dotyczy importowana faktura należy zdefiniować numer EAN zgodny z przesyłanym
Nie znaleziono w konfiguracji wybranej stawki podatkowej 7% SW 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ązywaniaData 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 kontaktowaOsoba kontaktowa dotycząca zamówień
</Buyer>
<Seller>
<ILN>1111111111116</ILN>GLN sprzedawcy
<OrderContact></OrderContact>Osoba kontaktowaOsoba kontaktowa dotycząca zamówień
</Seller>
</ProductCatalogue-Parties>
<ProductCatalogue-Lines>
<Line>
<Line-Item>
<LineNumber>1</LineNumber>Numer linii
<LineType>3</LineType> TYLKO MAKROTyp liniiTyp linii:
1-dodana; 2-usunięta; 3-zmieniona; 4-bez zmian
<EAN>2010000000069</EAN>EAN produktu
<BuyerItemCode>2010000000052</BuyerItemCode> TYLKO MAKROKod produktu kupującego
<SupplierItemCode>T1</SupplierItemCode>Kod produktu sprzedawcy
<PreviousEAN></PreviousEAN>EAN produktu poprzednikaLinia wypełniana na podstawie atrybutu PreviousEAN umieszczonego na elemencie oferty sprzedaży
<PreviousBuyerItemCode></PreviousBuyerItemCode> TYLKO MAKROKod produktu kupującego poprzednika
<PreviousSupplierItemCode></PreviousSupplierItemCode>Kod produktu sprzedawcy poprzednika
<ItemDescription>buty</ItemDescription>Nazwa produktuNazwa 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 MAKROCena jednostkowa netto
<TaxRate>22.00</TaxRate>Stawka VATTo pole nie jest eksportowane, jeżeli stawka jest równa 0% (zwolniony).
<TaxCategoryCode>S</TaxCategoryCode>Kod stawkiKod 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 MAKROIlość 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ątceDo centrum będącego właścicielem dokumentu ZZ nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru GLNPrzypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer GLN
Nie określono numeru GLN kontrahentaDla adresu, który jest adresem kontrahenta głównego ZZ nie zdefiniowano numeru GLNOdnaleźć adres wskazany na ZZ jako adres kontrahenta głównego i wpisać na formatce adresu numer GLN
Nie określono numeru GLN miejsca dostawyDo 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 firmyPrzypisać 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łkiDla adresu, który jest adresem kontrahenta docelowego ZZ nie zdefiniowano numeru GLNSprawdzić, 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 ZZJeż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ązywaniaData 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 MAKROTyp liniiTyp linii:
1-dodana; 2-usunięta; 3-zmieniona; 4-bez zmian
<EAN>2010000000069</EAN>EAN produktu
<BuyerItemCode>2010000000052</BuyerItemCode> TYLKO MAKROKod produktu kupującego
<SupplierItemCode>T1</SupplierItemCode>Kod produktu sprzedawcy
<PreviousEAN></PreviousEAN>EAN produktu poprzednikaLinia wypełniana na podstawie atrybutu PreviousEAN umieszczonego
<PreviousBuyerItemCode></PreviousBuyerItemCode> TYLKO MAKROKod produktu kupującego poprzednika
<PreviousSupplierItemCode></PreviousSupplierItemCode>Kod produktu sprzedawcy poprzednika
<UnitNetPrice>81.97</UnitNetPrice> TYLKO MAKROCena jednostkowa netto
<PackDetails>
<UnitPackSize>1.000</UnitPackSize> TYLKO MAKROIlość 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 walutyW programie XL nie zdefiniowano waluty o symbolu zgodnym z przesyłaną waluta fakturySprawdzić w sekcji <Invoice-Currency> importowanego pliku symbol waluty, zdefiniować taką walutę w systemie
Nie udało się odnaleźć kontrahenta o numerze GLN: 1256565656565W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w plikuWprowadzić 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 1255555555555W 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łanymNa towarze, którego dotyczy importowana faktura należy zdefiniować numer EAN zgodny z przesyłanym
Nie znaleziono w konfiguracji wybranej stawki podatkowej 7% SW 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ówieniaWartość 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ówieniaPełny numer ZZ
<OrderDate>2009-10-17</OrderDate>Data zamówieniaData wystawienia ZZ
<ExpectedDeliveryDate>2009-10-17</ExpectedDeliveryDate>Oczekiwana data dostawyData realizacji ZZ
<ExpectedDeliveryTime>2009-10-17</ExpectedDeliveryTime>Oczekiwany czas dostawy
<PromotionReference></PromotionReference>Kod transakcji promocyjnej
<DocumentFunctionCode>O</DocumentFunctionCode>Typ dokumentuO – oryginał
<ResponseType>AC</ResponseType>Typ potwierdzeniaWartość 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ściForma 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/UwagiInformacje 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ącegoDane 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ącegoDane 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ącegoDane 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ącegoNumer 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 sprzedawcyDane z ww. adresu
<CodeByBuyer>121254555</CodeByBuyer>Kod wg kupującegoWartość 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 dostawyNumer 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 dostawyDane 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łkiNumer GLN zdefiniowany na formatce adresu, który jest adresem kontrahenta docelowego dokumentu ZZ
</ShipFrom>
<UltimateCustomer>
<ILN>4444444444444</ILN>GLN kontrahentaNumer 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 liniiKolejny numer pozycji wczytywanej z ZZ do pliku
<EAN>4444444444444</EAN>EAN towaruKod 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ącegoKod towaru z założonej w systemie karty towaru
<SupplierItemCode></SupplierItemCode>Kod towaru u sprzedawcyKod 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 towaruNazwa 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 tekstowaTreść wprowadzona w polu Opis elementu ZZ
<ItemType>CU</ItemType>Identyfikator towaruJeż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 handlowymWskaź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 miarySymbol 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 nettoJeż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 realizacjiLinia wypełniana datą realizacji kolejnych elementów eksportowanego ZZ
<Remarks>Uwagi<Remarks>Opis/UwagiLinia wypełniana wartością zgodną z opisem wprowadzonym na elemencie zamówienia
</Line-Item>
</Line>
</Order-Lines>
<Order-Summary>
<TotalLines>1</TotalLines>Ilość liniiIlość 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ątceDo centrum będącego właścicielem dokumentu ZZ nie przypisano pieczątki lub na przypisanej pieczątce nie zdefiniowano numeru GLNPrzypisać do centrum pieczątkę lub jeżeli jest ona już przypisana wpisać na niej numer GLN
Nie określono numeru GLN kontrahentaDla adresu, który jest adresem kontrahenta głównego ZZ nie zdefiniowano numeru GLNOdnaleźć adres wskazany na ZZ jako adres kontrahenta głównego i wpisać na formatce adresu numer GLN
Nie określono numeru GLN miejsca dostawyDo 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 firmyPrzypisać 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łkiDla adresu, który jest adresem kontrahenta docelowego ZZ nie zdefiniowano numeru GLNSprawdzić, 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 ZZJeż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ówieniaJeż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ówieniaPrzesyłany numer jest zapisywany w polu "u kontrahenta" na zakładce Nagłówek ZS
<OrderDate>2009-10-17</OrderDate>Data zamówieniaNa tej podstawie ustalana jest data wystawienia ZS
<ExpectedDeliveryDate>2009-10-17</ExpectedDeliveryDate>Oczekiwana data dostawyNa 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 potwierdzeniaJeż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ściNa 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ącegoNa 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ącegoJeż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 dostawyNa 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 kontrahentaJeż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 towaruNa 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ącegoJeż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 sprzedawcyJeż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 towaruNazwa towaru podana na pozycji dokumentu. Jeżeli na karcie towarowej dodano atrybut: „ItemDescription” to w linii <ItemDescription> pojawi się wprowadzona nazwa.
<LineRemarks></LineRemarks>Informacja tekstowaTreść 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/UwagiJeż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 dostawyNa 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 walutyW programie XL nie zdefiniowano waluty o symbolu zgodnym z przesyłaną waluta fakturySprawdzić w sekcji <Invoice-Currency> importowanego pliku symbol waluty, zdefiniować taką walutę w systemie
Nie udało się odnaleźć kontrahenta o numerze GLN: 1256565656565W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w plikuWprowadzić 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: 1025652125666W systemie nie ma kontrahenta, dla którego istniałby (na jego karcie lub formatce adresu) numer GLN zgodny z przesyłanym w plikuWprowadzić 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 1255555555555W 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łanymNa 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ącegoSymbol i pełny numer dokumentu WZ, WZE, zgodnie z przyjętym w systemie ERP XL schematem numeracji
<DespatchAdviceDate>2009-10-17</DespatchAdviceDate>Data dokumentu/komunikatuData wystawienia WZ, WZE
<ExpectedDeliveryDate>2009-10-19</ExpectedDeliveryDate>Spodziewana data dostawayLinia 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 dostawyData 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ówieniaData 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 przewozowegoJeż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łkiData wystawienia WZ
</DespatchAdvice-Header>
<DespatchAdvice-Transport>
<TermsOfDelivery>EXW</TermsOfDelivery>IncotermsSymbol incoterms z dokumentu WZ, WZE
<ConveyanceReferenceNumber />Numer referencyjny przewozu
<ModeOfTransport>30</ModeOfTransport>Rodzaj transportuRodzaj transportu zdefiniowany na zakładce Ogólne dokumentu WZ, WZE
</DespatchAdvice-Transport>
<DespatchAdvice-Parties>
<Buyer>
<ILN>1212121212122</ILN>GLN kupującegoNumer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta głównego na dokumencie WZ, WZE
</Buyer>
<Seller>
<ILN>1313131313133</ILN>GLN sprzedającegoNumer 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 dostawyNumer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta docelowego na dokumencie WZ, WZE
</DeliveryPoint>
<FreightForwarder>
<ILN>1616161616166</ILN>GLN przewoźnikaJeż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 pozycjiKolejny numer pozycji
<OrderLineNumber>00001</OrderLineNumber>Lp. pozycji na zamówieniuNumer pozycji na zamówieniu, z którego wygenerowano WZ, WZE
<OrderedQuantity>1.000</OrderedQuantity>Ilość zamawianaIlość zamawiana na dokumencie ZS
<UnitPacksize>1.000</UnitPacksize>Ilość w opakowaniuIlość w opakowaniu zbiorczym
<EAN>4444444444444</EAN>Numer wysyłanego towaruKod 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łanaJeż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 miaryJeż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 pozycjiNazwa 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ówieniaNumer 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łkiZapisywany w polu "Faktura" na zakładce Nagłówek dokumentu PZ
<DespatchAdviceDate>2009-10-17</DespatchAdviceDate>Data dokumentuData wystawienia PZ
<EstimatedDeliveryDate>2009-10-17</EstimatedDeliveryDate>Planowana data dostawyData 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>IncotermsSymbol incoterms
<ConveyanceReferenceNumber></ConveyanceReferenceNumber>Numer referencyjny przewozu
<ModeOfTransport>30</ModeOfTransport>Rodzaj transportuRodzaj 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ącegoNa 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 towaruNa 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łana1.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 pozycjiNazwa 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 dostawySymbol i pełny numer dokumentu PZ, zgodnie z przyjętym w systemie ERP XL schematem numeracji
<ReceivingAdviceDate>2009-10-17</ReceivingAdviceDate>Data dokumentuData wystawienia PZ
<GoodsReceiptDate>2009-10-17</GoodsReceiptDate>Planowana data dostawyData 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 dostawyZgodnie 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ącegoNumer GLN zdefiniowany na pieczątce firmy przypisanej do centrum będącego właścicielem dokumentu
</Buyer>
<Seller>
<ILN>1313131313133</ILNGLN sprzedającegoNumer GLN wprowadzony na formatce adresu, który jest adresem kontrahenta głównego na dokumencie PZ
<CodeByBuyer>1414141414144</CodeByBuyer>kod wg kupującegoWartość atrybutu o nazwie CodeByBuyer zdefiniowanego na zakładce Atrybuty dokumentu PZ
</Seller>
<DeliveryPoint>
<ILN>1515151515155</ILN>GLN miejsca dostawyZgodny z Buyer/ILN
</DeliveryPoint>
</ReceivingAdvice-Parties>
<ReceivingAdvice-Lines>
<Line>
<Line-Item>
<LineNumber>1</LineNumber>Numer pozycji towarowejKolejny numer pozycji dokumentu PZ
<EAN>4444444444444</EAN>numer wysyłanego towaruKod 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łanaJeż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 miaryJeż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:

Komunikat o niezgodności numerów dokumentów.

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.

Konfiguracja systemu, zakładka Sprzedaż, zakładka Parametry 2

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 (*.*)|*.
Ribbon, Listy, Słowniki kategorii
 Administracja systemu, okno Kategorie, gałąź: Inne, Typy załączników
Administracja systemu, okno Kategorie, gałąź: Inne, Typy załączników

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.

Typy załączników
Typy załączników

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

Administracja systemu, System, zakładka: Narzędzia, Załączniki
  • 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.

13
Administracja systemu, Lista załączników, na której jest możliwe definiowanie m.in. nowych grup załączników
Przykład aktualizowania listy załączników na liście towarów przy zaznaczonym w Administracji parametrze dla danego typu załącznika - Wersjonować dane: Nie
Przykład aktualizowania listy załączników na liście towarów przy zaznaczonym w Administracji parametrze dla danego typu załącznika - Wersjonować dane: Tak
Przykład aktualizowania listy załączników na liście towarów przy zaznaczonym w Administracji parametrze dla danego typu załącznika - Wersjonować dane: Tak

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
Typy załączników wyświetlone w oknie: Słowniki kategorii
Typy załączników wyświetlone w oknie: Słowniki kategorii
Nowy typ załączników (MS VISIO) zdefiniowany z poziomu okna: Słowniki kategorii
Nowy typ załączników (MS VISIO) zdefiniowany z poziomu okna: Słowniki kategorii

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.

Lista typów załączników z nowym typem załączników (MS VISIO)
Lista typów załączników z nowym typem załączników (MS VISIO)
  • 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.

Lista załączników, zakładka: Załączniki

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.

g [Dodaj grupę] – po naciśnięciu przycisku otwiera się okno: Grupa załączników.

k [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.

lup [Karta] – po naciśnięciu przycisku zostanie wyświetlone do podglądu/edycji okno: Załącznik

f [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.
Lista załączników, zakładka: Archiwum wydruków

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

Konfiguracja systemu, zakładka: Ogólne / Parametry 1

Na poszczególnym obiekcie dotyczącym załącznika jest obsłużony parametr: Systemowy odnoszący się do ustawień z Konfiguracji: wqq

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.

b
Właściwości załączników, zakładka: Ogólne

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

Załącznik, zakładka: Ogólne, pole: Opis
Dokument PW, zakładka: Załączniki, kolumna: Opis

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],  ik [Eksport do pliku], f [Usuń], [Zapisz], [Anuluj], których działanie zostało opisane powyżej.

Właściwości załączników, zakładka: Historia zmian
Właściwości załączników, zakładka: Historia zmian

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], f [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.

Właściwości załączników, zakładka: Obiekty
Właściwości załączników, zakładka: Obiekty

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.

Właściwości załączników, zakładka: Atrybuty
Właściwości załączników, zakładka: Atrybuty

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.

Właściwości załączników, zakładka: Załączniki

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
Dodawanie załączników do obiektu, okno: Załącznik, zakładka: 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
Dodawanie załączników do obiektu, okno: Załącznik, zakładka: Obiekty
Dodawanie załączników do obiektu, okno: Załącznik, zakładka: Obiekty, lista obiektów, do których można przypisać załącznik
Dodawanie załączników do obiektu, okno: Załącznik, zakładka: Obiekty, lista obiektów, do których można przypisać załącznik
  • Zapisujemy załącznik (przyciskiem: [Zapisz])
Załączniki - Obraz (plik .jpg) zaimportowany do Comarch ERP XL
  • 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
    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
    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łącznik (plik ze zdjęciem) wyświetlany z poziomu Intranetowych Aplikacji Pracowniczych

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.
Przykładowe załączniki na Karcie kontrahenta

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.
Przykładowe załączniki na Karcie towaru

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”:

Przycisk importu plików na liście towarów
Przycisk importu plików na liście towarów
Parametry importu załączników
Parametry importu 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:

C:\Users\Magdalena.Zygula\Desktop\za.bmp

Przykładowy arkusz z danymi do importu:

C:\Users\Magdalena.Zygula\Desktop\ssss.bmp

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”

Uwaga
W przypadku umieszczenia ścieżki w postaci ULR, możliwe będzie utworzenie wyłącznie 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

C:\Users\Magdalena.Zygula\Desktop\ik1.bmp [Zobacz stronę], która służy do wywoływania (otwierania) załącznika oraz

C:\Users\Magdalena.Zygula\Desktop\ik2.bmp [Lokalizacja pliku lub folderu], za pomocą której można wskazywać ścieżkę do załącznika.

Okno Załącznik - nowe pole URL wraz z opcjami wskazywania ścieżki do załącznika oraz otwierania załącznika
Okno Załącznik - nowe pole URL wraz z opcjami wskazywania ścieżki do załącznika oraz otwierania załącznika

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

Opcje, za pomocą których można uzupełnić pole URL na załączniku
Opcje, za pomocą których można uzupełnić pole URL na załączniku

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:

C:\Users\Magdalena.Zygula\Desktop\1.bmp

Wskazywanie na załączniku ścieżki do pliku, za pomocą opcji: Lokalizacja pliku
Wskazywanie na załączniku ścieżki do pliku, za pomocą opcji: Lokalizacja 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:

Wskazywanie na załączniku ścieżki dostępu do folderu za pomocą opcji: Lokalizacja folderu
Wskazywanie na załączniku ścieżki dostępu do folderu za pomocą opcji: Lokalizacja 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

Otwieranie domyślnej przeglądarki za pomocą opcji: Adres strony internetowej
Otwieranie domyślnej przeglądarki za pomocą opcji: Adres strony internetowej

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 C:\Users\Magdalena.Zygula\Desktop\ik3.bmp [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.

Zakładka Załączniki- nowa kolumna: Adres URL

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.

Lista załączników - nowa kolumna: Adres URL
Lista załączników - nowa kolumna: Adres URL

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

Technologia produkcji, zakładka: Ogólne- nowy parametr: Kopiuj załączniki z TP na ZP, którego zaznaczenie spowoduje uruchomienie funkcjonalności kopiowania załączników z TP na ZP, w trakcie realizacji zlecenia, w oparciu o daną technologię
Technologia produkcji, zakładka: Ogólne- nowy parametr: Kopiuj załączniki z TP na ZP, którego zaznaczenie spowoduje uruchomienie funkcjonalności kopiowania załączników z TP na ZP, w trakcie realizacji zlecenia, w oparciu o daną technologię

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ów8
Bit stopu1
Sterowanie Brak, xon/xoff, Sprzętowe
Uwaga
Powód dodania opcji: Sprzętowe w sterowaniu przepływem został opisany w rozdziale: Ustawienia portu COM dla drukarki FP600 starej homologacji.
 
Posnet (Novitus, Innova)
Szybkość9600
ParzystośćBrak (None)
Liczba bitów8
Bit stopu1
Sterowanie przepływemBrak

Właściwości portu COM są dostępne w Menedżerze urządzeń systemu Windows.

Właściwości portu komunikacyjnego COM

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.

Okno: parametry komputera, zakładki: Drukarka fiskalna w tym wykonywanie testu drukarki
Od archiwalnej już wersji 2013.5, zostały wprowadzone dodatkowe sterowniki do obsługi drukarek fiskalnych obsłużone w Konfiguracji komputera na zakładce: Drukarka fiskalna 2.
Okno: parametry komputera, zakładki: Drukarka fiskalna 2, w tym wykonywanie testu drukarki

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.dllDrukarki Posnet Thermal, Emar Printo
DF300_1.dllDrukarki zgodne z Posnet
FP600.dllDrukarki firmy Elzab
Innova.dllDrukarki firmy Innova
Novitus.dllDrukarki 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.

Uwaga
 Comarch ERP XL współpracuje z drukarkami, które pracują na protokole THERMAL. Jeżeli drukarka pracuje na protokole POSNET należy wówczas przełączyć się na protokół THERMAL- opcja dostępna do zmiany w konfiguracji drukarki. Nie dotyczy wykorzystania nowych sterowników.

Następnie należy ustawić port COM, zarówno na zakładce: Drukarka fiskalna, jak i Drukarka fiskalna 2:

Wybór sterownika do drukarek fiskalnych w zależności od sposobu pracy (przy użyciu tzw. Nowych sterowników lub bez ich zastosowania)

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;
Test sterownika wykonywany w oknie: Parametry komputera na zakładce: Drukarka fiskalna
Uwaga
Uwaga: Test sterownika jest tylko sprawdzeniem wybranego pliku dll. Nie jest sprawdzana komunikacja drukarki z systemem.
Zdefiniować dodatkowe ustawienia, tj.:
  • 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;
Dodatkowe parametry dla drukarki w oknie: Parametry komputera na zakładce: Drukarka fiskalna i Drukarka fiskalna 2
Uwaga
Aby numer kasjera zapisał się w drukarce fiskalnej należy wydrukować informację startową – jeżeli nie zostanie ona ani razu wydrukowana, to oznaczenie stanowiska kasy nie będzie drukowane 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;
Test drukarki wykonywany w oknie: Parametry komputera na zakładce: Drukarka fiskalna i Drukarka fiskalna 2

Test drukarki wykonywany w oknie: Parametry komputera na zakładce: Drukarka fiskalna i Drukarka fiskalna 2

  • Dodatkowo, w oknie: Parametry komputera na zakładce: Drukarka fiskalna 2 jest możliwe wybranie trybu pracy na drukarce niezafiskalizowanej.
Okno: Parametry komputera, zakładka Drukarka fiskalna, parametr: Praca na drukarce niezafiskalizowanej
W konfiguracji drukarki fiskalnej z zakładki : Drukarka fiskalna 2 dostępna jest opcja drukowania fiskalnego poprzez Drukarkę sieciową
Praca na drukarce sieciowej: Parametry komputera na zakładce: Drukarka fiskalna 2

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.

Mapowanie stawek VAT, Konfiguracja, zakładka: Sprzedaż -> zakładka: Słowniki

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

Mapowanie stawek VAT, okno: Drukarka fiskalna dla, od prawej, sterownika odnoszącego się do zakładki: Drukarka fiskalna, Drukarka fiskalna 2 w oknie: Parametry komputera

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.

Przyklad
Wybrano sterownik df300.dll, to nazwa mapowania powinna być: df300

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):

Lista drukarek dostępna w oknie: Drukarka fiskalna w polu: Opis

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.

Uwaga
Odpowiednik literowy z drukarki fiskalnej powinien być zbieżny co do stawki ze stawką Stawki podstawowej. Jeżeli nie będą one zgodne mogą wystąpić problemy z drukowaniem fiskalnym dokumentów. Problemy wynikające z nieprawidłowego mapowania zostały opisane w rozdziale: Nieprawidłowe mapowanie stawek VAT.
Schemat dodawania tzw. Nowego sterownika w Konfiguracji systemu

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ę.

Konfiguracja -> zakładka: Sprzedaż -> Parametry 1, Data fiskalizacji systemu
Uwaga
Po zafiskalizowaniu bazy danych nie ma możliwości zatwierdzenia paragonu bez wysłania go do drukarki fiskalnej. Tym samym operatorzy, którzy nie będą mieli podpiętej do swojego komputera drukarki fiskalnej, nie będą mogli zatwierdzać paragonów – parametr: Do bufora będzie zaznaczony i niedostępny do edycji.
Parametr: Do bufora

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

Uwaga
Powyższy update powinien być wykonywany tylko na stanowiskach testowych. Na stanowiskach produkcyjnych (u klienta), jeżeli występuje potrzeba pracy fiskalnej, to wszystkie paragony należy fiskalizować – od momentu zafiskalizowania systemu nie powinno się go odfiskalizowywać.

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.

Uwaga
Istotna jest zgodność wersji bibliotek rdp.dll (po stronie klienta usługi terminalowej) i KFdrv.dll (po stronie serwera). Wersję biblioteki DLL można sprawdzić przez podgląd właściwości pliku DLL.
Właściwości pliku KFDrv.dll
 
Zawartość pakietu obsługi drukarek fiskalnych po stronie klienta usługi terminalowejZawartość pakietu obsługi drukarek fiskalnych po stronie serwera usługi terminalowej
DF300.dllSterownik do drukarek PosnetDF300T.dllOdpowiednik sterownika DF300.dll po stronie serwera
DF300_1.dllSterownik do drukarek zgodnych z PosnetDF300_1T.dllOdpowiednik sterownika DF300_1.dll po stronie serwera
FP600.dllSterownik do drukarki FP600FP600T.dllOdpowiednik sterownika FP600.dll po stronie serwera
Innova.dllSterownik do drukarki InnovaInnovaT.dllOdpowiednik sterownika Innova.dll po stronie serwera
Novitus.dllSterownik do drukarki NovitusNovitusT.dllOdpowiednik sterownika Novitus.dll po stronie serwera
RDP.dllSterowniki do komunikacji przez połączenie terminaloweKFdrv.dllSterownik do komunikacji przez połączenie terminalowe, po stronie serwera
rdpcli.infPlik dla instalatora Windows dla systemów Windows 2000/XP
Rdpcli98_1.regPlik rejestru dla Windows 98 cz.1
Rdpcli98_2.regPlik rejestru dla Windows 98 cz. 2
Uwaga
Do pracy z drukarkami fiskalnymi w połączeniu terminalowym wymagana jest odpowiednia licencja w kluczu HASP: Fiskalny driver terminalowy. W momencie wysyłania dokumentu do drukarki fiskalnej pobierana jest licencja i jest ona automatycznie zwracana do klucza po wylogowaniu operatora.

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.

Przyklad
Wybrano sterownik df300T.dll, to nazwa mapowania powinna być: df300

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.

Uwaga
W przypadku systemów 64 bitowych na stacji klienckiej należy wgrać odpowiednie sterowniki dostosowane do tego systemu. W celu otrzymania tych sterowników należy się zwrócić do Asysty Technicznej Comarch ERP XL. Nie dotyczy wykorzystania nowych sterowników.

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.

Uwaga
Wykonanie tych operacji umożliwi pracę z drukarkami fiskalnymi dla aktualnie zalogowanego użytkownika Windows. Jeżeli z daną drukarką na wskazanym stanowisku ma pracować więcej użytkowników, to wymienione powyżej operacje należy wykonać dla każdego użytkownika Windows.

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.

Test drukarki: Drukarka podłączona
Uwaga
Po przeinstalowaniu systemu Comarch ERP XL np. z powodu zmiany wersji systemu należy sprawdzić, czy nie zmieniły się wersje plików KFdrv.dll, rdp.dll oraz sterowników do drukarek. Sprawdzenia można wykonać w katalogu, do którego została zainstalowana nowa wersja systemu Comarch ERP XL. Jeżeli nastąpiła zmiana wersji plików należy je podmienić po stronie klienta w katalogu Windows\System32\ na te, które zostały zainstalowane na serwerze.

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.

Edytor rejestru: Fiskalne
Uwaga
Aby na drukarce fiskalnej były prawidłowo drukowane polskie znaki przy wykorzystaniu tzw. Nowych sterowników, w ustawieniach drukarki należy ustawić stronę kodową MAZOVIA.

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.

Konfiguracja komputera. Ustawienie sterownika drukarki fiskalnej do współpracy przez terminal

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.

Wyniki testu przeprowadzonego w Konfiguracji komputera

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ń.

Uwaga
Nowe sterowniki są wymagane do pracy terminalowej przy wykorzystaniu Windows Server 2012, w tym systemie operacyjnym zmieniła się obsługa kanałów wirtualnych i wykorzystanie pliku rdp.dll nie działa poprawnie.

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.

Praca na drukarce sieciowej: Parametry komputera na zakładce: Drukarka fiskalna 2
Ustaw parametry sieciowe: Parametry komputera na zakładce: Drukarka fiskalna 2

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,
Uwaga
Parametr: Fiskalny na zakładce VAT dokumentu należy zaznaczać na każdym wystawianym dokumencie FS i (S)FS ręcznie. Ustawienie tego parametru w definicji rejestru VAT nie skutkuje zaznaczaniem tego parametru na dokumentach.
  • 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}.

Parametry komputera, parametr: Drukuj kaucje

Menu Fiskalne

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

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].

Okno: Fiskalizacja dokumentów umożliwiające powtórna fiskalizację dokumentu
Uwaga
Jeśli dokument - nie został wydrukowany na drukarce, ale w systemie został zafiskalizowany, należy użyć funkcji z menu Fiskalne – Powtórna fiskalizacja, - został wydrukowany na drukarce i nie został zafiskalizowany w systemie (szczególny przypadek!), w celu zafiskalizowania dokumentu w systemie należy zmienić w tabeli cdn.tranag w polu trn_fiskalne wartość na 1 (1- dokument fiskalny, 0 – dokument niefiskalny).

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.

Parametr Drukuj numer NIP w konfiguracji

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.

Komunikat o braku komunikacji z drukarką fiskalną

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:

Komunikat występujący w przypadku nieprawidłowego zmapowania stawek VAT

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:

Komunikat informujący o nieprawidłowej nazwie towaru

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:

Komunikat NowyParagon 3

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:

Komunikat występujący w przypadku niezgodności wartości elementu

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:

Komunikat występujący w przypadku zmiany stawki VAT

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)

Sprzedaż: informacja (2092)

Patrz rozdział: Ustawienia portu COM dla drukarek FP600 starej homologacji.

Sprzedaż: informacja (2093), Szczegóły >> brak

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.

Ustawienia użytkownika, aktywacja pulpitu operatora.

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.

Karta operatora, lista Pulpitów operatora

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.

Wzorzec operatora, przypisywanie pulpitu predefiniowanego

Obsługa pulpitu operatora

Widok ogólny 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.

Dodawanie 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…’.

Dodawanie nowego panelu
 

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 przypięty
 

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 pływający
 

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.

Miejsca dostępne do zadokowania panelu
 
Panel zadokowany
 

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ć.

Panele połączone
 

Opcja auto hide na panelach

Opcja auto hide na nagłówku panelu

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.

Włączenie ustawień z nagłówka panelu
 

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

 
Zmiana koloru i nazwy panelu

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łączenie ustawień na widżecie
 

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

 
Ustawienia dostępne dla widżetów

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.

Ustawienia aplikacji otwieranej przez 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.

Ustawienia dostępne dla widżetu Zdjęcie
 
Widżet Zdjęcie z ustawionym zminiaturyzowanym zdjęciem i zmienioną nazwą

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.

Otwarcie ustawień dla widżetów BI Point i Przeglądarka www
 

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

Ustawienia dostępne dla widżetu BI Point
 

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

Ustawienia dostępne dla widżetu Przeglądarka www

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.

Przyklad

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.

Dodatkowo w tym samym miejscu w konfiguracji został dodany nowy parametr ”Z listy dokumentów twórz wiele paczek i wysyłek (tylko dla generowania z dokumentów)”. Parametr możliwy do zaznaczenia, jeśli zaznaczono powyższy, czyli ”Kontroluj zgodność adresu dostawy dokumentów paczki”. W przeciwnym razie niezaznaczony i niedostępny do edycji.
Parametry dla paczek i wysyłek w oknie konfiguracji
Parametry dla paczek i wysyłek w oknie konfiguracji

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.

Uwaga
Operacja nie dotyczy polecenia: Wysyłka dla pozycji z zaznaczonych dostępnego w menu kontekstowym na listach dokumentów: handlowych, serwisowych i zamówień.

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

Zmiany w oknie paczki w Comarch ERP XL
Zmiany w oknie paczki w Comarch ERP XL
Na Paczce dodano obszar Parametry przesyłki, w którym poza dotychczasowymi polami z objętością i wagą brutto umieszczone zostały nowe:
  • 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.
Dodatkowo na paczce dodano kontrolkę Modyfikował prezentującą dane operatora, który ostatnio wprowadzał zmiany na dokumencie.

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.

Zmiany w oknie wysyłki w Comarch ERP XL
Zmiany w oknie wysyłki w Comarch ERP XL

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
Zakładka [Inne] na wysyłce

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.

Wskazówka
Do operatora, który będzie administrował usługą Comarch Shipping powinien być przypisany login SSO posiadający rolę Administrator w tej usłudze. Przed założeniem dodatkowych użytkowników jedynym takim loginem w Comarch Shipping jest ten, który zakładał usługę z poziomu CSM.

Ustawienia użytkownika Comarch Shipping na karcie operatora
Ustawienia użytkownika Comarch Shipping na karcie operatora

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.

Ustawienia adresu serwera Comarch Shipping w oknie konfiguracji
Ustawienia adresu serwera Comarch Shipping w oknie konfiguracji

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.

Wskazówka
Aby eksport wykonał się poprawnie, numer NIP z pieczątki głównej firmy w Comarch ERP XL musi być zgodny z numerem NIP podanym przy rejestrowaniu usługi Comarch Shipping.

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.
Import danych o kurierach z aplikacji Comarch Shipping
Import danych o kurierach z aplikacji Comarch Shipping

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).

Uwaga
Ze względu na występujące czasem zmiany nazw kurierów po stronie Comarch Shipping w wersji 2024.0 Comarch ERP XL zmodyfikowano mechanizm pobierania informacji o kurierach tak, aby w takiej sytuacji nie tworzyć w Systemie nowego rekordu, ale modyfikować nazwę dla istniejącego, który jest powiązany z analogicznym rekordem w aplikacji. Oznacza to modyfikację w Systemie nazwy kuriera zarówno w słowniku kategorii, jak i na paczkach/wysyłkach, na których został on wcześniej użyty.

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].

Rodzaje przesyłek zaimportowane z Comarch Shipping na przykładzie kuriera InPost Paczkomaty
Rodzaje przesyłek zaimportowane z Comarch Shipping na przykładzie kuriera InPost Paczkomaty

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.

Wskazówka
W aplikacji Comarch Shipping jest możliwość ustawienia Kontroli unikalności zleceń z weryfikacją dla dokumentów źródłowych i powiązanych. Ponieważ analogiczna weryfikacja odbywa się w Comarch ERP XL przy tworzeniu wysyłek, to nie ma potrzeby uruchamiać jej dodatkowo w aplikacji.

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

Parametry dla tworzenia zlecenia w Comarch Shipping
Parametry dla tworzenia zlecenia w Comarch Shipping
W oknie z parametrami możliwe do ustawienia są:
  • 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’).

Wskazówka
Powyższe nie dotyczy pól: Kurier (jest wymagane), Data nadania (zawsze jest wypełnione) oraz ustawień dla kwot pobrania i ubezpieczenia, które są obsługiwane jak dotychczas.

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:

Wskazówka
Aby zostały na zleceniach uzupełnione wymagane pola należy poprawnie zdefiniować dla kurierów szablony ‘Szybka paczka’, w których można podać parametry domyśle (np. waga i wymiary dla paczki) lub oznaczyć parametry pozwalające wypełnić pola danymi z Comarch ERP XL, (np. Zawartość na zleceniu). Dzięki temu nie będzie konieczności, jak dotychczas wypełniania wszystkich pól na dokumentach w Comarch ERP XL, ponieważ zostaną one pobrane z tych szablonów, a przy aktualizacji danych z ZNP zostaną zwrotnie zapisane na paczce/wysyłce w Comarch ERP XL.

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.

Uwaga
Jeśli jeden użytkownik Comarch Shipping będzie przypisany do wielu baz apliakcji, wówczas przy wybraniu operacji podglądu zlecenia, będzie musiał najpierw wybrać w przeglądarce właściwą bazę Shipping. Dopiero po tym wyborze zostanie wyświetlone prawidłowe zlecenie.

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.
Uwaga
W przypadku operacji tworzenia ZNP z paczek system działa automatycznie tak, jakby w konfiguracji zaznaczony był parametr: Z listy dokumentów twórz wiele paczek i wysyłek (tylko dla generowania z dokumentów), jak opisano w rozdziale ‘’Zmiany w generowaniu paczek i wysyłek z list dokumentów’’.

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ń.

Wskazówka
Polecenie Zlecenie Nadania Przesyłki (ZNP) nie zostało dodane na liście dokumentów wewnętrznych, dla których nie możliwości (w przypadku MMW i MMP) ustawiania kontrahenta, więc nie będzie skąd pobrać adresu odbiorcy.

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.
Uwaga
W przypadku operacji tworzenia ZNP z listy dokumentów system działa automatycznie tak, jakby w konfiguracji zaznaczone były parametry: ''Kontroluj zgodność adresu dostawy dokumentów paczki'' oraz ''Z listy dokumentów twórz wiele paczek i wysyłek (tylko dla generowania z dokumentów)'', jak opisano w rozdziale ''Zmiany w generowaniu paczek i wysyłek z list dokumentów''.

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.

Uwaga

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.

Wskazówka
Dopóki w Comarch Shipping zablokowane jest dodawanie zlecenia z różnymi rodzajami przesyłek, to w Systemie należy ustawiać na każdej paczce powiązanej do jednej wysyłki ten sam rodzaj paczki. Można to zrobić ręcznie na paczce albo dopiero podczas generowania wybierając odpowiedni rodzaj w oknie z parametrami ZNP.

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.

Numer paczki na przesyłkach w Comarch Shipping
Numer paczki na przesyłkach w Comarch Shipping

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.

Wskazówka
Linia z numerem listu, statusem oraz przycisk dla linku są niewidoczne na takich paczkach, na których dane te nie są wypełnione. A ponieważ wypełniane są tylko poprzez informacje pobrane z Comarch Shipping, to oznacza, że dla paczek nie przesłanych na zlecenia cała dolna linia nie będzie widoczna. Może też być ukryta dla paczek przesłanych, ale jeszcze przed zarejestrowaniem u kuriera. Dopiero po rejestracji u kuriera operacja Aktualizuj dane ZNP pozwoli wypełnić przynajmniej numer przesyłki, a co za tym idzie, również pokazać te pola.

Numer listu i status przesyłki z Comarch Shipping na paczce w Comarch ERP XL
Numer listu i status przesyłki z Comarch Shipping na paczce w Comarch ERP XL

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.

Wskazówka
Pole ze statusem przesyłki na wysyłce jest stale niewidoczne dla tych wysyłek, do których nie utworzono zlecania w Comarch Shipping. Ponieważ status ten jest wypełniany jedynie informacją pochodzącą z powiązanego zlecenia, to nie ma potrzeby wyświetlać tego pola na wysyłkach niepowiązanych.

Status przesyłki z Comarch Shipping na wysyłce w Comarch ERP XL
Status przesyłki z Comarch Shipping na wysyłce w Comarch ERP XL

Uwaga

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'.

Ustawienia usługi synchronizacji dla Comarch Shipping
Ustawienia usługi synchronizacji dla Comarch Shipping

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.

Wskazówka

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.

Polecenie do uruchamiania listy logów z synchronizacji Comarch Shipping
Polecenie do uruchamiania listy logów z synchronizacji Comarch Shipping

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.

Informacja na ZS o numerze i linku przesyłki pobranych z paczki
Informacja na ZS o numerze i linku przesyłki pobranych z paczki
Obok nowych pól umieszczono dodatkowe przyciski:
  • 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:

Informacja o aktualizacji powiązanych zamówień w logu z operacji do Comarch Shipping
Informacja o aktualizacji powiązanych zamówień w logu z operacji do Comarch Shipping

Wskazówka
Możliwe jest powiązanie jednego zamówienia z wieloma paczkami. W takiej sytuacji na zamówieniu zapisane zostaną dane z pierwszej powiązanej paczki, która zostanie zarejestrowana u kuriera w Comarch Shipping. Przy zmianach numeru i linku przesyłki na kolejnych powiązanych paczkach, modyfikacja zamówienia nie będzie wykonywana.

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.

Powiązanie rodzaju usługi i rodzaju paczki na zleceniach w Comarch Shipping
Powiązanie rodzaju usługi i rodzaju paczki na zleceniach w Comarch Shipping

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.

Import z Comarch Shipping rodzajów usług wraz z rodzajami paczek
Import z Comarch Shipping rodzajów usług wraz z rodzajami paczek

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.

Wskazówka
Aby w wersji 2024.0 Comarch ERP XL przy aktualizacji danych z ZNP poprawnie ustawiły się rodzaje na paczkach w Comarch ERP XL należy najpierw pobrać z Comarch Shipping dane o kurierach, aby poprawnie zaktualizowały się rodzaje przesyłek dla wyżej wymienionych kurierów.

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.

Rodzaj usługi i rodzaju paczki w Systemie i przekazanie tych danych do zlecenia w Comarch Shipping
Rodzaj usługi i rodzaju paczki w Systemie i przekazanie tych danych do zlecenia w Comarch Shipping

Sposób weryfikacji ustawionego rodzaju przesyłki zawierającego w sobie nazwę z rodzajem usługi przedstawiono na przykładach poniżej.

Przyklad

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’
Nowa opcja dla pobierania etykiet z Comarch Shipping w oknie generowania zleceń
Nowa opcja dla pobierania etykiet z Comarch Shipping w oknie generowania zleceń
  • 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’
Nowe polecenie do pobierania etykiet z Comarch Shipping w menu kontekstowym na liście wysyłek
Nowe polecenie do pobierania etykiet z Comarch Shipping w menu kontekstowym na liście wysyłek

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

Wybór formatów wydruku etykiet dostępnych do pobrania
Wybór formatów wydruku etykiet dostępnych do pobrania

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.

Log z przebiegu operacji pobierania etykiet
Log z przebiegu operacji pobierania etykiet

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.

Zlecenie uruchamiane w oknie przeglądarki w Comarch ERP XL
Zlecenie uruchamiane w oknie przeglądarki w Comarch ERP XL

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.

Wskazówka

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.

Błąd przy próbie podglądu zlecenia przy niewłaściwym wyborze bazy do zalogowania
Błąd przy próbie podglądu zlecenia przy niewłaściwym wyborze bazy do zalogowania

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

Uwaga
Uwaga: Wszystkie poniżej opisywane zmiany dotyczą współpracy wersji Comarch ERP XL 2021.0.2 z Comarch WMS 2021.1. W wersjach niższych rezerwacje magazynowe WMS nie są obsługiwane. W pracach przygotowawczych do obsługi rezerwacji, o których sygnalizowaliśmy w wersji Comarch EPR XL 2021.0, zawarty został warunek, że obsługę rezerwacji magazynowych WMS będzie można włączyć, jeśli jest współpraca z Comarch WMS 2021.1. W kolejnych wersjach XL jednak obszar ten był stabilizowany, dlatego w wersji XL 2021.0 nie należy tej obsługi uruchamiać. Poprawne działanie rezerwacji jest dopiero od wersji XL 2021.0.2.
 

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.
Uwaga
Uwaga: W wersji 2021.0.2 został wprowadzony mechanizm rezerwowania zasobów na dokumentach (W)ZWM dla sposobu 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.
Wskazówka
Przy włączaniu rezerwowania w oparciu o stany magazynowe WMS należy mieć świadomość, że czasowo zostanie zablokowana możliwość wystawiania dokumentów (W)ZWM na zasoby dostępne handlowo w XL. Będzie to możliwe w przypadku, gdy ilość dostępna na dokumentach magazynowych WMS jest większa niż ilość dostępna handlowo. Przy włączaniu tej opcji rezerwowania został dodany komunikat, który o tym informuje.
Parametry są dostępne do edycji, jeśli wybrano sposób pracy z WMS: Ilościowo oraz zasobowo. W pozostałym przypadku nie można ich zaznaczyć lub zostają automatycznie odznaczone.
Włączanie rezerwowania zasobów na karcie magazynu
Wskazówka
Dokumenty (W)ZWM dodawane przy włączonych opcjach rezerwowania zasobów mają zapisany w tabeli sposób rezerwowania, który był ustawiony na karcie magazynu w momencie ich dodawania. Dalsze działania na takich dokumentach (opisane w kolejnych punktach) będą więc niezależne od aktualnych ustawień na karcie magazynu, a jedynie od tego co zostało na nich zapisane w chwili dodawania dokumentu lub ręcznego generowania rezerwacji magazynowych.
Dodatkowo zmieniła się lokalizacja parametru Kontrola ilościowa stanów na (W)ZWM. Ponieważ uruchamianie obsługi rezerwacji magazynowych WMS odbywa się w kontekście konkretnego magazynu WMS i jednocześnie tworzenie rezerwacji jest ściśle powiązane z kontrolowaniem ilości na dokumentach (W)ZWM, to parametr Kontrola ilościowa stanów na (W)ZWM przeniesiony został z okna konfiguracji na kartę magazynu WMS. Ustawienie parametru:
  • 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żeli zasoby zostaną ustalone, będą one rezerwowane zawsze nowym typem rezerwacji tzw. magazynowych WMS.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: FZ1: 100 szt. + (W)AWD1: 100 szt. FZ2: 55 szt. FZ3: 60 szt. + (W)AWD2: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany handlowe. Nowy dokument (W)ZWM1 na ten zasób jest możliwy do dodania maksymalnie na 160 szt. Na pozostałe 55 szt. brakuje ilości w stanach magazynowych WMS. Przy dodaniu dokumentu na pełną dostępną ilość zostaną założone rezerwacje magazynowe WMS na: - 100 szt. z zasobem z FZ1, - 55 szt. z zasobem z FZ2, - 5 szt. z zasobem z FZ3.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: FZ1: 100 szt. + (W)AWD1: 100 szt. (W)AWD2: 55 szt. FZ3: 60 szt. + (W)AWD2: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany handlowe. Nowy dokument (W)ZWM1 na ten zasób jest możliwy do dodania maksymalnie na 160 szt. Na pozostałe 55 szt. brakuje ilości w stanach magazynowych WMS. Przy dodaniu dokumentu na pełną dostępną ilość zostaną założone rezerwacje magazynowe WMS na: - 100 szt. z zasobem z FZ1, - 60 szt. z zasobem z FZ3.
  • 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).
Wskazówka
Ustawienie na karcie magazynu parametru Rezerwuj w oparciu o stany magazynowe WMS spowoduje, że kontrola ilościowa na (W)ZWM działa w oparciu tylko o stany magazynowe, czyli nie uwzględnia parametrów z definicji dokumentu ZWM Uwzględniaj rezerwacje i Chronologia rezerwacji. Oznacza to, że na dokumencie (W)ZWM mogą zostać wydane zasoby, które są zarezerwowane na innych dokumentach (zamówieniach, serwisowych czy produkcyjnych), nawet jeśli są to rezerwacje zasobowe.
Jeżeli zasoby zostaną ustalone, to będą one rezerwowane nowym typem rezerwacji tzw. magazynowych WMS oraz jeśli zajdzie taka potrzeba, również za pomocą tzw. rezerwacji w przyszłość.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: FZ1: 100 szt. + (W)AWD1: 100 szt. FZ2: 55 szt. FZ2: 60 szt. + (W)AWD3: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. Nowy dokument (W)ZWM1 na ten zasób jest możliwy do dodania maksymalnie na 160 szt. Na pozostałe 55 szt. brakuje ilości w stanach magazynowych WMS. Przy dodaniu dokumentu na pełną dostępną ilość zostaną założone rezerwacje magazynowe WMS na: - 100 szt. z zasobem z FZ1, - 55 szt. z zasobem z FZ2, - 5 szt. z zasobem z FZ3 Działanie jest więc analogiczne jak dla rezerwowania zasobów w oparciu o stany handlowe
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: FZ1: 100 szt. + (W)AWD1: 100 szt. (W)AWD2: 55 szt. FZ2: 60 szt. + (W)AWD3: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. Nowy dokument (W)ZWM1 na ten zasób jest możliwy do dodania maksymalnie na 215 szt. Nie ma znaczenia, że na 55 szt. z (W)AWD2 brakuje ilości handlowej. Przy dodaniu dokumentu na pełną dostępną ilość zostaną założone rezerwacje:
  • 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.
Przy dodaniu dokumentu na mniejszą ilość 160 szt. zostaną założone rezerwacje:
  • magazynowa WMS na 100 szt. z zasobem z FZ1,
  • magazynowa WMS na 60 szt. z zasobem z FZ2.
Ze względu na pobieranie zasobów wg FIFO/LIFO itd. istotne znaczenie dla rezerwowania w oparciu o stany MWS będzie miało ustawienie z karty towaru – Oznacz partię towaru identyfikatorem dostawy. Przy zaznaczonym parametrze bowiem wyszukiwanie dostępnych partii będzie zakładało rezerwacje dla kolejnych wolnych partii nie zwracając uwagi na to, czy istnieją dla nich stany handlowe.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, z ustawionym oznaczaniem partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości (partie): FZ1: 100 szt. + (W)AWD1: 100 szt. (partia 1). (W)AWD2: 55 szt. (partia 2) FZ2: 60 szt. + (W)AWD3: 60 szt. (partia 3) a) Włączone rezerwowanie zasobów w oparciu o stany handlowe. Nowy dokument (W)ZWM1 na ten zasób jest możliwy do dodania maksymalnie na 160 szt. Na pozostałe 55 szt. brakuje ilości w stanach handlowych. Przy dodaniu dokumentu na pełną dostępną ilość zostaną założone rezerwacje magazynowe WMS na: - 100 szt. z zasobem z FZ1 (partia 1), - 60 szt. z zasobem z FZ2 (partia 3), Działanie jest więc analogiczne jak dla rezerwowania zasobów dla towaru bez oznaczenia partii identyfikatorem dostawy. b) Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. Nowy dokument (W)ZWM1 na ten zasób jest możliwy do dodania maksymalnie na 215 szt. Nie ma znaczenia, że na 55 szt. z (W)AWD2 brakuje ilości handlowej. Przy dodaniu dokumentu na pełną dostępną ilość zostaną założone rezerwacje:
  • 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).
Działanie jest więc analogiczne jak dla rezerwowania zasobów dla towaru bez oznaczenia partii identyfikatorem dostawy. Z tą różnicą, że każda rezerwacja jest zapisana na osobnym elemencie dokumentu. c) Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. Przy dodaniu dokumentu na mniejszą ilość 160 szt. zostaną założone rezerwacje:
  • 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).
Działanie jest więc różne z analogicznym scenariuszem rezerwowania zasobów dla towaru bez oznaczenia partii identyfikatorem dostawy.
Na rezerwacjach magazynowych WMS zostaje od razu zapisana konkretna dostawa, która jest zablokowana pod to wydanie. Natomiast na rezerwacjach ‘w przyszłość’ owej dostawy jeszcze nie mamy, więc zapisujemy na nich jedynie partię ustaloną na dokumencie wydania magazynowego. Szczegóły dotyczące ustalania zasobów na dokumentach (W)ZWM przy włączonych rezerwacjach oraz specyfiki samych rezerwacji są opisane w kolejnych punktach.

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.
Jednocześnie istniejące na zamówieniu rezerwacje zostają oznaczone jako nie blokujące towaru, aby ilość na rezerwacjach magazynowych oraz ilość z zamówień nie była duplikowana. Może też zaistnieć konieczność ich podzielenia ze względu na podział subelementów na dokumencie (W)ZWM.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości (partie): FZ1: 100 szt. + (W)AWD1: 100 szt. FZ2: 60 szt. + (W)AWD2: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Wystawione ZS na 120 szt. z rezerwacjami zasobowymi oznaczonymi jako blokujące towary: 60 szt. (z FZ1) oraz 60 szt. (z FZ2) Dokument (W)ZWM1 wygenerowany do ZS1 będzie miał założone rezerwacje magazynowe WMS odziedziczone z ZS: - 60 szt. z zasobem z FZ1, - 60 szt. z zasobem z FZ2. Rezerwacje na dokumencie ZS1 zostaną oznaczone jako nie blokujące towaru. b) Wystawione ZS na 120 szt. z rezerwacjami niezasobowymi oznaczonymi jako blokujące towary: 60 szt. (bez zasobu) oraz 60 szt. (bez zasobu) Dokument (W)ZWM1 wygenerowany do ZS1 będzie miał założone rezerwacje magazynowe WMS zgodne z wyszukanymi na dokumentach handlowych zasobami: - 60 szt. z zasobem z FZ1, - 40 szt. z zasobem z FZ1, - 20 szt. z zasobem z FZ2. Rezerwacje na dokumencie ZS1 zostaną oznaczone jako nie blokujące towaru i rozbite zgodnie z rozbiciem rezerwacji magazynowych WMS. Takie rozbicie jest konieczne, ponieważ na dokumencie (W)ZWM powstają trzy subelementy.
Analogiczny mechanizm wykluczania rezerwacji na dokumentach źródłowych do (W)ZWM rezerwującego zasoby został wprowadzony dla dokumentów źródłowych z modułów Produkcja i Serwis.

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.
Do dokumentów (W)ZWM z takimi rezerwacjami nie uda się wystawić dokumentu handlowego z powodu braku zasobów.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: FZ1: 100 szt. + (W)AWD1: 100 szt. (W)AWD2: 55 szt. FZ2: 60 szt. + (W)AWD3: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. Nowy dokument (W)ZWM1 na ten zasób dodano na 215 szt. Zostały założone rezerwacje:
  • 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.
Do (W)ZWM1 nie uda się wystawić dokumentu handlowego.
W pierwszej kolejności musi nastąpić przyjęcie nowych zasobów handlowych, co automatycznie spowoduje przekształcenie rezerwacji ‘w przyszłość’ w zwykłe rezerwacje magazynowe WMS. Nowe zasoby handlowe są tworzone w momencie zatwierdzania dokumentu handlowego, więc samo jego wystawienie jeszcze nie pozwoli na przekształcenie rezerwacji.
Przyklad
Kontynuacja poprzedniego scenariusza. Do (W)AWD2 wystawiono dokument FZ3 na 55 szt. Po zatwierdzeniu FZ3 następuje automatyczne przekształcenie rezerwacji ‘w przyszłość’ na 55 szt. w rezerwację magazynową WMS z zasobem z FZ3. Dopiero wtedy do (W)ZWM1 można wystawić dokument handlowy.
Wskazówka
Przekształcanie rezerwacji ‘w przyszłość’ w rezerwację magazynową WMS jest wykonywane tylko dla dokumentów (W)ZWM: a) Istniejących w XL, czyli jeśli dokument jest wystawiany w WMS, to musi zostać najpierw przesynchronizowany do XL, aby przekształcanie rezerwacji zostało wykonane; b) Nie będących w edycji w XL ani w WMS.
Na potrzeby przekształcania rezerwacji ‘w przyszłość’ w rezerwacje magazynowe WMS dodano w oknie konfiguracji, zakładka [WMS] nowy parametr W pierwszej kolejności przydzielaj zasoby do rezerwacji magazynowych bez ustalonego zasobu handlowego. Ma on znaczenie przy jednoczesnym ustawieniu dotychczasowego parametru z definicji dokumentu Przydzielaj tworzone zasoby do rezerwacji, co przedstawia poniższa tabela.
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
Ilości z rezerwacji pochodzących z zamówień oraz z dokumentów z modułów Produkcja czy Serwis, które zostały już ujęte na dokumentach magazynowych (W)ZWM nie podlegają już przekształcaniu w rezerwacje zasobowe. Dlatego też nie będzie tu sytuacji, w której jednocześnie zostanie przekształcona rezerwacja w przyszłość i dokładnie dla tych samych ilości nastąpi przekształcenie rezerwacji niezasobowej z dokumentu źródłowego, np. zamówienia.
Wskazówka
Jeśli jest ustawione rezerwowanie zasobów w oparciu o stany magazynowe WMS i jednocześnie na definicjach dokumentów handlowych jest ustawiona opcja przydzielania tworzonych zasobów do rezerwacji, to zalecanym jest włączenie w konfiguracji parametru W pierwszej kolejności przydzielaj zasoby do rezerwacji magazynowych bez ustalonego zasobu handlowego. Pozwoli to nie blokować wystawiania dokumentów handlowych do już utworzonych wydań magazynowych.

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.
Jeśli dostawy dla danego towaru są oznaczone cechą, wówczas pry generowaniu (W)ZWM z zamówienia jest uwzględniany powyższy parametr Pobieranie zasobów wg cech.

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).
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: (W)AWD1: 60 szt. z cechą kolor: czarny (partia 1) FZ1: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: biały (partia 2) FZ2: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: czarny (partia 1) ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: czarny. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ2 (pierwszy dostępny handlowo zasób ze zgodną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant A: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: <nieokreślony>. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ1 (pierwszy dostępny handlowo zasób, ponieważ nie podano konkretnej cechy). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant B: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: zielony. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 do ZS1 nie zostanie wygenerowany na żadną ilość (brak dostępnego zasobu z podaną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ1 (pierwszy dostępny handlowo zasób, ponieważ nie ma zasobu ze zgodną cechą).
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, z ustawionym oznaczaniem partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: (W)AWD1: 60 szt. z cechą kolor: czarny (partia 1) FZ1: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: biały (partia 2) FZ2: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: czarny (partia 3) ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: czarny. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ2 (pierwszy dostępny handlowo zasób ze zgodną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant A: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: <nieokreślony>. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ1 (pierwszy dostępny handlowo zasób, ponieważ nie podano konkretnej cechy). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant B: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: zielony. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 do ZS1 nie zostanie wygenerowany na żadną ilość (brak dostępnego zasobu z podaną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ1 (pierwszy dostępny handlowo zasób, ponieważ nie ma zasobu ze zgodną cechą).

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.
Preferuj… (obie opcje) – wyszukiwanie i zakładanie rezerwacji jak dla opcji Preferuj… z tą różnicą, że jeśli zgodny zasób nie zostanie znaleziony, to szukany jest w ten sam sposób pierwszy wolny zasób (wolny handlowo lub magazynowo).
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: (W)AWD1: 60 szt. z cechą kolor: czarny (partia 1) FZ1: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: biały (partia 2) FZ2: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: czarny (partia 1) ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: czarny. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ2 (pierwszy dostępny handlowo zasób ze zgodną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant A: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: <nieokreślony>. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ1 (pierwszy dostępny handlowo zasób, ponieważ nie podano konkretnej cechy). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant B: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: zielony. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 do ZS1 nie zostanie wygenerowany na żadną ilość (brak dostępnego zasobu z podaną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację magazynową WMS na 50 szt. z zasobem z FZ1 (pierwszy dostępny handlowo zasób, ponieważ nie ma zasobu ze zgodną cechą).
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, z ustawionym oznaczaniem partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości: (W)AWD1: 60 szt. z cechą kolor: czarny (partia 1) FZ1: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: biały (partia 2) FZ2: 100 szt. + (W)AWD2: 100 szt. z cechą kolor: czarny (partia 3) ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: czarny. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację ‘w przyszłość’ z zasobem z (W)AWD1 (pierwszy dostępny zasób ze zgodną cechą wyszukany zgodnie z FIFO. b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant A: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: <nieokreślony>. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację ‘w przyszłość’ z zasobem z (W)AWD1 (pierwszy dostępny zasób wyszukany zgodnie z FIFO). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 jak w podpunkcie a). Wariant B: Towar z ustawieniami i zasobami jak wyżej. ZS1 z rezerwacją niezasobową: 50 szt. na cechę kolor: zielony. Włączone rezerwowanie zasobów w oparciu o stany magazynowe WMS. a) Na towarze ustawione oraz Pobieranie zasobów wg cech: Wymagaj Dokument (W)ZWM1 do ZS1 nie zostanie wygenerowany na żadną ilość (brak dostępnego zasobu z podaną cechą). b) Na towarze ustawione oraz Pobieranie zasobów wg cech: Preferuj Dokument (W)ZWM1 wygenerowany do ZS1 na 50 szt. założy rezerwację ‘w przyszłość’ z zasobem z (W)AWD1 (pierwszy dostępny zasób wyszukany zgodnie z FIFO).

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.
Wskazówka
Tylko dokumenty (W)ZWM z samymi rezerwacjami magazynowymi WMS mogą być realizowane dokumentami handlowymi.
Przy działaniu odwrotnym, czyli przy usuwaniu lub anulowaniu dokumentu handlowego bez anulowania (W)ZWM, jeśli na tym (W)ZWM jest oznaczone, że został wystawiony z włączoną opcją rezerwowania zasobów, wówczas rezerwacje magazynowe WMS zostają na nim przywrócone:
  • 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.
Gwarantuje to możliwość ponownego zrealizowania tych dokumentów handlowo. Mechanizm usuwania oraz przywracania rezerwacji magazynowych WMS jest analogiczny jak dla rezerwacji z zamówień.
Przyklad
Towar z ustawionym pobieraniem zasobów wg FIFO, bez ustawionego oznaczania partii towaru identyfikatorem dostawy. Przyjęty w Comarch ERP XL i Comarch WMS na następujące ilości (partie): FZ1: 100 szt. + (W)AWD1: 100 szt. FZ2: 60 szt. + (W)AWD2: 60 szt. Włączone rezerwowanie zasobów w oparciu o stany handlowe. a) Dokument (W)ZWM1 wystawiony na 120 szt. Będzie miał założone rezerwacje magazynowe WMS zgodne z wyszukanymi na dokumentach handlowych zasobami: - 100 szt. z zasobem z FZ1, - 20 szt. z zasobem z FZ2. Po wystawieniu FS1 do (W)ZWM1 zostaną usunięte powyższe rezerwacje magazynowe WMS. W przypadku anulowania FS1 bez (W)ZWM1 zostaną odtworzone powyższe rezerwacje magazynowe WMS. b) Wystawione ZS na 120 szt. z rezerwacjami zasobowymi oznaczonymi jako blokujące towary: 60 szt. (z FZ1) oraz 60 szt. (z FZ2) Dokument (W)ZWM1 wygenerowany do ZS1 będzie miał założone rezerwacje magazynowe WMS odziedziczone z ZS: - 60 szt. z zasobem z FZ1, - 60 szt. z zasobem z FZ2. Rezerwacje na dokumencie ZS1 zostaną oznaczone jako nie blokujące towaru. Po wystawieniu FS1 do (W)ZWM1 zostaną usunięte powyższe rezerwacje magazynowe WMS oraz rezerwacje z zamówienia. W przypadku anulowania FS1 bez (W)ZWM1 zostaną odtworzone powyższe rezerwacje magazynowe WMS oraz rezerwacje z zamówienia – one nadal będą oznaczone jako nie blokujące towaru. c) Wystawione ZS na 120 szt. z rezerwacjami niezasobowymi oznaczonymi jako blokujące towary: 60 szt. (bez zasobu) oraz 60 szt. (bez zasobu) Dokument (W)ZWM1 wygenerowany do ZS1 będzie miał założone rezerwacje magazynowe WMS zgodne z wyszukanymi na dokumentach handlowych zasobami: - 60 szt. z zasobem z FZ1, - 40 szt. z zasobem z FZ1, - 20 szt. z zasobem z FZ2. Rezerwacje na dokumencie ZS1 zostaną oznaczone jako nie blokujące towaru i rozbite zgodnie z rozbiciem rezerwacji magazynowych WMS. Takie rozbicie jest konieczne, ponieważ na dokumencie (W)ZWM powstają trzy subelementy. Po wystawieniu FS1 do (W)ZWM1 zostaną usunięte powyższe rezerwacje magazynowe WMS oraz rezerwacje z zamówienia. W przypadku anulowania FS1 bez (W)ZWM1 zostaną odtworzone powyższe rezerwacje magazynowe WMS oraz rezerwacje z zamówienia – one nadal będą oznaczone jako nie blokujące towaru.
Realizacja lub usuwanie rezerwacji magazynowej WMS jest wykonywane również po operacji spięcia dokumentu handlowego z magazynowym (W)ZWM powiązanego z taką rezerwacją.
Wskazówka
Przy spinaniu istotne jest, aby partie towaru na dokumencie handlowym i magazynowym były zgodne, w przeciwnym razie spięcie jest zablokowane. Niezgodność partii przy spinaniu jest dopuszczalna jedynie w sytuacji, gdy dla danego magazynu jest ustawiony sposób pracy z WMS: Tylko ilościowo.
Obowiązują tutaj te same zasady, co podczas wystawiania dokumentu handlowego do (W)ZWM:
  • 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: Polecenia pozwalają na seryjne (dla zaznaczonych dokumentów) dodawanie i usuwanie rezerwacji magazynowych WMS oraz rezerwacji ‘w przyszłość’. Dodawanie rezerwacji magazynowych jest możliwe dla dokumentów (W)ZWM, które:
  • 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).
W sytuacji, gdy wybrany dokument nie spełnia powyższych założeń użytkownik jest o tym poinformowany stosownym komunikatem, a rezerwacje magazynowe nie zostają utworzone. Po dodaniu właściwych rezerwacji magazynowych dla danego dokumentu jest w tabeli ustawiana informacja wskazująca na sposób rezerwowania zasobów, która jest dziedziczona z karty magazynu (zgodnie ze wskazówką umieszczoną w rozdziale Uruchamianie rezerwowania zasobów). Usuwanie rezerwacji magazynowych jest możliwe dla dokumentów (W)ZWM przed rozpoczętą realizacją. Po usunięciu wszystkich rezerwacji z dokumentu zostaje na nim zmienione ustawienie wskazujące na rezerwowanie zasobów, które zostało odziedziczone z karty magazynu (zgodnie ze wskazówką umieszczoną w rozdziale Uruchamianie rezerwowania zasobów). Oznacza to, że taki dokument nie ma ustawionej żadnej opcji rezerwowania zasobów. Lista rezerwacji magazynowych WMS Na liście rezerwacji dostępnych w Historii towaru oraz Historii kontrahenta są widoczne rezerwacje magazynowe WMS. Została również dodana nowa pozycja filtra Zlecenie wydania z magazynu WMS. Dla takiego ustawienia w filtrze będą pokazywane rezerwacje magazynowe WMS przypisane do danego kontrahenta lub towaru, którego dotyczą. Jeśli rezerwacja pochodzi z dokumentu wystawionego w WMS, który nie został jeszcze przesynchronizowany do XL, wówczas jako dokument źródłowy na liście i na formatce rezerwacji widnieje wyrażenie: Rezerwacja ZWM. Zablokowane jest dodawanie i usuwanie rezerwacji magazynowych WMS z poziomu tej listy. Operacje te są wykonywane automatycznie lub ręcznie tylko z poziomu dokumentów (W)ZWM, jak opisano w powyższych punktach. Na liście nie są prezentowane rezerwacje WMS ‘w przyszłość’. Wykluczanie rezerwacji magazynowych z ręcznych operacji na rezerwacjach Rezerwacje magazynowe WMS oraz rezerwacje WMS ‘w przyszłość’ nie są pokazywane na listach rezerwacji wołanych w trakcie następujących operacji:
  • 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.
Rezerwacja magazynowe WMS w BST Dodano nowe predefiniowane składniki BST Zarezerwowana na (W)ZWM oraz Zarezerwowana na ZWM, które wyliczają odpowiednio ilości zarezerwowane na dokumentach (W)ZWMM wystawionych lub przesynchronizowanych z WMS lub dokumentach ZWM jeszcze nie przesynchronizowanych do XL. Do tych składników nie są wliczane ilości pochodzące z rezerwacji WMS ‘w przyszłość’.

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.
Oznaczenie na kartach towarowych opakowań kaucjonowanych i jednorazowych
Żeby w WMS Zarządzanie móc powiązać kartę towaru z jednostką logistyczną, to w Comarch ERP XL musi być na niej:
  • 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.
Zmiana ustawienia, czy jest to Opakowanie kaucjonowane/jednorazowe jest możliwa tylko z poziomu Comarch WMS Zarządzanie, na definicjach jednostek logistycznych. W Systemie jest to wyświetlane tylko informacyjnie na karcie towaru.
Uwaga
Uwaga: Należy zwrócić uwagę, że zmodyfikowana funkcjonalność łączenia pozycji ze zwykłymi towarami oraz tymi powiązanymi z jednostką logistyczną WMS dotyczy tylko towarów oznaczonych jako Opakowania kaucjonowane. Dla Opakowań jednorazowych działanie Systemu na dokumentach pozostaje bez zmian, gdyż są one traktowane jako zwykły towar.

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.
Oznaczenie elementu dokumentu magazynowego dla opakowań kaucjonowanych i jednorazowych
Analogicznie, jeśli dokument magazynowy WMS jest generowany z dokumentu kaucji, na którym znajduje się element na towar z ustawieniem Opakowanie kaucjonowane, to na dokumencie magazynowym element ten zostaje automatycznie oznaczony w ten sam sposób. Tak samo będzie to działało, jeśli na dokumencie magazynowym WMS zostanie wykonana operacja wiązania dokumentu kaucji (nagłówka lub wybranych elementów), na których znajduje się element na towar z ustawieniem Opakowanie kaucjonowane. Dodatkowo, jeśli dokument magazynowy WMS jest generowany z dokumentu handlowego z powiązanym dokumentem kaucji, na którym znajduje się element na towar z ustawieniem Opakowanie kaucjonowane, to na utworzonym dokumencie magazynowym znajdą się zarówno elementy z dokumentu handlowego, jak i te z dokumentu kaucji (te dostają oznaczenie Opakowania kaucjonowane). O fakcie włączenia elementów kaucji do wspólnego dokumentu magazynowego użytkownik zostaje poinformowany stosownym komunikatem. Działa to zarówno przy generowaniu dokumentu magazynowego WMS z listy czy w procesach, jak i przy automatycznym, czyli w trakcie zatwierdzania dokumentu handlowego. Towary z oznaczeniem Opakowania jednorazowe mogą się znajdować tylko na zwykłych dokumentach handlowych. Jedyną różnicą w stosunku do zwykłych towarów jest to, że przy generowaniu dla nich dokumentów magazynowych, elementy z tymi towarami dostaną oznaczenie Opakowania jednorazowe.
Przyklad
Przykład: W bazie są następujące towary: - Napój 500 ml (zwykły towar), - Butelka bezzwrotna (Opakowanie jednorazowe), - Skrzynka (Opakowanie kaucjonowane), - Paleta (Opakowanie kaucjonowane). Przypadek 1. Na dokument (W)ZWM dodaję z ręki następujące pozycje: 1. Napój 500 ml * 150 szt., 2. Butelka bezzwrotna * 150 szt. -> zostaje ustawione oznaczenie Opakowanie jednorazowe, 3. Skrzynka * 10 szt. -> zostaje ustawione oznaczenie Opakowanie kaucjonowane. Do dokumentu dowiązuję również ręcznie pozycję z WKA: 4. Paleta * 1 szt. -> zostaje ustawione oznaczenie Opakowanie kaucjonowane. Przypadek 2. Jest dokument handlowy WZ z pozycjami: 1. Napój 500 ml * 150 szt., 2. Butelka bezzwrotna * 150 szt. Oraz powiązany z WZ dokument kaucji WKA z pozycją: 1. Skrzynka * 10 szt. Do dokumentu WZ wybieram polecenie generowania dokumentu magazynowego (W)ZWM. Na utworzonym dokumencie mam pozycje: 1. Napój 500 ml * 150 szt., 2. Butelka bezzwrotna * 150 szt. -> zostaje ustawione oznaczenie Opakowanie jednorazowe, 3. Skrzynka * 10 szt. -> zostaje ustawione oznaczenie Opakowanie kaucjonowane.

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.
O fakcie utworzenia dodatkowo dokumentu kaucji dla elementów na Opakowania kaucjonowane użytkownik zostaje poinformowany stosownym komunikatem Efektem końcowym jest powiązanie pozycji dokumentu handlowego z pozycjami dokumentu magazynowego na zwykłe towary i/lub Opakowania jednorazowe oraz powiązanie pozycji dokumentu kaucji z pozycjami dokumentu magazynowego na Opakowania kaucjonowane. Jednocześnie obydwa utworzone dokumenty są ze sobą powiązane, czyli dokument kaucji jest widoczny na zakładce [Kaucja] dokumentu handlowego. W przypadku, gdy na dokumencie magazynowym będą znajdowały się tylko pozycje na opakowania kaucjonowane lub zostanie wybrane generowanie samego dokumentu kaucji, wówczas powstaje jedynie dokument kaucji z pozycjami na Opakowania kaucjonowane powiązany z odpowiednimi pozycjami dokumentu magazynowego WMS.
Przyklad
Przykład: W bazie są następujące towary: - Napój 500 ml (zwykły towar), - Butelka bezzwrotna (Opakowanie jednorazowe), - Skrzynka (Opakowanie kaucjonowane), - Paleta (Opakowanie kaucjonowane). Na dokumencie (W)ZWM mam następujące pozycje: 1. Napój 500 ml * 150 szt., 2. Butelka bezzwrotna * 150 szt. -> z oznaczeniem Opakowanie jednorazowe, 3. Skrzynka * 10 szt. -> z oznaczeniem Opakowanie kaucjonowane. 4. Paleta * 1 szt. -> z oznaczeniem Opakowanie kaucjonowane. Przypadek 1. Do dokumentu (W)ZWM wybieram polecenie generowania dokumentu handlowego WZ. Na utworzonym dokumencie mam pozycje: 1. Napój 500 ml * 150 szt., 2. Butelka bezzwrotna * 150 szt. Zostaje również automatycznie wygenerowane WKA (powiązane z WZ) z pozycjami: 3. Skrzynka * 10 szt., 4. Paleta * 1 szt. Przypadek 2. Do dokumentu (W)ZWM wybieram polecenie generowania dokumentu kaucji WKA. Na utworzonym dokumencie mam pozycje: 1. Skrzynka * 10 szt., 2. Paleta * 1 szt.
Wskazówka
Wskazówka: W przypadku Opakowań kaucjonowanych, jeśli przyjęty w Systemie model działania zakłada wyjście od dokumentów magazynowych, to nie ma potrzeby ustawiać w definicji dokumentów handlowych parametru: Automatyczne generowanie dokumentów kaucji. Dokumenty kaucji generowane będą bowiem na podstawie elementów na dokumentach magazynowych. Natomiast w przypadku korekt dokumentów handlowych, gdzie nie jest możliwe wyjście od dokumentów magazynowych, nadal konieczne jest korzystanie ze schematów kaucji oraz ww. parametru, nawet w przypadku towarów kaucjonowanych oznaczonych jako Opakowania kaucjonowane.
Zmianie nie uległy działania na towarach oznaczonych jako zwykła kaucja (tylko parametr Kaucja, bez powiązania z jednostką logistyczną WMS). Dla nich nadal powstają osobne dokumenty magazynowe WMS.

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.
Oznacza to, że nie obowiązuje dotychczasowa zasada, zgodnie z którą wszystkie pozycje spinanych dokumentów muszą być zgodne. Można zatem spiąć z dokumentem magazynowym WMS zarówno zwykły dokument handlowy, jak i dokument kaucji. Anulowanie dokumentów handlowych wymusza anulowanie powiązanych dokumentów kaucji oraz pozwala jednocześnie anulować powiązane dokumenty magazynowe. W przypadku, gdy powiązany dokument magazynowy WMS jest powiązany z innym dokumentem niż wybrany do anulowania (w tym przypadku z dokumentem kaucji), to pojawia się pytanie, czy faktycznie anulować taki dokument magazynowy. Dopiero po potwierdzeniu przez użytkownika anulowanie dokumentu magazynowego WMS jest wykonywane. W tym zakresie nie zostały wprowadzane żadne zmiany. Na liście towarów jest możliwość wyświetlania dodatkowej kolumny J. logistyczne WMS (wolne) prezentującej stany towarów oznaczonych jako Opakowania kaucjonowane i Opakowania jednorazowe, które nie są zajęte, czyli aktualnie nie są na nich umieszczone żadne towary. Aby wyświetlić nową kolumnę należy w obszarze Kolumny pod listą zaznaczyć nowy parametr J. log. WMS.

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.
Nowy parametr dla jednostki pomocniczej towaru
Dla towaru może istnieć wiele jednostek pomocniczych z takim ustawieniem, ponieważ dla podziału przy generowaniu istotne jest to, żeby taka jednostka została umieszczona na zamówieniu źródłowym do (W)ZWM. Przy czym parametr (W)ZWM do zamówień w jedn. całkowitych musi być już zaznaczony w momencie dodawania/modyfikacji elementu zamówienia, bo wtedy następuje na elemencie zamówienia odpowiedni zapis wskazujący na konieczność dzielenia dokumentów (W)ZWM. Obecne polecenia do generowania dokumentu (W)ZWM z listy zamówień oraz listy elementów zamówień będą działały zależnie od nowego ustawienia w definicji dokumentu ZWM, jak pokazano na rysunku poniżej.
Nowy parametr na definicji dokumentu ZWM
Jeśli parametr jest zaznaczony, wówczas nowy dokument jest tworzony z automatycznym podziałem na pełne/niepełne jednostki pomocnicze. Jeśli nie zaznaczony, to podział nie jest wykonywany, nawet jeśli jednostka pomocnicza wybrana na zamówieniu wskazuje na konieczność takiego podziału.

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.
Dokument (W)ZWM z pozycjami na pełne jednostki pomocnicze
Wskazówka
Wskazówka: Na dokumentach (W)ZWM oznaczonych na pełne jednostki pomocnicze wszystkie elementy muszą być na pełne jednostki.
  • 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.
Dokument (W)ZWM z pozycjami na niepełne jednostki pomocnicze
Obydwa dokumenty (W)ZWM zostaną powiązane z zamówieniem i będą stanowiły jego realizację.
Powiązane do zamówienia dokumenty (W)ZWM na pełne i niepełne jednostki pomocnicze
Przyklad
Przykład: W definicji dokumentu ZWM jest zaznaczony parametr: Przy generowaniu (W)ZWM z zamówień automatycznie dziel na pełne/niepełne jednostki pomocnicze. Przypadek 1. Na dokumencie ZS znajdują się elementy z towarami: T1: 15 szt. (j.podst.) oraz j.pom.: paleta = 1,5 (przeliczniki 1/10), T2: 5 szt. (j.podst.) oraz j.pom.: paleta = 0,5 (przelicznik 1/10), T3: 15 szt. (j.podst.) oraz j.pom.: karton = 1,5 (przelicznik 1/10), T4: 15 szt. (j.podst.) oraz brak ustawionej j. pom. Na towarach T1 i T2 j. pom.: paleta ma ustawiony parametr: (W)ZWM do zamówień w jedn. całkowitych. Na towarze T3 j. pom: karton nie ma tego parametru zaznaczonego. Generujemy (W)ZWM do ZS. Powstają dwa dokumenty: a) Dokument (W)ZWM-1 na pełne jednostki pomocnicze z elementami: T1: 10 szt. (j.podst.) oraz j.pom.: paleta = 1, b) Dokument (W)ZWM-2 na niepełne jednostki pomocnicze z elementami i ilościami nie uwzględnionymi na (W)ZWM-1: T1: 5 szt. (j.podst.) oraz j.pom.: paleta = 0,5, T2: 5 szt. (j.podst.) oraz j.pom.: paleta = 0,5, T3: 15 szt. (j.podst.) oraz j.pom.: karton = 1,5, T4 z ilością 15 szt. (j.podst.). Przypadek 2. Na dokumencie ZS znajdują się elementy z towarami: T1: 20 szt. (j.podst.) oraz j.pom.: paleta = 2 (przeliczniki 1/10), T2: 10 szt. (j.podst.) oraz j.pom.: paleta = 1 (przelicznik 1/10), Na towarach T1 i T2 j. pom.: paleta ma ustawiony parametr: (W)ZWM do zamówień w jedn. całkowitych. Generujemy (W)ZWM do ZS. Powstaje dokument (W)ZWM-1 na pełne jednostki pomocnicze z elementami: T1: 20 szt. (j.podst.) oraz j.pom.: paleta = 2, T2: 10 szt. (j.podst.) oraz j.pom.: paleta = 1 Ponieważ cała ilość z ZS została pobrana na dokument (W)ZWM-1, to nie zostanie utworzony żaden dodatkowy dokument (W)ZWM. Przypadek 3. Na dokumencie ZS znajdują się elementy z towarami: T1: 8 szt. (j.podst.) oraz j.pom.: paleta = 0,8 (przeliczniki 1/10), T2: 5 szt. (j.podst.) oraz j.pom.: paleta = 0,5 (przelicznik 1/10), Na towarach T1 i T2 j. pom.: paleta ma ustawiony parametr: (W)ZWM do zamówień w jedn. całkowitych. Generujemy (W)ZWM do ZS. Powstaje dokument (W)ZWM-1 na niepełne jednostki pomocnicze z elementami: T1: 8 szt. (j.podst.) oraz j.pom.: paleta = 0,8, T2: 5 szt. (j.podst.) oraz j.pom.: paleta = 0,5. Ponieważ na ZS nie było żadnej ilości przeliczalnej na pełne jednostki całkowite, to nie został utworzony dokument (W)ZWM-1 na pełne jednostki pomocnicze.
Poza automatycznym podziałem na każdym dokumencie (W)ZWM w buforze jest możliwość ręcznego ustawienia, że jest on na pełne jednostki. Czyli na każdym dokumencie, zarówno tym dodanym z ręki, jak i generowanym z różnych dokumentów, można ustawić parametr Dokument na pełne jednostki pomocnicze. System pozwala zapisać taki dokument pod warunkiem, że wszystkie jego pozycje mają ustawioną jednostkę pomocniczą i ilość w tej jednostce jest całkowita.
Uwaga
  1. Automatyczny podział na pełne/niepełne jednostki jest wykonywany tylko przy generowaniu dokumentów (W)ZWM bezpośrednio z ZS/ZW.
  2. 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.
  3. Podział nie jest również wykonywany na istniejących dokumentach (W)ZWM podczas wykonywania operacji spinania zamówień z dokumentami magazynowymi.
Dodatkowo, jeśli dokument (W)ZWM ma ustawione, że jest na pełne jednostki pomocnicze, to można do niego dodać tylko takie pozycje, która spełniają to wymaganie. Również przy zmianie ilości na takim (W)ZWM i zapisie elementu, jeśli nowa ilość nie będzie dała się przeliczyć na pełne jednostki pomocnicze, to użytkownik zostaje o tym poinformowany stosownym komunikatem i musi zdecydować, czy:
  • 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.
Podczas dowiązywania elementów do dokumentu (W)ZWM na pełne jednostki pomocnicze, operacja jest wykonywana tylko dla tych elementów, które mają ustawioną jednostkę pomocniczą i dodatkowo pobierana na (W)ZWM jest tylko ilość całkowita w jednostkach pomocniczych. Pozostałą ilość można dodać na inny dokument (W)ZWM, który nie jest oznaczony na pełne jednostki pomocnicze.
Wskazówka
Wskazówka: Przy samodzielnym ustawianiu parametru na dokumencie lub przy dodawaniu/modyfikacji/wiązaniu pozycji na dokumencie na pełne jednostki nie ma kontroli, czy na jednostce pomocniczej jest zaznaczony parametr (W)ZWM do zamówień w jedn. całkowitych, gdyż ma on znaczenie tylko dla dokumentów generowanych z zamówień. Z tej kontroli wykluczane są również pozycje z towarami oznaczonymi jako Opakowania kaucjonowane lub Opakowania jednorazowe, o których mowa w poprzednim punkcie.
Samodzielne ustawienie parametru Dokument na pełne jednostki pomocnicze skutkuje tym, że większa ilość dokumentów (W)ZWM może podlegać w Comarch WMS Magazynier procesom realizacji przewidzianym dla pełnych/niepełnych jednostek. Przy generowaniu dokumentów (W)ZWM z paczek, jeśli do paczki powiązane są pozycje zamówień i dokumentów handlowych i na obu dokumentach jest ustawiona jednostka pomocnicza ze wskazaniem na podział, to podział jest robiony zarówno dla pozycji z zamówień, jak i dla pozycji z dokumentów handlowych z taką jednostką pomocniczą. Jest to zgodne z tym, że przy ręcznym dowiązywaniu do (W)ZWM na pełne jednostki pozycji dokumentu handlowego z ustawioną jednostką pomocniczą, z handlowego zostanie dodana tylko ilość przeliczalna na pełne jednostki.

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.
Nie będzie tu miało znaczenia czy dokument MMW jest dodany ręcznie, czy wygenerowany z innego dokumentu, z zastrzeżeniem jak niżej.
Uwaga
Uwaga: Jeśli dokument MMW jest wystawiany do istniejącego dokumentu (W)ZWM (dodanego przed wersją 2021.1), wówczas zachowana została dotychczasowa obsługa, czyli dalsze generowanie dokumentu. MMP i magazynowych zależą od ustawień w definicjach dokumentów MMW/MMP.
Zmiany dotyczą również anulowania dokumentów przesunięć międzymagazynowych. Aby było możliwe anulowanie dokumentów MMW/MMP wystawionych na magazyny składowe jednego magazynu zbiorczego, musi być możliwość anulowania całego kompletu powiązanych ze sobą dokumentów wewnętrznych i magazynowych, czyli MMW -> (W)ZWM oraz MMP -> (W)AWD. Wprowadzono więc następującą obsługę:
  • 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.).
O tym, że anulowany zostanie cały zestaw dokumentów użytkownik jest informowany specjalnym komunikatem. A w przypadku niepowodzenia anulowania któregokolwiek z dokumentów operacja jest wycofywana i dokumenty pozostają w dotychczasowym stanie.

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.
W sytuacji, gdy wybrany w nagłówku inwentaryzacji magazyn stanowi magazyn składowy magazynu zbiorczego obsługującego położenia zmienne, wówczas użytkownik zostaje poinformowany o charakterze wybranego magazynu i musi zadecydować, czy chce by pozostałe magazyny składowego wchodzące w skład magazynu zbiorczego, do którego należy wybrany przez niego magazyn zostały dodane do inwentaryzacji, czy też rezygnuje z inwentaryzacji wybranego uprzednio magazynu.
Wskazówka
Wskazówka: W sytuacji, gdy któryś z magazynów składowych stanowiących ten sam magazyn zbiorczy, co wybrany do inwentaryzowania magazyn, nie będzie dostępny w kontekście centrum, w którym jest zakładana inwentaryzacja, przeprowadzenie inwentaryzacji jest blokowane. Użytkownik zostaje o tym poinformowany w stosownym komunikacie. W sytuacji, gdy któryś z magazynów składowych stanowiących ten sam magazyn zbiorczy, co wybrany do inwentaryzowania magazyn, będzie zablokowany, wówczas w zależności od istniejących stanów handlowych inwentaryzacja jest wykonywana bez tegoż zablokowanego magazynu (gdy stany zerowe) lub jest blokowana. W przypadku blokady użytkownik zostaje o tym poinformowany w stosownym komunikacie.
Po zrealizowaniu w Comarch WMS inwentaryzacji następuje przekazanie wyniku do Comarch ERP XL. Dla magazynów składowych przekazywany jest jeden odczyt, z informacją o łącznej ilości danego towaru na wszystkich inwentaryzowanych magazynach. Jest to tożsame działanie z dotychczasową funkcjonalnością inwentaryzacji zbiorczej wielu magazynów. Rozbicie przekazanej łącznej ilości towaru pomiędzy magazyny jest ujęty na arkuszu, jak to miało miejsce w dotychczasowej funkcjonalności. Po przekazaniu ilości (odczytu), w tym także w rozbiciu na magazyny, nie jest możliwa zmiana przesłanej ilości.
  • 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.
Podczas dodawania towarów do arkusza działanie jest zależne od nowego parametru:
  • 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.
Tak skonfigurowany arkusz inwentaryzacyjny pozwala na poprawne zinwentaryzowanie towarów w WMS, gdzie na oddzielnym arkuszu muszą być umieszczone opakowania kaucjonowane oraz jednorazowe.

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.
Wskazówka
Zmiana dotyczy tylko nowo tworzonych dokumentów, czyli dotychczasowe dokumenty utworzone z inwentaryzacji na magazyn WMS będą miały nadal opis: Do wygenerowania.

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.
Opcja sortowania
Kolumna, po której lista jest sortowana zostaje oznaczona symbolem :
Oznaczenie po jakiej kolumnie jest sortowanie
W celu powrotu do pierwotnego sposobu prezentacji listy, należy ustawić kursor myszy na nagłówku kolumny, prawym klawiszem wyświetlić menu podręczne i wybrać „usuń sortownie po tej kolumnie”.
Usuwanie sortowania

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”
Grupowanie po kolumnie
Efekt grupowania w postaci listy zawężonej wg wartości występujących w kolumnie wybranej do grupowania
Wyodrębnienie pola grupowania
Kolumna grupowania, może zostać wyodrębniona w nagłówku listy.
Wyodrębnienie pola grupowania ciąg dalszy

Filtrowanie

Filtrowanie szybkie

Filtrowanie szybkie odbywa się po nagłówkach kolumn, każda kolumna w nagłówku zawiera symbol oznaczający możliwość stosowania filtra po zawartościach danej kolumny. Symbol wyświetlony zostaje po naprowadzeniu kursora myszki.
Filtrowanie, ikona filtrowania
Lewy klawisz myszy na symbolu ‘lejka’ wyświetli okienko z wartościami występującymi w danej kolumnie, po zaznaczeniu odpowiednich pozycji , lista zostanie odfiltrowana i zawężona do wartości wskazanych.
Filtrowanie
Można również stosować filtry tekstowe pozwalające filtrować np. po wybranych fragmentach wartości lub z użyciem prostych warunków.
Filtrowanie ciąg dalszy

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.
Kreator filtra
Kreator filtra daje możliwość utworzenia filtra dla całego okna ze wskazanie warunków filtrowana dla poszczególnych kolumn.
Kreator filtra ciąg dalszy

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.
Przyklad
Tworzymy atrybut dla BST, jest na nagłówku dokumentu BST, klasa ma ID 179. Dodajemy kolumnę.
Dodanie połączenia do tabeli
Po dodaniu takiego wpisu na zestawie kolumn do wyboru będą dostępne nowe kolumny.
Spis dodanych kolumn
Tutaj przykład z aliasem, aby kolumna miała konkretną nazwę:
Alias dla dodatkowych kolumn
Alias dla dodatkowych kolumn - efekt końcowy

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:
Widok stworzony dla DevExpress
Zapytanie do dodatkowej kolumny może mieć wtedy postać: cdn.SrwUrzadzenia on SrU_id = Id Jeszcze inne przypadki mogą wymagać analizy przez np. SQL Server Profiler. Moduł Serwis > Urządzenia > Karta urządzenia > Historia > Czynności ZSR Samo łączenie odbywa się z aliasem, ale należy przeanalizować całe zapytanie znalezione w Profilerze i dostosować dodawaną kolumnę do globalnego zapytania. Poniżej konieczność zastosowania aliasu dla kolumny ze względu na duplikację w całościowym zapytaniu SrU_Id. (select SrU_Opis as Opis, SrU_Id as Sru from CDN.SrwUrzadzenia X where X.SrU_Id = SrU_Id) XY on XY.Sru = A.SrU_Id
Zapytanie z SQL Server Profiler i miejsce dodania dodatkowego łączenia w globalnym zapytaniu

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.

Wskazówka

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.
Przy pierwszym uruchomieniu aplikacji sPrint w wersji 2023.0 użytkownik zostanie poproszony jednorazowo o podanie numeru swojego klucza licencji, na którym działa Comarch ERP XL. Klucz podajemy w formacie SERWER::KLUCZ. Do poprawnego działania Comarch sPrint jest wymagana licencja do modułu XL Administracja.
Uwaga
Informacje o kluczu, jaki został podany jednorazowo przy uruchamianiu Comarch sPrint od wersji 2023.0 zapisywane są domyślnie w przykładowej lokalizacji: C:\Users\UserName\AppData\Roaming\Comarch sPrint w pliku „sPrintMetadata” Plik ten będzie istniał nawet, jeśli zostanie odinstalowany sPrint. W związku z istnieniem ww. pliku przy ponownej instalacji Comarch sPrint (np. przy ręcznej instalacji sPrint czy też instalacji z setupa ERP XL 2023.1) ekran do podania klucza już się nie pojawi. W celu podania innego klucza licencji, należy usunąć plik sPrintMetadata.

W konfiguracji wydruków dodano nowy typ wydruku: sPrint.

Nowy typ formatu wydruku: sPrint
Nowy typ formatu wydruku: sPrint

Wskazówka
Jednocześnie z formatki został usunięty niewykorzystywany typ formatu: GenRap.

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].
Nie zostały natomiast obsłużone niektóre parametry z konfiguracji wydruku, m.in. parametry dynamiczne. Będzie to rozwijane wraz z rozwojem aplikacji 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
W wersji Comarch ERP XL 2023.2 dla modułu Sprzedaż udostępniono następujący wydruk sPrint:
  • Faktura sprzedaży FS -> Faktura VAT. Zawartość i układ wydruku są analogiczne jak dla dotychczasowego wydruku w formacie Crystal Reports.
W wersji Comarch ERP XL 2024.1 dla modułu Sprzedaż udostępniono następujące wydruki sPrint:
  • 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.
W wersji Comarch ERP XL 2025.0 dla modułu Sprzedaż udostępniono następujące wydruki sPrint:
  • 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.

Parametr Drukuj kod QR do przelewu przed wydrukiem faktury VAT
Parametr Drukuj kod QR do przelewu przed wydrukiem faktury VAT

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]
Kod QR na wydruku Faktura VAT [sPrint]

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.

Wskazówka
Kwota którą przekazujemy do płatności jest zawsze ujmowana jako całość pozostała do zapłaty bez rozróżnienia na formę płatności. Najczęstszym bowiem przypadkiem jest ten, w którym należność niezapłacona z tytułu faktury powinna zostać zrealizowana przelewem. Jeśli w szczególnych przypadkach będzie inaczej, wówczas nie ma potrzeby umieszczania kodu QR na wydruku, czyli parametr przed wydrukiem nie powinien być zaznaczony.

Uwaga
 Aby wykonać wydruk o typie sPrint musi być zainstalowany program do uruchamiania plików w formacie PDF.

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.
Opcja włączania uruchamiania procesu dla sPrint razem z Systemem XL
Domyślnie parametr pozostaje niezaznaczony. Po zaznaczeniu parametru przy każdym uruchamianiu na danym stanowisku modułu Comarch ERP XL uruchamiany będzie również w tle proces dla wydruków w Comarch sPrint. Dzięki czemu wywołanie podglądu wydruku do PDF oraz sam wydruk będą się wykonywały szybciej.
Uwaga
Ustawienie to dotyczy pojedynczego stanowiska, więc nie zadziała ogólnie dla całej bazy danych czy wszystkich Użytkowników.
Niezależnie od danego parametru - proces sPrint nadal będzie wyłączany wraz z wyłączeniem modułu.

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
Zgodność partii między ERP XL - WMS przy tym modelu pracy na magazynie może być zakłócona przy rozpoczęciu procesu od dokumentów handlowych oraz zmianie partii na dokumencie magazynowym w WMS (FS->(W)ZWM z inną partią). Dlatego nie wskazany jest taki model pracy.

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
Przy tworzeniu dokumentów sprzedaży znaczenie ma również ustawienie sposobu współpracy z WMS na karcie magazynu:
  • Tylko ilościowo
  • Ilościowo oraz zasobowo
W poniższych tabelach przedstawiono sposoby domyślnego ustawiania poszczególnych właściwości (klasa i wartość cechy, EAN, data ważności) przypisywanych do towarów na etapie przychodu i rozchodu, zarówno na dokumentach magazynowych w ERP XL i WMS, jak i na dokumentach handlowych w ERP XL. Opisano tez działanie parametrów, które mają na to wpływ. W tabelach wyróżniono kolorami ujęcie od strony zakupowej i sprzedażowej, zgodnie z powyższą kolorystyką. Dodatkowo dla dokumentu FS wyróżniono dwa scenariusze, zależne od wybranej współpracy z magazynem WMS.

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.
Zgodnie z opisami w punkach poprzednich, jeśli poszukiwany zasób nie zostanie odnaleziony lub nie będzie wystarczającej ilości, wówczas:
  • 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.
Uwaga
W przypadku, gdy dokumenty magazynowe WMS wystawiane są zgodnie z zalecanymi pełnymi ścieżkami sprzedaży, czyli w przypadku sprzedaży ( W) ZWM jest zawsze generowane z ZS i jednocześnie ZS tworzy rezerwacje  zasobowe, to działanie z ustawieniem na karcie towaru Oznacz partię : Identyfikatorem dostawy i ustawienie  pobierania zasobów wg Partii pozwoli na zachowanie zgodności stanów handlowych. Natomiast w sytuacji , gdy którychś z tych warunków nie jest zachowany, wówczas dla zgodności stanów magazynowych zalecane jest ustawienie pobierania zasobów wg: Klasy i cechy dostawy, EAN oraz Daty ważności. Ewentualnie dopuszczalne jest ustawienie wg : Partii, ale pod warunkiem, że na towarach nie zostało ustawione Oznacz partię: Identyfikatorem dostawy.

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.
Konfiguracja oddziału zakładka Automat synchr.
  Ustawienie poprawnych danych dotyczących operatora/hasła poprzez opcję Konfiguracja logowania automatu synchronizacji.
Konfiguracja logowania automatu synchronizacji
Na wstążce/pasu wybranie opcji Przełącz w tryb automatyczny oraz podanie hasła i zatwierdzenie autoryzacji
Przełącz w tryb automatyczny
Licencje ERP XL pobierane są z zalogowanego operatora do Modułu Administrator oddziałów na którym został włączony tryb automatyczny, licencje weryfikowane są z wpisanego klucza w konfiguracji komputera zakładka Klucz.

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.
Konfiguracja oddziału zakładka Automat synchr.
Ustawienie poprawnych danych dotyczących operatora/hasła poprzez opcję Konfiguracja logowania automatu synchronizacji.
Konfiguracja logowania automatu synchronizacji
Kolejno tworzymy usługę synchronizacji poprzez opcję Synchronizacja jako usługa W oknie usługi synchronizacyjny za pomocą plusa dodajemy nową usługę.
Dodaj usługę synchronizacji- Ustawienia usługi
Zakładka Ustawienia usługi Nazwa usługi- nazwa jaka będzie prezentowana na liści usług 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
Przypisujemy oddział który ma pracować za pomocą usługi

Weryfikacja logów automatycznej synchronizacji

Logi są dostępne na pasku/wstążce za pomocą opcji . Dane znajdują się również w tabeli cdn.PicoLogElem

Podczas Przełączania w tryb automatyczny pojawia się komunikat jak niżej

Przełącz w tryb automatyczny
Remedium: Moduł Administrator oddziałów nie został uruchomiony jako administrator.

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)

Log automatycznej synchronizacji
Pełny opis błędu: Uruchomienie tej operacji nie jest możliwe ze względu na brak dostępu do modułu, problem z połączeniem lub niezgodność danych w kluczu ze stanem faktycznym. Sprawdź informacje o kluczu sprzętowym. Nazwa uruchamianej procedury: NoweZamowienie. Procedura ta może korzystać z następujących modułów: Zamówienia. Remedium: Należy zweryfikować na karcie operator synchronizującego czy zaznaczony jest moduł Zamówienia.

Brak licencji na moduł Serwis

Log automatycznej synchronizacji
Pełny opis błędu: Brak licencji na moduł Serwis do wykonania operacji. PRZYCZYNA: Dany operator nie ma licencji na moduł Serwis. REMEDIUM: Skontaktuj się z Administratorem systemu w celu nadania licencji na moduł. ZAAWANSOWANE: Ustawia się w module Administrator. Remedium: Należy zweryfikować na karcie operator synchronizującego czy zaznaczony jest moduł Serwis.

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

Log automatycznej synchronizacji
Pełny opis błędu: Uruchomienie tej operacji nie jest możliwe ze względu na brak dostępu do modułu, problem z połączeniem lub niezgodność danych w kluczu ze stanem faktycznym. Sprawdź informacje o kluczu sprzętowym. Nazwa uruchamianej procedury: API. Procedura ta może korzystać z następujących modułów: Sprzedaż. Remedium: Należy zweryfikować na karcie operator synchronizującego czy zaznaczony jest moduł Sprzedaż.

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

Okno zapisu centrum powiązanego z oddziałem
Okno zapisu centrum powiązanego z oddziałem
Remedium: Należy zweryfikować wpis od strony bazy dla centrum powiązanym z oddziałem tabela cdn.FrmStruktura pole FRS_PlatnosciZRodzica pole powinno mieć wartość 0, jak również taka wartość powinna być w centrum głównym- najwyższym.

Brak bieżącego okresu obrachunkowego

Log automatycznej synchronizacji
Remedium: W konfiguracji zakładka Księgowość- Okresy obrachunkowe należy dodać bieżący okres
Konfiguracja -Księgowość- Okresy obrachunkowe
Kolejno w ścieżce System Zmiana okresu zaznaczyć obecny okres jako aktualny i dodatkowo zaznaczyć Zmień dla wszystkich operatorów i zatwierdzić.
System- Zmiana okresu

Brak zaczytania zapisów kasowych

Log automatycznej synchronizacji
Remedium: W rejestrze kasowym istnieje możliwość czasowego odznaczenia checku ‘Oddział’ poprzez np. poniższe polecenie od strony bazy danych: update CDN.Rejestry set KAR_Oddzial=0 where KAR_GIDNumer in (......) Po wykonaniu powyższego polecenia w rejestrze będzie możliwe otwarcie raportu (jeśli raport jest zaksięgowany należy w pierwszej kolejności go odksięgować), a następnie ręczne wystawić w systemie odpowiednie KP/KW do odpowiedniego raportu kasowego. Po wykonanych modyfikacji na rejestrze, należy oczywiście zaznaczyć ponownie check „Oddział”. Taka możliwość może nie być dostępna od strony interfejsu systemu, należy więc ponownie wykonać odpowiednie zapytanie od strony bazy danych SQL, zmieniające wartości dla CDN.Rejestry i KAR_Oddzial na "1". Jeśli uda się w ERP XL wprowadzić KW to na bazie mobilnej można zmienić status na zsynchronizowano update Synchronization set State = 3 (tutaj odpowiednią cyfra w zależności jaki ma mieć status) where ObjectId = wpisujemy Id dokumentu z tabeli Synchronization. Podane rozwiązanie należy w pierwszej kolejności wykonać na kopii bazy. Jeśli zapis zostanie wykonany, należy zweryfikować synchronizację między aplikacją mobilną a systemem ERP. Po upewnieniu się, że zmiany są prawidłowe można nanieść zmiany na bazie produkcyjnej.

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.
Definicja dokumentu, dozwolone operacje na dokumencie
Po odznaczeniu praw do wystawiania i edycji określonego rodzaju dokumentu w Comarch CDN XL oraz wykonaniu synchronizacji na urządzeniu mobilnym dla zalogowanego Operatora w aplikacji Mobile nie będzie możliwości wystawiana danego typu dokumentu.

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.

Uwaga
Przy korzystaniu z Comarch ChatERP należy pamiętać, że usługa w wersji Beta posiada ograniczony zakres informacji i działań, jak opisano poniżej. A udzielona odpowiedź lub wykonane polecenie mogą być obarczone błędami.

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.

Przyznanie dostępu do ChatERP (Beta)

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.
Okno rozmowy z ChatERP (Beta) w wersji 2024.0
Okno rozmowy z ChatERP (Beta) w wersji 2024.0

W oknie prezentowanych jest domyślnie 100 ostatnich wiadomości wymienianych przez użytkownika z inteligentnym asystentem.

Uwaga
Powyższe okno Comarch ChatERP jest dostępne tylko w wersji 2024.0, a w wersji kolejnej zostało zamienione na okno rozmowy opisane poniżej. Oznacza to, że w tej wersji w oknie Komunikatora zakładka ChatERP (Beta) nie będzie już widoczna.

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.

Nowy przycisk do uruchamiania okna ChatERP
Nowy przycisk do uruchamiania okna 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. 
Informacja od Asystenta Comarch o konieczności zaakceptowania regulaminu
Informacja od Asystenta Comarch o konieczności zaakceptowania regulaminu

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.

Panel informacyjny w oknie ChatERP
Panel informacyjny w oknie ChatERP

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.

Okno rozmowy z ChatERP
Okno rozmowy z ChatERP

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/.

Uwaga
Po zamknięciu okna czatu nie jest zapisywana historia rozmowy, więc ponowne jego otwarcie nie spowoduje wyświetlenia dotychczasowej wymiany informacji.

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 pytaniaCo 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/rokuOdpowiedź 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/rokuOdpowiedź 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ówOdpowiedź 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 wierzycieliOdpowiedź 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/rokuOdpowiedź 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/rokuOdpowiedź 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/rokuOdpowiedź 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 dniOdpowiedź 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 dniOdpowiedź 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 magazynachOdpowiedź 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.
Wskazówki dla informacji uwzględnianych w odpowiedziach na powyższe pytania:

  • 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 poleceniaCo 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ówOdpowiedź 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.

Okno do potwierdzenia operacji zleconej z ChatERP

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 pytaniaCo 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.

Uwaga
W wersji inteligentnego asystenta Comarch ChatERP (Beta) został wprowadzony dla użytkownika dobowy limit 25 pytań, po przekroczeniu którego pojawi się taka informacja i nie będzie możliwe uzyskanie kolejnych odpowiedzi od ChatERP w tym samym dniu.

 

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ń.

Wskazówka
Opcjonalnie dla poleceń dotyczących wystawiania dokumentów można stosować skrócony symbol dokumentu, czyli np. Wystaw ZS (lub FS). Nie należy natomiast używać w tych poleceniach nazw czy skrótów dokumentów, których aktualnie nie obsługujemy.

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.
Uwaga
Parametry ! Cost Threshold For Parallelism oraz Max Degree of Parallelism mają duże znaczenie przy powstających deadlockach oraz blokad powodowanych przez zrównoleglanie zapytań. Jeśli podczas audytu serwera zauważymy że blokady spowodowane przez zrównoleglanie serwera stanowią znaczący procent, wówczas należy zmniejszyć wartość parametru Max DoP, lub zwiększyć Cost Threshold For Parallelism. Możliwe, że będzie konieczna zmiana obydwu parametrów. Podczas wprowadzanych zmian należy obserwować zachowanie serwera oraz bazy danych (jaki wpływ na wydajność mają wprowadzane zmiany)
Uwaga
CXPACKET – typ blokad powstających podczas zrównoleglania
  • Do określenia rodzajów blokad możemy posłużyć się zapytaniem:
WITH [Waits] AS (SELECT wait_type, wait_time_ms/ 1000.0 AS [WaitS], (wait_time_ms - signal_wait_time_ms) / 1000.0 AS [ResourceS], signal_wait_time_ms / 1000.0 AS [SignalS], waiting_tasks_count AS [WaitCount], 100.0 * wait_time_ms / SUM (wait_time_ms) OVER() AS [Percentage], ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS [RowNum] FROM sys.dm_os_wait_stats WITH (NOLOCK) WHERE [wait_type] NOT IN ( N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR', N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH', N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE', N'CHKPT', N'CLR_AUTO_EVENT', N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE', N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE', N'DBMIRROR_WORKER_QUEUE', N'DBMIRRORING_CMD', N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE', N'EXECSYNC', N'FSAGENT', N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX', N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION', N'HADR_LOGCAPTURE_WAIT', N'HADR_NOTIFICATION_DEQUEUE', N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE', N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP', N'LOGMGR_QUEUE', N'MEMORY_ALLOCATION_EXT', N'ONDEMAND_TASK_QUEUE', N'PARALLEL_REDO_DRAIN_WORKER', N'PARALLEL_REDO_LOG_CACHE', N'PARALLEL_REDO_TRAN_LIST', N'PARALLEL_REDO_WORKER_SYNC', N'PARALLEL_REDO_WORKER_WAIT_WORK', N'PREEMPTIVE_HADR_LEASE_MECHANISM', N'PREEMPTIVE_SP_SERVER_DIAGNOSTICS', N'PREEMPTIVE_OS_LIBRARYOPS', N'PREEMPTIVE_OS_COMOPS', N'PREEMPTIVE_OS_CRYPTOPS', N'PREEMPTIVE_OS_PIPEOPS', N'PREEMPTIVE_OS_AUTHENTICATIONOPS', N'PREEMPTIVE_OS_GENERICOPS', N'PREEMPTIVE_OS_VERIFYTRUST', N'PREEMPTIVE_OS_FILEOPS', N'PREEMPTIVE_OS_DEVICEOPS', N'PREEMPTIVE_OS_QUERYREGISTRY', N'PREEMPTIVE_OS_WRITEFILE', N'PREEMPTIVE_XE_CALLBACKEXECUTE', N'PREEMPTIVE_XE_DISPATCHER', N'PREEMPTIVE_XE_GETTARGETSTATE', N'PREEMPTIVE_XE_SESSIONCOMMIT', N'PREEMPTIVE_XE_TARGETINIT', N'PREEMPTIVE_XE_TARGETFINALIZE', N'PWAIT_ALL_COMPONENTS_INITIALIZED', N'PWAIT_DIRECTLOGCONSUMER_GETNEXT', N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP', N'QDS_ASYNC_QUEUE', N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP', N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE', N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH', N'SLEEP_DBSTARTUP', N'SLEEP_DCOMSTARTUP', N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY', N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP', N'SLEEP_SYSTEMTASK', N'SLEEP_TASK', N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT', N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH', N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', N'SQLTRACE_WAIT_ENTRIES', N'WAIT_FOR_RESULTS', N'WAITFOR', N'WAITFOR_TASKSHUTDOWN', N'WAIT_XTP_HOST_WAIT', N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG', N'WAIT_XTP_CKPT_CLOSE', N'WAIT_XTP_RECOVERY', N'XE_BUFFERMGR_ALLPROCESSED_EVENT', N'XE_DISPATCHER_JOIN', N'XE_DISPATCHER_WAIT', N'XE_LIVE_TARGET_TVF', N'XE_TIMER_EVENT') AND waiting_tasks_count > 0) SELECT MAX (W1.wait_type) AS [WaitType], CAST (MAX (W1.Percentage) AS DECIMAL (5,2)) AS [Wait Percentage], CAST ((MAX (W1.WaitS) / MAX (W1.WaitCount)) AS DECIMAL (16,4)) AS [AvgWait_Sec], CAST ((MAX (W1.ResourceS) / MAX (W1.WaitCount)) AS DECIMAL (16,4)) AS [AvgRes_Sec], CAST ((MAX (W1.SignalS) / MAX (W1.WaitCount)) AS DECIMAL (16,4)) AS [AvgSig_Sec], CAST (MAX (W1.WaitS) AS DECIMAL (16,2)) AS [Wait_Sec], CAST (MAX (W1.ResourceS) AS DECIMAL (16,2)) AS [Resource_Sec], CAST (MAX (W1.SignalS) AS DECIMAL (16,2)) AS [Signal_Sec], MAX (W1.WaitCount) AS [Wait Count] FROM Waits AS W1 INNER JOIN Waits AS W2 ON W2.RowNum <= W1.RowNum GROUP BY W1.RowNum, W1.wait_type HAVING SUM (W2.Percentage) - MAX (W1.Percentage) < 99 -- percentage threshold OPTION (RECOMPILE);

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.
Przykładowe podzielenie plików. Ważne jest aby Size oraz autogrowth dla każdego Pliku miały takie same wartości. Baza ta może znacznie się rozrosnąć przy dużych operacjach (np. odbudowa indeksów), więc należy jej zapewnić odpowiednią ilość miejsca. Do wersji SQL 2014 włącznie po podziale baz na pliki należy ustawić flagi: T1117, T1118.

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