您的位置:首页 > 其它

To Find or Update customer primary Address in Ax 2012

2015-06-30 11:24 351 查看
To Find or Update customer primary Address in Ax 2012 you can try following code. Relation between dirpartytable and custtable slightly changed in Ax 2012 so you need to re-learn about this.

static void jay_updateAddress(Args _args) {

container roles;

DirParty dirParty;

DirPartyPostalAddressView addressView;

LogisticsPostalAddress address;

CustTable custtable;

DirPartyLocation partyLocation;

;

ttsBegin;

custtable = Custtable::find("Cust-000025");

address = DirParty::primaryPostalAddress(CustTable.Party); //找到主要地址

address = DirParty::findPostalAddressByRole(CustTable.Party, LogisticsLocationRoleType::Business);

/* 找到第一个地址, 并将第一个地址更新为主要地址

select firstonly address join forupdate partyLocation

where partyLocation.Location == address.Location

&& partyLocation.Party == CustTable.Party;

partyLocation.IsPrimary = NoYes::Yes;

partyLocation.update();

*/

address.City = "沧州";

address.State = "河北省";

addressView.IsPrimary = NoYes::Yes; // this line is valid when update

addressView.Party = CustTable.Party;

addressview.initFromPostalAddress(address);

DirParty = DirParty::constructFromPartyRecId(CustTable.Party);

roles = [LogisticsLocationRole::findBytype(LogisticsLocationRoleType::Business).RecId]; // 地址类型

DirParty.createOrUpdatePostalAddress(addressView,roles);

ttsCommit;

info("xixi");

}

Note: createOrUpdatePostalAddress method is useful for both creating or updating the customer address. if you are providing the existing dirpartyid then it will update the customer address ,in case of new dirpartyid it will create a new address.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: