Miklix

עדכן את ערך הממד הפיננסי מקוד 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.

כל המסגרת לטיפול בממדים מורכבת במקצת ולעיתים קרובות אני מוצא את עצמי צריך לקרוא מחדש תיעוד על זה, אולי בגלל שזה לא משהו שאני עובד איתו כל כך הרבה.

בכל מקרה, עדכון שדה בערכת מימדים קיימת זה משהו שעולה לעתים קרובות, אז חשבתי לכתוב את המתכון האהוב עליי ;-)


שיטת שירות סטטית יכולה להיראות כך:

public static DimensionDefault updateDimension( DimensionDefault    _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 חדש (או זהה), כך שאם מעדכנים ערך ממד עבור רשומה - שהוא כנראה התרחיש הנפוץ ביותר - עליך להקפיד לעדכן את שדה הממד באותה רשומה בערך החדש.

שתפו בבלוסקישתפו בפייסבוקשתפו בלינקדאיןשתפו ב-Tumblrשתפו ב-Xשתפו בלינקדאיןהצמד בפינטרסט

מיקל בנג כריסטנסן

על המחבר

מיקל בנג כריסטנסן
מיקל הוא היוצר והבעלים של miklix.com. יש לו למעלה מ-20 שנות ניסיון כמתכנת מחשבים/מפתח תוכנה מקצועי וכיום הוא מועסק במשרה מלאה בתאגיד IT אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.