Dynamics 365 में X++ कोड से वित्तीय आयाम मान अपडेट करें
प्रकाशित: 16 फ़रवरी 2025 को 12:01:47 pm UTC बजे
यह आलेख बताता है कि Dynamics 365 में X++ कोड से वित्तीय आयाम मान को कैसे अद्यतन किया जाए, जिसमें कोड उदाहरण भी शामिल है।
Update Financial Dimension Value from X++ Code in Dynamics 365
इस पोस्ट में दी गई जानकारी Dynamics 365 पर आधारित है। इसे Dynamics AX 2012 में भी काम करना चाहिए, लेकिन मैंने इसका स्पष्ट रूप से परीक्षण नहीं किया है।
हाल ही में मुझे किसी फॉर्म लॉजिक के आधार पर एक एकल वित्तीय आयाम के मूल्य को अद्यतन करने का कार्य सौंपा गया था।
जैसा कि आप शायद जानते हैं, Dynamics AX 2012 के बाद से वित्तीय आयामों को अलग-अलग तालिकाओं में संग्रहीत किया जाता है और RecId के माध्यम से संदर्भित किया जाता है, आमतौर पर DefaultDimension फ़ील्ड में।
आयामों को संभालने का पूरा ढांचा कुछ जटिल है और मुझे अक्सर इसके बारे में दस्तावेज दोबारा पढ़ने पड़ते हैं, शायद इसलिए क्योंकि यह ऐसी चीज नहीं है जिस पर मैं अक्सर काम करता हूं।
वैसे भी, किसी मौजूदा आयाम सेट में किसी फ़ील्ड को अपडेट करना एक ऐसी चीज़ है जो अक्सर आती है, इसलिए मैंने सोचा कि मैं अपनी पसंदीदा रेसिपी के बारे में लिखूं ;-)
एक स्थैतिक उपयोगिता विधि इस प्रकार दिख सकती है:
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;
}
यह विधि एक नया (या समान) DimensionDefault RecId लौटाती है, इसलिए यदि किसी रिकॉर्ड के लिए आयाम मान को अद्यतन किया जा रहा है - जो संभवतः सबसे सामान्य परिदृश्य है - तो आपको उस रिकॉर्ड पर आयाम फ़ील्ड को नए मान के साथ अद्यतन करना सुनिश्चित करना चाहिए।