Is following a bug in AX 2009 when virtual company is used?
codes "for (i =1;i<=conlen(addressVirtualDataAreaList)/2;i+=2)" in DirUtility:getAddressCompanyList() function:
addressVirtualDataAreaList = DirUtility::getAddressVirtualDataAreaList();
for (i =1;i<=conlen(addressVirtualDataAreaList)/2;i+=2)
{
dataAreaId = conpeek(addressVirtualDataAreaList,i);
dataAreaList =conpeek(addressVirtualDataAreaList,i+1);
virtualDataAreaSet = con2set(dataAreaList);
if (Set::intersection(dataAreaSet,virtualDataAreaSet).equal(virtualDataAreaSet))
{
// remove individual companies
dataAreaSet = Set::difference(dataAreaSet,virtualDataAreaSet);
//add vc
dataAreaSet.add(dataAreaId);
}
}
addressVirtualDataAreaList container structure is as below.
// Get list of VCs and the individual companies in it
// which have address as part of table collection
// [Vc1,[c1,c2],Vc2,[c3,c4]]
static server container getAddressVirtualDataAreaList()
For example, if addressVirtualDataAreaList is [Vc1,[c1,c2],Vc2,[c3,c4]],
conlen(addressVirtualDataAreaList) is 4,
then the for loop will never reach Vc2.
Am I right? Do I miss something?