class INTC_GenerateDimension
{
public DimensionDefault generateDefaultDimension(container _conAttr, container _value, boolean _createIfNotFound = true)
{
DimenSionAttributevalueSetStorage valueSetStorage = new DimenSionAttributevalueSetStorage();
DimensionDefault result;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
container conAttr = _conAttr;
container conValue = _value;
str dimValue;
int i;
for(i=1; i<=conLen(conAttr); i++)
{
dimensionAttribute = DimensionAttribute::findByName(conPeek(conAttr, i));
if(dimensionAttribute.RecId ==0)
{
continue;
}
dimValue = conPeek(conValue, i);
if(dimValue != "")
{
dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, dimValue, false, _createIfNotFound);
valueSetStorage.addItem(dimensionAttributeValue);
}
}
result = valueSetStorage.save();
return result;
}
public void dimPattern()
{
container attrCon, valueCon;
DimensionDefault defaultDimensionRecId, ledDimRecId, finLedgerDimValue;
DimensionAttributeValueCombination dimensionAttributeValueCombination;
attrCon = ["BusinessUnit", "Department", "Project", "ServiceLine"];
valueCon = ["004", "023", "00000007", "Application Development"];
defaultDimensionRecId = this.generateDefaultDimension(attrCon, valueCon);
MainAccount mainAccount = MainAccount::findByMainAccountId("555551");
ledDimRecId = LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountId("555551");
int64 offsetDim = LedgerJournalName::find("GenJrn").OffsetLedgerDimension;
int64 offseDimRecId = LedgerDefaultAccountHelper::getDefaultAccountFromLedgerDimension(offsetDim);
finLedgerDimValue = LedgerDimensionFacade::serviceCreateLedgerDimension(ledDimRecId, defaultDimensionRecId);
info(strFmt("Ledger dimension : %1", finLedgerDimValue));
select dimensionAttributeValueCombination where dimensionAttributeValueCombination.RecId == finLedgerDimValue;
info(strFmt("Display value : %1", dimensionAttributeValueCombination.DisplayValue));
}
public static void Main(Args _args)
{
INTC_GenerateDimension generateDimension = new INTC_GenerateDimension();
generateDimension.dimPattern();
}
}