[MWI31M-XML]
Diese Sektion wird vom infra-Verbucher (Menü 31M) ausgewertet, wenn in der Sektion [MWI31M] über den Eintrag "Interface.MWI31M-XML =. . ." eine Schnittstelle mit Verweis auf diese Sektion hinterlegt ist.
In den Sektionen [MDE], [HAENEL], [MWI31M-HYDRA] und [MWI31M-VIADAT] sind weitere Schnittstellenkonfigurationen des infra-Verbuchers am Beispiel der Schnittstelle zur mobilen Datenerfassung (infra.mobile), zur Lagersoftware HAENEL und Viadat und BDE Hydra beschrieben.
Type = XML; (Default: SQL)
Dieser Eintrag bestimmt den Typ der Schnittstelle. Abhängig vom Schnittstellentyp werden die weiteren Einstellungen ausgewertet. Manche Einstellungen stehen nur für einen bestimmten Schnittstellentyp zur Verfügung. Folgende Schnittstellentypen werden unterstützt:
|
XML
|
Die Schnittstellendaten werden aus einer Datei im XML-Format gelesen. Unter „Funktionsweise der XML-Schnittstelle“ ist der Ablauf beim Verarbeiten von XML-Dateien beschrieben.
|
|
VIADAT
|
Die Schnittstellendaten werden aus einer SQL-Datenbank gelesen. Im Unterschied zur „normalen“ SQL-Schnittstelle müssen diese aber nicht in einer bestimmten Tabelle mit vorgegebenem Aufbau verfügbar sein. Der Ablauf beim Verarbeiten der Daten ist unter "Funktionsweise der VIADAT-Schnittstelle" beschrieben (s.u.).
|
|
FIXED
|
Die Daten der Schnittstelle werden aus einer Datei mit fester Satzlänge und festen Feldpositionen gelesen. Der Ablauf beim Verarbeiten der Schnittstellendateien ist unter "Funktionsweise der FIXED-Schnittstelle" beschrieben.
|
|
CSV
|
Die Daten der Schnittstelle werden aus einer (oder mehreren) Datei(en) gelesen. CSV steht für Comma-separated Value und bedeutet, dass in der Datei die einzelnen zu importierenden Felder durch Kommata getrennt sind und je Zeile ein Datensatz erwartet wird. Der Ablauf beim Verarbeiten der Schnittstellendateien ist unter "Funktionsweise der CSV-Schnittstelle" beschrieben.
|
|
SQL
|
Die Daten der Schnittstellen werden aus der Tabelle einer SQL-Datenbank gelesen. Ein Beispiel für eine Verbucher-Schnittstelle über eine SQL-Tabelle ist die Schnittstelle zur mobilen Datenerfassung (infra.mobile), die in der Sektion [MDE] beschrieben ist.
|
Funktionsweise der XML-Schnittstelle
Die einzulesenden XML-Dateien werden anhand des mit „Path“ angegebenen Pfads und dem als „File“ angegebenen Dateimuster (mit Platzhaltern) lokalisiert und eingelesen. Jede XML-Datei kann maximal eine Buchung auslösen. Es wird keine Semaphorendatei angelegt – die übernommene XML-Datei wird nach der Übernahme gelöscht.
Die zum Verarbeiten der Buchung erforderlichen Feldnamen (z.B. „postingcode“, „orderno“ oder „bookquantity“) müssen entweder fix durch Einträge der Form „XML.SetValues“ oder aus den XML-Daten über Einträge der Form „XML.Aliases“ ermittelt werden.
Angaben zur XML-Schnittstelle
Zusätzlich zu den Schnittstellenangaben „ErrorHandling“, „IgnoredHandling“, „ErrorLOG“, „SessionLOG“ und „SQLProtTable“ beim Typ „CSV“, siehe Sektion [HAENEL], gelten für den Schnittstellentyp „XML“ folgende Einstellungen:
Path = Verzeichnispfad
Pfad zum Verzeichnis der einzulesenden XML-Dateien. Auf das Verzeichnis muss lesend und schreibend zugegriffen werden können.
File = Dateimuster
Dateiname der einzulesenden XML-Datei(en) mit Platzhaltern.
Beispiel
File=ProdOperationsExp*.xml
XML.Decimal = "Dezimaltrenner" (Default: ".")
Hier kann definiert werden, welcher Dezimaltrenner bei numerischen Werten in der XML-Datei erwartet wird. Diese Einstellung ist notwendig, wenn numerische Werte z.B. mit einem Komma statt mit einem Punkt übergeben werden. Da es in einer XML-Struktur kein „numerisches Format“ gibt, wirkt diese Einstellung nur auf Felder, die bei „XML.Aliases“ mit „N“ (=numerisch) gekennzeichnet sind.
XML.Aliases = (XPath-Ausdruck1,Feldname1[,N]),( XPath-Ausdruck2,Feldname2[,N]),…
Es können beliebig viele Aliase angegeben werden, d.h. Werte aus XML-Knoten oder -Attributen aus der XML-Datei werden dem angegebenen Feldnamen zugeordnet.
Die erforderlichen Feldnamen sind abhängig von der auszuführenden Buchung (Postingcode).
Beispiel
XML.Aliases=("//*//ProcessedParts",bookquantity,N),("//*//Operation//@OrderNo",orderno)
Der Wert des Knotens „ProcessedParts“ an irgendeiner Stelle der XML-Struktur wird als „bookquantity“ an das Buchungsprogramm übergeben. Dabei wird der Feldinhalt numerisch behandelt („N“) und ein ggf. entsprechend „XML.Decimal“ gefundener Dezimaltrenner durch den intern verwendeten Dezimalpunkt ersetzt. Das Attribut „OrderNo“ unter einem an beliebiger Stelle der XML-Struktur gefundenen Knoten „Operation“ wird als „orderno“ an das Buchungsprogramm übergeben.
XML.SetValues = (Feldname1,Wert1),(Feldname2,Wert2),…
Hier können beliebig viele zusätzliche feste Werte angegeben werden, die nicht aus der eingelesenen XML-Struktur mittels „XML.Aliases“ abgeleitet werden können.
Als Werte können auch infra-Makros angegeben werden, um z.B. auf INI-Einträge zuzugreifen.
Beispiel
XML.SetValues=(fromstoreid,"F"),(postingcode,181)
Als Buchungscode (postingcode) soll fix „181“ verwendet werden, d.h. jede eingelesene XML-Datei löst eine Buchung laut Postingcode-Definition 181 (Erzeugnis rückmelden) aus. Außerdem wird das Lager (Feld „fromstoreid“) fix auf den Wert „F“ gesetzt.
