[gelöst] Requestform bei XML-Port

27. Juli 2006 14:08

Hallo,
ich möchte bei einem XMLPort ein Requestform angeben und dort den File angeben, der denn vom XML-Port verarbeitet werden soll.

Wie definiere ich dazu auf einem Form ein Feld, mit dem ich dann einen File auswählen kann?

Danke.
Zuletzt geändert von wilfried42x am 25. Mai 2007 19:46, insgesamt 1-mal geändert.

27. Juli 2006 15:31

Auf navision24.de findest du eine Anleitung, wie das bei DataPorts gemacht werden kann. Ich denke, analog dazu kannst du das auch auf XML-Ports anwenden

Navision24 - Fileauswahl auf DataPort

27. Juli 2006 18:27

Nein, das geht leider nicht, ein XML-Port muss aus einer Codeunit heraus aufgerufen werden.
Ich habe das so gelöst:
auf einer Form habe ich für die verschiedenen XML-Ports jeweils eine Taste gelegt, die dann die Funktion Import in der CodeUnit XMLImport aufruft und als Optionswert den Port, den ich importieren will übergebe.

Aufruf auf der Taste zb: XMLImport.Import(1) für den Debitorimport

der Code in der Codeunit:

Import(category : ' ,Debitor,Kreditor,Artikel,Preislisten,Stücklisten,VK-Aufträge,Bestellungen,.... etc.

Code:
defaultfilename := '*.xml';

Title:=STRSUBSTNO(Text006,category);
IF category=14 THEN Title:='Datei zum Preislisten-Eintrag bei Kunden auswählen';
filename := CommonDialogMgt.OpenFile(Title,defaultfilename,4,Text004,0);

IF filename = defaultfilename THEN EXIT;

Importfile.OPEN(filename);
Importfile.CREATEINSTREAM(Importstream);

CASE category OF
  1: XMLPORT.IMPORT(99000,Importstream);   // 1: Debitor
  2: XMLPORT.IMPORT(99001,Importstream);   // 2: Kreditor
  3: XMLPORT.IMPORT(99002,Importstream);   // 3: Item
  4: XMLPORT.IMPORT(99003,Importstream);   // 4: Pricelist
  5: XMLPORT.IMPORT(99004,Importstream);   // 5: BOM
  6: XMLPORT.IMPORT(99005,Importstream);   // 6: SalesOrder
  7: XMLPORT.IMPORT(99006,Importstream);   // 7: PurchaseOrder
  8: XMLPORT.IMPORT(99007,Importstream);   // 8: Delivery
  9: XMLPORT.IMPORT(99008,Importstream);   // 9: Receipt
 10: XMLPORT.IMPORT(99009,Importstream);   //10: SalesInvoice
 11: XMLPORT.IMPORT(99010,Importstream);   //11: PurchaseInvoice
 12: XMLPORT.IMPORT(99011,Importstream);   //12: Return Receipt
 13: XMLPORT.IMPORT(99012,Importstream);   //13: Return Delivery
 14: XMLPORT.IMPORT(99013,Importstream);   //14: PL2Debitor
 15: XMLPORT.IMPORT(99014,Importstream);   //15: Credit Note
 16: XMLPORT.IMPORT(99015,Importstream);   //16: Debit Note
 17: XMLPORT.IMPORT(99016,Importstream);   //17: DeliveryExact
 18: XMLPORT.IMPORT(99017,Importstream);   //18: SalesInvoiceExact
 19: XMLPORT.IMPORT(99018,Importstream);   //19: Exact-Rücknahme
 20: XMLPORT.IMPORT(99019,Importstream);   //20: Exact-Gutschrift
 21: XMLPORT.IMPORT(99020,Importstream);   //21: Exact-Wareneingang
// 22: XMLPORT.IMPORT(99021,Importstream);   //22: Exact-EK-Rechnung
 23: XMLPORT.IMPORT(99022,Importstream);   //23: HSI-Einheiten
 24: XMLPORT.IMPORT(99023,Importstream);   //24: Zahlung
END;

Importfile.CLOSE;


die Variablen:
Code:
Name            DataType   Subtype                   Length
Importfile      File      
Importstream    InStream      
filename        Text                                 250
CommonDialogMgt Codeunit   Common Dialog Management   
defaultfilename Text                                 250
Title           Text                                 50

25. Mai 2007 19:18

Hi, der Code von Dir ist Spitze, vielen Dank. :-D :mrgreen:

25. Mai 2007 20:34

hast aber lange gebraucht, um das festzustellen ;-) :mrgreen:

Ich glaube, am Bodensee brauch ich kein Geld mitbringen :lol:

25. Mai 2007 21:16

Ja, ich hab' den code erst jetzt gebraucht.

25. Mai 2007 21:50

<OffTopic>
Michael Schumacher hat geschrieben:Ich glaube, am Bodensee brauch ich kein Geld mitbringen :lol:
Nee, nee, so einfach kommst du uns nicht davon! :twisted:
Da waren doch noch so ein paar Schnapszahlen, die (auch) auf dein Konto gehen...
http://www.msdynamics.de/ftopic3142.html
http://www.msdynamics.de/fpost10503.html#10503
http://www.msdynamics.de/fpost11924.html#11924
http://www.msdynamics.de/fpost12605.html#12605
http://www.msdynamics.de/fpost12799.html#12799

Das dürften wohl genug Beweise sein, dass du doch Geld mitbringen musst :lol:
... Mach dir nix draus, für mich wird es sicher auch recht teuer...

Wo ich gerade hier so stöbere:
rotsch hat geschrieben:[...] Also, wer sich noch nicht für das Treffen am 9. Juni angemeldet hat, sollte das schnellstens nachholen! Es lohnt sich auf jeden Fall, dabei zu sein (nicht nur wegen der Freibiere)
</OffTopic>