[gelöst] Dataport Feldlänge beim Import kürzen

Bild Microsoft Dynamics NAV 4.xx
(ehem. Microsoft Business Solutions-Navision)

[gelöst] Dataport Feldlänge beim Import kürzen

Beitragvon prassl » 27. Juli 2006 10:09

Hallo Community,

ich brauche Hilfe bei folgendem Problem:
Ich muss Kontakte aus einem CSV File ĂĽber einen Dataport in die Kontakttabelle einlesen.

In besagtem CSV File, ist die Feldlänge für "Name" und "Name 2" 50 Zeichen, was nicht in die Kontakte importiert werden kann, da die Feldlänge dort 30 Zeichen beträgt.

Was ich im Moment versuche ist das EInlesen in eine Variable, dort die ersten 30 Zeichen abzuschneiden und manuell in die Kontakttabelle zu speichern.

In welchem Trigger muss ich das angehen ? (Das DEV 1 Manual nennt dazu Appendix G des Application Designer Guide, den ich nicht verfĂĽgbar habe...)

Ich versuche es momentan mit einer Record Variablen und mehreren textVariablen im onBeforeImportRecord() - fliege jedoch immer mit der Fehlermeldung dass die Feldlänge überschritten wird ...

Hat jemand von euch dazu eine Idee ?
ab wann genau (welcher Trigger) ist der zu importierende Record verfĂĽgbar ?
und wo und wie genau mache ich die notwendige ĂśberprĂĽfung ?
MIBUSO war hierzu leider nicht zu gebrauchen, da habe ich nichts dazu gefunden...

danke im Vorhinein
lg
Manuela
Zuletzt geändert von prassl am 27. Juli 2006 16:15, insgesamt 1-mal geändert.
++ Real programmers do not put comments in their code. It was hard to write, so it should be hard to read also ++
Benutzeravatar
prassl
 
Beiträge: 14
Registriert: 11. April 2006 12:36
Wohnort: Graz

Beitragvon rotsch » 27. Juli 2006 11:58

Hallo Manuela

Platziere den Cursor auf dem gewünschsten DataItem im Dataport. Dann rufst du über Ansicht die DataPortFields auf. Auf dem betreffenden Feld drückst du F9. Nun sieht du zwei Trigger. In OnBeforeEvaluateField kannst du nun die Variable Text auf die gewünschte Länge kürzen
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Beitragvon prassl » 27. Juli 2006 16:21

Hallo Roger,

vielen Dank fĂĽr die Hilfe, das hat das ganze wesentlich vereinfacht.
Hier noch der Lösungsansatz, damit in Zukunft niemand mehr darüber stolpert:

globale Variablen:
Name DataType Subtype Length
tempstring Text 30
txtField Text 250

Trigger des betreffenden Dataport-Fields:
Feldname - OnBeforeEvaluateField(VAR Text : Text[1024])

Code: Alles auswählen
tempstring := '';
txtField := Text;

IF (STRLEN(txtField) > 30) THEN BEGIN
   tempstring := COPYSTR(txtField, 1, 30);
   Text := tempstring;
END


Erklärung: nachdem der Parameter Text als VAR an den Trigger übergeben wird, kann sein Wert (call by reference, nicht call by value)
innerhalb des Triggers verändert werden

schönen Abend und danke nochmals
mlg
Manuela :-)
++ Real programmers do not put comments in their code. It was hard to write, so it should be hard to read also ++
Benutzeravatar
prassl
 
Beiträge: 14
Registriert: 11. April 2006 12:36
Wohnort: Graz

Re: [gelöst] Dataport Feldlänge beim Import kürzen

Beitragvon Nav_in_Ulm » 20. April 2016 15:33

Vielen Dank, hat mir heute auch geholfen...
... isch wohne gar nicht mehr in Ulm...
Nav_in_Ulm
 
Beiträge: 38
Registriert: 29. Januar 2015 15:17
Wohnort: Karlsruhe
Realer Name: Andreas S.
Arbeitsort: Karlsruhe
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2015


ZurĂĽck zu NAV 4.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast