Hi everyone,
I would like to know if it is possible to create a default dimension with fixed value on a main account using x++ code. So far, I have been able to push a department value to the main account, but I can't find how to fix this department to the main account.
MainAccountLegalEntity mainAccountLegalEntity;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
DimensionAttributeValueSetStorage dimensionSetStorage;
MainAccountNum mainAccountId = "13000-181";
DimensionValue department = "001";
select dimensionAttribute
where dimensionAttribute.BackingEntityType == tableNum(DimAttributeOMDepartment)
join dimensionAttributeValue
where dimensionAttributeValue.DimensionAttribute == dimensionAttribute.RecId
join dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValue == dimensionAttributeValue.RecId
&& dimensionAttributeValueSetItem.DisplayValue == department;
if (dimensionAttributeValue.RecId)
{
ttsBegin;
mainAccountLegalEntity = MainAccountLegalEntity::findByMainAccountLegalEntity(MainAccount::findByMainAccountId(mainAccountId).RecId, CompanyInfo::find().RecId, true);
if (mainAccountLegalEntity.RecId)
{
dimensionSetStorage = DimensionAttributeValueSetStorage::find(mainAccountLegalEntity.DefaultDimension);
dimensionSetStorage.addItemValues(dimensionAttribute.RecId, dimensionAttributeValue.RecId, dimensionAttributeValue.HashKey);
mainAccountLegalEntity.DefaultDimension = dimensionSetStorage.save();
mainAccountLegalEntity.update();
}
ttsCommit;
}