Auftragsimport über PATEDI_NT

Aus PPwiki
Version vom 20. April 2020, 14:02 Uhr von Schild (Diskussion | Beiträge) (Fremdindex (b_fremd_index) bereinigen)
Wechseln zu: Navigation, Suche

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 abweichende Lieferadresse

Dafür gibt es in E_ORDER_ADDRESS die beiden optionalen Typen DA und DP.

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

2.2 DP – Delivery Partner

Eine vorhandene Kundennummer wird als Lieferadresse eingetragen.

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"


3 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;