[RTC][gelöst] gefilterte Artikelliste an XML Port übergeben

2. April 2012 20:38

Hallo zusammen,

nachdem ich jetzt meinen ersten XML-Port gestrickt habe welcher auch soweit sehr gut funktioniert wollte ich fragen ob es möglich ist aus einer Bereits gefilterten Artikelliste heraus die daten an diesen XML Port zu übergeben.
Die Funktion sollte eigentlich ähnlich der Senden an Exel / Word funktion sein.
Der Action Button im RTC ist auch schon drin, schreibt mir jedoch immer die komplette Tabelle 27 (Artikel) als XML in dem vorgegeben Schema auf den Server.
Die XML ist dann ca 21MB groß und für einen Download mit dem RTC leider wohl zu groß. Jedenfalls bekomme ich eine derartige Fehlermeldung.

Sorry, dass ich euch mit solchen Lapalien beschäftige - warscheindlich ist es ganz einfach, weswegen ich im Web auch nichts finde.
Ich steh auf dem Schlach, und wäre euch echt dankbar wenn mich einer da runter hebt :)

Grüße
Dennis
Zuletzt geändert von x-designs am 3. April 2012 16:33, insgesamt 1-mal geändert.

Re: [RTC] gefilterte Artikelliste an XML Port übergeben

3. April 2012 07:42

Guten Morgen Dennis,

Das läuft bei XML-Ports eigentlich analog zu Form-RUNs.
Du nimmst eine Variable vom Typ Record auf die Artikeltabelle.
Dazu noch dein XML-Port als Variable (z.B. MyXMLPort).

Code:
Item.SETFILTER('"The Field I want to filter on",'%1..%2',"Start of Range",End of Range");
MyXMLPort.SETTABLEVIEW(Item);
MyXMLPort.RUN;
CLEAR(MyXMLPort);

Re: [RTC] gefilterte Artikelliste an XML Port übergeben

3. April 2012 10:48

Hallo Danjo,

danke für die Antwort...
Also rein von der Logik ist mir dein Vorgehen klar.
Was ich nur nicht ganz verstehe ist wie ich die gefilterten Werte der aktuellen Artikelliste (Beispiel: 1000|10011|55055) dynamisch an die SETFILTER übergeben kann.

Es sind halt komplett unterschiedliche Filterszenarien und nicht immer nur klassische von bis Filter...

Der Code steht im OnAction Trigger der Page.
Code:
XMLfile.CREATE('F:\NAV2ID.xml');
XMLfile.CREATEOUTSTREAM(OutStreamObj);
varXMLPORT.SETTABLEVIEW(Item); // ergänzt von Danjo
XMLPORT.EXPORT(50000,OutStreamObj);
XMLfile.CLOSE;
ToFile := 'XML2ID.xml';
IF ISSERVICETIER THEN
  DOWNLOAD('F:\NAV2ID.xml','Downloading file...','C:','',ToFile);


Das sind meine eingesetzten Variablen.

XMLfile File
OutStreamObj OutStream
ToFile Variant
varXMLPORT XMLport Item2inDesign

Grüße
Dennis

Re: [RTC] gefilterte Artikelliste an XML Port übergeben

3. April 2012 11:04

Hi,

da du aus einer Page kommst sollte es so gehen:
Code:
Item.SETFILTER("No.",Rec.GETFILTER("No."));

Re: [RTC] gefilterte Artikelliste an XML Port übergeben

3. April 2012 12:32

Also ich hab das jetzt mal versucht, leider ohne Erfolg.

Dann habe ich mal die GETFILTER unter die Lupe genommen und getestet ob da überhaupt Werte übergeben werden.

Code:
string := Item.GETFILTER("No.");
MESSAGE(Text000, string);


So bleibt die dann erscheinende Textbox leer...

Anders geht es damit...
Code:
Item.SETRANGE("No.", '1000', '55055');
string := Item.GETFILTER("No.");
MESSAGE(Text000, string);


Lege ich aber einen Filter an mit SETRANGE dann kommt in der Message Box Filter: 1000..55055 was auch korrekt ist.

Mein Gefühl sagt mir einfach, dass er sich die gesetzten Filter der Page nicht zieht...

Ich würde zu gerne mal den Code sehen, der bei Senden an -> Excel zum Einsatz kommt. Die Action steht nur leider nicht in den Pages... funktioniert irgendwie anders...

Grüße

Re: [RTC] gefilterte Artikelliste an XML Port übergeben

3. April 2012 12:44

Eventuell ist das in deinem Beispiel nur blöd dargestellt.
Aber versuche doch einmal:
Code:
MESSAGE(Rec.GETFILTER("No."));

Von mir aus kannst du auch das Rec weglassen, ich habe es nur eingefügt damit klar ist worauf ich hinaus möchte.

Re: [gelöst][RTC] gefilterte Artikelliste an XML Port überge

3. April 2012 16:32

Hi Danjo,

nun ist es vollbracht... Es klappt nun alles und eigentlich noch besser als geplant.
Danke für die HIlfe!

Anbei nun das Endergebnis:

Button 1 (es werden die Artikelnummern übergeben)
Code:
Item.SETFILTER("No.",GETFILTER("No."));
varXMLPORT.SETTABLEVIEW(Item);
varXMLPORT.RUN;
CLEAR(varXMLPORT);


Es gibt die Variable Item als Record auf die Tabelle 27 und die varXMLPORT auf den XML-Port 50000

Da wir auch noch mit dem Summenberechnungsfeld arbeiten und dort auch Filtern gibts einen zweiten Button in dem das steht:
Code:
Item.SETFILTER(Merkmale2,'>0');
Item.SETFILTER(Merkmale,GETFILTER(Merkmale));
varXMLPORT.SETTABLEVIEW(Item);
varXMLPORT.RUN;
CLEAR(varXMLPORT);


Nun schauen wir mal ob das mit dem inDesign auch so funktioniert wie das soll...

Vielen Dank !!!