Holen Sie sich alle Adressen auf der system-Dynamics-AX-2012

FRAGE:

Ich würde gerne wissen, wie kann ich die ganzen Adressen auf dem system, einschließlich (Kunden, Lieferanten, Banken und Steuerbehörden), die auf einer Abfrage, und stellen Sie es auf eine Ansicht mit den Spalten (Namen, Adresse).
So wäre es Parteien und nicht-Parteien-Entitäten.

, WAS ICH VERSUCHT HABE ZU TUN:

Ich die Tabelle Konzepten, um herauszufinden, das problem für die Parteien:

Holen Sie sich alle Adressen auf der system-Dynamics-AX-2012

LogisticsPostalAddress - Tabelle enthält Adressen, die im system in Verbindung mit verschiedenen Einrichtungen.
Ist, wo die wichtigsten Informationen über die Adressen sind, es scheint, dass der rest sind zusätzliche Beschreibungen dieser Adressen.

Den CustTable und VendTable habe ein FK zu DirPartyTable.
Die BankAccountTable und die TaxAuthorityAddress der relation direkt mit der LogisticsLocation, dass die relation mit der LogisticsPostalAddress, auf die Bezug Location_FK.

Die Frage ist nun, wie Baue ich die Abfrage , bekommt die Adressen von Kunden, BankAccounts, Verkäufer und Steuerbehörden und legen Sie es auf einen Blick mit (name,Adresse) - paar?

BEARBEITET

Ich habe einen Weg gefunden, um alle Adressen mit einer Methode, aber nicht mithilfe einer Abfrage, und ist nicht sehr effizient, aber es war genug für das, was ich wollte:

1) Erstellen Sie eine Tabelle: AllAddresses zum Beispiel:
Mit Feldern: Namen, Adresse

2) Erstellen Sie einen Auftrag:

static void GettingAllAddresses(Args _args)
{
    CustTable custTable;
    VendTable vendTable;
    TaxAuthorityAddress taxAuthorityAddress;

    LogisticsPostalAddress logisticsPostalAddress;
    AllAddresses allAddresses;

    ;

    while select * from custTable
    {
        allAddresses.Address = custTable.address();
        allAddresses.Name = custTable.name();
        allAddresses.CustAccount = custTable.AccountNum;
        allAddresses.doInsert();
    }



    //Getting all vendors
    while select * from vendTable
    {

        allAddresses.Address = vendTable.address();
        allAddresses.Name = vendTable.name();
        allAddresses.doInsert();
    }

    //Getting all tax authorities addresses
    while select * from taxAuthorityAddress
    {


        allAddresses.Address = TaxAuthorityAddress::address(taxAuthorityAddress.TaxAuthority);
        allAddresses.Name = taxAuthorityAddress.Name;
        allAddresses.doInsert();
    }

    //Getting all bank addresses
    while select * from bankAccountTable
    {
        logisticsPostalAddress = LogisticsLocationEntity::location2PostalAddress(bankAccountTable.Location);
        allAddresses.Address = logisticsPostalAddress.Address;
        allAddresses.Name = bankAccountTable.Name;
        allAddresses.doInsert();
    }
}
Wenn ich du wäre würde ich nicht versuchen, erstellen Sie eine einzige Abfrage, um alle Daten, sondern ich würde erstellen Sie eine temporäre Tabelle, die würde gefüllt werden, indem ein batchjob auf diese Weise mehrere Abfragen an die Datenbank.

InformationsquelleAutor Tito | 2012-06-13

Schreibe einen Kommentar