static void updateLegalEntityItem(Args _args)
{
//Item , vendor, customer, fixed assets and bank
InventTable inventTable;
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;
}
//where inventTable.ItemId=='TESTBATCH01'
//while select crossCompany inventTable
while select inventTable
{
changeCompany(inventTable.dataAreaId)
{
// Get current value
oldDimensionValue = getDimensionValue(inventTable.DefaultDimension);
newDimensionValue = inventTable.dataAreaId;
// Build DimensionAttributeValueSetStorage
dimensionAttributeValueSetStorage = DimensionAttributeValueSetStorage::find(inventTable.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;
inventTable.selectForUpdate(true);
inventTable.DefaultDimension = newDimensionDefault;
inventTable.update();
ttscommit;
}
}
info("Finished processing");
}
No comments:
Post a Comment