עדכן את ערך הממד הפיננסי מקוד X++ ב- Dynamics 365
פורסם: 16 בפברואר 2025 בשעה 12:01:59 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 חדש (או זהה), כך שאם מעדכנים ערך ממד עבור רשומה - שהוא כנראה התרחיש הנפוץ ביותר - עליך להקפיד לעדכן את שדה הממד באותה רשומה בערך החדש.