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:
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();
}
}
InformationsquelleAutor Tito | 2012-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schauen, wie die Sicht
LogisticsEntityPostalAddressView
gebaut ist, kann es schon Informationen liefern, die Sie benötigen. Wenn dieDescription
Feld aus derLogisticsLocation
Tisch ist nicht gut genug, und Sie wirklich brauchen, dieName
Feld aus, zum Beispiel, die TabelleBankAccountTable
, werden Sie brauchen, um zu bauen eine ähnliche Ansicht.Können Sie sehen, die Ansicht der Ansicht verwendet
LogisticsEntityLocationView
, die eine union-Abfrage, die zieht die Daten aus verschiedenen Tabellen. Sie bauen könnte, eine ähnliche Ansicht zu ziehen, dieName
Feld ausBankAccountTable
,DirPartyTable
, undTaxAuthorityAddress
.InformationsquelleAutor Jay Hofacker
Kann man sagen, aus Ihrer Datenbank Diagramm, das die Beziehung für die Global-Address-Book ist sehr Komplex (und an vielen stellen wirklich nicht intuitiv). Eine Sache, die es scheint, dass Sie nicht angesprochen wird, ob oder ob nicht die LogisticsPostalAddress erhalten Sie aktiv ist oder nicht (wie bestimmt durch die "ValidFrom" und "ValidTo" - Termine). AX-code, der behält den aktuellen Status bei der eine Adresse, die ändert sich in der LogisticsPostalAddress durch einfaches einstellen der ValidTo zu 2 Sekunden, bevor die änderung übernommen und erstellt eine neue LogisticsPostalAddress Datensatz mit ValidTo gesetzt, um die commit-Datum, so wird es aktiv. Wenn Sie nicht gehabt haben eine Menge von änderungen zu Adressen, dann haben Sie wahrscheinlich nicht viel von einem problem, wenn es aber eine Menge können Sie bekommen eine Menge von un-wanted-Adresse Datensätze. Es gibt hier einen Artikel http://hyperdaptive.com/2016/04/320/ , hat einige details, dass es hilfreich sein könnte - es hat auch einige X++ und SQL-code, der könnte sehr hilfreich sein, wenn Sie zufällig noch daran arbeiten. Viel Glück.
InformationsquelleAutor ThD