Lange Textbausteine in XML

Bild Microsoft Dynamics NAV 5.xx

Lange Textbausteine in XML

Beitragvon laha2108 » 27. April 2020 15:31

Hallo zusammen,

ich stehe gerade ein wenig auf dem Schlauch und vielleicht kann mir ja das geballte Schwarmwissen hier weiterhelfen.

Schreibe aktuell elektronische Produktkataloge direkt ĂĽber das XMLDom von NAV in eine XML-Datei (BMECat1.2), was auch sehr gut funktioniert.
Manko ist, dass ich auch Textbausteine mit ausleite ... bis 1024 Zeichen ist dies kein Problem.
Ist der Textbaustein länger als 1024 Zeichen, fällt das natürlich auf die Nase und es käme zum Error in der Erstellung der XML. Daher habe ich größere Textbausteine bisher immer übersprungen.

Jetzt sind aber leider die meisten Artikel so detailliert gepflegt worden, dass die Mehrheit mehr als 1024 Zeichen hat.

Habe es jetzt mit BIGTEXT probiert, mittels var.Addtext(Textbausteinzeile.text), aber wie bekomme ich dies jetzt an das XMLDom ĂĽbergeben

Bisher läuft dies mittels

IF AddElement(CurrNode, 'DESCRIPTION_LONG', "Extended Text", '', NewChild) > 0 THEN EXIT;

Aber anstelle der Var "Extended Text" (Str:1024) kann ich keine BIGTEXT-Variable ĂĽbergeben.

Vielen Dank fĂĽr Anregungen.
laha2108
 
Beiträge: 47
Registriert: 22. November 2007 11:25
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 5,x

Re: Lange Textbausteine in XML

Beitragvon sweikelt » 28. April 2020 10:07

Benutzeravatar
sweikelt
Microsoft Partner
Microsoft Partner
 
Beiträge: 1776
Registriert: 18. November 2010 10:15
Wohnort: Oschatz
Realer Name: Stephan Weikelt
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3-2018 | D365BC

Re: Lange Textbausteine in XML

Beitragvon Raik Zobel » 7. Mai 2020 16:52

Ich hatte so ein Problem noch nicht, aber speichere lange Texte (das kann z.B. eine E-Mail Vorlage sein) in einer Tabelle in einem Blob Feld.

Dazu benötigt es auch nur 2 Funktionen in der Tabelle:

Text aus dem Blob holen:
Variablen.
Code: Alles auswählen
Name   DataType   Subtype   Length
myText   Text      
StreamIn   InStream      
StreamReader   DotNet   System.IO.StreamReader.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   
Encoding   DotNet   System.Text.Encoding.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   

Code: Alles auswählen
Blob2Text() : Text
CALCFIELDS(BlobField);
IF NOT BlobField.HASVALUE THEN
  EXIT('')
ELSE BEGIN
  BlobField.CREATEINSTREAM(StreamIn);
  StreamReader := StreamReader.StreamReader(StreamIn,Encoding.UTF8,TRUE);
  myText := StreamReader.ReadToEnd;
  StreamReader.Close;
  EXIT(myText)
END;


Text in das Blob speichern:
Variablen:
Code: Alles auswählen
Name   DataType   Subtype   Length
StreamOut   OutStream      
StreamWriter   DotNet   System.IO.StreamWriter.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   
Encoding   DotNet   System.Text.Encoding.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   

Code: Alles auswählen
Text2Blob(myText : Text)
CLEAR(BlobField);
IF myText <> '' THEN BEGIN
  BlobField.CREATEOUTSTREAM(StreamOut);
  StreamWriter := StreamWriter.StreamWriter(StreamOut,Encoding.UTF8);
  StreamWriter.Write(myText);
  StreamWriter.Flush;
  StreamWriter.Close;
END;



VG
Benutzeravatar
Raik Zobel
 
Beiträge: 279
Registriert: 4. März 2013 13:43
Realer Name: Raik Zobel
Arbeitsort: Leipzig
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 4.00SP3, 2013R2, 2016


ZurĂĽck zu NAV 5.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast