07.04.2011, 02:15 | #1 |
Участник
|
Rahul Sharma: Convert Dynamics AX Entity Private Address into Public GAB Address
Источник: http://feedproxy.google.com/~r/Rahul...y-private.html
============== In this article, we will see how to convert Customer / Vendor's private addresses into public GAB addresses. If you try to do it manually by clicking the public check box on a private address then it will just not allow you to do it. Here is the code to do so: X++: 1: //Converts private addresses to public addresses 2: static void CSA_ConvertPrivateAddressToPublic(Args _args) 3: { 4: #OCCRetryCount 5: DirPartyAddressRelationshipMapping dirPartyAddressRelationshipMapping; 6: Address address, address2; 7: DirParty dirParty; 8: DirPartyTable dirPartyTable; 9: 10: void convertAddress() 11: { 12: ; 13: address.clear(); 14: address = Address::findRecId(address2.RecId, true); 15: 16: //dir party associated with the entity 17: dirParty = DirParty::constructFromCommon(address); 18: 19: dirPartyTable = DirPartyTable::find(dirParty.parmPartyId()); 20: 21: //update these values so that this private address now belongs to the party of the entity 22: address.AddrTableId = dirPartyTable.TableId; 23: address.AddrRecId = dirPartyTable.RecId; 24: address.update(); 25: 26: //check if GAB mapping has been created 27: select dirPartyAddressRelationshipMapping 28: where dirPartyAddressRelationshipMapping.AddressRecId == address.RecId && 29: dirPartyAddressRelationshipMapping.RefCompanyId == address.dataAreaId; 30: 31: //create GAB mapping if does not exist 32: if (!dirPartyAddressRelationshipMapping.RecId) 33: DirPartyAddress::insertPartyAddressRelationship(address); 34: } 35: ; 36: 37: //select private customer and vendor addresses 38: while select address2 39: where address2.AddrTableId == tablenum(CustTable) || 40: address2.AddrTableId == tablenum(VendTable) 41: { 42: try 43: { 44: ttsbegin; 45: convertAddress(); 46: ttscommit; 47: } 48: catch (Exception::Deadlock) 49: { 50: if (xSession::currentRetryCount() >= #RetryNum) 51: { 52: throw Exception::Deadlock; 53: } 54: else 55: { 56: retry; 57: } 58: } 59: catch (Exception::UpdateConflict) 60: { 61: if (appl.ttsLevel() == 0) 62: { 63: if (xSession::currentRetryCount() >= #RetryNum) 64: { 65: throw Exception::UpdateConflictNotRecovered; 66: } 67: else 68: { 69: retry; 70: } 71: } 72: else 73: { 74: throw Exception::UpdateConflict; 75: } 76: } 77: catch 78: { 79: error(strfmt("Conversion failed for address record id %1 in %2 company. \n Correct it and resume conversion again.", address2.RecId, address2.dataAreaId)); 80: } 81: } 82: 83: } Join this blog if you liked this post and feel free to post your comment / feedback / queries. Источник: http://feedproxy.google.com/~r/Rahul...y-private.html Последний раз редактировалось Poleax; 07.04.2011 в 09:23. |
|
Теги |
глобальная адресная книга, address |
|
|