[GELÖST]Dataport import aus txt importiert nur 2 Datensätze

24. November 2009 17:53

Hi all.

Ich habe ein Problem bei einem Dataport. Ich möchte eine txt datei importieren, leider
werden mir dann nur 2 Datensätze in die Tabelle importiert.
Hier mal die txt:

1270;Reise : 1270.-1;25.04.2008;;Verpflegung (P/I);12;0;12;0;4660;;;;
1270;Reise : 1270.-1;26.04.2008;;Verpflegung (P/I);12;0;12;0;4660;;;;
1270;Reise : 1270.-1;26.04.2008;;Kilometergeld;66;0;66;0;4660;;;;
1270;Reise : 1270.-1;27.04.2008;;Vorschuß erhalten;50;0;50;0;4660;;;;
1270;Reise : 1270.-1;27.04.2008;;Vorschuß zurück;0;0;0;0;4660;;;;
1270;Reise : 1270.-1;27.04.2008;;Vorschuß erhalten;50;0;50;0;4660;;;;
1270;Reise : 1270.-1;27.04.2008;;Vorschuß zurück;10;0;10;0;4660;;;;
1270;Reise : 1270.-2;21.07.2008;;Kilometergeld;9,6;0;9,6;0;4660;;;;
1270;Reise : 1270.-3;28.09.2008;;Test;6,6;0;6,6;0;4660;;;;
1288;Reise : 1288-1;27.03.2008;;Kilometergeld;150;0;150;0;4660;;;;
1288;Reise : 1288-2;24.04.2008;;Kilometergeld;150;0;150;0;4660;;;;


Es werden leider nur die 2 letzten Datensätze der Mitarbeiternummern (Primärkey am Anfang)
ausgegeben:
1270;Reise : 1270.-3;28.09.2008;;Test;6,6;0;6,6;0;4660;;;;
1288;Reise : 1288-2;24.04.2008;;Kilometergeld;150;0;150;0;4660;;;;

Ich hoffe ihr könnt mir helfen, wo mein Fehler liegt.

Vielen Dank im Voraus,
Freundliche Grüße
André
Zuletzt geändert von MasterBade am 25. November 2009 12:29, insgesamt 1-mal geändert.

Re: Dataport import aus txt importiert nur 2 Datensätze

24. November 2009 18:21

PK ist das erste Feld?

Re: Dataport import aus txt importiert nur 2 Datensätze

24. November 2009 18:58

Mir fällt "ad hock" nur auf, das die letzten beiden Zeilen in der zweiten Spalte "nur" 1288-1 stehen haben.
Die anderen Zeilen sind alle mit '.' (Punkt).

Wie wäre es mit diesem Aufbau klappt der?
(Ich habe den Punkt egalisiert)
Code:
1270;Reise : 1270-1;25.04.2008;;Verpflegung (P/I);12;0;12;0;4660;;;;
1270;Reise : 1270-1;26.04.2008;;Verpflegung (P/I);12;0;12;0;4660;;;;
1270;Reise : 1270-1;26.04.2008;;Kilometergeld;66;0;66;0;4660;;;;
1270;Reise : 1270-1;27.04.2008;;Vorschuß erhalten;50;0;50;0;4660;;;;
1270;Reise : 1270-1;27.04.2008;;Vorschuß zurück;0;0;0;0;4660;;;;
1270;Reise : 1270-1;27.04.2008;;Vorschuß erhalten;50;0;50;0;4660;;;;
1270;Reise : 1270-1;27.04.2008;;Vorschuß zurück;10;0;10;0;4660;;;;
1270;Reise : 1270-2;21.07.2008;;Kilometergeld;9,6;0;9,6;0;4660;;;;
1270;Reise : 1270-3;28.09.2008;;Test;6,6;0;6,6;0;4660;;;;
1288;Reise : 1288-1;27.03.2008;;Kilometergeld;150;0;150;0;4660;;;;
1288;Reise : 1288-2;24.04.2008;;Kilometergeld;150;0;150;0;4660;;;;


Ansonsten die Frage, wie arbeitet der DP. Werden die Daten direkt in die Tabelle gespeichert, oder gibt es noch Code der die Daten prüft / verarbeitet?

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 01:21

Wenn der Primärschlüssel nur den ersten Feldwert aufnimmt, können nur die jeweils letzten Datensätze gewinnen. Die ersten wurden schon importiert, aber durch den folgenden Datensatz mit gleichem Primärschlüssel wieder überschrieben. Je nach Datenstruktur müssen zusätzliche Felder in den Primärschlüssel aufgenommen werden, damit der eindeutig wird.

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 09:26

Hi,


schon mal vielen Dank für die Antworten, ja das erste Feld ist der Primarykey.
Und die Daten werden nicht geprüft, sondern direkt in die Table geschrieben.
Habe keinen Code oder ähnliches hinterlegt.

@ Mikka:
Nein, die Lösung funktioniert leider auch nicht :-(

//EDIT
Wie kann ich denn zusätzliche Felder in den Primarykey aufnehmen? Ist das nicht
immer nur ein Feld?

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 09:56

MasterBade hat geschrieben://EDIT
Wie kann ich denn zusätzliche Felder in den Primarykey aufnehmen? Ist das nicht
immer nur ein Feld?


Das erste wenn du eine Tabelle erstellst und ohne weitere Änderungen speicherst, dann ist immer das erste Feld der Prim.Key.
Im Design kann jedoch über -->Ansicht-->Keys der / die Key´s erweitert werden.

Es ist jedoch Vorsicht geboten, da das verändern des Keys auch eine Änderung der Programmlogik mit sich ziehen kann. Sprich, Objekte die auf diese Tabelle zugreifen müssen ggf. angepasst werden.

Wie soll den die Reisekostenabrechnung funktionieren, alles über eine Tabelle, oder über zwei (Kopf- und Zeilentabelle)?
Wenn es ein Tabelle sein soll, muß ein zusätzliches eindeutiges Feld hinzu, z.B. eine Zeilennr.

Kowa hat geschrieben:Wenn der Primärschlüssel nur den ersten Feldwert aufnimmt, können nur die jeweils letzten Datensätze gewinnen

Ja, aber nur je einer von 1270 und 1280 (nicht 2x 1280)!

Mikka hat geschrieben:@ Mikka:
Nein, die Lösung funktioniert leider auch nicht :-(

Ne, kann nicht wie Kowa auch beschrieben hat. Das was zum Zeitpunkt meines Postings nur eine Vermutung.

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 09:58

Kowa hat ja beantwortet, worauf meine Frage abzielte.

Zu deinem PK: du brauchst nicht unbedingt einen mehrteiligen, sondern nur einen eindeutigen. Du könntest also auch deine Datensätze einfach durchnummerieren, so wie das bei den Artikelposten ist. Oder einen sinnvollen mehrteiligen Schlüssel überlegen.

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 10:21

Ah okay. Dann werde ich wohl eine Zeilennummer hinzufügen müssen. Ist es auch möglich den Dataport so
zu programmieren, dass dort Zeilennummern eingefügt werden? Oder muss das schon vorher im Reisekostenformular passieren?


Folgender Maßen soll es funktionieren:
Wir lassen uns gerade ein Formular aus Lexware Reisekosten anfertigen, welches uns Daten ausgibt, die wir benötigen.
Diese sollen dann in Navision importiert werden, um damit zu arbeiten.

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 10:35

MasterBade hat geschrieben:Ah okay. Dann werde ich wohl eine Zeilennummer hinzufügen müssen. Ist es auch möglich den Dataport so
zu programmieren, dass dort Zeilennummern eingefügt werden? Oder muss das schon vorher im Reisekostenformular passieren?

Besser programmierst du deine Tabelle so, dass beim Insert automatisch eine neue Nummer generiert wird, beispielsweise aus einer Nummernserie. Dann brauchst du im Dataport eigentlich nur noch alle Felder außer des PKs einzulesen, machst ein Insert(true) und anschließend ein Skip.

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 12:29

McClane hat geschrieben:
MasterBade hat geschrieben:Ah okay. Dann werde ich wohl eine Zeilennummer hinzufügen müssen. Ist es auch möglich den Dataport so
zu programmieren, dass dort Zeilennummern eingefügt werden? Oder muss das schon vorher im Reisekostenformular passieren?

Besser programmierst du deine Tabelle so, dass beim Insert automatisch eine neue Nummer generiert wird, beispielsweise aus einer Nummernserie. Dann brauchst du im Dataport eigentlich nur noch alle Felder außer des PKs einzulesen, machst ein Insert(true) und anschließend ein Skip.


Perfekt, dass war die Lösung vielen Dank. :-D
Jetzt muss ich nur noch die Zeichen von Ansi -> Ascii formatieren, da umlaute dargestellt werden.

Vielen Dank!

Re: Dataport import aus txt importiert nur 2 Datensätze

25. November 2009 12:46

MasterBade hat geschrieben:Jetzt muss ich nur noch die Zeichen von Ansi -> Ascii formatieren, da umlaute dargestellt werden.


Schau mal hier, das gibt es schon fertig im Downloadcenter:
Downloadcenter - Tools NAV / Textmanagement

Re: [GELÖST]Dataport import aus txt importiert nur 2 Datensätze

26. November 2009 14:58

Ja danke Mikka :-D
Aber die CodeUnit Ansi <-> Ascii haben wir schon, nur bin ich iwie zu blöde die anzuwenden.

Re: [GELÖST]Dataport import aus txt importiert nur 2 Datensätze

26. November 2009 17:34

:lol:
Dann geht es dir mir so wie mir, vor zwei Tagen hatte ich das gleiche Problem.
Ich habe getüftelt, aber irgendwie hat es nicht geklappt. So habe ich es in Verwendung:

Evtl. ein FORMAT(DeineCodeVariable), wenn es ein Code-Feld ist.
Code:
// Von Navision nach Windows
TempTXT1 := ASCII2ANSI(TempTXT2);

// Von Windows nach Navision
TempTXT2 :=  ANSI2ASCII(TempTXT1);

Re: [GELÖST]Dataport import aus txt importiert nur 2 Datensätze

27. November 2009 10:00

Danke Mikka, habe mal ne Verständnisfrage :-D

Also ich möchte in meiner Tabelle die Spalte "Kostenart" von Ansi2Ascii formatieren.

TempTXT1 = meine Spalte "Kostenart"
TempTXT2 = Ich sage es mal ganz unverblümt: Was ist das? :-) Ich verstehe es nicht...
Stehe aber auch im Moment ziemlich auf dem Schlauch...
Für Hilfe bin ich dir sehr dankbar.

Re: [GELÖST]Dataport import aus txt importiert nur 2 Datensätze

27. November 2009 10:06

Insofern Kostenart vom Typ Text oder Code ist, reicht schätzungsweise vor dem Export des Datensatzes:
Code:
DeineTabelle.Kostenart:=Ansi2Ascii(DeineTabelle.Kostenart);

Re: [GELÖST]Dataport import aus txt importiert nur 2 Datensätze

27. November 2009 11:21

Lol,

Danke McLane, läuft alles erste Sahne :-D
Jetzt ist das Thema endgültig geschlossen.

Danke an alle für die vor allem schnelle Hilfe, echt ein Top Forum :-)