Author info

NAV 2009 : Development 3 Tier- Exportieren eines Textfiles mittels XML Port

erstellt von Rene Gayer am 15. November 2010 18:01

Hallo zusammen!

Wie bereits einige bemerkt haben werden Dataports NICHT unterstützt in der 3 Tier Architektur.

Aus diesem Grunde hat man mit NAV 2009 XML Ports erweitert sodass diese auch als eine “Art Dataport” verwenden werden können.

Wie muss man vorgehen?

Zunächst wie gewohnt die Grundstruktur der Feldabfolge festlegen

image

Woher weiß das XML Port das es ab sofort ein Dataport ist?

Eigenschaften festlegen

image

Gibt es bestimmte Sonderfälle in der Feldstruktur?

Ja, da ein XML Port eine Node gleichzeitig als Variable festgelegt muss für “leer” oder konstante Felder auch mit solchen gearbeitet werden

image

Hat man ASCII / ANSII Konvertierungen?

Bei Bedarf mittels integrierte Codeunit anpassen

image

Wie kann man den XML Port in der 3-Tier Architektur dazu bringen das er den Filenamen NICHT abfragt?

Am besten mit einer Codeunit oder ähnlichem mittels Stream arbeiten:

ffile = Fiel |oStream = OutStream  |xml77777 = XML Port


ffile.CREATE('C:\temp\test.csv');
ffile.CREATEOUTSTREAM(ostream);
xml77777.SETDESTINATION(ostream);
xml77777.EXPORT;

Ich kann das File aber nicht finden?

Vorsicht! In der 3-Tier Architektur ist (wie in meinem Beispiel) C:\Temp am Server!

Möchte ich das File auf einer Client Maschine haben muss dieses heruntergeladen werden.

BeispielFunktion:

ClientFileName    = Text   |o bjScript   =  Automation    'Microsoft Script Control 1.0'.ScriptControl    |CR    Text        1

DownloadToClientFileName(ServerFileName : Text[250];ToFile : Text[250]) : Text[250]
ClientFileName := ToFile;
IF NOT DOWNLOAD(ServerFileName, '', '<TEMP>','', ClientFileName) THEN
  EXIT('');
IF CREATE(objScript,TRUE,TRUE) THEN
BEGIN
  CR := ' '; CR[1] := 13;
  objScript.Language := 'VBScript';
  objScript.AddCode(
  'function RenameTempFile(fromFile, toFile)'+CR+
  'set fso = createobject("Scripting.FileSystemObject")'+CR+
  'set x = createobject("Scriptlet.TypeLib")'+CR+
  'path = fso.getparentfoldername(fromFile)'+CR+
  'toPath = path+"\"+left(x.GUID,38)'+CR+
  'fso.CreateFolder toPath'+CR+
  'fso.MoveFile fromFile, toPath+"\"+toFile'+CR+
  'RenameTempFile = toPath'+CR+
  'end function');
  ClientFileName := objScript.Eval('RenameTempFile("'+ClientFileName+'","'+ToFile+'")');
  ClientFileName := ClientFileName+'\'+ToFile;
END;
EXIT(ClientFileName);

Tags:  Feed Tag,  Feed Tag

NAV

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

© 2010 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement | Disclaimer | Impressum
BlogEngine.NET 2.5.0.6 powered by atwork