[gelöst] XMLPort und Sonderzeichen

25. Oktober 2007 09:51

Moin zusammen,

hat schon einer von Euch im XML-Port in Nav5 beim Importieren das Phänomen gesehen, wie Nav 5 mit den Sonderzeichen, die nach der Methode wie z. B. $ (Kaufmanns-Und & )
codiert sind, umgeht?
Zeichen wie " und & und > und < müssen ja auf diese weise codiert werden, bzw als &quot; &amp; &gt; &lt;
Beim Import werden diese auch richtig erkannt, jedoch davor und dahinter ein zusätzliches Leerzeichen eingefügt, oder danach der Rest des Feldes gar nicht mehr eingelesen.
Beispiel: von
Code:
GmbH & Co.KG
bleibt noch
Code:
GmbH  &
übrig, wenn man es in das Feld Name 2 einliest.
die Umlaute konnten in NAV4 noch als code nach diesem Muster im File sein, nun muss dort unbedingt der UTF8code für den Umlaut stehen.
Und nirgendwo findet man Doku zu den Änderungen.

Das beste ist, das muss in der Clientsoftware von Nav5 geändert worden sein, denn dasselbe XML File, das in Nav5 solche Schwierigkeiten macht, wird auf
demselben Rechner,
demselben Betriebssystem,
demselben Benutzernamen,
demselben Mandanten (Datensicherung in Nav5 erstellt und in Nav4 eingelesen, nachdem aus der Datensicherung erst die Objekte importiert worden sind)
demselben XMLPort aus
derselben XML-Datei
jedoch mit dem Nav4 Client ohne Fehler eingelesen!
Zuletzt geändert von Michael Schumacher am 5. November 2007 18:24, insgesamt 2-mal geändert.

25. Oktober 2007 10:04

Hab ich das richtig verstanden? Du machst einen Import (zum Beispiel eine txt Datei) und in deiner Datenbank kommt dann der Abgeschnittene Name an? Oder wie meinst du das? :oops:

25. Oktober 2007 10:20

Ich mache einen Import aus einer XML-Datei und bekomme aus dem entsprechenden Tag nur einen Teil in das Datenbankfeld.
OK, Du hast Recht, ich hätte das Wort XML-Port auch in den ersten Sätzen des Postings und nicht nur im Titel erwähnen sollen, werde das mal sofort ändern.

25. Oktober 2007 10:29

*sich an den Kopf klatsch* Ich sollte mal richtig lesen lernen. Ich glaub ist noch zu früh am Morgen :wink:

Also ich weiß das zumindest bei 4.0 Navision keine Probleme bei Sonderzeichen bei einem EXPORT macht. Import hab ich noch nicht ausprobiert. Aber da du es ausprobiert hast scheint das ja auch zu gehen.

Bei 5.0 hab ich das noch nicht getestet. Jedoch weiß ich das XML Dateien je nachdem eh Probleme mit Sonderzeichen haben. Ich glaube das ist ein generelles Problem von Markup Languages. In HTML muss man ja auch Sonderzeichen speziell codieren damit die Browser diese lesen können. Vielleicht kann Navision (zumindest das 5.0) damit nicht (mehr) umgehen.

Leider hab ich Nav 5.0 seid ich den PC neu aufgesetzt hab nicht installiert. Sonst würd ich auch was testen. :(

25. Oktober 2007 10:43

JA, in Nav4 funktioniert alles bestens da wird &#223; auch richtig in ß gewandelt, ohne Probleme.
In Nav5 wird das Zeichen auch richtig umgesetzt aber vorher und nachher ein zusätzliches Leerzeichen hinzugefügt.
wenn für ß der UTF8Code à und das Y mit den Ü-Pünktchen oben drauf gewählt wird , dann wird ohne Leerzeichen eingelesen

25. Oktober 2007 10:57

Versuch doch mal im XMLPort Code die Leerzeichen abzuschneiden. Also mit DELCHR.

25. Oktober 2007 11:02

Das hab ich auch schon versucht, das hilft bei den Feldern, die vollständig reinkommen, ich muß aber gezielt nach diesen Umlauten suchen, sonst löscht Navision mir ja auch die Leerzeichen zwischen Vor und Nachname raus...
Ausserdem, da wo abgeschnitten ist, hat schon die Variable im XMLPort den abgeschnittenen Inhalt.

25. Oktober 2007 11:08

Zwar mehr programmieraufwand aber du könntest bevor der XMLPort die Daten verarbeitet (also wenn das geht wie ich mir das vorstelle) eine Abfrage machen (Case Anweisung zum Beispiel) wo du dann kodierst das &quot etc. dann diese Sonderzeichen sind.

Code:
'&quot' = '"';

25. Oktober 2007 11:27

ICh glaube, du hast die Funktion des XML-Ports nicht ganz verstanden,
Der XMLport liest einen Stream ein (z.B. ein geöffnetes File) und stellt dann je nach Definition der Tags den eingelesenen Wert in eine Textvariable oder in ein Tabellenfeld. und genau bei diesem Schritt passiert intern in Nav5 etwas, was in Nav4 nicht passiert ist.
das &amp; vorher im Stream nach & zu wandeln hilft nicht, dann gibts eine Fehlermeldung, weil das & als einleitung für genau diese Sonderzeichencodierung verwendet wird. ähnliches gilt für das &quot;
Das sind aber alles Dinge, die ich selbst schon probiert hab.
Ich hatte jetzt eher auf eine Antwort nach dem Schema:
"Ja, hatte ich auch, MS hat gesagt, die und die DLL muss mit Der und Der ersetzt werden, dann gehts"
gehofft.
Also muss ich erst in NAV4 importieren und dann nach NAV5 konvertieren.

Danke Zwergenweich!

25. Oktober 2007 11:31

Ich habe die Funktion schon verstanden. Ich dachte man könnte aber eventuell den Code in dem "OnPreXMLPort"-Trigger unterbringen. Aber wenn du sagst das es nicht klappt muss das ja wohl stimmen.

25. Oktober 2007 11:36

Nein in dem Trigger kann man nur vor dem einlesen des ersten Bits aus dem Stream noch Code ausführen,...
ICh hab auch schon die Einstellungen UTF8/UTF16 und Version 1.0/1.1 und auch die Format/Evaluate Option in den XMLPort-Properties probiert, hilft auch nicht.
Nur das Einlesen in einem NAV4 Client hilft!

25. Oktober 2007 18:14

Mädels und Jungs, ihr machr mir echt Angst :shock:

Wir sind mitten (bzw. beinahe am Ende) in einem NAV 5 Projekt inkl. BizTalk Anbindung. Jetzt muss ich das doch gleich mal mit Umlauten und Sonderzeichen antesten... GNAAAAHH...

26. Oktober 2007 00:58

Die Angst habe ich schon längst, ich muss einen Kunden mit 15000 Artikeln und 14000 Kunden mit Vorgängen der letzten 2 Jahre aus einem Fremdsystem nach Nav 5 konvertieren, weil dieser gleich mit Nav5 beginnen will. Im Moment lese ich alles in Nav4 ein (bei Stammdaten sollte das noch kein Problem geben, Debitoren schon erfolgreich auch das Einlesen der in Nav 4 erzeugten DaSi in Nav 5) aber vor den Vorgängen graut's mir jetzt schon...

5. November 2007 18:29

kleiner Nachtrag, ich hab am 30.10. mal einen Support-Call aufgemacht und bin gespannt, was und vor allem WANN was passiert....

Edit: Ich habe Antwort erhalten. Dieser Fehler tauchte in Nav4 SP3 Update 2 und 3 schon mal auf und wurde in Update 4 wieder behoben.

In Nav5 hat man diese Korrektur wohl nicht eingebaut gehabt. Es gibt allerdings ein geheimes Update, beschrieben im Partner only Article 943858. Dieser Artikel ist auf normalem Weg nicht zu erhalten. Wer auch von diesem oder anderen Problemen betroffen ist, muss einen Support Call aufmachen, um dieses Platform Update-Rollup zu erhalten. Hier darf ich leider nicht mehr dazu schreiben.