[CC] Problem bei UTF-8 Import von File via Dataport

8. August 2018 15:13

Hallo,
ich versuche gerade eine CSV Datei via Dataport gen NAV zu importieren. Die Datei erhalte ich täglich von einem Kunden, diese soll zukünftig automatisiert eingelesen werden.
Diese Datei ist im "UTF-8 w/o BOM" kodiert. Hat jemand eine Idee wie ich diese sauber gen NAV importiert bekomme? Aktuell fliegen mir die Sonderzeichen um die Ohren.
Die ASCII2ANSIKONVERT/ANSI2ASCIIKONVERT habe ich bereits getestet.
Danke und Gruß

Re: [CC] Problem bei UTF-8 Import von File via Dataport

8. August 2018 15:32

Hallo,

da hilft wahrscheinlich nur eine Automation /Dotnet "Convert" mit Namen.

Gruß Fiddi

Re: [CC] Problem bei UTF-8 Import von File via Dataport

8. August 2018 16:30

Alternativ:
Das Skript "UTF-8 nach OEM850" hier vorher ausführen.

Diese Skripte kann man auch aus NAV heraus starten, mittels Kommandozeile und WSH.
Für automatische Verarbeitung kann man auch das Skript für einen festen Pfad umbauen und/oder den Dateinhalt austauschen wie hier bei OEM850->UTF16..

Skriptstart aus NAV sinngemäß:
Code:
DblQts := 34; // Char
 CmdLine :=
  '%windir%\system32\WindowsPowerShell\v1.0\PowerShell.exe -NonInteractive -NoProfile -File ' +
    FORMAT(DblQts) + TEMPORARYPATH + 'MySkript.ps1' + FORMAT(DblQts);
IF ISCLEAR(WSHShell) THEN
  CREATE(WSHShell,FALSE,ISSERVICETIER);
DummyInt := 1;
RunModally := FALSE;
WSHShell.Run(CmdLine,DummyInt,RunModally);
CLEAR(WSHShell);

Re: [CC] Problem bei UTF-8 Import von File via Dataport

9. August 2018 09:11

Hallo Kowa,
vielen Dank für deinen Hinweis. Ich muss zugeben, dass ich bisher (peinlicherweise) noch nie mit der Powershell gearbeitet habe. Auch Automations kamen bisher kaum zum Einsatz.
Manuell ist es mir gelungen dank deiner PS Funktion die Dateien in ein für NAV sauberes Format zu konvertieren, soweit super!
Nun möchte ich dies natürlich gerne automatisiert aus NAV heraus hinbekommen, um den zukünftig Prozess automatisch laufen zu lassen. Wie gehe ich hier am besten vor?

Ich erhalte täglich eine Datei mit dem Namen "Lieferung_20180809.csv", welche z.B. automatisiert in C:\Konvertierung\ abgelegt wird.
Ich vermute dein Skriptstart erfordert die Einbindung der Automation "'Windows Script Host Object Model'.WshShell". Im Anhang mal ein Screenshot, wie ich dein Beispiel eingebunden habe.
Wie bekomme ich hier nun aber meine Datei aus NAV heraus konvertiert?
Danke und Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [CC] Problem bei UTF-8 Import von File via Dataport

9. August 2018 10:05

Hallo,

mein Tipp mit Convert war nur teilweise Richtig, es muss eigentlich Encondig.Convert heißen.

Hier ein Beispiel :https://blogs.msdn.microsoft.com/nav/2012/12/05/reading-and-writing-unicode-files-using-cal/

Das müsste auch in NAV2009 funktionieren.

Gruß Fiddi

Re: [CC] Problem bei UTF-8 Import von File via Dataport

9. August 2018 11:30

FlensGold hat geschrieben:Wie bekomme ich hier nun aber meine Datei aus NAV heraus konvertiert?

Über TEMPORARYPATH wird in NAV dieser Pfad benutzt.
"C:\Users\<Benutzername>\AppData\Local\Temp".
Wir machen das so, weil bei uns Skripte benutzerabhängig mit Parametern erzeugt werden und sonst Konflikte entstehen würden.
Wenn das Skript nicht benutzerabhängig ist, kann man das natürlich auch woanders in einem einheitlichen Pfad ablegen und TEMPORARYPATH durch diesen Pfad ersetzen.

Für Batchbetrieb kann man im Skript ebenfalls einen festen Pfad mit dem Speicherort der Datei eintragen, also statt $args (das ist der Parameter mit dem Pfad zur Datei) einen festen Pfad verwenden.

Ansonsten: DblQts muss Typ Char sein, nicht Integer! Daraus werden dann ja doppelte Anführungzeichen für die Kommandozeile.

Ich vermute dein Skriptstart erfordert die Einbindung der Automation "'Windows Script Host Object Model'.WshShell".

Richtig :wink: .