Показать сообщение отдельно
Старый 31.05.2019, 10:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
d365technext: Customer Address book relation for channel Database D365FO
Источник: http://d365technext.blogspot.com/201...ation-for.html
==============



Customer Address book relation for channel Database D365FO




Scenario:

Most of our D365FO Fellow are working with Retail where we sync customer with our channel database, and sometime we need to update the customer from POS as well, Sometime channel DB throw exception when while updating the customer information if AddressBook of the customer customer is not properly set.

Its happens when we create customer using AX client or import them via DMF and didn't set the address book value.


So no need to worry using below code & query you can update the customers address book in bulk.

Image:


Code:

publicvoid AddrssBookRelation()
{
DirAddressBookParty dirAddressBookParty;
DirAddressBook dirAddressBook;
CustTable custTable;




select RecId,Party from custTable
where custTable.AccountNum==this.CustomerAccount;


if(custTable)
{
select RecId from dirAddressBook
where dirAddressBook.Name==this.CountryCode;


if(dirAddressBook)
{
select RecId from dirAddressBookParty
wheredirAddressBookParty.Party==custTable.Party && dirAddressBookParty.AddressBook==dirAddressBook.RecId;


if(dirAddressBookParty.RecId==0)
{
dirAddressBookParty.clear();
dirAddressBookParty.Party=custTable.Party;
dirAddressBookParty.AddressBook=dirAddressBook.RecId;
dirAddressBookParty.insert();
}


}
}

}



SQL Query:

INSERT INTO DirAddressBookParty (PARTY,ADDRESSBOOK,PARTITION)
select DISTINCT DirPartyLocation.PARTY,DirAddressBook.RECID,5637144576 from LogisticsPostalAddress
join DirPartyLocation on DirPartyLocation.LOCATION=LogisticsPostalAddress.LOCATION
Join LOGISTICSLOCATION on LOGISTICSLOCATION.RECID=LogisticsPostalAddress.LOCATION
join DirAddressBook on DirAddressBook.NAME=LogisticsPostalAddress.COUNTRYREGIONID
where DirPartyLocation.ISPRIMARY=1 and party in (select party from CUSTTABLE)
and LOGISTICSLOCATION.ISPOSTALADDRESS=1 and DirPartyLocation.ISPOSTALADDRESS=1 and DirPartyLocation.POSTALADDRESSROLES='Business'
and not exists (select 1 from DirAddressBookParty where DirAddressBookParty.PARTY=DirPartyLocation.PARTY and DirAddressBookParty.ADDRESSBOOK=DirAddressBook.RECID)
and LogisticsPostalAddress.VALIDTO >=GETDate()

Источник: http://d365technext.blogspot.com/201...ation-for.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.