Problem beim exportieren eines XMLPort

5. Juli 2012 08:46

Hallo zusammen,

Ich habe folgendes Problem.
Ich soll einen XMLPort schreiben, der die gewünschten Daten in eine txt-Datei schreibt.
Dies soll allerdings nicht in XML-Format passieren sondern in CSV.

Ich habe schon alles mögliche ausprobiert und auch gegoogelt, aber ich finde keinen richtigen Lösungsansatz.
Kann mir da jemand helfen?

Info:
Zur Zeit sieht es wie folgt aus.

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Root>
<SalesShipmentHeader>
<Belegart>VLI</Belegart>
<PosNr./>
<Lieferscheinbeleg-Nr.>VL12-00000</Lieferscheinbeleg-Nr.>
<Lieferscheinbuch.-Datum>01.03.12</Lieferscheinbuch.-Datum>
...
...


Dies soll allerdings zu einer Zeile verfassz werden.

VLI||VL12-00000|01.03.12|...|...|...


Den FieldSeperator habe ich schon gesetzt.

LG
Kai

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 08:52

Du kannst in den XML-Port-Eigenschaft das Format von XML auf VariableText ändern.
Dann macht NAV daraus eine CSV-Datei.

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 09:18

Das mit dem XMLPort funktioniert aber nur wenn er den RTC benutzt.

Gruß, Fiddi

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 10:21

Hallo zusammen,

Erst einmal danke für die Antworten

@ Danjo: Die Eigenschaft "Format" steht bereits auf "Variablen Text"

@fiddi: Wie meinst du das? kann ich das nicht zum ausprobieren im Classic machen? Da ruf ich auch über eine CodeUnit den XMLPort auf. Teste dies zur Zeit nämlich im Classic. Gibt es da einen Unterschied, wenn man den XMLPort in CLassic oder in RTC öffnet?

LG

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 10:23

Ja, es gibt einen Unterschied zwischen RTC und CC bei XML-Ports.
Wie du ja bereits gesagt hast, benötist du einen Aufruf des XML-Ports (z.B. aus einer Codeunit heraus) im CC.
Du kannst aber den XML-Port direkt ins Menü des RTC hängen und dann aus dem RTC heraus öffnen.
Dort erscheint dann eine Requestpage und durch deine Einstellungen in den Eigenschaften verhält sich der XML-Port im RTC dann wie der Dataport im CC.

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 10:47

Das heißt also, wenn ich den XMLPort im CC starte schreibt er mir nur in XML-Form.

Durch das starten im RTC kann er aber auch in CSV-Form schreiben?

Sprich meine Einstellungen waren die ganze Zeit richtig. Da ich allerdings aus dem CC getestet habe haben sie nicht richt gegriffen.

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 11:01

Genau so ist es.
Diese "Erweiterung" des XML-Ports wurde nur für den RTC gemacht, da hier ein Ersatz für Dataports benötigt wird.

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 11:05

Ah, OK.

Gibt es im Code auch einen Unterschied was das Aufrufen des XMLPorts angeht?

Im Classic benutzte ich folgendes.:

ofile.CREATE(SalesSetup."Import FTPTransferPath" + 'VK-Lieferschein-' + SalesShptHeader."No." + '.txt');
ofile.CREATEOUTSTREAM(ostream);
XMLPORT.EXPORT(50001,ostream);
ofile.CLOSE;


Wenn ich dies nun auf eine Page übertrage, dann geht er zwar durch den XMLPort, aber er erstellt mir keine Datei.
Liegt dies am Code oder woram kann dies liegen?

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 11:08

Wie schon geschrieben brauchst du zum Aufruf keinen Code mehr.
Einfach die Page in eine RTC-MenuSuite einbinden und dann direkt öffnen.
Du kannst den XML-Port meine ich auch mit RUN direkt starten.
Aber die komplette STREAM-Geschichte fällt in dem Fall weg. :wink:

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 11:18

Das mit keinem Code ist mir nicht so verständlich.

Ich habe eine Page, zB die gebuchten Lieferscheine. Dort habe ich ein Action-Button, womit ich dem XMLPort aufrufen möchte.
Zuvor soll noch eine Abfrage kommen, ob man wirklich exportieren möchte.
Dann muss ich doch in dem ACtion Button einen Code schreiben.

zB.:

IF CONFIRM(Text50000,TRUE) THEN BEGIN
ofile.CREATE(SalesSetup."Import FTPTransferPath" + 'VK-Lieferschein-' + SalesShptHeader."No." + '.txt');
ofile.CREATEOUTSTREAM(ostream);
XMLPORT.EXPORT(50001,ostream);
ofile.CLOSE;
END;

Oder merkt der sich den Aufruf automatisch?

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 11:30

Schaue dir doch einmal die RunObject-Eigenschaft der Actio an.
dort kannst du auch XML-Ports wählen.
Benötigt es die Abfrage wirklich wenn ja eh noch eine Request-Page aufgeht?

Re: Problem beim exportieren eines XMLPort

5. Juli 2012 11:35

Wir haben den Zielpfad in einer Tabelle hinterlegt, sodass der XMLPort einfach darauf zugreifen soll und dort direkt ablegt.
Sprich das Fenster mit "Speichern unter" soll gar nicht aufgehen, da wir den Pfad und den Namen der Datei im Code hinterlegen.
Die Abfrage sollte schon drin sein und halt alles so automatishc wie möglich. Endanwender soll lediglich auf das Action klicken und dann bestätigen, dass er exportieren will.

Zudem ist mir gerade aufgefallen, dass wenn ich es unter "RunObject" mache er mir alle Lieferscheine in eine Datei exportiert und nicht wie gewünscht nur den Lieferschein, auf dem man gerade steht.