Map dimspec;
container con1,con2;
Name dimName;,dimValue;
DimanesionAttribute dimAttr;
DimanesionAttrbuteValue dimAttrValue;
List dimSource;
DimesionDefaultinEngine dimEng;
dimspec = DimensionDefaultingEngine::createEmptyDimensionspecifier();
con1 = [1,2];
con1 = [Dimension1, Dimension2];
con2 = [1,2];
con2 = [DimnesionValue1, DimensionValue2];
for(I = 1 ; I < = conlen(con1) ; I++ )
{
dimName = conpeak(con1,i);
dimvalue = conpeak(con2,i);
dimAttr = DimensionAttribute:: findByName(dimName);
if(!dimattr.RecId)
{
continue;
}
dimattrValue = DimanesionAttributeValuue::findbyDimensionAttributeandValue(dimAttr,dimValue, false, true);
if(dimattrvalue.IsDeleted)
{
continue;
}
DimanesionAttributeDefaultingEngine::insertDimensionSpecifier(dimSpec,dimAttr.RecId,dimValue,dimAttrvalue.RecID, dimattrValue.HAshKey);
}
dimSource = new List(Types::Class);
dimSource.AddEnd(dimSpec);
dimEng = DimensionDefaultingengine::constructForMainAccountId(mainAccount.RecId, AccountStructure.RecID);
dimEng.applydimensionSource(dimSource);
return dimEng.getLedgerDimension()
This will return ledgerdimension recid if any exist on given criteria or it will create new record and return recid of that.