infra:NET Expert
 
×
[HAENEL]
Diese Sektion wird vom infra-Verbucher (Modul MWI31M) ausgewertet, wenn in der Sektion [MWI31M] über den Eintrag "Interface.HAENEL=. . ." eine Schnittstelle mit Verweis auf diese Sektion hinterlegt ist.
Im infra-Standard wird hier die Schnittstelle zur Hänel-Lagersoftware konfiguriert, siehe Schnittstellendokumentation LSS-HAENELSOFT.PDF.
Dort sind auch alle programmspezifischen Einstellungen zu der Lagerschnittstelle beschrieben, während nachfolgend "nur" die für den technischen Ablauf notwendigen Einstellungen beschrieben sind.
In den Sektionen [MDE] (SQL-Schnittstelle) und [MWI31M-HYDRA] (feste Satzlänge) sind weitere Schnittstellenkonfigurationen des infra-Verbuchers am Beispiel der Schnittstellen zur mobilen Datenerfassung (infra.mobile) und zur Hydra-Software beschrieben.
Type = CSV; (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:
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.
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" in Sektion [MWI31M-HYDRA]  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 CSV-Schnittstelle
Für die durch eine Schnittstelle vom Typ CSV zu verarbeitenden Buchungsarten wird über Einträge der Form "PostingCode.Nr" definiert, welche Datei(en) in regelmäßigen Abständen auf zu verarbeitende Buchungen überprüft werden sollen. Die Abstände, in denen auf die Datei(en) zugegriffen wird, werden über die Einstellung "Frequency" bestimmt.
Um den gleichzeitigen Zugriff auf eine Schnittstellendatei von mehreren Seiten aus zu verhindern, kann eine Semaphoren-Datei eingesetzt werden, die vom infra-Verbucher und dem jeweiligen Buchungslieferant beachtet werden muss (siehe Einstellung SyncHandling).
Ohne Sempaphoren-Datei wird versucht, die Schnittstellendatei vor der Verarbeitung umzubenennen (in *.TMP).
Die Semaphoren-Datei hat den gleichen Namen, wie die jeweilige Schnittstellendatei. Über die Extension der Semaphoren-Datei wird der Zugriff auf die Schnittstellendatei serialisiert:
Extension OK
Die Schnittstellendatei ist nicht im Zugriff und kann verwendet werden.
Extension HSO
Die Schnittstellendatei wird vom Buchungslieferanten (HänelSoft) verwendet. infra:NET benötigt die HSO-Datei nicht, ist aber darauf vorbereitet, dass es eine geben könnte. Der Verbucher wartet dann ein wenig und schaut dann noch mal, ob sie schon wieder „OK“ heißt.
Extension HST
Die Schnittstellendatei wird vom infra-Verbucher verwendet.
Eine Zeile, die durch den infra-Verbucher verarbeitet wurde, wird aus der Schnittstellendatei gelöscht. Zeilen, die nicht verarbeitet werden, können wahlweise ebenfalls gelöscht werden oder erhalten bleiben (siehe Einstellung "IgnoreHandling").
Ohne Semaphorendatei werden die Schnittstellendaten (auch im Fehlerfall) immer gelöscht.
Für jede verarbeitete Zeile aus der Schnittstellendatei wird ein Eintrag in einer Protokolldatei erstellt (siehe Einstellung "ProcessLOG").
Zusätzlich wird im Fehlerfall ein Eintrag in einer Fehler-Protokolldatei abgestellt (siehe Eintrag "ErrorLOG").
In beiden Protokolldateien werden zusätzlich im Fehlerfall (oder bei Warnungen) die Antworten des jeweiligen infra-Buchungsprogramms protokolliert.
Aufbau der CSV-Schnittstellendatei(en)
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.
In der ersten Zeile der Schnittstellendatei werden die Feldnamen (Spaltennamen) der in den darauffolgenden Zeilen übergebenen Felddaten erwartet. Die Feldnamen müssen dabei genau wie die Datenfelder durch Kommata getrennt sein. Als Zeilenende wird zumindest das Zeilenumbruch-Zeichen (Carriage Return = 0D = ASCII 13) erwartet. Auch die Kombination Zeilenumbruch+Vorschub (CR+LF = 0D+0A = ASCII 13+10) wird korrekt verarbeitet.
CSVDelimiter = “Spaltentrenner“; (Default: “,“)
Hier kann ein alternativer Trenner für die einzulesenden CSV-Dateien angegeben werden. Der Spaltentrenner kann aus mehreren Zeichen bestehen.
CSVMapPostingCodes = Spalte,“erster INI-Schlüsselteil“
Bei Verwendung dieses Eintrags werden in der CSV-Datei keine Spalten/Feldnamen in der ersten Zeile erwartet. Stattdessen wird hier beschrieben, in welcher Spalte (Zählung ab 1) der CSV-Datei der zweite INI-Schlüsselteil für die Aufbaubeschreibung des jeweiligen Datensatzes zu finden ist und mit welchem ersten INI-Schlüsselteil der komplette Schlüssel für den Zugriff auf INI-Sektion gebildet werden soll.
Beispiel
CSVMapPostingCodes=1,“PC_“
In der CSV-Datei steht folgender Datensatz:
"A1","10","97654","1910001","Schraube","237864","99","St","1","2","49"
Die Aufbaubeschreibung zu diesem Datensatz wird beim INI-Schlüssel „PC_A1“ erwartet:
PC_A1="183",,"posno","orderno","itemno","usstring1","usstring2",…
Das erste Element der Aufbaubeschreibung definiert den für die Buchung zu verwendenden PostingCode (hier 183) – die folgenden Elemente definieren die den CSV-Spalten zuzuordnenden Feldnamen:
bei leerem Feldnamen wird die betroffene Spalte ignoriert.
Über den PostingCode wird wie üblich die Beschreibung der Buchungsaktion laut INI-Schlüssel „PostingCode.183“ gefunden. Dabei werden allerdings die Angaben „BuchungsFeldID“ und „BuchungsFeldInhalt“ nicht verwendet.
Debug = Yes; (Default: No)
Mit der Einstellung Yes wird im infra-Protokollverzeichnis (i.d.R. INFRA\GRAFIK\PROT) eine XML-Datei DEBUG31M.XML für den zuletzt bearbeiteten Buchungsauftrag erzeugt. Die XMl-Datei enthält die Datenstruktur, die an das jeweilige Buchungsprogramm übergeben wurde. Diese Einstellung sollte nur für die Fehlerdiagnose eingesetzt werden.
DefaultAction = Buchungsart
Dieser Eintrag dient als Vorbelegung für die Auswahlliste «Buchungsarten» beim Start des Verbuchers. Fehlt der Eintrag, so wird in der Auswahlliste <Alle> vorbelegt und der Verbucher verarbeitet alle bekannten Buchungsvorgänge aus der Schnittstellendatei. Die Auswahl kann manuell nach Aufruf des Verbuchers geändert werden. Wird eine bestimmte Buchungsart angegeben, muss die Buchungsart in mindestens einem Eintrag der PostingCode-Enträge bei Schlüsselwort „PostingCode.Code“ definiert sein.
Beispiel
DefaultAction = Material Rückmeldung CSV
PostingCode.184=Material Rückmeldung CSV,x:\31M\PC184.TXT,postingcode,184,…
ErrorHandling = Wert; (Default: 0)
Dieser Eintrag bestimmt die Reaktion des Verbuchers auf Fehler, die bei der Abarbeitung einer Buchung aus der CSV-Schnittstellendatei auftreten.
0
Die fehlerhafte Buchung verbleibt in der Schnittstellendatei und wird beim nächsten Buchungsintervall erneut verarbeitet. Der aufgetretene Fehler wird in der Fehlerprotokolldatei (siehe INI-Einstellung "ErrorLOG") genau einmal protokolliert, auch wenn beim erneuten Buchungsversuch wieder ein Fehler auftreten sollte. Der Protokolleintrag wird mit *F* markiert.
Ohne Sempahoren-Datei (SyncHandling=3) werden fehlerhafte Buchungen immer gelöscht.
1
Die fehlerhafte Buchung wird aus der Schnittstellendatei gelöscht. Der aufgetretene Fehler wird in der Fehlerprotokolldatei (siehe INI-Einstellung "ErrorLOG") protokolliert und mit *F* markiert.
2
Die fehlerhafte Buchung wird aus der Schnittstellendatei gelöscht. Der aufgetretene Fehler wird in der Fehlerprotokolldatei (siehe INI-Einstellung "ErrorLOG") und der Buchungsprotokolldatei (siehe INI-Einstellung "ProcessLOG") protokolliert und mit *F* markiert.
Hinweis
Tritt beim Ausführen einer Buchung eine Warnung auf, wird die betroffene Buchungszeile aus der CSV-Schnittstellendatei gelöscht und im Buchungsprotokoll (siehe INI-Einstellung "ProcessLOG") mit *W* markiert.
ErrorLOG = Protokolldatei
In der hier angegebenen Protokolldatei werden nur die Buchungszeilen der Schnittstellendatei(en) protokolliert, bei denen bei der Verarbeitung ein Fehler aufgetreten ist. Der Aufbau der Protokolldatei ist mit dem Aufbau der Buchungsprotokolldatei (siehe Eintrag "ProcessLOG") identisch.
Frequency = 5; (Default: 0)
Dieser Wert gibt die Zeit in Sekunden an, die der Verbucher zwischen den Zugriffen auf die Schnittstellendatei(en) verstreichen lässt, um zum Beispiel dem Buchungslieferanten die Möglichkeit zu geben, neue Daten in die Schnittstellendatei zu schreiben.
IgnoredHandling = Wert (Default: 0)
Dieser Eintrag bestimmt die Reaktion des Verbuchers auf Buchungszeilen in der CSV-Schnittstellendatei, die keinem PostingCode-Eintrag zugeordnet und daher nicht verarbeitet werden können.
0
Die unerkannte Buchung verbleibt in der Schnittstellendatei und wird beim nächsten Buchungsintervall erneut verarbeitet. Die Buchungszeile wird in der Fehlerprotokolldatei (siehe INI-Einstellung "ErrorLOG") genau einmal protokolliert, auch wenn beim erneuten Versuch keine Buchungsart zugeordnet werden kann. Der Protokolleintrag wird mit *I* markiert.
Ohne Semaphoren-Datei (SyncHandling=3) werden nicht verarbeitete Buchungszeilen immer gelöscht.
1
Die unerkannte Buchung wird aus der Schnittstellendatei gelöscht. Die Buchungszeile wird in der Fehlerprotokolldatei (siehe INI-Einstellung "ErrorLOG") protokolliert und mit *I* markiert.
2
Die unerkannte Buchung wird aus der Schnittstellendatei gelöscht. Die Buchungszeile wird in der Fehlerprotokolldatei (siehe INI-Einstellung "ErrorLOG") und der Buchungsprotokolldatei (siehe INI-Einstellung "ProcessLOG") protokolliert und mit *I* markiert.

IsoInput = Yes; (Default: No)
Sobald die Daten in der Schnittstellendatei im ISO-Zeichensatz vorliegen, muss der Eintrag "IsoInput=Yes" gesetzt werden, damit die Daten korrekt gelesen und die Protokolldaten im ISO-Zeichensatz geschrieben werden können. Bei No werden die Daten im DOS-Zeichensatz erwartet.
PostingCode.Nr = Buchungsart,Datei,BuchungsFeldID,BuchungsFeldInhalt,ProgrammID/IPS:Dateiname, “Protokolltext“
Über die PostingCode-Einträge wird definiert, welche Buchungsarten der Schnittstelle der Verbucher unterstützen soll, aus welcher Schnittstellendatei die Buchungen kommen, welches Buchungsprogramm oder welche IPS-Datei gestartet wird und wie der zugehörige Protokolleintrag aussehen soll.
Die Angabe Nr im Schlüssel dient lediglich der eindeutigen Unterscheidung der unterschiedlichen PostingCode-Einträge und hat für die CSV-Schnittstelle keine weitere Bedeutung.
Die angegebene Buchungsart ist ein Text, der in der Auswahlliste «Buchungsarten» des Verbuchers angezeigt wird.
Der Parameter Datei gibt Pfad und Namen der Schnittstellendatei(en) an, in der/denen nach der im jeweiligen Eintrag definierten Buchungsart gesucht wird. Je PostingCode-Eintrag können unterschiedliche Schnittstellendateien angegeben werden, wenn die jeweiligen Buchungen in unterschiedlichen Dateien geliefert werden. In der Regel werden die verschiedenen Buchungen allerdings aus einer einzigen Datei stammen, so dass in jedem PostingCode-Eintrag einer Schnittstellendefinition auf die gleiche Schnittstellendatei verwiesen wird.
Wildcards im Dateinamen erlauben die Suche nach mehreren Dateien je Buchungsart, z. B.l wenn das Quellsystem je Datensatz eine eigene CSV-Datei liefert.
Hinweis: Bei Verwendung von „CSVMapPostingCodes“ wird die tatsächlich auszuführende Buchungart (PostingCode) dynamisch über den Inhalt der CSV-Datei(en) ermittelt.
Die BuchungsFeldID ist der Name des Feldes, dessen Inhalt in jeder Buchungszeile der Schnittstellendatei mit dem Parameter BuchungsFeldInhalt verglichen wird. Nur bei Übereinstimmung wird die jeweilige Buchungszeile durch diesen PostingCode-Eintrag verarbeitet. Die BuchungsFeldID muss in der ersten Zeile der Schnittstellendatei vorhanden sein (siehe "Aufbau der CSV-Schnittstellendatei(en)").
Alternativ kann durch die Angabe eines Sterns („*“) als BuchungsFeldID dieser Prüfmechanismus außer Kraft gesetzt werden. Der Parameter BuchungsFeldInhalt hat dann keine Bedeutung und es werden alle in der Datei gefundenen Buchungssätze über den gleichen Postingcode (=PostingCode.Nr) verarbeitet.
Die ProgrammID gibt an, welches infra-Programm zum Verarbeiten der gefundenen Buchung gerufen werden soll. Das jeweilige Programm muss für das automatische Verarbeiten von Buchungen vorbereitet sein. Alternativ kann mit "IPS:Dateiname" auch eine IPS-Datei angegeben werden, die dann direkt vom Verbucher für die entsprechende Buchungsart ausgeführt wird. Auch eine IPS-Datei muss für die Verarbeitung dieser Buchungen vorbereitet sein.
Der angegebene Protokolltext wird im Protokollfenster des Verbuchers angezeigt, wenn eine entsprechende Buchung verarbeitet wird. Innerhalb des Textes können Felder aus der Buchungszeile der CSV-Schnittstellentabelle ausgegeben werden. Dazu wird im Text das @-Zeichen gefolgt vom gewünschten Feldnamen der CSV-Schnittstellendatei angegeben (entspricht dem Spaltennamen aus der ersten Zeile).
Beispiel
PostingCode.1=Materialentnahme,S:\INFAR\HAENEL\HAENELJOURNAL.CSV,BART,R,571,"BART: @BART, Auftrag: @id, Teilenummer: @itemid, Charge: @charge, Bewegte Menge: @requiredquantity, Lagerplatz: @LAGPLATZ"
Findet der Verbucher in der Schnittstellendatei HAENELJOURNAL.CSV eine Buchungszeile mit dem Wert R in der durch Spalte BART, erscheint im Protokollfenster der angegebene Text. Die @-Angaben werden dabei durch die entsprechenden Feldinhalte der Buchungszeile ersetzt.
Das infra-Programm "571" wird zur Verarbeitung der Buchung gestartet.
ProcessLOG = Protokolldatei
In der angegebenen Protokolldatei werden die verarbeiteten Buchungszeilen der Schnittstellendatei(en) protokolliert. Dabei werden Datum und Uhrzeit, eine Fehlerkennung, die verarbeitete Buchungszeile und ggf. die Antwort des Buchungsprogramms in einer Protokollzeile protokolliert. Der Aufbau einer Protokollzeile ist dabei wie folgt:
[Datum Uhrzeit] Kennung, Buchungszeile aus Schnittstellendatei, Antwort des Buchungsprogramms
Abhängig von der Verarbeitung der Buchung wird folgende Kennung protokolliert:
 
Keine Kennung = die Buchung wurde ohne Fehler oder Warnung verarbeitet.
*F*
Bei der Verarbeitung der Buchung ist ein Fehler aufgetreten. Die Buchung wurde nicht verarbeitet.
*W*
Bei der Verarbeitung der Buchung wurde vom Buchungsprogramm eine Warnung ausgegeben. Die Buchung wurde allerdings (ggf. unvollständig) verarbeitet.
***
Die Buchung konnte nicht identifiziert und verarbeitet werden und wurde aus der Schnittstellendatei gelöscht.
Hinweis
Wenn keine Protokolldatei angegeben wird, wird kein Protokoll geschrieben.
SessionLOG = 1; (Default: 0)
Mit dieser Einstellung kann festgelegt werden, wie detailliert die Arbeit der Verbucherschnittstelle in der sitzungsabhängigen LOG-Datei protokolliert werden soll:
0
Es werden keine LOG-Einträge erzeugt.
1
Es werden nur Fehler protokolliert.
2
Es wird jede Buchung protokolliert.

SQLProtTable = SQLTabelle
Für die Verarbeitung von CSV-Daten kann eine zusätzliche Protokollierung der Buchungsaktionen in eine SQL-Tabelle eingeschaltet werden. Dazu wird hier der Name der zu verwendenden SQL-Tabelle angegeben. Der Connectionstring wird aus dem entsprechenden Eintrag dieser INI-Sektion verwendet.
In der SQL-Tabelle werden wie bei „normalen“ Buchungen per SQL-Schnittstellentyp die Spalten „status“, „errorcode“, „errortext“ und „bookingdate“ versorgt. Zusätzlich werden alle Spalten der CSV-Datei übergeben. D.h. in der SQL-Tabelle müssen sowohl die 4 genannten Spalten als auch alle aus der/den CSV-Datei(en) kommenden Spalten definiert sein.
SyncHandling = Wert; (Default: 0)
0
Semaphoren-Dateien werden wie oben beschrieben (siehe „Funktionsweise der Schnittstelle“) verwendet. Bei vorhandener HSO-Datei erfolgt keine Abarbeitung. Kann die OK-Datei nicht in *.HST umbenannt werden, erfolgt ebenfalls keine Abarbeitung. Nach der Übernahme wird die HAST-Datei wieder in *.OK umbenannt. Die CSV-Datei wird geleert, aber nicht gelöscht.
1
Semaphoren-Dateien werden wie bei 0 verwendet – die OK-Schutzdatei bleibt aber während der Abarbeitung der CSV-Datei erhalten, wird danach aber gelöscht. Die CSV-Datei wird geleert, aber nicht gelöscht.
2
Funktionsweise wie bei 1 – allerdings wird die leere CSV-Datei nach der Abarbeitung gelöscht.
3
Es werden keine Semaphoren-Dateien verwendet. Die CSV-Datei wird mehrfach versucht in *.TMP umzubenennen – erst wenn das gelingt, wird die Datei abgearbeitet. Die CSV-Datei ist nach der Abarbeitung auf jeden Fall gelöscht (siehe auch Einstellungen zu „IgnoredHandling“ und „ErrorHandling“).
Falls bei der Bereitstellung einer neuen Schnittstellendatei bereits eine entsprechende TMP-Datei vorhanden ist, wird zunächst versucht, diese Datei abzuarbeiten.