Aktualizujte hodnotu finančnej dimenzie z kódu X++ v Dynamics 365
Publikované: 16. februára 2025 o 12:01:34 UTC
Tento článok vysvetľuje, ako aktualizovať hodnotu finančnej dimenzie z kódu X++ v Dynamics 365, vrátane príkladu kódu.
Update Financial Dimension Value from X++ Code in Dynamics 365
Informácie v tomto príspevku sú založené na Dynamics 365. Mal by fungovať aj v Dynamics AX 2012, ale výslovne som to netestoval.
Nedávno som dostal za úlohu aktualizovať hodnotu jednej finančnej dimenzie na základe nejakej logiky formulára.
Ako pravdepodobne viete, od Dynamics AX 2012 sú finančné dimenzie uložené v samostatných tabuľkách a odkazujú sa na ne prostredníctvom RecId, zvyčajne v poli DefaultDimension.
Celý rámec pre manipuláciu s rozmermi je trochu zložitý a často sa pristihnem, že si k nemu musím znova prečítať dokumentáciu, možno preto, že to nie je niečo, s čím často pracujem.
Každopádne, aktualizácia poľa v existujúcej množine rozmerov sa objavuje často, tak som si povedal, že napíšem svoj obľúbený recept ;-)
Statická pomocná metóda môže vyzerať takto:
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;
}
Metóda vracia nové (alebo rovnaké) DimensionDefault RecId, takže ak aktualizujete hodnotu dimenzie pre záznam – čo je pravdepodobne najbežnejší scenár – mali by ste sa uistiť, že aktualizujete pole dimenzie na tomto zázname novou hodnotou.