Kemas kini Nilai Dimensi Kewangan daripada Kod X++ dalam Dynamics 365
Diterbitkan: 19 Mac 2025 pada 9:36:04 PTG UTC
Artikel ini menerangkan cara mengemas kini nilai dimensi kewangan daripada kod X++ dalam Dynamics 365, termasuk contoh kod.
Update Financial Dimension Value from X++ Code in Dynamics 365
Maklumat dalam pos ini adalah berdasarkan Dynamics 365. Ia juga sepatutnya berfungsi dalam Dynamics AX 2012, tetapi saya belum mengujinya secara eksplisit.
Saya baru-baru ini diberikan tugas untuk mengemas kini nilai dimensi kewangan tunggal berdasarkan logik bentuk tertentu.
Seperti yang anda mungkin tahu, sejak Dynamics AX 2012 dimensi kewangan disimpan dalam jadual yang berasingan dan dirujuk melalui RecId, biasanya dalam medan DefaultDimension.
Keseluruhan rangka kerja untuk mengendalikan dimensi agak kompleks dan saya sering mendapati diri saya perlu membaca semula dokumentasi mengenainya, mungkin kerana ia bukan sesuatu yang sering saya kerjakan.
Bagaimanapun, mengemas kini medan dalam set dimensi yang sedia ada adalah sesuatu yang sering berlaku, jadi saya fikir saya akan menulis mengenai resipi kegemaran saya ;-)
Kaedah utiliti statik mungkin kelihatan seperti ini:
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;
}
Kaedah ini mengembalikan RecId DimensionDefault yang baru (atau sama), jadi jika mengemas kini nilai dimensi untuk rekod - yang mungkin adalah senario yang paling biasa - anda harus pastikan untuk mengemas kini medan dimensi pada rekod tersebut dengan nilai baru.