[XMLPort] JOIN Zwei Tables

18. November 2013 12:50

Hallo,

ich bin gerade ein wenig ratlos, wie ich folgendes Problem angehen soll.
Ich habe zwei Tabellen: Die Kontakttabelle und eine weitere Tabelle, welche lediglich die eine Kontaktnummer und den Namen des Kontakts (Flowfield) enthält.

Nun wollte ich die die zwei Tabellen verknüpfen (in SQL wäre das ein JOIN), aber weiß nicht wie ich das in Navision (im Code des XML-Ports) abbilden soll.
Meine Nodes sehen so aus:
XMLPort_Nodes.jpg


Nun dachte ich, dass ich einfach einen Filter setzen könnte. Dies habe ich dann mit folgendem Code abgebildet:
Code:
REPEAT
  "<Contact>".SETFILTER("No.", "Werkstatt-Table"."OK-Service-Center Nr.");
UNTIL "Werkstatt-Table".NEXT=0;

Diesen habe ich dann in die Methode OnPreXMLport() bzw Werkstaetten - Export::OnBeforePassVariable() platziert. Leider gibt der XML-Port dann immer nur einen Kontakt aus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von SubNatural am 18. November 2013 14:41, insgesamt 2-mal geändert.

Re: [XMLPort] JOIN Zwei Tables

18. November 2013 14:39

Habe es hinbekommen. Ich habe es nun anders herum gemacht.
In o.g. Beispiel habe ich versucht auf die Kontakt-Tabelle einen Filter zu setzen, welchen ich aus der zweiten Tabelle (Werkstaetten) beziehe.
Ich habe nun die zweite Tabelle per XMLPort auslesen lassen - Ergebnis:
XMLPort_Nodes.jpg

Diese wird automatisch durchlaufen und gibt mir jede Zeile in der Tabelle aus (also auch die Nummer).

In der Funktion Werkstatt - Export::OnAfterGetRecord() habe ich dann folgenden Code eingebaut. Die Funktion wird pro Eintrag in der Tabelle Werkstaetten aufgerufen, somit bezieht es auch jedesmal einen neuen Eintrag in der Kontakt-Tabelle.
Code:
ContactTable.GET("<Werkstaetten>"."Nr.");
Name := ContactTable.Name;
Postalcode := ContactTable."Post Code";
City := ContactTable.City;
Address := ContactTable.Address;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.