9.1.1 XML/CSV-Import zur Bestellung (73I)
Im Einkauf sollen Rückmeldungen von Lieferanten (AB und Rechnung) per CSV-Datei/XML-Datei in die Bestellung übernommen werden. Die Daten werden in unterschiedlichen CSV-Dateien gesendet. D.h. es gibt eine CSV-Datei für die Auftragsbestätigung und eine CSV-Datei für die Rechnung.
Daher werden unterschiedliche Importfunktionen für das Einlesen der Auftragsbestätigung und der ‚Rechnung‘ benötigt. Der Dateiname und Importtyp sollen in der Infra-Maske eingegeben bzw. ausgewählt werden können.
Auftragsbestätigung importieren
In der CSV-Datei können mehrere Bestellpositionen zu unterschiedlichen Bestellungen vorhanden sein. In der ersten Spalte wird fix der Wert ‚Order‘ eingetragen.
 
Dabei sollen folgende Informationen in die Bestellposition übernommen werden
  • Auftragsbestätigungsnummer (AB) vom Lieferanten
  • Datum der AB
  • Bestätigter Liefertermin
 
Beim Einlesen der Informationen aus der CSV-Datei müssen folgende Informationen geprüft werden
  • Menge
  • Preis
  • Ext. Teilenummer Lieferant
Das Einlesen der Informationen wird in einer druckbaren Bildschirmausgabe angezeigt. Liefert eine dieser Prüfungen eine Abweichung oder die Bestellposition ist nicht vorhanden oder bereits bestätigt, wird eine entsprechende Meldung ausgegeben und es werden keine Informationen in die Bestellung übernommen. Es kann beim Splitten von Positionen dazu führen, dass eine Positionsnummer mehrfach im infra vorhanden ist. Dann wird über die Menge und wenn die gleiche Menge mehrfach vorhanden, über den Liefertermin geprüft und dann der kleinste (frühste) Liefertermin verwendet.
Wird in eine Position die AB-Nummer übernommen, ändert sich der Status der Position auf ‚bestätigt‘ (30), wenn der Status vorher kleiner als 30 gewesen ist.
Rechnung importieren
In der CSV-Datei können mehrere Bestellpositionen zu unterschiedlichen Bestellungen vorhanden sein. In der ersten Spalte wird fix der Wert ‚Invoice‘ eingetragen.
Dabei sollen folgende Informationen in die offene Bestellposition übernommen werden
  • Rechnungsdatum
  • Projekt (immer ein Z)
  • Transportunternehmen
  • Trackingnr.
Beim Einlesen der Informationen aus der CSV-Datei müssen folgende Informationen geprüft werden
  • Menge (siehe Besonderheiten, da Bestellpositionen gesplittet werden können)
  • Preis
  • Ext. Teilenummer Lieferant
Das Einlesen der Informationen wird in einer druckbaren Bildschirmausgabe angezeigt. Liefert eine dieser Prüfungen eine Abweichung oder die Bestellposition ist nicht vorhanden bzw. erledigt wird eine entsprechende Meldung ausgegeben und es werden keine Informationen in die Bestellung übernommen.
Es kann beim Splitten von Positionen dazu führen, dass eine Positionsnummer mehrfach im infra vor-handen ist. Dann wird über die Menge und wenn die gleiche Menge mehrfach vorhanden, über den Liefertermin geprüft und dann der kleinste (frühste) Liefertermin verwendet.
Erweiterte Preisprüfung:
Es wird immer ein Preis je 1 gesendet. Die Prüfung des Preises erfolgt über die Preiseinheit in der Bestellung D107, F57. Wenn diese ungleich 1 ist, dann wird der Preis entsprechend umgerechnet. Sollte dann der Preis für 1 St. immer noch abweichen, wird eine Meldung ins Protokoll geschrieben.
Ablauf am Beispiel einer CSV-Datei (AB):
Die CSV-Datei wird intern in ein XML-Objekt1 eingelesen mit nachfolgendem Aufbau:
<Data>
<row>
<Spalte1>Wert Spalte1</Spalte1>
<Spalte2>Wert Spalte2</Spalte2>
<Spalte11>Wert Spalte11</Spalte11>
</row>
</Data>
Pro Tabellenzeile wird ein Knoten <row> mit entsprechenden Inhalten erzeugt.
Wird vom Lieferanten bereits eine XML-Datei zur Verfügung gestellt dann wird diese ohne weitere Umwandlung in das interne XML-Objekt1 eingelesen.
Eine individuelle xsl-Datei erzeugt dann nachfolgendes, internes XML-Objekt2 (Beispiel) aus den verfügbaren XML-Daten:
<Daten>
<Zeile>
<BENummer>Inhalt aus Knoten Spalte1</BENummer>
<ABNummer>Inhalt aus Knoten Spalte5</ABNummer>
<Bemerkung>Inhalt aus Knoten Spalte11</Bemerkung>
</Zeile>
</Daten>
Pro Knoten <row> wird ein Knoten <Zeile> mit entsprechenden Inhalten erzeugt.
Über dieses XML-Objekt2 werden folgende Daten ausgelesen (AB) und in die Bestellung eingetragen:
Knoten
Verwendung
Beispiel
Erforderlich
Typ
Keine (inaktiv)
Order = AB
N
BENummer
Bestellnummer
150612
J
ABNummer
AB-Nummer
12345
J
ABDatum
AB-Datum
09.03.2019
J
BestLiefTerm
Bestätigter Liefertermin
14.05.2019
J
BEPosition
Position Bestellung
10
J
ArtNr
Artikelnummer
79.252.016
J
FremdArtNr
Fremdartikelnummer
Abc123
J
Menge
Menge
4
J
PrsProEHT
Preis pro Einheit
78,12
J
GesamtPrs
Gesamtpreis
312,48
J
Bemerkung
Bemerkung
Test
N
Über dieses XML-Objekt2 werden folgende Daten ausgelesen (RE) und in die Bestellung eingetragen:
Knoten
Verwendung
Beispiel
Erforderlich
Typ
Keine (inaktiv)
Invoice = RE
N
BENummer
Bestellnummer
150612
J
RENummer
Rech-Nummer
12345
J
REDatum
Rech-Datum
09.03.2019
J
ABNummer
AB-Nummer
123456789
J
BEPosition
Position Bestellung
10
J
ArtNr
Artikelnummer
79.252.016
J
FremdArtNr
Fremdartikelnummer
Abc123
J
Menge
Menge
4
J
PrsProEHT
Preis pro Einheit
78,12
J
GesamtPrs
Gesamtpreis
312,48
J
Transport
Transportunternehmen
DHL
J
Tracking
Tracking-Nummer
123.456.789
J
INI-Einstellungen können der Online-Hilfe entnommen werden. Eine Muster-XSL-Datei zur Umwandlung einer CSV-Datei kann bei iN|ES angefordert werden.