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 CDN XL zainstalowanego na komputerze. Miejsce instalacji ERP XL jest pobierane z wartości zmiennej środowiskowej: Path systemu: Windows. Jeśli w zmiennej: Path będzie podana ścieżka (np. „C:\Program Files\CDNXL”) do plików systemu ERP XL w wersji 2019.3 to Migrator będzie automatycznie pracować na bazie z wersji 2019.3. Katalog z plikiem instalacyjnym znajduje się w katalogu z zainstalowanym ERP XL. Z katalogu Migrator należy skopiować plik: migrator.exe oraz cdn_api20193.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 CDN 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 (0-nieograniczony 1-terminowy 2-bezterminowy)
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

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
2Akronimvarchar40Akronim 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 CDN 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 CDN 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
28JMZvarchar8Jednostka pomocnicza
29MPPtinyint1Mechanizm 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; Data; 1234; 1234,56; 1234,5678Tak

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.

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
2IdtechnilgiaCzynnoscintegerPTC_ID czynności 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

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 CDN 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 procesu
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
20Kod_czynnoscivarchar40Kod czynnościTak
21Nazwa_czynnoscivarchar100 Nazwa czynnościTak
22CzasPrzygotowawczyintegerCzas przygotowawczy czynności
23CzasPrzygotowawczyJedninteger1Jednostka dla czasu przygotowawczego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
24CzasPlanowanyintegerCzas planowany dla ilości nominalnej
25CzasPlanowanyJedninteger1Jednostka czasu planowanego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
26CzasRozliczeniowyintegerCzas rozliczeniowy
27CzasRozliczeniowyJedninteger1Jednostka czasu rozliczeniowego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
28Opis_czynnoscivarchar1023Opis czynności
29UslKodvarchar40Kod usługi
30Ilosc_czynnoscidecimalIlość czynności
31IloscMin_czynnoscivarchar20Ilość minimalna operacji
32IloscMax_czynnoscivarchar20Ilość maksymalna operacji
33IloscPlan_czynnoscivarchar20Planować w ilości po
34JednostkaCzynnoscivarchar8Jednostka ilości dla operacji
35Oddzial_czynnoscivarchar40Nazwa oddziału
36StawkaStala_czynnoscivarchar20Stawka stała
37StawkaCzas_czynnoscivarchar20Stawka za czas
38StawkaCzasM_czynnosciintegerMianownik stawki za czas
39StawkaCzasJedn_czynnoscivarchar20Jednostka mianownika stawki za czas
40StawkaIlosc_czynnoscivarchar20Stawka za ilość
41StawkaIloscM_czynnoscivarchar20Mianownik stawki za ilość
42CzasPrzygotowawczyRozliczeniowyintegerCzas rozliczeniowy dla czasu przygotowawczo - zakończeniowego
43CzasPrzygotowawczyRozliczeniowyJedntinyintJednostka czasu rozliczeniowego - przygotowawczo-zakończeniowego (0 - sekundy, 1 - minuty, 2 - godziny, 3 - dni, 4 - tygodnie)
44OstepPointegerOdstęp czasu do zaplanowania czynności po zaplanowaniu poprzedniej czynności
45OdstepPoJmtinyintJednostka czasu odstępu między operacjami po poprzedniej
46OdstepPrzedintegerOdstęp między operacjami przed następną.
47OdstepPrzedJmtinyintJednostka czasu odstępu między operacjami przed następną
48PlanowanatinyintOperacja planowana: 0 - nie, 1 - częściowo, 2 - całościowo
49DowolneZasobytinyintPozwala wprowadzać dowolne zasoby magazynowe
50WymaganatinyintCzy operacja jest wymagana
51WieleTerminowtinyintPozwala na wiele terminów
52KodZasobvarchar40Kod zasobu Tak
53NazwaZasobvarchar100Nazwa zasobu
54TypZasobinteger1Typ zasobu (0 - produkt, 1 - surowiec, 2 - materiał pomocniczy)
55MgazynZasobvarchar10Kod magazynu
56TwrKodZasobvarchar40Kod towaru
57CenaZasobvarchar20Cena towaru
58IloscZasobvarchar20Ilość zasobu
59KosztZasobinteger1Sposób wyliczenia kosztu (0 - rzeczywisty, 1 - ewidencyjny, 2 - ważony, 3 - cena zakupu)
60JednostkaZasobvarchar8Jednostka
61PlanowanyCalosciowoZasobintegerUwzględniaj przy planowaniu całościowym
62ZrodloZasobinteger1Źródło zasobu z technologii (0 - z tego samego procesu, 1 - z tego samego zlecenia, 2 - z tego samego oddziału, 3 - dowolne)
63DopasowanieIlosciZasobvarchar20Dopasowanie ilości
64KlasaIloscAtrZasobvarchar40Kod klasy atrybutu z ilością
65IloscAtrZasobintegerKlasa atrybutu z ilością
66IloscMinZasobvarchar20Ilość minimalna
67KlasaIloscMinAtrZasobvarchar40Kod klasy atrybutu z ilością minimalną
68IloscMinAtrZasobintegerKlasa atrybutu z ilością minimalną
69IloscMaxZasobvarchar20Ilość maksymalna
70KlasaIloscMaxAtrZasobvarchar40Kod klasy atrybutu z ilością maksymalną
71IloscMaxAtrZasobintegerKlasa atrybutu z ilością maksymalną
72IloscFormatZasobintegerIlość miejsc po przecinku
73WagaKosztuZasobvarchar20Waga kosztu
74WagaIloscZasobintegerCzy waga wg ilości zasobu
75JednostkaPomZasobvarchar8Jednostka pomocnicza
76IloscPomZasobvarchar20Ilość pomocnicza
77IloscPomMinZasobvarchar20Ilość pomocnicza min
78IloscPomMaxZasobvarchar20Ilość pomocnicza max
79PropIloscZasobintegerCzy proponować ilość
80PropIloscPomZasobintegerCzy proponować ilość pomocniczą
81EdycjaCechyZasobintegrEdycja cechy
82KlasaCechyZasobvarchar20Klasa Cechy
83CechaZasobvarchar20Wartość cechy
84EtaptinyintCzy operacja jest etapem

Bilans Otwarcia

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

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




XL011 – Podłączanie kolektora

Podłączanie kolektora

Kolektory obsługiwane przez Comarch CDN XL

Z programem Comarch CDN 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 CDN 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 CDN 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 CDN 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 CDN XL (np. OPTICON). Dla innych rekord kolektora można definiować wg uznania (np. CipherLab). Istotnym jest jednak to, żeby zdefiniować rekord kolektora w Comarch CDN 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 CDN 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 CDN 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 CDN 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 CDN 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 CDN 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 CDN 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 CDN XL podczas odczytywania przesyłanych danych. Biblioteka ta jest dostarczana wraz z systemem Comarch CDN 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 CDN XL

W przypadku pracy z kolektorami danych w systemie Comarch CDN 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 CDN 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 CDN 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 CDN 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 CDN 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.



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>
<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 docelowego 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ść
<UnitOfMeasure>PCE</UnitOfMeasure>Jednostka miary
<InvoiceUnitPacksize>1.000</InvoiceUnitPacksize>Liczba sztuk detalicznych w jednostce zbiorczej
<PackItemUnitOfMeasure>PCE</PackItemUnitOfMeasure>Jednostka miary sztuki detalicznej w jednostce zbiorczej
<InvoiceUnitNetPrice>120.00</InvoiceUnitNetPrice>Cena netto
<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ą
<PreviousInvoiceUnitNetPrice>12.00</PreviousInvoiceUnitNetPrice>Cena przed korektą
<PreviousTaxRate>22.00</PreviousTaxRate>Stawka podatku przed korektą
<PreviousTaxCategoryCode>S</PreviousTaxCategoryCode>Kategoria podatku przed korektą
<PreviousTaxAmount>264.00</PreviousTaxAmount>Wartość VAT przed korektą
<PreviousNetAmount>1200.00</PreviousNetAmount>Wartość netto przed korektą
<CorrectionInvoiceQuantity>-3.000</CorrectionInvoiceQuantity>Korekta ilości
<CorrectionInvoiceUnitNetPrice>0.00</CorrectionInvoiceUnitNetPrice>Korekta ceny
<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>
</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>
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 głównego dokumentu ZZ, a od wersji 6.0 będzie to numer GLN zdefiniowany na formatce adresu kontrahenta docelowego 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.
<Remarks>Uwagi<Remarks>Opis/UwagiLinia wypełniana wartością zgodną z opisem wprowadzonym na elemencie zamówienia
<ExpectedDeliveryDate>2011-09-01</ExpectedDeliveryDate>Data realizacjiLinia wypełniana datą realizacji kolejnych elementów eksportowanego ZZ
<Remarks></Remarks>Opis/UwagiInformacje pobierane z elementów zamówienia.
<ExpectedDeliveryDate>2009-11-17</ExpectedDeliveryDate>Oczekiwana data dostawyData realizacji ZZ
</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 Tabela 12. 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.

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




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

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.

 




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

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 budując 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

 

 




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




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.




XL008 – Dokumentacja znaczników XML pliku synchronizacyjnego ERP XL – ERP Optima

 

Struktura pliku synchronizacyjnego dla oddziału

 

Sekcja informacyjna (INFOBLOK)

AtrybutOpisERP XLOptima
<INFOBLOK/>PicoKonfig, Konfig Firma, Konfig (View)
VWersja pliku synchronizacyjnego
KKierunek synchronizacji: 1 - plik dla oddziału; 2 - plik od oddziału
IDOID oddziałuPcK_PicoIDFir_Wartosc
Fir_Numer=1551
IDCID centrum oddziałowegoPcK_CentrumIDFir_Wartosc
Fir_Numer=1691
WSWaluta systemowaKon_Wartosc
Kon_Numer=211
Kon_Wartosc
Kon_Numer=211
ASAdres serwera automatycznej synchronizacji z usługą WSEPcK_ASSerwerFir_Wartosc
Fir_Numer=1619
CAILIlość cen autonomicznychPcK_IloscCenAutonomicznych
CAWZNumer ceny wzorcowej dla cen autonomicznychPcK_NrCenyWzorcowej
CDOMNumer ceny domyślnej w oddzialePcK_NrCenyDomyslnej
TSSTimeStamp synchronizacji PcK_TSSynchr
TSKTimeStamp synchronizacji kontrahentówPcK_TSSynchrKnt
TSTTimeStamp synchronizacji cennikaPcK_TSSynchrTwr
TSPTimeStamp synchronizacji promocjiPcK_TSSynchrPrm
TSKO(atrybut nieobsługiwany)
RHRejestrowanie historii promocjiKon_Wartosc
Kon_Numer=9980
Kon_Wartosc
Kon_Numer=9980
PAFAIlość dni, na wystawienie FA do PAPcK_IloscDniFAPAFir_Wartosc
Fir_Numer=1693

Magazyny (MAGI)

<MAGI/>ERP XLOptima
<MAG/>MagazynyMagazyny
ORodzaj magazynu: 1 - magazyn oddziału; 2 - magazyn zwrotów w centrali; 0 - inny magazyn;
SYKod magazynuMag_KodMag_Symbol
NANazwa magazynuMag_NazwaMag_Nazwa
OPOpis magazynuMag_OpisMag_Opis
GNGIDNumer magazynuMag_GIDNumerMag_GidNumer

Pieczątki firmy (PIFI)

<PIFI/>ERP XLOptima
<PIF/>FirmaFirma
N1Nazwa firmy (1)Frm_Nazwa1Fir_Wartosc
Fir_Numer = 1156
N2Nazwa firmy (2)Frm_Nazwa2Fir_Wartosc
Fir_Numer = 1157
N3Nazwa firmy (3)Frm_Nazwa3Fir_Wartosc
Fir_Numer = 1158
NIPPPrefiks numeru NIPFrm_NipPrefiksFir_Wartosc
Fir_Numer = 1167
NIPNumer Identyfikacji PodatkowejFrm_NIPFir_Wartosc
Fir_Numer = 1101
KPAdres firmy - kod pocztowyFrm_KodPFir_Wartosc
Fir_Numer = 1153
MIAdres firmy - miastoFrm_MiastoFir_Wartosc
Fir_Numer = 1152
RENumer RegonFrm_RegonFir_Wartosc
Fir_Numer = 1118
TENumer telefonuFrm_Telefon1Fir_Wartosc
Fir_Numer = 1155
ULAdres firmy - ulicaFrm_Ulica+''+FrmAdres1Fir_Wartosc
Fir_Numer = 1149
POAdres firmy - powiatFrm_DPowiatFir_Wartosc
Fir_Numer = 1147
WOAdres firmy - województwoFrm_DWojewodztwoFir_Wartosc
Fir_Numer = 1146
PCAdres firmy - pocztaFrm_PocztaFir_Wartosc
Fir_Numer = 1154
KRAdres firmy - krajFrm_DKrajFir_Wartosc
Fir_Numer = 1145
OP(atrybut nieobsługiwany)

Operatorzy (OPEI)

<OPEI/>ERP XLOptima
<OPE/>OpeKarty, PicoKonfigOperatorzy (baza konfig.)
GNGIDNumer operatoraOpe_GIDNumerOpe_GidNumer
KIPoziom uprawnień operatora:
0 - użytkownik; 1 - dyrektor;
2 - bez ograniczeń;
Ope_DyrektorOpe_Kierownik
KODIdentyfikator operatoraOpe_IdentOpe_Kod
NAZNazwisko i imię operatoraOpe_NazwiskoOpe_Nazwisko
HASHasło operatoraOpe_HasloOpe_Haslo
HACLitery kontrolne hasłaOpe_Haslo_chkOpe_Haslo
BFZBlokada zmian cen i rabatów na dok. zakupu (FZ)(Pck_Blokady & 4) / 4Ope_BlokadaZmianCenFZ
BTWBlokada zmian cen i rabatów na karcie towaruPck_Blokady & 1Ope_BlokadaZmianTowaru
BFABlokada zmian cen i rabatów na dok. sprzedaży (FA)(Pck_Blokady & 2) / 2Ope_BlokadaZmianCenFA
BPABlokada zmian cen i rabatów na dok. sprzedaży(PA)(Pck_Blokady & 2) / 2Ope_BlokadaZmianCenPA
BROBlokada zmian cen i rabatów na zamówieniach (rezerwacja odb. - ZS)(Pck_Blokady & 8) / 8Ope_BlokadaZmianCenRO
BZDBlokada zmian cen i rabatów na zamówieniach (zamówienie u dostawcy - ZW)(Pck_Blokady & 8) / 8Ope_BlokadaZmianCenZD
ADMOperator ma uprawnienia administratora: (0/1 - nie/tak)Ope_AdministratorOpe_Administrator
WCZOperator widzi ceny zakupu:
(0/1 - nie/tak)
Ope_WidziCenyZakupuOpe_ZakazCenyZak
KZKonto operatora zablokowane:
(0/1 - nie/tak)
Ope_ZablokowaneOpe_Nieaktywny

Banki (BNKI)

<BNKI/>ERP XLOptima
<BNK/> BankiBnkNazwy
GNGIDNumer bankuBnk_GIDNumerBNa_GidNumer
NANazwa bankuBnk_NazwaBNa_Nazwa1
AKKod bankuBnk_KodBNa_Akronim
NRRNumer kierunkowy bankuBnk_NumerBNa_Numer

Rejestry kasowo-bankowe (RKBI)

<RKBI/>ERP XLOptima
<RKB/>RejestryBnkRachunki, BnkNazwy,
GNGIDNumer rejestru K/BKAR_GIDNumerBRa_GIDNumer
BGNGIDNumer bankuKAR_BNKNumerBNa_GIDNumer
BRa_BNaID= BNa_BNaId
TYPTyp rejestru: 1-kasa; 2-bankKAR_TypBRa_Typ
REKod rejestruKAR_SeriaBRa_Symbol
NANazwa rejestruKAR_NazwaBRa_Nazwa
NRRNumer rachunku bankowegoKAR_NrRachunkuBRa_RachunekNr

Serie dokumentów (SERI)

<SERI/>ERP XLOptima
<SER/>Serie, DokDefinicje, KonfigGrupy
TPTyp dokumentu: XL(OPT!O)
FZ-1521(301); FS-2033(302);
PA-2034(305); MM-1600(312);
RW-1616(304); PW-1617(303);
AI-1536(311); WKA-2000(314);
PKA-2002(313); ZS-9472(308);
ZW-9473(309);
Dok_GIDTypGru_Typ
SENazwa seriiSER_NazwaGru_Nazwa
NRFormat numeracji dokumentów (opis) Kon_Wartosc
Kon_Numer=992

Formy płatności (FPLI)

<FPLI/>ERP XLOptima
<FPL/>Konfig (Kon_Numer=736), FrmObiektyFormyPlatnosci, BnkRachunki
IDID formy płatności: (podstawowe) 10-gotówka; 20-przelew, 30-kredyt; 40-czek; 50-karta; 60-inne; (dodatkowe) 11-19(gotówka), 21-29(przelew)…Kon_LpFPl_XLID
RARabat formy płatnościSUBSTRING(Kon_Wartosc,21,10)FPl_Rabat
NANazwa formy płatnościLEFT(Kon_Wartosc,20)FPl_Nazwa
RGNGIDNumer rejestru kasowo-bankowego dla formy płatnościFRO_GID2NumerBRa_Akronim
BRa_BraID=FPl_BRaId
AKTDostępna w oddziale: (0/1 – nie/tak)FRO_DlaDetaluFPl_NieAktywny^1
TEDomyślny termin płatnościSUBSTRING(Kon_Wartosc,31,3)FPl_Termin

Waluty (WALI)

<WALI/>ERP XLOptima
<WAL/>WalElem, WalNagWalElem, WalNag - View
SYSymbol walutyWaN_SymbolWaN_Symbol
LILicznik kursuWaE_KursLWaE_KursL
MIMianownik kursuWaE_KursMWaE_KursM
PAPrzelicznik waluty na euro (parytet)WaN_ParytetWaN_Parytet
DAData kursu@DataSynchr

W sekcji <WALI/> zawsze wysyłana jest waluta systemowa:
<WAL SY=”PLN” LI=”1” MI=”1” PA=”1” DA=”0-00-00” />

Nazwy cen (NTCI)

<NTCI/>ERP XLOptima
<NTC/>Nazwy (NaZ_GIDTyp=64)DefCeny
TGLID cenyNaz_GIDLpDfC_XL_Lp
NANazwa CenyLEFT(Naz_Nazwa,10)DfC_Nazwa
TYPTyp Ceny: 1-Netto; 2- Brutto;SUBSTRING(Naz_Nazwa,11,1)
('N'=1, 'B'=2)
DfC_Typ

W sekcji <NTCI/> wysyłana jest także cena zakupu: <NTC TGL=”0” NA=”Zakupu” TYP=”1” />

Stawki VAT (VATI)

<VATI/>ERP XLOptima
<VAT/>Nazwy (NaZ_GIDTyp=624)Nazwy(NaZ_GIDTyp=624) -View
PRStawka VAT (w %)LEFT(Naz_Nazwa1,2)LEFT(Naz_Nazwa1,2)
OPOpis stawki VATLEFT(Naz_Opis,30)LEFT(Naz_Opis,30)
TYPTyp stawki VAT: 1 - podatek;
0 - zwolniony; 2 - nie podlega
SUBSTRING(Naz_Nazwa1,11,1)SUBSTRING(Naz_Nazwa1,11,1)
GRGrupa stawki VATLEFT(Naz_Nazwa,1)LEFT(Naz_Nazwa,1)

Potwierdzenia(PTWI)

<PTWI/>ERP XLOptima
<PTW/>KntKarty, TraNag, ZamNag, RaportyKontrahenci, TraNag, BnkRaporty
GTGIDTyp potwierdzanych obiektów w centraliKnt_GIDTyp (TYP=1)
TrN_GIDTyp (TYP=2,3,6,7)
ZaN_GIDTyp (TYP=5,6)
KRP_GIDTyp (TYP=4)
Knt_GIDTyp (TYP=1)
TrN_GIDTyp (TYP=2,3,6,7)
TrN_GIDTyp (TYP=5,6)
BRp_GIDTyp (TYP=4)
GNGIDNumer potwierdzanych obiektów w centraliKnt_GIDNumer (TYP=1)
TrN_GIDNumer(TYP=2,3,6,7)
ZaN_GIDNumer (TYP=5,6)
KRP_GIDNumer (TYP=4)
Knt_GIDNumer (TYP=1)
TrN_GIDNumer (TYP=2,3,6,7)
TrN_GIDNumer (TYP=5,6)
BRp_GIDNumer (TYP=4)
IDID potwierdzanych obiektów w oddziale------------------
TrN_OddDokId (TYP=2,3,6,7)
ZaN_OddDokId (TYP=5,6)
KRP_OddDokId (TYP=4)
Knt_KntId (TYP=1)
TrN_TrNId (TYP=2,3,6,7)
TrN_TrNId (TYP=5,6)
BRp_BrpId (TYP=4)
TYPTyp potwierdzenia:
1 - kontrahenci, 2 - dokumenty MM, 3 - dokumenty handlowe, 4- raporty kasowo-bankowe, 5 - stany zamówień, 6- prawo do anulowania dokumentu, 7 - prawo do spinania
STStatus zamówień:ZaN_Stan

Towary (TWRI)

<TWRI/>ERP XLOptima
<TWR/>TwrKarty, TwrParMag, TwrOpisy, TwrGrupyDomTowary
GNGIDNumer towaruTwr_GIDNumerTwr_GIDNumer
NAPełna nazwa towaruTwr_NazwaTwr_Nazwa
KODKod towaruTwr_KodTwr_Kod
OPOpis towaruTwO_Opis Twr_Opis
EANKod kreskowy EANTwr_EANTwr_EAN
JMJednostka podstawowa towaruTwr_JmTwr_JM
VATGrupa podatkowa (sprzedaż)LEFT(Naz_Nazwa1,2)
Twr_GrupaPodSpr=LEFT(Naz_Nazwa,1)
Twr_Stawka
VATFFlaga grupy podatkowej (sprzedaż)SUBSTRING(Naz_Nazwa1,11,1)
Twr_GrupaPodSpr=LEFT(Naz_Nazwa,1)
Twr_Flaga
VATZGrupa podatkowa (zakup)LEFT(Naz_Nazwa1,2)
Twr_GrupaPod=LEFT(Naz_Nazwa,1)
Twr_StawkaZak
VATZFFlaga grupy podatkowej (zakup)SUBSTRING(Naz_Nazwa1,11,1)
Twr_GrupaPod=LEFT(Naz_Nazwa,1)
Twr_FlagaZak
BRRabaty nie obowiązują:
(0/1 - nie/tak)
Twr_BezRabatuTwr_BezRabatu
MMMarża minimalnaTwr_MarzaMinTwr_MarzaMin
CDID ceny domyślnejTwr_CenaSprTwr_TwCNumer-1
PKWIUKod PKWIUTwr_SwwTwr_SWW
IMINIlość minimalna (normatywa dla magazynu oddziałowego)COALESCE(Tpm_IloscMin,Twr_IloscMin,0)Twr_IloscMin
IMAXIlość maksymalna (normatywa dla magazynu oddziałowego)COALESCE(Tpm_IloscMax,Twr_IloscMax,0)Twr_IloscMax
IZAMIlość zamawiana (normatywa dla magazynu oddziałowego)COALESCE(Tpm_IloscZam,Twr_IloscZam,0)Twr_IloscZam
URLAdres strony internetowejTwr_URLTwr_URL
NRKNumer katalogowy (symbol)Twr_KatalogTwr_NumerKat
ENEdycja nazwy przy transakcjachTwr_EdycjaNazwyTwr_EdycjaNazwy
NIA(atrybut nieobsługiwany)
JCSprzedaż w jedn. całkowitych:
(0/1 - nie/tak)
Twr_JMCalkowitaTwr_JMCalkowite
UFTyp towaru: 1 - towar,2 - produkt, 4 - usługa, 6 - towar A-VistaTwr_TypTwr_Typ (1-towar, produkt; 0 - usługa, A-Vista)
ARTowar archiwalny: (0/1 - nie/tak)Twr_ArchiwalnyTwr_NieAktywny
KUKoszt usługiTwr_KosztUslugiTwr_KosztUslugi
KUTTyp kosztu usługi:1-procent;
2- wartość
Twr_KosztUTypTwr_KosztUslugiTyp
(1- wartość, 2-procent)
KOKaucja: (0/1 - nie/tak)Twr_KaucjaTwr_SONId
SIDIdentyfikator schematu kaucjiTwr_SkNIdTwr_Kaucja
TSTimeStamp modyfikacji karty tow.MAX(Twr_LastModC Twr_LastModL)Twr_TS_XL
GDGIDNumer domyślnej grupy towarowejTGD_GrONumer
Twr_GIDTyp=TGD_GIDTyp AND Twr_GIDNumer=TGD_GIDNumer
Twr_TwGGIDNumer

Grupy towarowe (TWGI)

<TWGI/>ERP XLOptima
<TWG/>TwrGrupyTwrGrupy
GNGIDNumer grupy towarowej (towaru)TwG_GIDNumerTwG_GIDNumer
GTGIDTyp grupy towarowej (towaru)TwG_GIDTypTwG_GIDTyp
PGNGIDNumer nadrzędnej grupy towarowejTwG_GrONumerTwG_GrONumer
PGTGIDTyp nadrzędnej grupy towarowejTwG_GrOTypTwG_GrOTyp
KODKod grupy lub elementuTwG_KodTwG_Kod

Cenniki towarów (TWCI)

<TWCI/>ERP XLOptima
<TWC/>TwrCeny, TwrKarty, NazwyTwrCeny, Towary
TGNGIDNumer towaruTwC_TwrNumerTwC_TwrNumer
TGLID cenyTwC_TwrLpTwC_TwrLp
WALSymbol walutyTwC_WalutaTwC_Waluta
NBTyp Ceny: 1-Netto; 2- Brutto;SUBSTRING(Naz_Nazwa,11,1)
NaZ_GIDTyp=64
AND Naz_GIDLp= TwC_TwrLp
TwC_Typ
WAWartość cenyTwC_WartoscTwC_Wartosc
TSTimeStamp ostatniej modyfikacji karty towarowej (cennika)Twr_LastModC
TwC_TwrNumer=Twr_GIDNumer
Twr_TS_XL
TwC_TwrId=Twr_TwrId

Schematy kaucji (SKI)

<SKI/>ERP XLOptima
<SK/>TwrSchematyKaucjiNagSchematyOpakNag
IDID schematu kaucjiSKN_IdSON_SONId
KODKod schematu kaucjiSKN_KodSON_Kod
NANazwa schematu kaucjiSKN_NazwaSON_Nazwa
TSTimestamp ostatniej modyfikacjiSKN_LastModSON_TS_Mod

Elementy schematów kaucji (ESKI)

<ESKI/>ERP XLOptima
<ESK/>TwrSchematyKaucjiElemSchematyOpakElem, Towary
SIDID nagłówka schematuSKE_SKNIdSOE_SONId
LPNumer kolejny elementu schematuSKE_LpSOE_Lp
TGNGIDNumer towaruSKE_TwrNumerTwr_GidNumer
SOE_TwrId=Twr_TwrId
PRPróg ilościowy, od którego będzie naliczona kaucjaSKE_Prog
ILIlość, za którą będzie naliczona kaucjaSKE_IloscSOE_Ilosc

Kontrahenci (KNTI)

<KNTI/>ERP XLOptima
<KNT/>KntKartyKontrahenci, Rabaty, FormyPlatnosci
GNGIDNumer kontrahenta w XL-uKnt_GIDNumerKnt_GidNumer
IDID kontrahenta w OPT!OKnt_KntId
TSData ostatniej modyfikacji kontrahentaMAX(Knt_LastModC, Last_ModL)
AKAkronim kontrahentaKnt_AkronimKnt_Kod
N1Nazwa kontrahenta (1)Knt_Nazwa1Knt_Nazwa1
N2Nazwa kontrahenta (2)Knt_Nazwa2Knt_Nazwa2
N3Nazwa kontrahenta (3)Knt_Nazwa3Knt_Nazwa3
NIPNIP kontrahentaKnt_NipEKnt_NipE
KPAdres kontrahenta – kod pocztowyKnt_KodPKnt_KodPocztowy
WOAdres kontrahenta – województwoKnt_WojewodztwoKnt_Wojewodztwo
ULAdres kontrahenta – ulicaKnt_UlicaKnt_Ulica
MIAdres kontrahenta – miastoKnt_MiastoKnt_Miasto
TE1Numer telefonu (1)Knt_Telefon1Knt_Telefon1
RAProponowany rabat kontrahentaKnt_RabatRab_Rabat
Rab_PodmiotId = Knt_KntId
AND Rab_Typ =2
CNID proponowanej ceny sprzedażyKnt_CenaKnt_Ceny
LKRMaks. limit kredytowyKnt_MaxLimitWartKnt_LimitKredytu
LWYWykorzystany limit kredytowyCDN.SumaWartosciKredytuKontrahenta(@DataSynchr,0,Knt_GIDNumer)Knt_LimitkredytuWykorzystany
FXLDomyślna forma płatnościKnt_FormaPlFpl_XlId
Fpl_FplId = Knt_FplId
RENumer regonKnt_RegonKnt_Regon
TE2Numer telefonu (2)Knt_Telefon2Knt_Telefon1
FAXNumer FaxKnt_FaxKnt_Fax
URLAdres strony internetowejKnt_URLKnt_Url
EMAdres e-mailKnt_EMailKnt_EMail
PVPłatnik VAT: (0/1 – nie/tak)Knt_PlatnikVATKnt_PodatekVat
ADDodatkowe dane adresoweKnt_AdresKnt_Adres2
TYPTyp kontrahenta: 0 - brak typu,
8 - dostawca; 16 - odbiorca;
24- dostawco-odbiorca
Knt_TypKnt_Rodzaj_Dostawca,
Knt_Rodzaj_Odbiorca
(0/1 – nie/tak)
ARKontr. archiwalny: (0/1 – nie/tak)Knt_ArchiwalnyKnt_Nieaktywny
TPMaks. okres odroczenia płatnościKnt_LimitOkresKnt_Termin
GLNGlobal Location NumberKnt_GLNKnt_GLN
KKKod kraju (prefiks NIP)Knt_NipPrefiksKnt_NIPKraj
STStatus kontrahenta: 1 - podmiot gosp.; 2 - odbiorca finalnyKnt_StatusKnt_Finalny+1
PKPłatność kaucji: (0/1 – nie/tak)Knt_PlatnoscKaucjiKnt_NaliczajPlatnosc
TKTermin rozliczenia kaucjiKnt_TerminRozliczeniaKaucjiKnt_TerminZwrotuKaucji
EANKod EAN kontrahentaKnt_EANKnt_EAN

Grupy kontrahentów (KNGI)

<KNGI/>ERP XLOptima
<KNG/>KntGrupyKntGrupy
GNGIDNumer grupy kontrahentów (kontrahenta) KnG_GIDNumerKnG_GIDNumer
GTGIDTyp grupy kontrahentów (kontrahenta)KnG _GIDTypKnG _GIDTyp
PGNGIDNumer nadrzędnej grupy kontrahentówKnG_GrONumerKnG_GrONumer
PGTGIDTyp nadrzędnej grupy kontrahentówKnG_GrOTypKnG_GrOTyp
KODKod grupy lub akronim kontrahentaKnG_AkronimKnG_Akronim

Dokumenty (DOKI)

W sekcji tej przesyłane są wyłącznie dokumenty MM przesuwające towar na oddział.

<DOKI/>ERP XLOptima
<DOK/>TraNag, TrNOpisy, KntKarty, PicoKonfigTraNag, Operatorzy,
GTGIDTyp dokumentu w centrali (XL)TrN_GIDTyp
GNGIDNumer dokumentu w centrali (XL)TrN_GIDNumerTrN_GIDNumer
IDID dokumentu w oddziale (O!O)TrN_OddDokIdTrN_TrNId
ZIDID dokumentu korygowanegoTrN_ZwrId
ZGTGIDTyp dokumentu korygowanegoTrN_ZwrTyp
ZGNGIDNumer dokumentu korygowanegoTrN_ZwrNumer
NNRKolejny numer dokumentuTrN_TrNNumerTrN_NumerNr
ROKRok wystawienia dokumentuTrN_TrNRok
KGNGIDNumer kontrahenta głównego w centraliTrN_KntNumer
KN1Nazwa kontrahenta głównego (1)Knt_Nazwa1TrN_PodNazwa1
KN2Nazwa kontrahenta głównego (2)Knt_Nazwa2TrN_PodNazwa2
KN3Nazwa kontrahenta głównego (3)Knt_Nazwa3TrN_PodNazwa3
OIDID kontrahenta docelowego/odbiorcyTrN_OdbID
OGNGIDNumer kontrahenta docelowego/odbiorcy w centraliTrN_KnDNumer
ON1Nazwa kontrahenta
docelowego/odbiorcy (1)
Knt_Nazwa1TrN_OdbNazwa1
ON2Nazwa kontrahenta
docelowego/odbiorcy (2)
Knt_Nazwa2TrN_OdbNazwa2
ON3Nazwa kontrahenta
docelowego/odbiorcy (3)
Knt_Nazwa3TrN_OdbNazwa3
OULAdres kontrahenta docelowego/odbiorcy - ulicaKnt_UlicaTrN_OdbUlica
OMIAdres kontrahenta docelowego/odbiorcy - miastoKnt_MiastoTrN_OdbMiasto
KULAdres kontrahenta głównego - ulicaKnt_UlicaTrN_PodUlica
KMIAdres kontrahenta głównego - miastoKnt_MiastoTrN_PodMiasto
OKPAdres kontrahenta docelowego/odbiorcy - kod pocztowyKnt_KodPTrN_OdbKodPocztowy
ONIPNIP kontrahenta docelowego/odbiorcyKnt_NipETrN_OdbNipE
KKPAdres kontrahenta głównego - kod pocztowyKnt_KodPTrN_PodKodPocztowy
NPNumer dokumentuCAST(TrN_TrNTyp as VARCHAR) +
’ ’+TrN_TrNSeria+’ ’ +CAST(TrN_TrNRok AS VARCHAR)
+’ ’'+ CAST(TrN_TrNNumer AS VARCHAR)
NONumer obcy dokumentu
(dla rozchodowych numer dokumentu)
TrN_DokumentObcyTrN_NumerObcy
SESeria dokumentuTrN_TrNSeria
KIDID kontrahenta głównego w oddzialeTrN_PodID
NBFlaga netto/brutto: "N" - Netto; "B"- Brutto;TrN_FlagaNBTrN_TypNB
(1 - Netto; 2- Brutto )
KNIPNIP kontrahenta głównegoKnt_NipETrN_PodNipE
TEDomyślny termin płatnościTrN_TerminTrN_Termin
WNWartość netto nagłówkaTrN_NettoP*PcK_CenaZakupuTrN_RazemNetto
WBWartość brutto nagłówka(TrN_NettoP+TrN_VatP)*PcK_CenaZakupuTrN_RazemBrutto
DWData wystawienia dokumentuTrN_Data2TrN_DataWys
DDData dokumentuTrN_DataMagTrN_DataDok
DOData operacji (sprzedaży/zakupu)TrN_Data3TrN_DataOpe
RARabat nagłówkaTrN_RabatTrN_Rabat
OZGNIdentyfikator operatora wystawiającego dokumentTrN_OpeNumerWOperatorzy.Ope_GIDNumer
Ope_OpeID=TrN_OpeZalID
FXLForma płatności
OPOpis dokumentuTnO_Opis
Trn_GIDNumer=TnO_TrNNumer
TrN_Opis
BUMM-ka do bufora: (0/1 – nie/tak)PcK_MMInfo
MAGZMagazyn źródłowyTrN_MagZNumer
IEIlość elementów

Elementy dokumentów (EDKI)

<EDKI/>ERP XLOptima
<EDK/>TraElem, TwrKartyTraElem, Towary
TNNazwa towaruTrE_TwrNazwaTrE_TwrNazwa
PKWNumer SWW (PKWIU) towaruTwr_Sww
TrE_TwrNumer=Twr_GIDNumer
TrE_TwrSWW
WBWartość brutto pozycji  TrE_KosztKsiegowy*PcK_CenaZakupuTrE_WartoscBrutto
WNWartość netto pozycji  TrE_KosztKsiegowy*PcK_CenaZakupuTrE_WartoscNetto
TGNIdentyfikator towaru (pozycji dokumentu)TrE_TwrNumerTwr_GIDNumer
TrE_TwrId =Twr_TwrId
ILIlość towaru w jednostkach podstawowychTrE_IloscTrE_Ilosc
RAProcent udzielonego rabatuTrE_RabatTrE_Rabat
KLKurs waluty - licznik  TrE_KursLTrE_KursL
KMKurs waluty - mianownikTrE_KursMTrE_KursM
WASymbol walutyTrE_WalutaTrE_Waluta
JMJednostka miary towaruTrE_JmZTrE_Jm
VATStawka podatku (%)TrE_StawkaPodTrE_Stawka
LPLiczba porządkowa pozycji dokumentuTrE_PozycjaTrE_Lp
C0Cena początkowa (w walucie)TrE_Cena*PcK_CenaZakupuTrE_Cena0
CWCena transakcyjna (po rabacie) w walucieTrE_Cena*PcK_CenaZakupuTrE_CenaW
CTCena transakcyjna w walucie systemowejTrE_Cena*PcK_CenaZakupuTrE_CenaT
FLFlaga podatku: 0 - zwolniony;
1-opodatkowany; 2 - nie podlega;
TrE_FlagaVatTrE_Flaga
OPOpis pozycji dokumentuTeO_Opis

Nierozliczone płatności kontrahentów (PLTI)

<PLTI/>ERP XLOptima
<PLT/>TraNag, TraPLatBnkZdarzenia, FormyPlatnosci,
Kontrahenci
NGNGIDNumer dokumentuTrN_GIDNumer
NGTGIDTyp dokumentuTrN_GIDTyp
KGNGIDNumer kontrahentaTrN_KntNumerKnt_GIDNumer
Knt_KntId= Bzd_PodmiotID
NPNumer pełny dokumentuCDN.NumerDokumentuTRN
(TrN_GIDTyp, TrN_SpiTyp, TrN_TrnTyp, TrN_TrnNumer, TrN_TrnRok, TrN_TrnSeria)
Bzd_NumerPelny
TYPTyp płatności: 1 – zobowiązanie;
2 – należność
TrP_TypBzd_Kierunek
-1 - zobowiązanie; 1 - należność
FXLForma płatnościTrP_FormaNrFpl_XlId
Fpl_FplId=BZd_FplId
DAData wystawienia dokumentuTrN_Data2Bzd_DataDok
TETermin płatnościTrP_TerminBzd_Termin
ZAPozostała kwota do zapłatyTrP_PozostajeBzd_KwotaSys

Limity kredytowe kontrahentów (LKI)

<LKI/>ERP XLOptima
<LK/>KntKartyKontrahenci
GNGIDNumer kontrahentaKnt_GIDNumerKnt_GIDNumer
LKRLimit kredytowy kontrahentaKnt_MaxLimitWartKnt_LimitKredytu
LWYLimit wykorzystany kontrahentaCDN.SumaWartosciKredytuKontrahenta(@TIMESTAMP, 0, Knt_GIDNumer)Knt_LimitKredytuWykorzystany

Promocje (PRKI)

<PRKI/>ERP XLOptima
<PRK/>PrmKartyPrmKarty
IDID promocjiPRM_IdPRM_Id
KODNazwa promocjiPRM_AkronimPRM_Akronim
DOData, od której obowiązuje promocjaPRM_DataOdPRM_DataOd
DDData, do której obowiązuje promocjaPRM_DataDoPRM_DataDo
TYPRodzaj promocji: 1-KNT; 2-PLT; 3-TWU; 4-KNU; 5-PRM; 6-GLO;PRM_TypPRM_Typ
STStatus promocji: 0-bufor;
1-potwierdzona; 3-zamknięta;
PRM_StanPRM_Stan
AKTCzy promocja w edycji?PRM_AktywnaPRM_Aktywna
PRPriorytet promocjiPRM_PriorytetPRM_Priorytet
SSSposób łączenia promocji: 1-dodaj;
2-pomnóż;
PRM_SposobStosowaniaPRM_SposobStosowania
PPKolejne promocje pominięte:
(0/1 – nie/tak)
PRM_PominPozostalePRM_PominPozostale
UWUwagi dotyczące promocjiPRM_UwagiPRM_Uwagi
DTRodzaj dokumentu na których ma być stosowana promocja: 0-wszystkie;
1-rozchodowe; 2-przychodowe;
PRM_DokumentPRM_Dokument
TSTimestamp ostatniej modyfikacji promocjiPRM_LastModPRM_LastMod
PRLPDodatkowe pole wykorzystywane do określenia priorytetu promocjiPRM_PriorytetLpPRM_PriorytetLp
CYPromocja cykliczna : 0-zwykła;
1-obowiązująca w określonych godzinach każdego dnia;
PRM_CyklicznaPRM_Cykliczna

Promocje dla towarów (TPRI)

<TPRI/>ERP XLOptima
<TPR/>TwrPromocjeTwrPromocje
PIDID promocjiTPR_PrmIdTPR_PrmId
GTGIDTyp towaru lub grupyTPR_TwrTypTPR_TwrTyp
GNGIDNumer towaru lub grupyTPR_TwrNumerTPR_TwrNumer
GGTGIDTyp grupy nadrzędnejTPR_TwgTypTPR_TwgTyp
GGNGIDNumer grupy nadrzędnejTPR_TwgNumerTPR_TwgNumer
TYPTyp rabatu: 1-procentowy;
2-wartościowy, 3-stała cena;
TPR_TypTPR_Typ
WAWartość rabatuTPR_WartoscTPR_Wartosc
PRPróg naliczania rabatuTPR_ProgTPR_Prog
WALWalutaTPR_WalutaTPR_Waluta
NBFlaga netto/brutto: ‘N’ - od netto;
‘B’ –od brutto;
TPR_FlagaNBTPR_FlagaNB
NONotatki/uwagiTPR_NotatkiTPR_Notatki
ZIDIdentyfikator zestawu, do którego należy towarTPR_ZstIDTPR_ZstID
LPNumer porządkowy towaru na liścieTPR_LPTPR_LP
TSTimeStampPRM_LastMod
TPR_PrmId=PRM_Id
PRM_LastMod
TPR_PrmId=PRM_Id

Promocje dla kontrahentów (KPRI)

<KPRI/>ERP XLOptima
<KPR/>KntPromocje, PrmKartyKntPromocje, PrmKarty
PIDID promocjiKPR_PrmIdKPR_PrmId
GTGIDTyp kontrahenta lub grupyKPR_KntTypKPR_KntTyp
GNGIDNumer kontrahenta lub grupyKPR_KntNumerKPR_KntNumer
GGTGIDTyp grupy nadrzędnejKPR_KngTypKPR_KngTyp
GGNGIDNumer grupy nadrzędnejKPR_KngNumerKPR_KngNumer
TYPTyp rabatu: 1-procentowy;
2-wartościowy, 3-stała cena;
KPR_TypKPR_Typ
WAWartość rabatuKPR_WartoscKPR_Wartosc
TSTimeStamp ostatniej modyfikacjiPRM_LastMod
PRM_Id=KPR_PrmId
PRM_LastMod
PRM_Id=KPR_PrmId

Promocje dla form płatności (PLPRI)

<PLPRI/>ERP XLOptima
<PLPR/>PltPromocje, PrmKartyPltPromocje, PrmKarty
PIDIdentyfikator promocjiPPr_PrmIDPPr_PrmID
PLTIDIdentyfikator formy płatnościPPr_PltIDPPr_PltID
WAWartość promocjiPPr_WartoscPPr_Wartosc
TSTimeStamp ostatniej modyfikacjiPRM_LastMod
PPr_PrmId=PRM_Id
PRM_LastMod
PPr_PrmId=PRM_Id

Promocje w strukturze firmy (FPRI)

<FPRI/>ERP XLOptima
<FPR/>FrsPromocje, PrmKartyFrsPromocje, PrmKarty
PIDIdentyfikator promocjiFPR_PrmIdFPR_PrmId
FRSIDIdentyfikator centrum w strukturze prawFPR_FrsId (Pck_CentrumId)FPR_FrsId (Pck_CentrumId)
TSTimeStamp ostatniej modyfikacjiPRM_LastMod
PRM_Id=FPR_PrmId
PRM_LastMod
PRM_Id=FPR_PrmId

Struktura pliku synchronizacyjnego od oddziału

Sekcja informacyjna (INFOBLOK)

AtrybutOpisERP XLOptima
<INFOBLOK/>PicoKonfig,Firma,
TSSTimeStamp potwierdzenia synchronizacjiPcK_TSSynchrPtwFir_Wartosc
Fir_Numer=1563
TSKTimeStamp potwierdzenia synchronizacji kontrahentówPcK_TSSynchrKntPtwFir_Wartosc
Fir_Numer=1564
TSTTimeStamp potwierdzenia synchronizacji cennikaPcK_TSSynchrTwrPtwFir_Wartosc
Fir_Numer=1565
TSPTimeStamp potwierdzenia synchronizacji promocjiPcK_TSSynchrPrmPtwFir_Wartosc
Fir_Numer=1566
VWersja pliku synchronizacyjnego
KKierunek synchronizacji: 1 - plik dla oddziału; 2 - plik od oddziału;
SKO(atrybut nieobsługiwany)
IDOID oddziałuPcK_PicoIDFir_Wartosc
Fir_Numer=1551
ZCZwrot całkowity (1 - tak)(PcK_Stan = -1)Fir_Wartosc
Fir_Numer = 1562

Kontrahenci (KNTI)

<KNTI/>ERP XLOptima
<KNT/>KntKartyKontrahenci, Rabaty, FormyPlatnosci, Operatorzy
GTGIDTyp kontrahentaKnt_GIDTypKnt_GidTyp
GNGIDNumer kontrahenta w XL-uKnt_GIDNumerKnt_GidNumer
NOKontrola unikalności akronimu, NIP-u i miasta kontrahenta eksportowanego z O!O: -1 - wyłączona, 0 - włączona
IDID kontrahenta w O!OKnt_KntId
TSData ostatniej modyfikacji kontrahentaKnt_LastModCKnt_Ts_Mod
AKAkronim kontrahentaKnt_AkronimKnt_Kod
N1Nazwa kontrahenta (1)Knt_Nazwa1Knt_Nazwa1
N2Nazwa kontrahenta (2)Knt_Nazwa2Knt_Nazwa2
N3Nazwa kontrahenta (3)Knt_Nazwa3Knt_Nazwa3
ULAdres kontrahenta – ulicaKnt_UlicaKnt_Ulica
MIAdres kontrahenta – miastoKnt_MiastoKnt_Miasto
WOAdres kontrahenta – województwoKnt_WojewodztwoKnt_Wojewodztwo
KPAdres kontrahenta – kod pocztowyKnt_KodPKnt_KodPocztowy
NIPNIP kontrahentaKnt_NipEKnt_NipE
KKKod kraju – prefiks NIPKnt_NipPrefiksKnt_NIPKraj
RENumer regonKnt_RegonKnt_Regon
ADDodatkowe dane adresoweKnt_AdresKnt_Adres2
TE1Numer telefonu (1)Knt_Telefon1Knt_Telefon1
TE2Numer telefonu (2)Knt_Telefon2Knt_Telefon2
FAXNumer FaxKnt_FaxKnt_Fax
URLAdres strony internetowejKnt_URLKnt_Url
EMAdres e-mailKnt_EMailKnt_EMail
ARKontrahent archiwalny: (0/1 – nie/tak)Knt_ArchiwalnyKnt_Nieaktywny
RAProponowany rabat kontrahentaKnt_RabatRab_Rabat
Rab_PodmiotId = Knt_KntId
AND Rab_Typ =2
EANKod EAN kontrahentaKnt_EANKnt_EAN
GLNGlobal Location NumberKnt_GLNKnt_GLN
PVPłatnik VAT: (0/1 – nie/tak)Knt_PlatnikVATKnt_PodatekVat
FXLDomyślna forma płatnościKnt_FormaPlFpl_XlId
Fpl_FplId = Knt_FplId
CNID proponowanej ceny sprzedażyKnt_CenaKnt_Ceny
LWASymbol waluty kredytuKnt_LimitKredytuWal
LKRMaks. limit kredytowyKnt_MaxLimitWartKnt_LimitKredytu
LWYWykorzystany limit kredytowyKnt_Limitkredytuwykorzystany
TYPTyp kontrahenta: 8 - dostawca;
16 - odbiorca; 24- dostawco-odbiorca
Knt_TypKnt_Rodzaj_Dostawca,
Knt_Rodzaj_Odbiorca
(0/1 – nie/tak)
TPMaks. okres odroczenia płatnościKnt_LimitOkresKnt_Termin
STStatus kontrahenta: 1 - podmiot gosp.; 2 - odbiorca finalnyKnt_StatusKnt_Finalny+1
PKPłatność kaucji: (0/1 – nie/tak)Knt_PlatnoscKaucjiKnt_NaliczajPlatnosc
TKTermin rozliczenia kaucjiKnt_TerminRozliczeniaKaucjiKnt_TerminZwrotuKaucji
OMGNIdentyfikator operatora modyfikującego kartę kontrahentaKnt_OpeNumerOpe_GIDNumer
Ope_OpeID=Knt_OpeZalId
OZGNIdentyfikator operatora zakładającego kartę kontrahentaKnt_OpeNumerMOpe_GIDNumer

Ope_OpeID=Knt_OpeModlId

Dokumenty (DOKI)

W sekcji <DOKI> przesyłane są nagłówki dokumentów handlowych, zamówień oraz arkuszy inwentaryzacyjnych.

DokumentGIDTypDokumentGIDTyp
FS2033FSK2041
PA2034PAK2042
RA2035RAK2043
FZ1521FZK1529
RW1616RWK1624
PW1617PWK1625
MM1600AI1536
ZS9472ZW9473
WKA2000PKA2002

<DOKI/>ERP XLOptima
<DOK/>TraNag, TraElem, TrNOpisy, KntKarty
ZamNag, InwNag
TraNag, TraElem, Operatorzy, Magazyny, Kontrahenci
IEIlość elementów na dokumencie
GTGIDTyp dokumentu w centrali (XL)TrN_GIDTyp,
ZaN_GIDTyp, InN_GIDTyp
TrN_GIDTyp
GNGIDNumer dokumentu w centrali (XL)Dokument jest wysyłany gdy TrN_GIDNumer is NULL
IDID dokumentu w oddziale (OPT!O)TrN_OddDokId
ZaN_OddDokId
TrN_TrNId
ZIDID dokumentu korygowanegoTrN_ZwrId
ZGTGIDTyp dokumentu korygowanegoTrN_ZwrTyp
ZGNGIDNumer dokumentu korygowanegoTrN_ZwrNumer
FIDID dokumentu spinanego/spinacza (arkusza inwentaryzacyjnego)TrN_FaId
FGTGIDTyp dokumentu spinanegoTrN_SpiTyp
FGNGIDNumer dokumentu spinanegoTrN_SpiNumer
NNRKolejny numer dokumentu (w ramach typu, roku i serii)TrN_TrNNumer
ZaN_ZamNumer
TrN_NumerNr
ROKRok wystawienia dokumentuTrN_TrNRok
ZaN_ZamRok
SESeria dokumentuTrN_TrNSeria
ZaN_ZamSeria
NPNumer pełny dokumentuCDN.NumerDokumentu( )TrN_NumerPelny
NONumer obcy dokumentu (dok. zakupu)TrN_DokumentObcyTrN_NumerObcy
FWydrukowano fiskalnie:
(0/1 - nie/tak)
TrN_FiskalnyTrN_Fiskalna
DDData dokumentu (wpływu)(TrN_VatRok,TrN_VatMiesiac,
TrN_VatDzien)
ZaN_DataWystawienia
TrN_DataDok
DOData operacji (sprzedaży/zakupu)TrN_Data3
ZaN_DataPotwierdz
TrN_DataOpe
TKTermin (data) rozliczenia kaucjiTrN_TerminRozliczeniaKaucjiTrN_TerminZwrotuKaucji
DWData wystawienia dokumentuTrN_Data2
ZaN_DataWystawienia
TrN_DataWys (Handlowe)
TrN_DataOpe (Zamówienia)
OPOpis dokumentuTnO_Opis
ZnO_Opis
TrN_Opis
MAGDGIDNumer magazynu docelowegoTrN_MagDNumer
ZaN_MagNumer
Mag_GIDNumer
TrN_MagDocId=Mag_MagID
KIDID kontrahenta głównego w oddzialeTrN_PodID
KGNGIDNumer kontrahenta głównego w centraliTrN_KntNumer
ZaN_KntNumer
Knt_GIDNumer
Knt_KntId=TrN_PodID
KN1Nazwa kontrahenta głównego (1)Knt_Nazwa1TrN_PodNazwa1
KN2Nazwa kontrahenta głównego (2)Knt_Nazwa2TrN_PodNazwa2
KN3Nazwa kontrahenta głównego (3)Knt_Nazwa3TrN_PodNazwa3
KULAdres kontrahenta głównego- ulicaKnt_UlicaTrN_PodUlica
KMIAdres kontrahenta głównego - miastoKnt_MiastoTrN_PodMiasto
KKPAdres kontrahenta głównego - kod pocztowyKnt_KodPTrN_PodKodPocztowy
KNIPNIP kontrahenta głównegoKnt_NipETrN_PodNipE
KKKAdres kontrahenta głównego - kod krajuKnt_NipPrefiksTrN_PodNipKraj
KWOAdres kontrahenta głównego - województwoKnt_WojewodztwoTrN_PodWojewodztwo
OIDID kontrahenta docelowego/odbiorcy w oddzialeTrN_OdbID
(TrN_OdbDocID dla ZW)
OGNGIDNumer kontrahenta docelowego/odbiorcy w centraliTrN_KnDNumer
ZaN_KnDNumer
Knt_GIDNumer
Knt_KntId=TrN_OdbID
ON1Nazwa kontrahenta
docelowego/odbiorcy (1)
Knt_Nazwa1TrN_OdbNazwa1
ON2Nazwa kontrahenta
docelowego/odbiorcy (2)
Knt_Nazwa2TrN_OdbNazwa2
ON3Nazwa kontrahenta
docelowego/odbiorcy (3)
Knt_Nazwa3TrN_OdbNazwa3
OULAdres kontrahenta docelowego/odbiorcy - ulicaKnt_UlicaTrN_OdbUlica
OMIAdres kontrahenta docelowego/odbiorcy - miastoKnt_MiastoTrN_OdbMiasto
OKPAdres kontrahenta docelowego/odbiorcy - kod pocztowyKnt_KodPTrN_OdbKodPocztowy
ONIPNIP kontrahenta docelowego/odbiorcyKnt_NipETrN_OdbNipE
OKKAdres kontrahenta docelowego/odbiorcy - kod krajuKnt_NipPrefiksTrN_OdbNipKraj
OWOAdres kontrahenta docelowego/odbiorcy - województwoKnt_WojewodztwoTrN_OdbWojewodztwo
NBFlaga netto/brutto:
N - netto; B – brutto;
TrN_FlagaNB
ZaN_FlagaNB
TrN_TypNB
1 - netto; 2 - brutto;
RARabat nagłówkaTrN_Rabat
(przeliczany na podstawie rabatu pozycji)
WNWartość netto nagłówkaTrN_NettoP (dok. przychodowe)
TrN_NettoR (dok. rozchodowe)
TrN_RazemNetto
WBWartość brutto nagłówkaTrN_NettoP + TrN_VatP TrN_NettoR + TrN_VatRTrN_RazemBrutto
TEDomyślny termin płatności (realizacji zamówienia)TrN_Termin (H)
ZaN_TerminRealizacji (Z)
TrN_Termin (H)
TrN_DataWys (Z)
FPDomyślna forma płatnościTrN_FormaNr
ZaN_FormaNr
Fpl_XLId
TrN_FplId= Fpl_FplId
OZGNIdentyfikator operatora wystawiającego dokumentTrN_OpeNumerW
ZaN_OpeNumerW
Ope_GIDNumer
Ope_OpeID=TrN_OpeZalID
OMGNIdentyfikator operatora modyfikującego dokumentTrN_OpeNumerM
ZaN_OpeNumerM
Ope_GIDNumer
Ope_OpeID=TrN_OpeModID

Płatności dokumentów (PLTI)

<PLTI/>ERP XLOptima
<PLT/>TraPlatBnk_Zdarzenia, FormyPlatnosci
WAKwota płatnościTrP_KwotaBZd_KwotaSys
ZAKwota pozostająca do zapłatyTrP_PozostajeBZd_KwotaRozSys
TETermin płatności (data)TrP_TerminBZd_Termin
FPForma płatnościTrP_FormaNrFpl_XLID
BZd_FplId=Fpl_FplId
TYPTyp płatności: 1 – zobowiązanie;
2 – należność
TrP_TypBzd_Kierunek
-1 - zobowiązanie; 1 - należność

Spinane dokumenty (SPIDI)

Sekcja <SPIDI> jest wypełniana w przypadku spinaczy paragonów RA oraz arkuszy inwentaryzacyjnych. Są w niej przesyłane odpowiednio identyfikatory spinanych paragonów albo dokumentów inwentaryzacyjnych PW, RW.

<SPIDI/>ERP XLOptima
<SPID/>TraNagTraNag
IDID spinanego dokumentuTrN_OddDokIdTrN_TrNId
GTGIDTyp spinanego dokumentuTrN_GIDTypTrN_GIDTyp
GNGIDNumer spinanego dokumentuTrN_GIDNumerTrN_GIDNumer
NRNumer pełny spinanego dokumentuCDN.NumerDokumentuTRN( )TrN_NumerPelny

Elementy dokumentów (EDKI)

W sekcji <EDKI> przesyłane są elementy dokumentów handlowych, zamówień.

<EDKI/>ERP XLOptima
<EDK/>TraElem, TwrKartyTraElem, Towary
LPLiczba porządkowa pozycji dokumentuTrE_PozycjaTrE_Lp
TGNIdentyfikator towaru (pozycji dokumentu)TrE_TwrNumerTwr_GIDNumer
TrE_TwrId =Twr_TwrId
TNNazwa towaruTrE_TwrNazwaTrE_TwrNazwa
PKWNumer SWW (PKWIU) towaruTwr_Sww
TrE_TwrNumer=Twr_GIDNumer
TrE_TwrSWW
VATStawka podatku (%)TrE_StawkaPodTrE_Stawka
FLFlaga podatku: 0 - zwolniony;
1-opodatkowany; 2 - nie podlega;
TrE_FlagaVatTrE_Flaga
1- zwolniony; 2,3 -opodatkowany; 4 - nie podlega
ILIlość towaru w jednostkach podstawowychTrE_IloscTrE_Ilosc
JMJednostka miary towaruTrE_JmZTrE_Jm
C0Cena początkowa (w walucie)TrE_PoczatkowaTrE_Cena0
RAProcent udzielonego rabatuTrE_RabatTrE_Rabat
CWCena transakcyjna (po rabacie) w walucieTrE_CenaTrE_CenaW
WASymbol walutyTrE_WalutaTrE_Waluta
KLKurs waluty - licznik  TrE_KursLTrE_KursL
KMKurs waluty - mianownikTrE_KursMTrE_KursM
CTCena transakcyjna w walucie systemowejTrE_CenaTrE_CenaT
WNWartość netto pozycji  TrE_KsiegowaNettoTrE_WartoscNetto
WBWartość brutto pozycji  TrE_KsiegowaBruttoTrE_WartoscBrutto
PRPromocjeTrE_PromocjeTrE_Promocje
RAPRabat promocyjnyTrE_RabatPromocyjnyTrE_RabatPromocyjny
RAKKorekta rabatuTrE_RabatKorektaTrE_RabatKorekta

Historia promocji dla elementu dokumentu (PRHI)

<PRHI/>
<PRH/>PrmHistoriaPrmHistoria
HIDPID promocjiPrH_IDPrmPrH_IDPrm
HRKKwota rabatuPrH_RabatKwotaPrH_RabatKwota
HRRRodzaj rabatuPrH_RodzajRabatuPrH_RodzajRabatu
HRPProcent udzielonego rabatuPrH_RabatProcentPrH_RabatProcent
HRKDKwota rabatu (z większą dokładnością)PrH_RabatKwotaDoklPrH_RabatKwotaDokl
HRERabat efektywnyPrH_RabatEfektywnyPrH_RabatEfektywny

Tabelka VAT (VATI)

Tabelka VAT jest przesyłana tylko dla dokumentów zakupowych.

<VATI/>ERP XLOptima
<VAT/>TraVATTraVAT
SVStawka podatku (%)TRV_StawkaPodTrV_Stawka
FLFlaga podatku: 0-zwolniony;
1-opodatkowany; 2-nie podlega
TRV_FlagaVatTrV_Flaga 1- zwolniony; 2,3 –opodatk.; 4 - nie podlega
WNWartość netto grupy podatkuTrV_NettoPTrV_Netto
WBWartość brutto grupy podatkuTrV_NettoP+TrV_VatPTrV_Netto+ TrV_VAT

Raporty kasowo-bankowe (RAPI)

<RAPI/>ERP XLOptima
<RAP/>Raporty, ZapisyBnkRaporty, BnkZapisy, Operatorzy
ILZIlość zapisów w raporcie
IDID raportu (z O!O)KRP_OddDokIdBRp_BrpID
RRok raportuKRP_RokSELECT Rok FROM CDN.fn_RozbijNumer(BRp_DDfID,BRp_NumerString)
NUNumer raportu w rokuKRP_NumerBRp_NumerNr
REJNazwa rejestru KBKRP_SeriaSELECT Seria FROM CDN.fn_RozbijNumer(BRp_DDfID,BRp_NumerString)
SPStan początkowyKRP_StanPoczBRp_SaldoBO
PRZSuma przychodówKRP_PrzychodyBRp_Przychody
ROZSuma rozchodówKRP_RozchodyBRp_Rozchody
DOData otwarcia raportuKRP_DataOtwarciaBRp_DataDok
DZData zamknięcia raportuKRP_DataZamknieciaBRp_DataZam
OMGNGIDNumer operatora modyfikującego (zamykającego) raportKRP_OPENumerZamOpe_GIDNumer
Ope_OpeID= BRp_OpeModID
OZGNGIDNumer operatora zamykającego raportKRP_OPENumerZamOpe_GIDNumer
Ope_OpeID=BRp_OpeZalID

Zapisy kasowo-bankowe (ZKBI)

<ZKBI/>ERP XLOptima
<ZKB/>Zapisy, Raporty, TraNagBnkZapisy, BnkZdarzenia, Kontrahenci, FormyPlatnosci
IDID raportuKRP_OddDokId
KRP_GIDNumer=KAZ_KRPNumer
BZp_BRpID
LPNumer kolejny zapisu w raporcieKAZ_KRPLpBZp_BRpLp
NDNumer dokumentuKAZ_NumerDokumentuBZp_NumerPelny
KIDID kontrahenta w O!OKnt_KntId
KGTGIDTyp kontrahentaKAZ_KntTypKnt_GIDTyp
Knt_KntID = BZp_PodmiotID
KGNGIDNumer kontrahentaKAZ_KntNumerKnt_GIDNumer
NIDID rozliczanego dokumentu w O!OTrN_OddDokIDBZd_DokumentId
NGTGIDTyp rozliczanego dokumentuTrN_GIDTypTrN_GIDTyp
NGNGIDNumer rozliczanego dokumentuTrN_GIDNumerTrN_GIDNumer
FPForma płatnościTrP_FormaNrFPl_XLId
Fpl_FplID = BzD_FPLID
TYPTyp: 1 - rozchód; 2 - przychód; KAZ_RPBZp_Kierunek+1
KWOKwota zapisuKAZ_KwotaBZp_Kwota
DData dokumentu kasowegoKAZ_DataZapisuBZp_DataDok
OOpis zapisu kasowegoKAZ_TrescBZp_Opis
OMGNGIDNumer operatora modyfikującego zapisOpe_GIDNumer
Ope_OpeID=BZp_OpeModID
OZGNGIDNumer operatora zatwierdzającegoOpe_GIDNumer
Ope_OpeID=BZp_OpeZalID

Potwierdzenia (PTWI)

<PTWI/>ERP XLOptima
<PTW/>KntKarty, TraNagKontrahenci, TraNag
TYPTyp potwierdzenia:
1 - kontrahenci, 2 - dokumenty MM, 3 - dokumenty handlowe, 6- prawo do anulowania dokumentu, 7 - prawo do spinania
IDID potwierdzanych obiektów w oddziale------------------
TrN_OddDokId
Knt_KntId
TrN_TrNId
GTGIDTyp potwierdzanych obiektów w centraliKnt_GIDTyp
TrN_GIDTyp
Knt_GIDTyp
TrN_GIDTyp
GNGIDNumer potwierdzanych obiektów w centraliKnt_GIDNumer
TrN_GIDNumer
Knt_GIDNumer
TrN_GIDNumer

 

 




XL033 – Instalacja i konfiguracja automatu synchronizacji


Wymagania systemowe

Do poprawnego działania komponentu CDNOfflineSrv opartego o Web Service Enhancements (WSE) wymagane jest zainstalowanie następujących komponentów systemowych:

  • System operacyjny (zgodnie z wymaganiami danej wersji Comarch ERP XL)
  • Microsoft Internet Information Services (IIS)
  • Microsoft .NET Framework (zgodnie z wymaganiami danej wersji Comarch ERP XL)
  • Microsoft Web Services Enhancements 3.0 for Microsoft.NET

 

Uwaga
Ważna jest kolejność instalacji poszczególnych komponentów.

Instalacja i konfiguracja komponentu CDNOfflineSrv

Instalacja i konfiguracja

Po zainstalowaniu komponentów systemowych przystępujemy do instalacji komponentu systemu Comarch ERP XL CDNOfflineSrv:

Katalog CDNOfflineSrv kopiujemy na dysk, na przykład do katalogu z Comarch ERP XL;

Zawartość katalogu CDNOfflineSrv to:

  • CDNOfflineSrv|bin|CdnOfflineSrv.dll,
  • CDNOfflineSrv|CdnOfflineSrv.asmx,
  • CDNOfflineSrv|Web.config – plik konfiguracyjny serwisu.

 

Ręczne utworzenie katalogu wirtualnego na IIS

W celu ręcznego utworzenia katalogu wirtualnego uruchamiamy menedżera usług IIS – Panel sterowania/Narzędzia administratora/Internetowe usługi informacyjne. Klikając prawym klawiszem myszy na opcję Pule aplikacji wybieramy Dodaj pulę aplikacji… Jako nazwa podajemy CdnOfflineSrv, wskazujemy wersję architektury .NET Framework, Zarządzany tryb potokowy -> Zintegrowany, zaznaczony parametr: Uruchom pulę aplikacji natychmiast.

 

Internetowe usługi informacyjne, dodawanie puli aplikacji (dla maszyny 64-bitowej)
Internetowe usługi informacyjne, dodawanie puli aplikacji (dla maszyny 64-bitowej)

 

Po naciśnięciu przycisku OK, zatwierdzamy utworzenie puli aplikacji, a następnie przechodzimy do zaawansowanych ustawień utworzonej puli aplikacji, gdzie dla opcji: Tożsamość wskazujemy wartość: LocalSystem.

Internetowe usługi informacyjne, właściwości zaawansowane puli aplikacji – od lewej dla maszyny 32-bitowej i 64-bitowej
Internetowe usługi informacyjne, właściwości zaawansowane puli aplikacji

Internetowe usługi informacyjne, właściwości zaawansowane puli aplikacji – od lewej dla maszyny 32-bitowej i 64-bitowej
Internetowe usługi informacyjne, właściwości zaawansowane puli aplikacji dla maszyny 64-bitowej

 

 

 

Uwaga

W przypadku, gdy aplikacja będzie pracować na maszynie 64-bit-owej dodatkowo w zaawansowanych ustawieniach puli aplikacji wybieramy dla opcji Włącz aplikacje 32-bitowe wartość True.

 

Następnie klikając prawym klawiszem myszy na węzeł: Domyślna witryna sieci Web, wybieramy: Dodaj aplikację.

Internetowe usługi informacyjne, dodawanie aplikacji
Internetowe usługi informacyjne, dodawanie aplikacji

 

 

Wykonanie tych czynności spowoduje otwarcie okna Dodawanie aplikacji. W polu Alias jako nazwę podajemy: CdnOfflineSrv. W polu Ścieżka fizyczna wybieramy ścieżkę lokalizacji, gdzie wkopiowaliśmy pliki Web Serwisu. W polu: Pula aplikacji, wybieramy wcześniej utworzoną pulę CdnOfflineSrv.

Internetowe usługi informacyjne, dodawanie aplikacji
Internetowe usługi informacyjne, dodawanie aplikacji

 

 

Test poprawności instalacji CDNOfflineSrv

Po poprawnej instalacji i wpisaniu adresu:

http://nazwaserwera/CDNOfflineSrv/CDNOfflineSrv.asmx

w przeglądarce powinniśmy otrzymać stronę jak poniżej:

Test poprawności instalacji CDNOfflineSrv
Test poprawności instalacji CDNOfflineSrv

 

Uwaga
Ze względu na kwestie dotyczące bezpieczeństwa połączenia i możliwego nieautoryzowanego dostępu do bazy danych poprzez CDNOfflineSrv, zalecane jest łączenie się poprzez wpisanie w powyższym adresie jako nazwy serwera prywatnego IP uzyskanego przy połączeniu poprzez VPN. Odpowiednie połączenie VPN należy wcześniej skonfigurować.

 

 

Problemy związane z wyświetleniem strony testowej CDNOfflineSrv

Jeżeli podczas próby uruchomienia strony testowej CDNOfflineSrv pojawia się następujący komunikat:

Test poprawności instalacji CDNOfflineSrv
Test poprawności instalacji CDNOfflineSrv

to należy sprawdzić czy w zaawansowanych ustawieniach puli aplikacji wybrana została opcja Włącz aplikacje 32-bitowe wartość True w przypadku systemu 64- bitowego.

Jeżeli podczas próby uruchomienia strony testowej CDNOfflineSrv pojawia się następujący komunikat:

 

Test poprawności instalacji CDNOfflineSrv
Test poprawności instalacji CDNOfflineSrv

 

to należy dodać dokument domyślny: cdnofflinesrv.asmx dla utworzonej aplikacji.

Internetowe usługi informacyjne, dodawanie aplikacji – dodawanie dokumentu domyślnego
Internetowe usługi informacyjne, dodawanie aplikacji – dodawanie dokumentu domyślnego

 

Konfiguracja połączenia CDNOfflineSrv z bazą danych Comarch ERP XL

W pliku Web.config, który znajduje się w katalogu CDNOfflineSrv należy odnaleźć sekcję <appSettings>, a następnie zmienić klucze:

Data source: wpisać nazwę serwera SQL,

Initial Catalog: wpisać nazwę bazy,

UserID; wpisać login,

Password: wpisać hasło

Data source= NaszSerwer – nazwa serwera SQL

Initial Catalog= CDNXL_NaszaFirma – nazwa bazy z serwera SQL

UserID= TEST1 – login dla połączenia do synchronizacji (Offline)

Password= haslo1000!- hasło dla połączenia do synchronizacji (Offline)

Przykład sekcji <appSettings>

<applicationSettings>

<Comarch.CDNXL.OffLineSrv.Properties.Settings>

<setting name="DataSource" serializeAs="String">

<value>NaszSerwer</value>

</setting>

<setting name="InitialCatalog" serializeAs="String">

<value> CDNXL_NaszaFirma </value>

</setting>

<setting name="UserID" serializeAs="String">

<value>TEST1</value>

</setting>

<setting name="Password" serializeAs="String">

<value>haslo1000!</value>

</setting>

<setting name="Integrated" serializeAs="String">

<value>False</value>

</setting>

</Comarch.CDNXL.OffLineSrv.Properties.Settings>

</applicationSettings>

Konfigurowanie ustawień w pliku Web.config
Konfigurowanie ustawień w pliku Web.config

Instalacja pakietu Comarch OPTIMA Oddziałowa

Wymagania systemowe

Do poprawnego działania programu Comarch OPT!MA Oddziałowa komunikującej się z Centralą za pomocą serwisu CDNOfflineSrv wymagane jest zainstalowanie następujących komponentów systemowych:

  • System operacyjny (zgodnie z wymaganiami danej wersji Comarch ERP Optima)
  • Microsoft .NET Framework (zgodnie z wymaganiami danej wersji Comarch ERP Optima)
  • Microsoft Web Services Enhancements 3.0 for Microsoft.NET.

Uwaga
Ważna jest kolejność instalacji poszczególnych komponentów.

Informacje dodatkowe dotyczące konfiguracji automatu synchronizacji

Konfiguracja automatu synchronizacji po stronie Comarch ERP XL jest definiowana w module: Administrator oddziałów, gdzie należy dodać i skonfigurować nowy oddział: Comarch ERP Optima. W celu uruchomienia automatu synchronizacji pomiędzy oddziałem Comarch ERP XL, a Comarch ERP Optima należy m.in., po stronie:

  • W Konfiguracji Comarch ERP XL na zakładce: Automat synchronizacji zaznaczyć opcję: Synchronizuj automatycznie i wpisać odpowiedni adres serwera i nazwę komputera, na którym zostanie „fizycznie” uruchomiony automat synchronizacji, a następnie włączyć automat synchronizacji

Konfigurowanie ustawień dla automatu synchronizacji w Comarch ERP XL
Konfigurowanie ustawień dla automatu synchronizacji w Comarch ERP XL

  • W Konfiguracji Comarch ERP Optima zdefiniować ustawienia na zakładce: Praca rozproszona, a następnie uruchomić synchronizację.

Comarch ERP Optima, Konfiguracja pracy rozproszonej
Comarch ERP Optima, Konfiguracja pracy rozproszonej

 

 

 

 




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