![]() |
#1 |
Участник
|
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 ![]() Woher weiß das XML Port das es ab sofort ein Dataport ist? Eigenschaften festlegen ![]() 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 ![]() Hat man ASCII / ANSII Konvertierungen? Bei Bedarf mittels integrierte Codeunit anpassen ![]() 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:temptest.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.*evаl*('RenameTempFile("'+ClientFileName+'","'+ToFile+'")'); ClientFileName := ClientFileName+''+ToFile; END; EXIT(ClientFileName); Далее
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|