تحديث قيمة البعد المالي من كود X++ في Dynamics 365
نُشرت: ١٦ فبراير ٢٠٢٥ م في ١٢:٠٠:٥٠ م UTC
تشرح هذه المقالة كيفية تحديث قيمة البعد المالي من كود X++ في Dynamics 365، بما في ذلك مثال للكود.
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 جديدًا (أو نفس المعرف)، لذلك إذا كنت تقوم بتحديث قيمة البعد لسجل - وهو على الأرجح السيناريو الأكثر شيوعًا - فيجب عليك التأكد من تحديث حقل البعد في هذا السجل بالقيمة الجديدة.