static void CreateLedgerDimension(Args _args)
{
LedgerDimensionAccount ledgerDimension;
LedgerDimensionAccount mainAccDimension;
RefRecId defaultDimRecId;
RecId createDefaultDimension()
{
DimensionAttributeValueSetStorage valueSetStorage = new DimensionAttributeValueSetStorage();
DimensionDefault result;
int i;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
container conAttr = ["CentroCosto"]; //array dei nomi delle dimensioni
container conValue = ["1100"]; //container dei valori
str dimValue;
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,true);
valueSetStorage.addItem(dimensionAttributeValue);
}
}
result = valueSetStorage.save();
info(Strfmt("%1",result));
return result;
}
//quì la dimensione relativa al solo main account
mainAccDimension = DimensionStorage::getDefaultAccountForMainAccountNum("3090");
//il metodo createDefaultDimension crea la dimensione serve per costruire il resto del segmento
defaultDimRecId = createDefaultDimension();
//il metodo serviceCreateLedgerDimension effettua il merge delle dimensioni e ristorna il recId realtivo
ledgerDimension = DimensionDefaultingService::serviceCreateLedgerDimension(mainAccDimension,defaultDimRecId);
info(Strfmt("%1",ledgerDimension));
}
Il risultato che andremo ad attenere sarà:
Nessun commento:
Posta un commento