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;
}
اگر آپ چاہتے ہیں کہ سوال کا فیصلہ اس کے بجائے کنٹرولر کلاس کرے، تو آپ خالی سٹرنگ بھی استعمال کر سکتے ہیں۔ اس صورت میں، آپ کو مددگار طریقوں کے ایک جوڑے کو لاگو کرنے کی بھی ضرورت ہے (جو آپ کو اپنی سہولت کے لیے بہرحال لاگو کرنا چاہیے جب آپ کو استفسار تک رسائی کی ضرورت ہو):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
اگر آپ کو استفسار شروع کرنے کی ضرورت ہے (مثال کے طور پر، رینجز شامل کریں)، تو آپ کو ایک initQuery طریقہ نافذ کرنا چاہیے:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
آپ کو یہ یقینی بنانا ہوگا کہ کنٹرولر کلاس سے اس طریقہ کو کال کریں۔