static void
updateLegalEntityVendor(Args _args)
{
//Item ,
vendor, customer, fixed assets and bank
VendTable vendTable;
DimensionAttributeValueSetStorage
dimensionAttributeValueSetStorage;
DimensionAttribute dimensionAttribute;
DimensionValue oldDimensionValue;
DimensionValue newDimensionValue;
DimensionDefault newDimensionDefault;
#define.dimensionName("LegalEntity")
DimensionValue
getDimensionValue(DimensionDefault _dimensionDefault)
{
DefaultDimensionView
defaultDimensionView;
select
firstonly DisplayValue
from
defaultDimensionView
where
defaultDimensionView.Name == #dimensionName
&&
defaultDimensionView.DefaultDimension == _dimensionDefault;
return
defaultDimensionView.DisplayValue;
}
while
select crossCompany
vendTable
{
changeCompany(vendTable.dataAreaId)
{
// Get
current value
oldDimensionValue = getDimensionValue(vendTable.DefaultDimension);
newDimensionValue =
vendTable.dataAreaId;
//
Build DimensionAttributeValueSetStorage
dimensionAttributeValueSetStorage =
DimensionAttributeValueSetStorage::find(vendTable.DefaultDimension);
//
Remove old dimension value
if(oldDimensionValue
!= "")
{
dimensionAttribute =
DimensionAttribute::findByName(#dimensionName);
dimensionAttributeValueSetStorage.removeDimensionAttributeValue(
DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,
oldDimensionValue).RecId);
}
// Set
new dimension value
if(newDimensionValue
!= "")
{
dimensionAttribute =
DimensionAttribute::findByName(#dimensionName);
dimensionAttributeValueSetStorage.addItem(
DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,
newDimensionValue));
}
newDimensionDefault =
dimensionAttributeValueSetStorage.save();
ttsbegin;
vendTable.selectForUpdate(true);
vendTable.DefaultDimension =
newDimensionDefault;
vendTable.update();
ttscommit;
}
}
info("Finished
processing");
}
No comments:
Post a Comment