es führen bekanntlich viele Wege nach Rom. Die Frage ist jedoch, welcher erfahrungsgemäß der "beste" ist.
Da wir eines Tages auf NAV2013R2 oder NAV2015 upgraden werden, fallen Dataports schon mal aus.
Ich habe fĂĽr mein Projekt zwei Ideen. Doch kurz ein paar Randinformationen.
1. Ich lese Flat File Dateien ein und aus. Es gibt keinen Seperator. Die Länge ist fest definiert.
z.B.
Die Positionierung der einzelnen Felder in der Datei sind fest vorgeschrieben.
Bezeichnung: Quelle
Länge: 10
Bezeichnung: Ziel
Länge: 10
Bezeichnung: Anlegezeit
Länge: 14
- Code: Alles auswählen
ERP EXTERN YYYYMMDDHHMMSS
Eine Zeile entspricht ein Datensatz in der Datei. In NAVwerden die einzelnen Inhalte in einzelne Tabellenfelder geschrieben.
Eine Zeile kann hierbei insgesamt maximal Zeichenlänge von 3000 Zeichen haben.
Dazu kommt, dass mehrere Zeilen in der Datei zu einer "Einheit" gehören können. Quasi eine Masterzeile und dazugehörige Subzeilen, dann wieder eine Masterzeile etc.
Beim Import werden in NAV ja automatisch anhängende leer Zeilen "ERP " einfach abgeschnitten. Für den Export werde ich in einer CU eine Funktion entwickeln, die den String, die aufzufüllende Länge und den FillCharacter mitbekommt und dann mit dem tollen Befehl PADSTR einfach mit dem FillCharacter - in meinem Fall Leerzeilen - auffüllt.
Meine Frage ist nun, welcher Weg für die Schnittstelle die "zukunftssicherste" wäre. Nur mit CU und File-Funktionen oder erstmal die Informationen in eine Tab XML-IN in ein BLOB-Feld reinschreiben und durch zusätzliche Felder wie "Nachrichten-Nr.", Version, Sender, Empfänger etc. anreichern um dann schließlich den Inhalt über XML-Port in definierte Tabellen(Felder) übertragen?
Welche Erfahrungen habt ihr gemacht? Eine Empfehlung für mich? Ist die feste Positionsdefinierung im XML-Port überhaupt möglich? Falls nicht, brauch ich so ein XML-Port überhaupt? Wäre es dann nicht sinnvoller einfach über File-Funktionen einzulesen und dabei immer zu definieren welche Positionsrange was ist und wo hingehört?
Danke fĂĽr den Austausch mit euch im voraus.