簡體   English   中英

獲取系統Dynamics AX 2012上的所有地址

[英]Get all addresses on the system Dynamics AX 2012

題:

我想知道如何在查詢中獲取系統上的所有地址,包括(客戶,供應商,銀行和稅務機關),並將其放在帶有列( nameaddress )的視圖中。 因此它將是當事人和非當事人實體。

我想做的事情:

我使用表概念來解決各方的問題:

位置數據模型的一部分

LogisticsPostalAddress-表包含系統中可以與各種實體關聯的地址。 這是有關地址的主要信息所在的地方,似乎剩下的就是這些地址的額外說明。

CustTable和VendTable對DirPartyTable具有FK。 BankAccountTableTaxAuthorityAddress有直接與具有與LogisticsPostalAddress關系LogisticsLocation,在關系Location_FK的關系。

現在的問題是如何構建從客戶,銀行帳戶,供應商和稅務部門獲取地址的查詢 ,並將其放在具有(名稱,地址)對的視圖上?

已編輯

我已經找到了一種使用方法而不是使用查詢來獲取所有地址的方法,雖然效率不高,但是足以滿足我的需求:

1)創建一個表: AllAddresses例如:帶有字段: 名稱,地址

2)創建工作:

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();
    }
}

查看如何構建LogisticsEntityPostalAddressView視圖,它可能已經提供了您所需的信息。 如果LogisticsLocation表中的Description字段不夠好,並且您確實需要使用例如BankAccountTable表中的Name字段,則需要構建一個類似的視圖。

您可以看到該視圖使用視圖LogisticsEntityLocationView ,該視圖具有一個聯合查詢,該聯合查詢從多個表中提取數據。 您可以構建類似的視圖以從BankAccountTableDirPartyTableTaxAuthorityAddress提取Name字段。

從您的數據庫圖中可以看出,全球通訊簿的關系非常復雜(在許多地方,這確實是不直觀的)。 您似乎未解決的一件事是您獲取的LogisticsPostalAddress是否處於活動狀態(由ValidFrom和ValidTo日期確定)。 AX的代碼可以通過簡單地將ValidTo設置為在提交更改之前2秒鍾,來保留LogisticsPostalAddress中正在更改的地址的當前狀態,並創建一個新的LogisticsPostalAddress記錄,並將ValidTo設置為提交日期,以便將其激活。 如果您沒有對地址進行太多更改,則可能不會有太大問題,但是如果有很多更改,您可能會得到很多不需要的地址記錄。 http://hyperdaptive.com/2016/04/320/上有一篇文章,其中包含一些可能會有所幫助的詳細信息-它還包含一些X ++和SQL代碼,如果您碰巧仍在工作,它們可能會非常有幫助在此。 祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM