Dateer finansiële dimensiewaarde op vanaf X++-kode in Dynamics 365
Gepubliseer: 16 Februarie 2025 om 12:02:19 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 pos is gebaseer op Dynamics 365. Dit behoort ook in Dynamics AX 2012 te werk, maar ek het dit nie eksplisiet getoets nie.
Ek het onlangs die taak gekry om die waarde van 'n enkele finansiële dimensie op grond van een of ander vormlogika op te dateer.
Soos u waarskynlik weet, word finansiële dimensies sedert 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 dikwels dat ek dokumentasie daaroor moet herlees, miskien omdat dit nie iets is waarmee ek so gereeld werk nie.
In elk geval, die opdatering van 'n veld in 'n bestaande dimensiestel is iets wat gereeld voorkom, so ek het gedink ek sal 'n skrywe van my gunsteling resep doen;-)
'n Statiese nutsmetode kan soos volg 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, dus as u 'n dimensiewaarde vir 'n rekord opdateer - wat waarskynlik die algemeenste scenario is - moet u seker maak dat u die dimensieveld op die rekord met die nuwe waarde opdateer.