[gelöst] CC: Dataport/Import: verschiedene Satzformate

6. Dezember 2011 13:39

Ich habe einen Dataport zum Import in "Gen. Journal Line".

Die Import-Datei (csv) enthält unterschiedliche Satzarten, die unterschiedlich bei den Feldformaten sind und auch unterschiedliche verarbeitet bzw. generell überlesen werden sollen.
Die Satzart ist das erste Feld des Datensatzes.
Datenformat ist variabel mit Trennzeichen ";".

Es sollen nur die Satzarten "B" (Detailbuchung) und "S" /Gegenbuchung) verarbeitet werden - alle anderen sollen überlesen werden (Überschriften, nicht relevante Daten, ...). Die Reihenfolge der Satzarten ist aber nicht von vorneherein bekannt.

Satzart "B" hat mehr und andere Felder als Satzart "S".
Und Satzart "B" hat als 2.Feld ein Datum, Satzart "S" hat als 2.Feld einen Betrag.
Wenn ich bei "Dataport Fields" nun das Format von Satzart "B" eintrage, dann stürzt der Dataport sofort ab, weil der erste Satz nicht Satzart "B" hat und das 2.Feld nicht Datumsformat hat.

Kann ich im Dataport die Daten so "splitten", dass ich je nach Satzart unterscheiden kann ?
- Die Verarbeitung mancher Satzarten komplett überspringen.
- Die "Dataport Fields" separat definieren - abgestimmt auf die Satzart
Zuletzt geändert von raggy am 6. Dezember 2011 21:52, insgesamt 1-mal geändert.

Re: CC: Dataport/Import: verschiedene Satzformate

6. Dezember 2011 13:47

Mach es doch so, erstell einen universellen Dataport, der einfach erstmal alles in eine Puffer-Tabelle einliest und ein weiterer Lauf entscheidet wohin die Daten kommen.

Re: CC: Dataport/Import: verschiedene Satzformate

6. Dezember 2011 14:03

Man könnte das ganze in Textvariablen einlesen, ähnlicher Fall hier, oder die Zeile als ganzes lesen und dann je nach Satzart verschiedene Funktionen aufrufen um die Zeilenfelder zu verarbeiten.

Re: CC: Dataport/Import: verschiedene Satzformate

6. Dezember 2011 14:16

Ja ich hatte schon befürchtet, dass das nur so "unelegant" zu lösen ist :-(

Also definiere ich bei "Dataport Fields" erstmal lauter Text50-Felder.
- Dann frage ich das 1.Feld ab (Satzart) und skippe alle nicht benötigten Sätze.
- Dann übertrage ich je nach Satzart die Text50-Felder fortlaufend in die benötigten Felder - mit EVALUATE, damit es aus dem Text50-Feld ein Datum oder ein Decimal etc. macht.
- Und dann verarbeite ich aus den so gefüllten Feldern weiter.

Korrekt gedacht ???

Re: CC: Dataport/Import: verschiedene Satzformate

6. Dezember 2011 15:06

raggy hat geschrieben:Korrekt gedacht ???

Ja, so geht das. Unelegant ist das aber nicht, sondern ganz normal wenn man Daten vor der Verarbeitung prüft. Die Schnittstellendefinition ist eine Sache, was man dann "serviert" bekommt eine andere :wink:. Theoretisch sollte es natürlich übereinstimmen, aber praktisch erlebt man öfter mal kleine Abweichungen (oder auch große, wenn z. B die Gegenstelle die Software gerade gewechselt hat).

Re: CC: Dataport/Import: verschiedene Satzformate

6. Dezember 2011 15:15

Kowa hat geschrieben:
raggy hat geschrieben:Korrekt gedacht ???
... Unelegant ist das aber nicht, sondern ganz normal wenn man Daten vor der Verarbeitung prüft....

Ich fand es nur ein wenig "unelegant", dass man die Datensätze auf diese Art "auseinanderdröseln" muss. ;-)

Dass die Daten geprüft werden müssen, ist selbstverständlich.
Denn dass bei Schnittstellen Definition und tatsächlich gelieferte Daten in der Praxis nicht identisch sein müssen, das habe ich in fast 35 Jahren Programmierung schon oft genug erfahren :lol: