I-update ang Value ng Financial Dimension mula sa X++ Code sa Dynamics 365
Nai-publish: Marso 19, 2025 nang 9:36:07 PM UTC
Ipinapaliwanag ng artikulong ito kung paano mag-update ng halaga ng dimensyon sa pananalapi mula sa X++ code sa Dynamics 365, kasama ang isang halimbawa ng code.
Update Financial Dimension Value from X++ Code in Dynamics 365
Ang impormasyon sa post na ito ay batay sa Dynamics 365. Dapat din itong gumana sa Dynamics AX 2012, ngunit hindi ko ito tahasang nasubukan.
Kamakailan lang, ako ay pinasahan ng gawain na i-update ang halaga ng isang financial dimension batay sa ilang form logic.
Tulad ng malamang alam mo, mula nang Dynamics AX 2012 ang mga financial dimension ay ini-imbak sa mga hiwalay na table at tinutukoy sa pamamagitan ng RecId, karaniwan sa isang DefaultDimension field.
Ang buong framework para sa pag-handle ng mga dimension ay medyo kumplikado at madalas ko itong binabalikan para basahin ang dokumentasyon tungkol dito, marahil dahil hindi ko ito madalas ginagamit.
Gayunpaman, ang pag-update ng isang field sa isang umiiral na dimension set ay isang bagay na madalas mangyari, kaya naisip kong magsulat ng isang post tungkol sa aking paboritong recipe ;-)
Ang isang static utility method ay maaaring ganito:
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;
}
Ang method ay nagbabalik ng isang bagong (o parehong) DimensionDefault RecId, kaya kung nag-a-update ng dimension value para sa isang record - na marahil ang pinaka-karaniwang senaryo - siguraduhing i-update ang dimension field sa record na iyon ng bagong halaga.