static void CreateDefaultDimension(Args _args)
{
DimensionAttributeValueSetStorage valueSetStorage = new DimensionAttributeValueSetStorage();
DimensionDefault result;
CustTable custTable = CustTable::find('I01-000001',true);
int i;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
container conAttr = ["CLIENTE"]; //nome della dimensione
container conValue = ["I01-000001"]; //valore da inserire
str dimValue;
/* per evitare l'hard code 'CLIENTE' possiamo cercare nella tabella dimensionAttribute per
backEntityType che è un table num. Nel caso cliente tableNum sarà = tableNum(DimAttributeCustTable)
mentre nel caso fornitori tableNum(DimAttributeVendTable)*/
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();
ttsBegin;
custTable.DefaultDimension = result;
custTable.doUpdate();
ttsCommit;
}
Prima dell'esecuzione del job:Dopo l'esecuzione:
Una diversa soluzione, un pò più complessa l'ho trovata quì
Nessun commento:
Posta un commento