www.tres.pl - Baza wiedzy Trawers ERP - Spis treści
Raportowanie do Asseco EBI 1. Opis ogólny 2. Przygotowanie 3. Generowanie raportów 3.1 Opis ogólny 3.2 Generowanie ręczne 3.3 Generowanie automatyczne w SOA 4. Zgodność z wymaganiami 5. Weryfikacja poprawności raportu RPS 6. Źródła danych dla raportów 7. Tematy powiązane 1. Opis ogólny Program wysyła dane o sprzedaży oraz o stanach magazynowych towarów, których producentem jest firma XXXXX (firma, która korzysta z tych danych gromadzonych na platformie Asseco EBI). Program generuje pliki raportów w formacie wymaganym przez system Asseco EBI. Zastosowano mechanizmy określone nazwą: Raportowanie automatyczne Raportowanie automatyczne System Asseco EBI, to platforma wymiany danych handlowych pomiędzy producentem a dystrybutorami z nim współpracującymi. (en: DMS Dealership management software; Zarządzanie siecią dealerską) Umożliwia producentom bieżące pozyskiwanie danych o stanie zapasów ich produktów u dystrybutorów oraz ilości sprzedanych towarów do poszczególnych punktów detalicznych. System EBI zbiera dane przekazywane przez programy dystrybutora, tu: przekazywane przez program Trawers (raport EBI). Zebrane dane przechowuje w bazie danych (Baza danych EBI), sumuje, segreguje i przekazuje do producenta. [1] [2] [3] [1] [2] <------ Punkty sprzedaży | | | | | oddziały, magazyny | | | | | v v v v v o----------------o o----------------o | Dystrybutor 1 | | Dystrybutor 2 | Dystrybutor n ... | | | | o | Trawers | | Trawers | | o--------o-------o o--------o-------o | | | | | | | Raport EBI Raport EBI | | | | v v v o--------->---o---<--------o---<----------------o--- ... | v o-------o-------o | Baza danych | | EBI | | | o-------o-------o | | v Producent otrzymuje informacje o sprzedaży i stanach magazynowych u dystrybutorów i w ich punktach sprzedaży Dane przekazywane przez Trawers (Report EBI) mają określony format. Zadaniem funkcji raportującej do EBI jest przygotowanie danych zgromadzonych w Trawersie do formatu oczekiwanego przez EBI. Program tworzy raporty MAG - Kartoteka oddziałów (magazynów) KLT - Kartoteka klientów ASO - Kartoteka asortymentu ASJ - Kartoteka jednostek asortymentu SLO - Słowniki SMG - Stany magazynowe RPS - Raport sprzedaży Raporty tworzone są w podziale na oddziały. Raporty tworzone są wg specyfikacji: * FPW_ebie_ebic_1_8_0_20130218_ogolna.pdf 2. Przygotowanie Aby skorzystać z funkcji należy: a) Utworzyć strukturę katalogów punktu styku wg schematu podanego w opisie komunikacji z systemem EBI (dokument Asseco BS) Głównym katalogiem punktu styku interfejsu EBI jest katalog <EBI> = <TRAWERS>/adtres/adinout/ebi gdzie: <TRAWERS> to katalog, w którym znajdują sie dane pakietu Trawers, np. /opt/trawers5/dane/ Struktura podkatalogów w <EBI> jest następująca: <EBI> <symbol_firmy> <symbol_oddzialu_1> import export recv sent <symbol_oddzialu_2> import export recv sent ... <symbol_oddzialu_N> import export recv sent np. katalog export dla firmy FP dla centrali (00): /opt/trawers5/dane/adtres/adinout/ebi/fp/00/export dla oddziału Gdynia (GD): /opt/trawers5/dane/adtres/adinout/ebi/fp/gd/export Dodając nowy oddział do systemu, należy utworzyć dla niego ręcznie w/w strukturę katalogów EBI. b) Wypełnić w kartotekach pola wymagane przez EBI Poniżej jest lista kartotek i dane jakie trzeba w nich wypełnić. Oddziały firmy Wprowadzić pełne dane adresowe: nip, nazwa, nazwa skrócona, miasto, kod, ulica, nr lokalu, telefon Tabela magazynów Podać oddział, do którego należy magazyn Indeksy KIM Wypełnić pola: BarKod (EAN) Dostawca - podać symbol producenta, dla którego tworzone są raporty EBI Utworzyć zapytanie Query, które będzie zwracało tylko indeksy KIM producenta, dla którego tworzymy raporty EBI Zapytania wg warunków (Query) Podać jednostki miary producenta dla indeksów (dla raportu ASO) Domyślnie jest brana Jm przychodu i przelicznik z karty KIM, a jeżeli podano w ZA dla głównego dostawcy z KIM, to z oferty cenowej dostawcy (Kartoteki cen dostawców) w ZA Cenniki w MI W cenniku katalogowym [60] muszą być ujęte towary danego producenta. Należy wypełnić ceny: netto 1 oraz brutto 4 Kartoteka odbiorców - pełne dane adresowe (na głównej stronie karty) - symbol oddziału gdy >!!< to należy do wszystkich oddziałów Utworzyć zapytanie Query, które będzie zwracało tylko odbiorców, dla których tworzymy raporty EBI. Kartoteka dostawców Utworzyć zapytanie Query, które będzie zwracało tylko dostawców, dla których tworzymy raporty EBI. Parametry systemu NA Podać: Symbol odbiorcy dla sprzedaży gotówkowej Program sprawdza Przed wygenerowaniem raportu, program sprawdza czy wypełniono dane wymagane przez EBI: * dane adresowe w karcie oddziałów * przypisanie magazynu do oddziału w karcie magazynu * symbol odbiorcy gotówkowego w parametrach NA * symbol głównego dostawcy w kartach KIM * dane adresowe w kartach odbiorców * pozycje w cenniku katalogowym * czy utworzono katalogi w ../adtres/adinout/ebi (gdy nie ma, to program tworzy) 3. Generowanie raportów 3.1 Opis ogólny Raporty tworzone są w podziale na oddziały * Oddziały zdefiniowane są w tabeli oddziałów firmy w AD * W MG > Tabela magazynów przypisuje się magazyn do oddziału Do jednego oddziału może należeć wiele magazynów * W karcie odbiorcy podaje się symbol oddziału * Operator jest przypisany do oddziału * Symbol oddziału operatora jest wstawiany w nagłówku dokumentu sprzedaży Raporty można generować ręcznie za pomocą funkcji w NA > Pomocnicze > Wysyłanie danych ... lub automatycznie poprzez mechanizm SOA SOA Funkcje W obu przypadkach program utworzy dla każdego z oddziałów, w katalogu: <EBI>/<symbol_firmy>/<symbol_oddzialu>/export dwa pliki: 1. plik z danymi raportu 2. plik potwierdzenia - z rozszerzeniem '.ok' Raport sprzedaży RPS można wykonać dla dowolnego okresu. Ujmowane są w nim tylko dokumenty zatwierdzone. Stany magazynowe SMG są zawsze: na dziś. Raport KLT tworzony jest na podstawie kartoteki odbiorców. W raporcie tym nie ujmowani są klienci detaliczni z grupy [DE] za wyjątkiem odbiorcy o symbolu podanym w parametrach NA Nazwa tego odbiorcy podawana jest jako [Detal] a kod pocztowy jako [00000] W raporcie RPS symbol klienta detalicznego z grupy [DE] zastępowany jest symbolem podanym w parametrach NA. Warunki, które są uwzględniane w poszczególnych raportach: I O D Z - - - - MAG - - - - KLT - O - - ASO I - - - ASJ I - - - SLO - - D - SMG I - - - RPS I O - Z | | | | | | | Z ----- Zakres okresów | | D ------- Dostawcy | O --------- Odbiorcy I ----------- Indeksy KIM Po utworzeniu raportu wykonywany jest skrypt: ../adtres/tr_ebi.sh z parametrami: <typ raportu> <symbol firmy> <symbol oddzialu> <nazwa pliku> np. ../adtres/tr_ebi.sh RPS FP 01 rps_20100701_1250.txt np. ../adtres/tr_ebi.sh RPS FP 01 rps_20100701_1250.txt.ok Parametr 0816 [1] włącza zapis do logu szczegółowych informacji diagnostycznych związanych z generowaniem raportów EBI. 3.2 Generowanie ręczne Wybranie z menu funkcji: NA > Pomocnicze > Wysyłanie ....[NA_PDO50] Należy wybrać typ raportu i wskazać zapytanie Query tj. określić warunki wyboru indeksów (RPS,ASO,ASJ,SMG), odbiorców (RPS,KLT) i dostawców (SLO) oraz zakres dat dokumentów sprzedaży (RPS) 3.3 Generowanie automatyczne w SOA Polega na wywolaniu procesu SOA: AD_PSOA1 w trybie AutoRun. SOA Funkcje W parametrach AD_PSOA1 podaje się nazwę pliku XML, który zawiera żądanie wykonania raportów EBI. Są to funkcje SOA: EBI_MAG, EBI_KLT, itd. Funkcje (proces) AD_PSOA1 należy wywołać w trybie AutoRun z poziomu systemu operacyjnego, np. ./tr5x.exe --operator=AA --firma=FP --oddzial=00 --proces=AD_PSOA1 \ --input=ebi_in.xml --output=ebi_out.xml Wiecej szczegółów poniżej. Należy utworzyć plik XML z żądaniem EBI w katalogu: adtres/adinout i wskazać go w wywołaniu SOA. W wyniku utworzone zostaną odpowiednie pliki raportów w strukturze katalogów EBI Do uzyskania raportów EBI służą następujące żądania SOA: typ raportu symbol żądania ----------- -------------- MAG -> <EBI_MAG> KLT -> <EBI_KLT> ASO -> <EBI_ASO> ASJ -> <EBI_ASJ> SLO -> <EBI_SLO> RPS -> <EBI_RPS> SMG -> <EBI_SMG> Przykład pliku XML: ebi.xml <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <EBI_RPS> <queryKIM>INDEKSY_CP</queryKIM> <queryODB></queryODB> <periodType>FromTo</periodType> <fromDate>2009-07-01</fromDate> <toDate>2009-11-30</toDate> </EBI_RPS> </soap:Body> </soap:Envelope> Parametry żadań EBI: queryKIM : nazwa zapytania Query z kartoteki KIM do wskazania, które towary ująć w raporcie queryODB : nazwa zapytania Query z kartoteki Odbiorców do wskazania, których ująć odbiorców (klientów) queryDOS : nazwa zapytania Query z kartoteki Dostawców do wskazania, których ująć dostawców (producentów) periodType : Today - dane sprzedażowe z dziś nie wypełnia się pol <fromDate> i <toDate> MonthToDate - od początku bieżącego miesiąca do dziś włącznie nie wypełnia się pol <fromDate> i <toDate> ThisMonth - cały bieżący miesiąc nie wypełnia się pol <fromDate> i <toDate> LastMonth - z całego poprzedniego miesiąca nie wypełnia się pol <fromDate> i <toDate> FromTo - z podanego zakresu <fromDate>..<toDate> np. <fromDate>2015-01-01</fromDate> <toDate>2015-06-30</toDate> LastDays - z ostatnich N dni np. <fromDate>-4</fromDate> <toDate>-1</toDate> czyli: od DZIS-4 do DZIS-1 np. 2015-07-02 .. 2015-07-05 Przykład wywołania SOA: ----------------------- ./tr5x.exe --operator=AA --firma=FP --oddzial=00 --proces=AD_PSOA1 \ --input=ebi_in.xml --output=ebi_out.xml W pliku wyjściowym ebi_out.xml zapisywany jest wynik operacji: * [OK] gdy operacja zakończona poprawnie * [opis błędu] gdy wystapił błąd (może np. zawierać nazwę raportu ze szczegółami błędu) W przypadku wystąpienia błędu, wysyłane jest także powiadomienie do zainteresowanych operatorów (z oznaczonym parametrem: 1108 [1]) Aby raporty generowały się automatycznie o ustalonej porze, należy utworzyć skrypt z w/w wywołaniami SOA i wykonywać go przez cron (Linux) lub Harmonogram Zadań (Windows) Aby zapewnić funkcji generowania raportów EBI dostępność sesji należy w parametrach systemu AD zarezerwować sesje dla AutoRun Parametry AD Przykład skryptu dla Linuk: #!/bin/bash cd /opt/trawers/dane/adtres PARAMS="--operator=AA --firma=FP --oddzial=00 --proces=AD_PSOA1" # Nalezy usunac pliki odpowiedzi (output) aby proces mogl sie wykonac rm -f adinout/ebi_klt_out.xml rm -f adinout/ebi_slo_out.xml rm -f adinout/ebi_aso_out.xml rm -f adinout/ebi_asj_out.xml rm -f adinout/ebi_smg_out.xml rm -f adinout/ebi_rps_out.xml ./tr5x.exe $PARAMS --input=ebi_klt_in.xml --output=ebi_klt_out.xml ./tr5x.exe $PARAMS --input=ebi_slo_in.xml --output=ebi_slo_out.xml ./tr5x.exe $PARAMS --input=ebi_aso_in.xml --output=ebi_aso_out.xml ./tr5x.exe $PARAMS --input=ebi_asj_in.xml --output=ebi_asj_out.xml ./tr5x.exe $PARAMS --input=ebi_smg_in.xml --output=ebi_smg_out.xml ./tr5x.exe $PARAMS --input=ebi_rps_in.xml --output=ebi_rps_out.xml #koniec skryptu 4. Zgodność z wymaganiami Program eksportu danych dla systemu EBI spełnia wymagania opisane w dokumencie: Wymagania_dot_działania_interfejsu_20090526_bez_zam.pdf Poniżej objaśnienie: II. WYMAGANIA FUNKCJONALNE DLA INTERFEJSÓW Interfejs do wymiany danych z EBI powinien zapewniać: 1. Automatyczny export danych z systemu (o możliwej do ustalenia godzinie/ach) Trawers: Eksport można wykonać ręcznie lub automatycznie przez usługi SOA pakietu Trawers oraz mechanizm 'cron' systemu Linuks. 2. Możliwość interwałowego generowania komunikatów (kartotek klientów, asortymentu, stanów magazynowych, raportów sprzedaży (raz dziennie)). Dodatkowo interfejs powinien umożliwiać ustalenie wstecznej zakładki czasowej dla generowanych automatycznie danych (odsprzedaż). Trawers: 1. Raporty mozna generować o dowolnej porze -> patrz p.1 2. W parametrach pliku wejściowego usługi SOA podaje się okres, za który wykonywany jest raport RPS. 3. Możliwość wykonania exportu danych sprzedażowych za dowolny okres wskazany przez operatora (np. trzy miesiące wstecz) Trawers: patrz p.2 4. Dowolny komunikat uznawany powinien być za 'do przetworzenia' jeśli dostępny będzie dla niego plik 'OK' Trawers: jest 5. W przypadku wystąpienia zmian w dokumentach sprzedażowych, które już były exportowane do EBI należy taki dokument wysłać ponownie (wg jego obecnego stanu tzn wszystkie aktualne informacje z nagłówka oraz pozycji) Jeśli z jakiegoś powodu dokument już wyexportowany, zostaje w systemie anulowany / usunięty, informacje o tym należy również wysłać do EBI, wg jednej z poniższych metod: a. Wysyłamy nagłówek oraz wszystkie pozycje anulowanego dokumentu wstawiając do pól 'ilość' oraz 'wartość' zera. b. Wysyłamy nagłówek oraz po jednej pozycji produktowej z kartoteki każdego z producentów dla których jest realizowana wymiana danych. Pozycje te w pliku powinny zawierać w polach ilość oraz wartość wartości zerowe Trawers: Eksportowane są tylko dokumenty zatwierdzone, których nie można usuwać 6. W czasie działania interfejsu należy zadbać, aby w danych kartotekowych (produkty, kontrahenci) nie dochodziło do modyfikacji logicznej danych (np. zmiana nazwy towaru z 'batonik' na 'lizak' z zachowaniem tego samego identyfikatora towaru). Wszelkie operacje tego typu będą prowadziły do problemów ze spójnością i jakością danych. Trawers: to zadanie dla Użytkownika programu III. WYMAGANIA DODATKOWE 1) stworzenie dokumentacji technicznej... Trawers: niniejszy dokument jest tą dokumentacją 2) wykonanie instrukcji obsługi... Trawers: niniejszy dokument pełni rolę instrukcji obsługi 5. Weryfikacja poprawności raportu RPS Do zweryfikowania poprawności danych umieszczanych w raporcie RPS można użyć zestawienia z systemu NA > Sprzedaż > Dokumenty tabelarycznie 6. Żródła danych dla raportów Raport MAG Pola z karty firmy oraz kart oddziałów ID_MAG : [symbol oddziału (00 dla centrali)] ID_DYST : KODOWANIE : [CP852] NIP : nip NAZWA : pnfirmy SKROT : nfirmy MIASTO : miasto KOD : kod ULICA : ulica NR_LOK : nrlokalu TEL : tel1 FAX : fax EMAIL : tlx Raport KLT Pola z karty odbiorcy ID_MAG : ododdzia [gdy !! to kolejne oddziały] ID_KLT : odbdost ID_PLT : odbdost ID_PRAC : odsymop NAZWA : odnazwa ['Detal', gdy detaliczny] SKROT : odnazwa ['Detal', gdy detaliczny] ID_W : ID_P : MIASTO : odmiasto KOD : odkod [00000 gdy detaliczny] ULICA : odulica+odnrdom NR_LOK : odnrlok NIP : odnip [0000000000000 gdy pusty] TEL : KOM : FAX : EMAIL : RABAT : 0 lub odrabat [odrabat tylko, gdy odrupust = '0'] ID_FOR_PLT : odformap TER_PLT : odwarpl ID_CENNIK : ID_GC_KLT : ID_GL_KLT : ID_GR_KLT : ID_GRX_KLT : LIM_KRED : SALDO_PLT : LIM_PRZET : SALDO_PRZET : WSK_BLOK : ID_TYP_KLT : ID_KAT_KLT : ID_SIEC : ID_POW : ID_ST_KLT : ST_MOB : 1 WSK_DOMYSLNY : 1 Raport ASO Pola z karty KIM. Ceny z cennika katalogowego ID_MAG : [symbol oddzialu] ID_ASO : indeks ID_ASO_CEN : NR_FAB : EAN : ean13 PKWIU : NAZWA : inazwa SKROT : indeks CENA_BRUTTO : CENA_NETTO : CENA_ZAKUPU : zkcena [z KIM] CENA_ST : 0 [zawsze] RABAT : RABAT_MAX : VAT : VAT_ZW : 0,1 lub 2 [wg nrptu: 00->1, 99->2, inne->0] ID_JED : jm ID_JED_DOM : ID_PROD : dostawca ID_FAB : ID_KAT : ID_BRAND : ID_ODMIANA : ID_ST_ASO : ID_GC_ASO : ID_GR_ASO : ID_GRX_ASO : WSK_PRM : ST_MOB : 1 STAN_PP : [stan w magazynach oddziału w jedn. dystybutora] STAN : [stan w magazynach oddziału w jedn. producenta (przelicznik z ofert dostawcy: OFWSZAK] PRZELICZNIK : [przelicznik] DATA_STANU : [data zestawienia] WSK_DOMYSLNY : 1 Raport ASJ Pola z karty KIM. Gdy są różne jm,jms i jmz to dla każdej jest osobny wpis ID_MAG : [symbol oddzialu] ID_ASO : indeks ID_JED : jm EAN : ean13 MNOZNIK : 1 lub wssprz(dla jms) lub wszaku(dla jmz) Raport SLO Pola z odpowiednich kartotek: ID_MAG : [symbol oddzialu] NAZWA_POLA : [możliwe wartości poniżej] IDENTYFIKATOR: [możliwe wartości poniżej] NAZWA : [możliwe wartości poniżej] Wartości zapisywane do raportu SLO: NAZWA_POLA IDENTYFIKATOR NAZWA ID_JED symbol nazwa z Tabeli jednostek miary ID_PROD odbdost odnazwa z Karty dostawcy ID_FOR_PLT [symbol] [nazwa] metody płatności Raport SMG Pola z karty KIM ID_MAG : [symbol oddzialu] ID_ASO : indeks STAN : [stan w magazynach oddziału w jedn. dystrybutora] ID_JED : jm OPIS : DATA_STANU : [data zestawienia] Raport SMG Pola z dokumentów sprzedaży Nagłówek: LP_RAP : [nr kolejny] ID_TYP : [wg rodzajd] ID_MAG : oddzial NR_DOKUMENTU : numer WART_BRUTTO : [wart brutto sumy pozycji] WART_ZAPL : 0 [zawsze 0. Objasnienie poniżej] DATA_WYST : data DATA_SPRZ : datas TERM_PLT : termin ID_KLT : odbdost [lub na00pa.DETALODB gdy detaliczny] NR_DOK_KR : dnumer DATA_DOK_KR : ddata NR_FORMAT_KR : 1 ID_RODZ_SPRZ : POLE_1 : POLE_2 : POLE_3 : Pozycja: LP_ASO : dnum_poz ZRODLO_CEL : - ID_ASO : indeks NR_FAB : EAN : KIM:ean13 ID_JED : jms ILOSC : P:oilosc ILOSC_BYLO : K:oilosc CENA_NETTO : cenaspr [przeliczona wg cnb Netto/Brutto] WART_NETTO : P:owartosc WART_NETTO_BYLO : K:owartosc WARTOSC_VAT : P:pwartosc WARTOSC_VAT_BYLO : K:pwartosc CENA_ZAKUPU : dwartosc/dilosc NR_ZAM : NR_ZAM_DYST : CENA_NETTO_B : cenasp [przeliczona wg cnb Netto/Brutto] RABAT : orabat NR_DOK_KLT : DATA_DOK_KR : POLE_1 : POLE_2 : POLE_3 : Pole [WART_ZAPL] - wartość zapłat za fakturę. Wartość zapłat dotyczy całej faktury. A w raporcie RPS ujmowane są tylko pozycje asortymentu danego Dostawcy. W ogólnym przypadku nie można ustalić prawidłowo części zapłat przypadających tylko na pozycje raportowane. Dlatego program umieszcza w tym polu wartość zero. 7. Tematy powiązane Wymiana danych z innymi programami Wymiana plików CSV AutoRun Procesy automatyczne SOA Funkcje Raportowanie automatyczne Raportowanie do TZMO Toruń
www.tres.pl - Baza wiedzy Trawers ERP - Spis treści