Miklix

Dynamics AX 2012 میں SysOperation ڈیٹا کنٹریکٹ کلاس میں سوال کا استعمال

شائع شدہ: 16 فروری، 2025 کو 1:23:15 AM UTC

یہ مضمون Dynamics AX 2012 (اور Dynamics 365 for Operations) میں SysOperation ڈیٹا کنٹریکٹ کلاس میں صارف کے قابل ترتیب اور فلٹر کے قابل استفسار کو کیسے شامل کرنے کے بارے میں تفصیلات پر مشتمل ہے۔


یہ صفحہ انگریزی سے مشینی ترجمہ کیا گیا تھا تاکہ زیادہ سے زیادہ لوگوں تک اس تک رسائی ممکن بنائی جا سکے۔ بدقسمتی سے، مشینی ترجمہ ابھی تک ایک مکمل ٹیکنالوجی نہیں ہے، اس لیے غلطیاں ہو سکتی ہیں۔ اگر آپ چاہیں تو اصل انگریزی ورژن یہاں دیکھ سکتے ہیں:

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

اس پوسٹ میں معلومات Dynamics AX 2012 R3 پر مبنی ہے۔ یہ دوسرے ورژن کے لیے درست ہو سکتا ہے یا نہیں۔ (اپ ڈیٹ: میں تصدیق کر سکتا ہوں کہ یہ آپریشنز کے لیے ڈائنامکس 365 پر بھی کام کرتا ہے)

ایسا لگتا ہے کہ میں ہمیشہ SysOperation فریم ورک میں کسی استفسار کی وضاحت اور ابتدا کرنے کے بارے میں تفصیلات بھول جاتا ہوں۔ میرا اندازہ ہے کہ بیچ کی زیادہ تر نوکریاں جو میں بنا رہا ہوں وہ صارف کے کنفیگر کیے جانے والے سوالات پر مبنی نہیں ہیں، لیکن مجھے وقتاً فوقتاً ایسی بیچ جاب کرنے کی ضرورت ہوتی ہے، اس لیے یہ پوسٹ بھی میرے اپنے حوالے کے لیے ہے۔

سب سے پہلے، ڈیٹا کنٹریکٹ کلاس میں، استفسار کو سٹرنگ میں پیک کیا جائے گا۔ اس کے پرم طریقہ کو 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);
}

آپ کو یہ یقینی بنانا ہوگا کہ کنٹرولر کلاس سے اس طریقہ کو کال کریں۔

بلوسکی پر شیئر کریں۔فیس بک پر شیئر کریں۔لنکڈ ان پر شیئر کریں۔ٹمبلر پر شیئر کریں۔ایکس پر شیئر کریں۔لنکڈ ان پر شیئر کریں۔پنٹرسٹ پر پن کریں

میکل بینگ کرسٹینسن

مصنف کے بارے میں

میکل بینگ کرسٹینسن
مائیکل miklix.com کا خالق اور مالک ہے۔ اس کے پاس ایک پیشہ ور کمپیوٹر پروگرامر/سافٹ ویئر ڈویلپر کے طور پر 20 سال سے زیادہ کا تجربہ ہے اور وہ اس وقت ایک بڑی یورپی آئی ٹی کارپوریشن میں کل وقتی ملازمت کر رہے ہیں۔ جب وہ بلاگنگ نہیں کرتے ہیں، تو وہ اپنا فارغ وقت دلچسپیوں، مشاغل اور سرگرمیوں کی ایک وسیع صف پر صرف کرتا ہے، جو کسی حد تک اس ویب سائٹ پر موجود مختلف موضوعات سے ظاہر ہو سکتا ہے۔