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