static void updateLegalEntityCustomer(Args _args)
{
//Item , vendor, customer, fixed assets and bank
CustTable custTable;
InventTable inventTable;
VendTable vendTable;
BankAccountTable bankAccountTable;
AssetTable assetTable;
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 custTable
{
changeCompany(custTable.dataAreaId)
{
// Get current value
oldDimensionValue = getDimensionValue(custTable.DefaultDimension);
newDimensionValue = custTable.dataAreaId;
// Build DimensionAttributeValueSetStorage
dimensionAttributeValueSetStorage = DimensionAttributeValueSetStorage::find(custTable.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;
custTable.selectForUpdate(true);
custTable.DefaultDimension = newDimensionDefault;
custTable.update();
ttscommit;
}
}
info("Finished processing");
}
No comments:
Post a Comment