PATEDI NT.Auftragsimport: Unterschied zwischen den Versionen
Schild (Diskussion | Beiträge) (→DP – Delivery Partner) |
Schild (Diskussion | Beiträge) |
||
Zeile 18: | Zeile 18: | ||
Wenn eine Zeile gefunden wird steht in IN_2 die Kundennummer. Mit dieser Kundennummer wird in der B_FIRMA nach der korrekten Firma gesucht. | Wenn eine Zeile gefunden wird steht in IN_2 die Kundennummer. Mit dieser Kundennummer wird in der B_FIRMA nach der korrekten Firma gesucht. | ||
Wenn gar nichts gefunden wird, gibt es die Fehlermeldung „OR_2005: Supplier XX not found in master data“. | Wenn gar nichts gefunden wird, gibt es die Fehlermeldung „OR_2005: Supplier XX not found in master data“. | ||
+ | |||
+ | ==Adressen== | ||
+ | • SU: Supplier, Lieferant, Pflicht | ||
+ | |||
+ | • BY: Buyer, Käufer, Rechnungskunde und Lieferkunde ohne DP (Pflicht) | ||
+ | |||
+ | • IV: Invoice Address, wird beim Auftragsimport ignoriert (bzw. muss gleich BY sein?) | ||
+ | |||
+ | • DP: Delivery Partner, Lieferpartner wird beim Auftragsimport zum Lieferkunden (b_auftrag.kndnr) | ||
+ | |||
+ | • DA: Delivery Adress, Lieferadresse, s.u. | ||
+ | |||
+ | |||
==abweichende Lieferadresse== | ==abweichende Lieferadresse== |
Version vom 13. Mai 2020, 10:27 Uhr
Inhaltsverzeichnis
1 In welcher Firma wird der Auftrag angelegt?
Der EDI Auto Importer versucht aus E_ORDER_ADDRESS.iln für ADRESSE_TYP 'SU' (Supplier) die richtige Firma zu bestimmen.
Es wird auf mehreren Stufen gesucht:
1.Es wird geprüft ob es sich beim Eintrag im Feld ILN schon direkt um eine Firmennummer handelt. Wenn ja wird diese übernommen. Es wird angenommen dass in ILN schon die korrekte Firmennummer steht.
2. Wenn nichts gefunden wird: Suche in der B_KONVERT nach PROJEKT, SWITCH, IN_1, OUT
2.1 Suche nach PATEDEC_ORDER’, ‘CUSTOMER’, ABSENDER aus E_ORDER_HEADER, ILN aus E_ORDER_ADDRESS.
2.2 Wenn bei 2.1 nichts gefunden wird, Suche nach ‘PATEDEC_ORDER,’ ‘CUSTOMER’, ‘PATEDI_NT’, ILN aus E_ORDER_ADDRESS.
2.3 Wenn bei 2.2 nichts gefunden wird , Suche ‘ EXPORT_MAPPING / ,’ ‘--- ’, ‘PATEDI_NT’, ILN aus E_ORDER_ADDRESS. Dies ist eine alte Methode, die aber im April 2019 noch funktioniert.
Wenn eine Zeile gefunden wird steht in IN_2 die Kundennummer. Mit dieser Kundennummer wird in der B_FIRMA nach der korrekten Firma gesucht. Wenn gar nichts gefunden wird, gibt es die Fehlermeldung „OR_2005: Supplier XX not found in master data“.
2 Adressen
• SU: Supplier, Lieferant, Pflicht
• BY: Buyer, Käufer, Rechnungskunde und Lieferkunde ohne DP (Pflicht)
• IV: Invoice Address, wird beim Auftragsimport ignoriert (bzw. muss gleich BY sein?)
• DP: Delivery Partner, Lieferpartner wird beim Auftragsimport zum Lieferkunden (b_auftrag.kndnr)
• DA: Delivery Adress, Lieferadresse, s.u.
3 abweichende Lieferadresse
Dafür gibt es in E_ORDER_ADDRESS die beiden optionalen Typen DA und DP.
3.1 DA – Delivery Address
ILN der Delivery Address aus E_ORDER_ADDRESS wird zur KNDLAD des Auftrages:
1. E_ORDER_ADDRESS.ILN vorhanden: Prüfung ob diese ILN bereits als KNDLAD im Kundenstamm hinterlegt ist.
2. Treffer -> KNDLAD laden und in den zu importierenden Auftrag schreiben
3. Kein Treffer -> Setting (im Kundenstamm) zum Einfügen von neuen KNDLAD prüfen -> Treffer -> Einfügen
4. E_ORDER_ADDRESS.ILN leer: Direkter Vergleich der Adressdaten (Name, Strasse, etc…) aus E_ORDER_ADDRESS.ILN und B_KNDLAD
5. Treffer -> KNDLAD laden und in den zu importierenden Auftrag schreiben
6. Kein Treffer -> Neue KNDLAD mit Timestamp zur Identifikation einfügen, mit oder ohne Setting aus 3.?
3.2 DP – Delivery Partner
Eine vorhandene Kundennummer wird als Lieferadresse eingetragen (also als Lieferkunde b_auftrag.kndnr bei z.B. Etter).
Nach der Kundennummer wird gesucht wie nach der Firma, siehe oben
Also kann E_ORDER_ADDRESS.ILN die Kundennummer der Lieferadresse sein? Und wenn nicht, wird dann über B_KONVERT weiter gesucht/gemappt?
Außerdem gibt es noch eine Einstellung (wo?) für eine abweichende Suche (wie?):
"Es wird eine Einstellung im Kundenstamm ausgelesen
Einstellung nicht aktiv -> Vorgehensweise wie SU
Einstellung aktiv -> Einzelsuche in einer der drei möglichen Quellen"
4 Fremdindex (b_fremd_index) bereinigen
Löscht Einträge in b_fremd_index für alle gelöschten oder storniereten Aufträge
DELETE FROM b_fremd_index WHERE lower(tbl_name)='b_auftrcol' AND projekt='STRATEDI' AND substr(header_key,5,1) = 'A' AND header_key not in (SELECT auftrnr from b_auftrag WHERE status != 'ST'); DELETE FROM b_fremd_index WHERE upper(tbl_name)='B_AUFTRAG' AND projekt='STRATEDI' AND substr(tbl_index,5,1) = 'A' AND tbl_index not in (SELECT auftrnr from b_auftrag WHERE status != 'ST'); COMMIT;