Atnaujinkite finansinės dimensijos vertę iš X++ kodo sistemoje „Dynamics 365“.
Paskelbta: 2025 m. vasario 16 d. 12:01:19 UTC
Šiame straipsnyje paaiškinama, kaip atnaujinti finansinės dimensijos vertę iš X++ kodo sistemoje „Dynamics 365“, įskaitant kodo pavyzdį.
Update Financial Dimension Value from X++ Code in Dynamics 365
Šiame įraše pateikta informacija yra pagrįsta Dynamics 365. Ji taip pat turėtų veikti su Dynamics AX 2012, bet aš jos aiškiai neišbandžiau.
Neseniai man buvo pavesta atnaujinti vienos finansinės dimensijos vertę, remiantis tam tikra formos logika.
Kaip tikriausiai žinote, nuo Dynamics AX 2012 finansinės dimensijos saugomos atskirose lentelėse ir nurodomos naudojant RecId, paprastai lauke DefaultDimension.
Visa matmenų tvarkymo sistema yra šiek tiek sudėtinga, todėl man dažnai tenka iš naujo perskaityti dokumentaciją apie tai, galbūt todėl, kad aš ne taip dažnai dirbu su ja.
Šiaip ar taip, esamo matmenų rinkinio lauko atnaujinimas dažnai pasitaiko, todėl pamaniau parašyti savo mėgstamą receptą ;-)
Statinio naudingumo metodas gali atrodyti taip:
Name _dimensionName,
DimensionValue _dimensionValue)
{
DimensionAttribute dimAttribute;
DimensionAttributeValue dimAttributeValue;
DimensionAttributeValueSetStorage dimStorage;
DimensionDefault ret;
;
ret = _defaultDimension;
ttsbegin;
dimStorage = DimensionAttributeValueSetStorage::find(_defaultDimension);
dimAttribute = DimensionAttribute::findByName(_dimensionName);
if (_dimensionValue)
{
dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue( dimAttribute,
_dimensionValue,
true,
true);
dimStorage.addItem(dimAttributeValue);
}
else
{
dimStorage.removeDimensionAttribute(dimAttribute.RecId);
}
ret = dimStorage.save();
ttscommit;
return ret;
}
Metodas grąžina naują (arba tą patį) DimensionDefault RecId, taigi, jei atnaujinate įrašo dimensijos reikšmę (tai tikriausiai yra dažniausiai pasitaikantis scenarijus), būtinai atnaujinkite to įrašo dimensijos lauką nauja verte.