0. Opis ogólny i pojęcia
1. Ustalanie ILN <-> Oddział
1.1 Buyer (ZA) / Seller (NA)
W skrócie
Szczegółowo
Uwagi
Wpływ na dalsze przetwarzanie
1.2 SellerHeadquarters
1.3 DeliveryPoint / DeliveryLocationNumber
2. Tematy powiązane
0. Opis ogólny i pojęcia
Faktura KSeF XML w 'świecie' EDI #KSeF
Firmy, które wymieniały dane transakcyjne przy pomocy komunikatów EDI
teraz muszą włączyć się do wymiany faktur KSeF - wystawiać faktury sprzedaży
i pobierać faktury zakupu.
Patrz szczegóły:
KSeF. EDI INVOICE a Faktury XMLKSeF. Faktury a komunikaty EDI
Opisy zawarte w tym artykule prosimy odczytywać uwzględniając wymagania KSeF.
***********************************************************************************************************
Opis powiązań między transakcjami (dokumentami) w programie
Trawers ERP a komunikatami EDI przy pracy wielo-oddziałowej.
Opis zawiera szczegóły techniczne, które ułatwiają zrozumienie istoty powiązań.
Patrz też:
Wielo-oddziałowość
Pojęcia
f_symop
Zmienna programu, w której jest symbol aktywnego (zalogowanego) operatora
Operator należy do oddziału: f_soddzial
f_soddzial
Zmienna programu, w której jest symbol oddziału ustalony wg: f_symop
Gdy wskazuje na firmę (centralę), to ma wartość '00'
W nagłówku SOAP można wskazać operatora <user>
innego niż: f_symop co powoduje zmianę w: f_soddzial
FIILN
ILN w karcie firmy / oddziału
InBound
Pobieranie dokumentów EDI
OutBound
Zapisywanie (wysyłanie) dokumentów EDI
SOAP
Komunikat SOA w formacie XML
W nagłówku SOAP można podać operatora innego niż: f_symop
Wg podanego: <user>, program ustali symbol oddziału: f_soddzial
Buyer, Seller, SellerHeadquarters, DeliveryPoint, DeliveryLocationNumber
Pola komunikatów EDI. Patrz opis
EDI Stosowane oznaczenia
EDI w SOA
Komunikaty EDI wczytywane (InBound) i zapisywane (OutBound) funkcjami SOA
OutBound:
Faktura sprzedaży EDI SalesInvoiceGetById [INVOICE]
Faktura korekty EDI SalesCorrectiveInvoiceGetById [INVOICE]
InBound
Zam sprzed NA Dopisanie EDI Document-Order [ORDER]
Zam sprzed NA Dopisanie EDI Document-Order [ORDER]
Awizo dostawy ZO EDI Dopis Document-DespatchAdvice [DESADV]
1. Ustalanie ILN <-> Oddział
1.1 Buyer (ZA) / Seller (NA)
W skrócie
ILN przypisany do oddziału decyduje, do którego oddziału zostanie przypisany
dokument EDI.
Wysyłając dane EDI - system wybiera ILN z karty firmy lub oddziału zgodnie
z aktywnym operatorem.
Przy odbieraniu dokumentów - ILN z dokumentu EDI służy do znalezienia
pasującego oddziału w systemie.
Zapisywanie dokumentów EDI OutBound
--------------------------
Pola EDI: Buyer (ZA) / Seller (NA)
Ustala: ILN wg f_soddzial
Wg funkcji: DANE_FIRM9()
gdy f_soddzial=='00' to l_fiILN := FIILN firmy
gdy f_soddzial inny to l_fiILN := FIILN oddziału
W nagłówku SOAP można wskazać operatora <user>
innego niż: f_symop co powoduje zmianę w: f_soddzial
Pobieranie dokumentów EDI InBound
-------------------------
Pola EDI: Buyer (ZA) / Seller (NA)
Ustala: oddział wg ILN z EDI
Wg funkcji: SOA_Ustal_Oddzial_wg_ILN()
l_oddzial := '00' gdy ILN == FIILN firmy
l_oddzial := sfirmy gdy ILN == FIILN oddziału
Szczegółowo
Zapisywanie dokumentów EDI OutBound
--------------------------
ILN dla pól Seller / Buyer ustalany jest wg oddziału operatora
(zmienna: f_soddzial
w RET_ODDAN3(f_soddzial ... @l_fiILN) a tam w DANE_FIRM9()
Gdy f_soddzial == '00' Q_ODDZIAL_00_CENTRALA
to zwróć ILN wskazany w karcie firmy
Gdy różny od '00' to zwróć ILN wskazany w karcie tego oddziału.
DESADV NA_DLL85 Seller.ILN NA_EDI_DESADV_OUT_XML (NA_EDI_DESADV_OUT_XML_AddParties)
ORDRSP NA_DZM80 Seller.ILN EDI_ORDRSP_XML (EDI_ORDRSP_XML_AddParties)
INVOICE NA_ZED10 Seller.ILN EDI_INVOICE_NA
ORDER ZA_DKZ30 Buyer.ILN EDI_ORDER_ZA
Pobieranie dokumentów EDI InBound
-------------------------
TrSoaFunctionManager:
ORDER NA_DEDI1 Seller.ILN :ZamowienieNA_EDI()
INVOICE ZO_DEDI1 Buyer.ILN :InvoiceZO_EDI()
DESADV ZO_DEDI2 Buyer.ILN :ZO_EDI_DESADV_IN_SOA()
Symbol oddziału dla tworzonego dokumentu ustalany jest wg ILN
(zapisanego w znacznikach Seller/Buyer) wg SOA_Ustal_Oddzial_wg_ILN()
Kolejność sprawdzania ILN:
- w karcie bieżącej firmy (f_sfirmy)
gdy zgodny to zwraca symbol centrali '00' Q_ODDZIAL_00_CENTRALA
- w kartach wszystkich oddziałów
gdy zgodny to zwraca symbol oddziału
Uwagi
Symbol oddziału, z którym powiązane jest zamówienie
ustal na podstawie ILN podanego w polu <Seller>.
Sprawdź ILN bieżącej firmy i ILN-y wszystkich oddziałów
Nie bierz f_soddzial bieżącego operatora, bo wczytywanie może być
w trybie autorun z podaniem operatora 'technicznego'.
Z tego wynika, że może się zdarzyć, że w dokumencie będzie oddział
inny niż operatora.
NOTE: ewentualnie w przyszłości dodać parametr operatora:
Wczytuje zam EDI tylko wlasnego oddzialu
Wpływ na dalsze przetwarzanie
a) Parametry
Obecne ustalanie oddziału pobieranych dok EDI wg ILN
nie uwzględnia 0630:
0630 Wybierze tylko własny oddział
Dokument pobrany przez EDI może mieć oddział inny niż operatora.
To może mieć konsekwencje przy pracy z dokumentami oddziałów:
0511 Faktury własnego oddziału w ZO
0619 Faktury własnego oddziału w NA
0712/0906 Zatwierdza dokument oddziału NA/ZO --> MaPrawoZat()
Patrz też:
0510 Przegląda i poprawia własne ZO
0617 Przegląda i poprawia własne NA
0605/0905 Zatwierdza tylko własne NA/ZO
b) Oddział kupuje, centrala płaci --> fil_trawersmultidivisionsdesc
W nagłówku faktury zakupu można wskazać oddział, w którym ma być zapłata
TW_ZODOK_N:PODDZIAL zapłata w oddziale
TW_ZODOK_N:ODDZIAL oddział w którym zarejestrowano dok
Pobieranie faktury ZO EDI :InvoiceZO_EDI() :
* ustala r_oddzial wg Buyer.ILN (patrz wyżej)
* przyjmuje r_poddzial jako domyślny, czyli f_soddzial
^
o--- zaplata w oddziale
-->TrZoDokNag tr15_zob
Wczytując dok EDI Invoice ZO nie ma możliwość ustalenia PODDZIAL,
na stałe jest f_soddzial.
W nagłówku SOAP można wskazać operatora <user> co powoduje zmianę
f_soddzial
TODO: dodać parametr ODEDIPLA ustalający PODDZIAL, np:
[1] PODDZIAL = f_soddzial (obecnie) - płatność w oddziale operatora wczytującego dok EDI
[2] PODDZIAL = ODDZIAL - płatność w oddziale wskazanym w dok (wg ILN)
[3] PODDZIAL = [00] - płatność zawsze w centrali
1.2 SellerHeadquarters
Zapisywanie dokumentów EDI OutBound
--------------------------
ILN dla tego pola EDI ustalany jest wg tej samej reguły jak ILN
dla Seller/Buyer czyli wg f_soddzial (patrz wyżej)
Pobieranie dokumentów EDI InBound
-------------------------
Dane SellerHeadquarters są ignorowane.
Nie mają wpływu na przetwarzanie.
1.3 DeliveryPoint / DeliveryLocationNumber
Zapisywanie dokumentów EDI OutBound
--------------------------
DESADV NA_DLL85 NA_EDI_DESADV_OUT_XML (NA_EDI_DESADV_OUT_XML_AddParties)
Zapisuje DeliveryPoint.ILN wg adresu odbiorcy SHIPTO.ADRILN -> RET_SHIPTO()
ORDRSP NA_DZM80 EDI_ORDRSP_XML (EDI_ORDRSP_XML_AddParties)
Zapisuje DeliveryPoint.ILN wg adresu odbiorcy SHIPTO.ADRILN -> RET_SHIPTO()
ORDER ZA_DKZ30 EDI_ORDER_ZA
Zapisuje DeliveryPoint.ILN wg parametru EDI dostawcy ODEDIILN:
TrTab_edi_odediiln
[1] ILN wskazany w karcie magazynu
[2] ILN wskazany w karcie firmy/oddziału // wg f_soddzial w DANE_FIRM9()
Ustala ILN w TrEdiDeliveryPoints.prg method PrepareDeliveryPoints()
INVOICE NA_ZED10 EDI_INVOICE_NA
Nie zapisuje DeliveryPoint.
Zapisuje DeliveryLocationNumber w nagłówku lub pozycjach EDI
wg adresu odbiorcy SHIPTO.ADRILN -> RET_SHIPTO()
Warunkowo można zmienić (patrz p_strict w EDI_INVOICE_NA)
Patrz też parametr EDI odbiorcy ODEDIDLV TrTab_edi_odedidlv
Pobieranie dokumentów EDI InBound
-------------------------
TrSoaFunctionManager:
ORDER NA_DEDI1 :ZamowienieNA_EDI()
Ustala SHIPTO wg DeliveryPoint.ILN
Szuka w Q_299_NA_Adresy_odbiorcy adresu, dla którego
ADRILN == DeliveryPoint.ILN
DESADV ZO_DEDI2 :ZO_EDI_DESADV_IN_SOA()
Ustala MAG wg DeliveryPoint.ILN
Szuka w Q_245_MG_Tab_mag_grup_jm magazynu, dla którego
TMGILN == DeliveryPoint.ILN --> MG_MagByILN
INVOICE ZO_DEDI2 :InvoiceZO_EDI()
Nie używa DeliveryPoint.
Ustala magazyn wg DeliveryLocationNumber
Szuka w Q_245_MG_Tab_mag_grup_jm magazynu, dla którego
TMGILN == DeliveryPoint.ILN --> MG_MagByILN
Wpływ na przetwarzanie
----------------------
Podczas pobierania dok EDI DESADV i INVOICE ZO
Nie są sprawdzane uprawnienia operatora do magazynów ustalonych wg ILN.
TODO: Kontrolować uprawnienia do magazynów podczas pobierania EDI.
Patrz też: 0714 Widzi magazyny uprawnione
2. Tematy powiązane
Wielo-oddziałowośćEDI Dokumenty sprzedażyEDI Dokumenty zakupuEDI Stosowane oznaczeniaSOA Funkcje OutBound i InBound Słowa kluczowe#e-EDI#Raporty-FormatyDanych#Pomoc-AsystentAI
(AsystentAI)
Materiał szkoleniowy: EDI a oddziały w Trawers ERPCel dokumentu
Zrozumienie, jak program Trawers ERP przypisuje dokumenty EDI do odpowiednich
oddziałów firmy oraz jak działają pola typu `ILN` w procesach importu i eksportu danych.
Podstawowe pojęcia
| Pojęcie | Znaczenie |
| ------------------ | ------------------------------------------------------------------------- |
| ILN | Międzynarodowy numer lokalizacyjny (ILN) przypisany do firmy lub oddziału |
| f_soddzial | Symbol aktualnego oddziału operatora (np. `[00]` dla centrali) |
| EDI | Elektroniczna wymiana danych, np. zamówień, faktur |
| SOAP | Format komunikatów XML między systemami |
| Buyer / Seller | Oznaczenia stron w dokumentach EDI |
| InBound / OutBound | Odbieranie danych z EDI / wysyłanie danych EDI |
Schemat działania (opis uproszczony)OUTBOUND (wysyłka danych z Trawersa)
* Program odczytuje `f_soddzial` --> na tej podstawie wybiera ILN z:
* karty firmy (jeśli `[00]`)
* karty oddziału (jeśli inny symbol, np. `[GD]`)
* ILN trafia do dokumentu EDI jako:
* `Seller.ILN` lub `Buyer.ILN`
* `DeliveryPoint.ILN` (dla adresów wysyłkowych)
INBOUND (odbiór danych EDI do Trawersa)
* Program pobiera `ILN` z dokumentu EDI i szuka:
* najpierw w karcie firmy (czy to centrala?)
* potem w kartach oddziałów
* Znaleziony ILN -> wyznacza symbol oddziału, do którego zostanie
przypisany dokument (niezależnie od operatora wykonującego import)
Praktyczne działaniaPrzypisywanie ILN do oddziału
1. `AD > AD > Oddziały firmy [AD_TOD10]`
2. Wypełnij pole FIILN odpowiednim numerem
3. Zapisz i przetestuj w komunikacie EDI
Ustawienia operatorów
* `f_symop` -> operator logujący się do systemu
* `f_soddzial` -> oddział operatora, wpływa na dokumenty OutBound
Typowe ryzyka i ograniczenia
| Problem | Wyjaśnienie |
| ----------------------------------------------------- | -------------------------------------------------- |
| Dokument EDI trafia do oddziału innego niż operator | Normalne - ILN z dokumentu decyduje, nie operator |
| Brak kontroli uprawnień do magazynu przy imporcie EDI | TODO w systemie: należy to uzupełnić |
| Niewłaściwa płatność (poddział) | Obecnie zawsze ustawiany na `f_soddzial` operatora |
Dobre praktyki
* Sprawdź, czy ILN w systemie zgadzają się z numerami partnerów EDI
* Wydziel operatorów technicznych do wczytywania dokumentów EDI (SOAP <user>)
* Unikaj przypisywania tego samego ILN do więcej niż jednego oddziału
Załączniki TODO
* Zestawienie funkcji EDI w Trawersie
* Lista ILN przypisanych do oddziałów
* Wzorce SOAP z operatorami
***********************************************************************************************************************
Schemat przepływu EDI w środowisku wielo-oddziałowym Trawers ERPOUTBOUND (Wysyłanie dokumentów EDI)
-------------------------------------
o--------------------+ f_soddzial = '00' o----------------------o
| Operator | -->---------------------> | Karta firmy |
| (np. Centrala) | | FIILN centrali |
o--------------------o o----------------------o
v |
| f_soddzial != '00' v wybór ILN
| |
v |
o--------------------o |
| Karta oddziału | <------------<-----------------<---o
| FIILN GDYNIA |
o--------------------o
v
| ILN (np. 5901234567890)
|
v
o-------------------------o
| Pole EDI: Seller/Buyer |
o-------------------------o
v
|
|
v
[Wysyłka EDI]
INBOUND (Odbiór dokumentów EDI)
----------------------------------
[Dokument EDI]
v
|
|
v
o-------------------------o
| Pole EDI: Seller/Buyer |
| ILN z dokumentu |
o-------------------------o
v
|
|
v
o---------------------o brak? o--------------------o
| Karta firmy (FIILN)| -->-----> | Karty oddziałów |
| Centrala [00] | | (szukaj ILN) |
o---------------------o o--------------------o
v v
| |
| Symbol oddziału (np. 'GD') |
o---<----------------------<---o
|
|
v
o--------------------------o
| Przypisz dokument do |
| oddziału: [GD] |
o--------------------------o
v
|
|
v
[Dokument trafia do ERP]
Objaśnienia
* FIILN - numer ILN zapisany w karcie firmy lub oddziału
* f_soddzial - symbol oddziału aktywnego operatora
* Seller / Buyer ILN - pola identyfikujące lokalizacje w dokumencie EDI
* Dane trafiają do właściwego oddziału dzięki dopasowaniu ILN