Miklix

שימוש בשאילתה במחלקת חוזה נתונים של SysOperation ב- Dynamics AX 2012

פורסם: 16 בפברואר 2025 בשעה 1:24:38 UTC

מאמר זה עובר על הפרטים כיצד להוסיף שאילתה הניתנת להגדרה וניתנת לסינון למחלקת חוזה נתונים של SysOperation ב- Dynamics AX 2012 (ו- Dynamics 365 for Operations)


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

Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012

המידע בפוסט זה מבוסס על Dynamics AX 2012 R3. זה עשוי להיות תקף עבור גרסאות אחרות או לא. (עדכון: אני יכול לאשר שזה עובד גם על Dynamics 365 for Operations)

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

ראשית, במחלקת חוזה הנתונים, השאילתה תישמר ארוזה במחרוזת. שיטת ה-parm שלו חייבת להיות מעוטרת בתכונת AifQueryTypeAttribute, כמו כך (בדוגמה זו השתמשתי בשאילתת SalesUpdate, אבל אתה יכול להחליף אותה בכל שאילתת AOT):

[
    DataMemberAttribute,
    AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
    ;

    packedQuery = _packedQuery;
    return packedQuery;
}

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

public Query getQuery()
{
    ;

    return new Query(SysOperationHelper::base64Decode(packedQuery));
}

public void setQuery(Query _query)
{
    ;

    packedQuery = SysOperationHelper::base64Encode(_query.pack());
}

אם אתה צריך לאתחל את השאילתה (לדוגמה, להוסיף טווחים), עליך ליישם שיטה initQuery:

public void initQuery()
{
    Query queryLocal = this.getQuery();
    ;

    // add ranges, etc...

    this.setQuery(queryLocal);
}

עליך להקפיד לקרוא לשיטה זו ממחלקת הבקר.

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

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

על המחבר

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