ડાયનેમિક્સ 365માં X++ કોડમાંથી નાણાકીય પરિમાણ મૂલ્ય અપડેટ કરો
પ્રકાશિત: 16 ફેબ્રુઆરી, 2025 એ 12:02:46 PM UTC વાગ્યે
આ લેખ ડાયનેમિક્સ 365માં X++ કોડમાંથી નાણાકીય પરિમાણ મૂલ્યને કેવી રીતે અપડેટ કરવું તે સમજાવે છે, જેમાં કોડ ઉદાહરણનો પણ સમાવેશ થાય છે.
Update Financial Dimension Value from X++ Code in Dynamics 365
આ પોસ્ટમાં માહિતી ડાયનામિક્સ 365 પર આધારિત છે. તેણે ડાયનેમિક્સ એએક્સ 2012 માં પણ કામ કરવું જોઈએ, પરંતુ મેં સ્પષ્ટપણે તેનું પરીક્ષણ કર્યું નથી.
મને તાજેતરમાં જ કેટલાક સ્વરૂપના તર્કના આધારે એક જ નાણાકીય પરિમાણના મૂલ્યને અપડેટ કરવાનું કામ સોંપવામાં આવ્યું હતું.
તમે કદાચ જાણતા હશો કે, ડાયનેમિક્સ AX 2012 નાણાકીય પરિમાણો અલગ કોષ્ટકમાં સંગ્રહિત થાય છે અને RecId દ્વારા સંદર્ભિત કરવામાં આવે છે, સામાન્ય રીતે ડિફોલ્ટડિમેન્શન ક્ષેત્રમાં.
પરિમાણોને સંભાળવા માટેનું સમગ્ર માળખું કંઈક અંશે જટિલ હોય છે અને હું ઘણી વાર જોઉં છું કે તેના પરના દસ્તાવેજો ફરીથી વાંચવા પડે છે, કદાચ એટલા માટે કે તે એવી કોઈ બાબત નથી જેની સાથે હું ઘણી વાર કામ કરું છું.
ખેર, હાલના ડાયમેન્શન સેટમાં ફિલ્ડને અપડેટ કરવું એ એક એવી બાબત છે જે વારંવાર સામે આવે છે, તેથી મેં વિચાર્યું કે હું મારી મનપસંદ રેસીપીનું લખાણ લખીશ ;-)
સ્થિર ઉપયોગિતા પદ્ધતિ આના જેવી લાગી શકે છે:
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 આપે છે, તેથી જો રેકોર્ડ માટે પરિમાણ મૂલ્યને અપડેટ કરી રહ્યા હોય - જે કદાચ સૌથી સામાન્ય દૃશ્ય છે - તો તમારે નવા મૂલ્ય સાથે તે રેકોર્ડ પર પરિમાણ ક્ષેત્રને અપડેટ કરવાની ખાતરી કરવી જોઈએ.