Auftragsimport über PATEDI_NT

Aus PPwiki
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 Adressen

• SU: Supplier, Lieferant, Pflicht

• BY: Buyer, Käufer, Rechnungskunde und Lieferkunde ohne DP (Pflicht). Ist der BY ein Kunde mit Rechnungskunden, dann ändert sich die RKDNR laut dieser Angabe, der DP wird erstmal mit den BY-Daten gefüllt.

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

2.1 DP – Delivery Partner

Eine vorhandene Kundennummer wird als Lieferkunde (b_auftrag.kndnr) eingetragen.

Es wird entsprechend der Einstellung im Kundenstamm > Patedec > Rechnungskunde > Herkunft gesucht:

  • Einstellung nicht aktiv -> Vorgehensweise wie SU (oder Mapping?)
  • Mapping (B_KONVERT): PATEDEC-Kunden-Mapping mit DP.ILN
  • ILN (ILNDATENEMPF): WHERE B_KNDSTAMM.ILNDATENEMPF = DP.ILN
  • Kunde (B_KNDSTAMM): WHERE B_KNDSTAMM.KNDNR = DP.ILN

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