[Gelöst] XMLport Filter und Datasets richtig verknüpfen

14. Dezember 2017 22:42

Hallo,

mir ist die Funktion von XMLports noch nicht so ganz klar, aber positiv ist, dass man sich das ganze Design von Reports spart.

Kann man bei XMLports auch irgendwie die Daten filtern, z.B. nach Datum und falls ja, wie macht man das?

Mir ist immer noch nicht klar, wie man Tabellen bzw. Datasets verbindet. Ich habe mir einige Reports angeschaut, aber das sieht da zum Teil echt kompliziert aus.
Kann mir das jemand erklären? Ich scheitere schon bei den Datenbanken Sales_Invoice_Header und Sales_Invoice_Line. Es wird zwar alles ausgegeben, aber eben die Felder jeder Datenbank versetzt und ich bin mir auch nicht sicher, ob die Daten wirklich zusammenpassen.

Vielen Dank und Grüße,

Rettich
Zuletzt geändert von Rettich am 5. Januar 2018 20:55, insgesamt 1-mal geändert.

Re: XMLport Filter und Datasets richtig verknüpfen

15. Dezember 2017 09:10

Du musst in dem untergeordneten Table-Element das Property LinkTable auf die übergeordnete Table setzen. Dann kannst im Property LinkFields die Verknüpfung machen, in deinem Beispiel Sales Invoice Header und Sales Invoice Line ist es dann „Document No.=FIELD(No.)“

Als Beispiel habe ich hier die Rechnungsnummer im Kopf sowie den Zeilen ausgegeben zwecks Überprüfung ob die Verlinkung richtig klappt.

Filter kannst du beim Aufruf einfach setzen, ähnlich wie im Report.
Zur Hilfe noch Screenshots 1-4 mit Aufbau, TableLink, Filter und Ergebnis.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: XMLport Filter und Datasets richtig verknüpfen

16. Dezember 2017 20:49

Vielen Dank für Deine Antwort. Wenn ich Das Beispiel nachbaue, funktioniert es. Für meinen eigenen Fall irgendwie noch nicht so richtig:

Das ist mein Dataset, wobei ich hier noch teste, welche Felder tatsächlich die richtige Ausgabe bringen
DataSet_XMLport.JPG


Das ist die Verknüpfung, aber die ist wohl falsch. Ich habe einiges versucht, aber nichts passt wirklich
Properties_Sales_Invoice_Line.JPG


Hier die Ausgabe
XML_Ausgabe.JPG


Irgendetwas passt nicht mit der Verknüpfung, denke ich mal. Kannst Du mir sagen, was ich falsch mache?

Ich bin mir auch gar nicht sicher, ob das die optimalen Tabellen sind. Ich suche mir z.B. einen Wolf allein nach der Artikelbeschreibung, die ich bisher noch nicht finden konnte.
Im Report 113 Customer/Item Sales wird z.B. fast alles mit der Datenbank "Customer" gemacht. Ich habe versucht das in einen XMLport zu übernehmen, aber das hat nicht funktioniert und die Ausgabe des Reports kann ich so nicht gebrauchen. Ich muss mich noch in den ReportBuilder (RDLC) einarbeiten.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: XMLport Filter und Datasets richtig verknüpfen

17. Dezember 2017 02:27

Mittlerweile habe ich das Meiste geschafft. Die Ausgaben passen jetzt soweit.

Ich hatte den XMLport ursprünglich nach einer Anleitung aus dem Netz erstellt. Da habe ich dann auch noch eine Codeunit erstellt. Der Sinn ist mir jetzt nun nicht mehr klar, da diese auch nur den XMLport laufen lässt und die XML-Datei erstellt. Dabei habe ich dann aber nicht mal die Möglichkeit, die Filter anzuwenden. Hier mal der Code:

Code:
Documentation()

OnRun()

CustXmlFile.CREATE(TEMPORARYPATH + 'Customer.xml');
CustXmlFile.CREATEOUTSTREAM(XmlStream);
IsExported := XMLPORT.EXPORT(XMLPORT::DateinameXMLport, XmlStream);
FromFile := CustXmlFile.NAME;
ToFile := 'CustomerClient.xml';
CustXmlFile.CLOSE;
IF IsExported THEN
BEGIN
  DOWNLOAD(FromFile,'Download file','C:\Temp','Xml file(*.xml)|*.xml',ToFile);
  ERASE(FromFile);
  MESSAGE(Text000);
END
ELSE
  MESSAGE(Text001);


Aktuell habe ich noch zwei Fragen:

  • Kann man auch Ausgaben unterdrücken? Ich habe immer eine Zeile mit den Versandkosten, falls diese anfallen. Die brauche ich aber nicht, zumindest nicht als eigene Zeile.
  • Gibt es eine Möglichkeit den XMLport auch direkt aus Dynamics laufen zu lassen, damit auch andere User die XML-Datei erstellen können?

Vielen Dank und Grüße,

Rettich

Re: XMLport Filter und Datasets richtig verknüpfen

2. Januar 2018 12:24

Hi,

schau dir mal diese Seite an: https://msdn.microsoft.com/de-de/librar ... 2(v=nav.60).aspx
Mit
Code:
currXMLport.SKIP;
kannst du Zeilen überspringen. In deinem Fall testest du einfach, ob Versandkosten anfallen und falls ja, dann skipst du die Zeile.

Die Ausführung des Ports kannst du in jeder Page einbauen. Dazu einfach einen Button und eine XMLPort Variable mit deinem XMLPort hinzufügen und ein
Code:
XMLPort.RUN
ausführen. Alternativ kannst du das Port aus einem Report aufrufen und diesen Report in der MenuSuite einbinden.

Re: XMLport Filter und Datasets richtig verknüpfen

5. Januar 2018 20:14

Super, herzlichen Dank!

Re: XMLport Filter und Datasets richtig verknüpfen

5. Januar 2018 20:28

rkirsten hat geschrieben:schau dir mal diese Seite an: https://msdn.microsoft.com/de-de/librar ... 2(v=nav.60).aspx
.

Bitte Links mit reservierten Zeichen in URL-Tags einschließen, damit diese anklickbar werden.
https://msdn.microsoft.com/de-de/library/dd339042(v=nav.60).aspx