Dateer finansiële dimensiewaarde op vanaf X++-kode in Dynamics 365
Gepubliseer: 16 Februarie 2025 om 12:02:19 UTC
Laas opgedateer: 13 November 2025 om 13:38:49 UTC
Hierdie artikel verduidelik hoe om 'n finansiële dimensiewaarde vanaf X++-kode in Dynamics 365 op te dateer, insluitend 'n kodevoorbeeld.
Update Financial Dimension Value from X++ Code in Dynamics 365
Die inligting in hierdie plasing is gebaseer op Dynamics 365. Dit behoort ook in Dynamics AX 2012 te werk, maar ek het dit nie eksplisiet getoets nie.
Ek is onlangs die taak gegee om die waarde van 'n enkele finansiële dimensie op te dateer gebaseer op een of ander vormlogika.
Soos u waarskynlik weet, word finansiële dimensies in Dynamics AX 2012 in aparte tabelle gestoor en deur 'n RecId verwys, gewoonlik in 'n DefaultDimension-veld.
Die hele raamwerk vir die hantering van dimensies is ietwat kompleks en ek vind myself dikwels dat ek die dokumentasie daaroor moet herlees, miskien omdat dit nie iets is waarmee ek so gereeld werk nie.
Hoe dit ook al sy, die opdatering van 'n veld in 'n bestaande dimensiestel is iets wat gereeld voorkom, so ek het gedink ek sal 'n verslag doen oor my gunstelingresep ;-)
'n Statiese nutsmetode kan so lyk:
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;
}
Die metode gee 'n nuwe (of dieselfde) DimensionDefault RecId terug, so as jy 'n dimensiewaarde vir 'n rekord opdateer - wat waarskynlik die mees algemene scenario is - moet jy seker maak dat jy die dimensieveld op daardie rekord met die nuwe waarde opdateer.
Verdere Leeswerk
As jy hierdie plasing geniet het, sal jy dalk ook van hierdie voorstelle hou:
- Visual Studio hang vas tydens opstart tydens laai van onlangse projekte
- Plaas Dynamics 365 FO Virtual Machine Dev of Test in onderhoudsmodus
- Voeg vertoning of wysigingsmetode by via uitbreiding in Dynamics 365
