Dynamics AX 2012 SysOperation Framework فوری جائزہ
شائع شدہ: 15 فروری، 2025 کو 10:35:55 PM UTC
آخری بار اپ ڈیٹ کیا گیا: 12 جنوری، 2026 کو 8:39:45 AM UTC
یہ مضمون کارروائیوں کے لیے Dynamics AX 2012 اور Dynamics 365 میں SysOperation فریم ورک میں پروسیسنگ کلاسز اور بیچ جابز کو کیسے نافذ کیا جائے اس پر ایک فوری جائزہ (یا دھوکہ دہی) فراہم کرتا ہے۔
Dynamics AX 2012 SysOperation Framework Quick Overview
اس پوسٹ میں معلومات Dynamics AX 2012 R3 پر مبنی ہے۔ یہ دوسرے ورژن کے لیے درست ہو سکتا ہے یا نہیں۔ (اپ ڈیٹ: میں اس بات کی تصدیق کر سکتا ہوں کہ اس مضمون میں دی گئی معلومات Dynamics 365 برائے آپریشنز کے لیے بھی درست ہیں)
اس پوسٹ کا مطلب صرف ایک فوری جائزہ اور دھوکہ دہی کے شیٹ کے طور پر ہے۔ اگر آپ SysOperation کے فریم ورک میں نئے ہیں، تو میں پرزور مشورہ دیتا ہوں کہ آپ اس موضوع پر مائیکروسافٹ کا وائٹ پیپر بھی پڑھیں۔ یہاں کی معلومات مفید ہو سکتی ہیں اگر آپ کو اس فریم ورک کے ساتھ کاموں کو تیار کرنے میں شامل مختلف کلاسوں پر فوری برش کرنے کی ضرورت ہے۔
مختلف حالتیں ہیں، لیکن جب میں فریم ورک استعمال کرتا ہوں تو میں عام طور پر تین کلاسوں کو نافذ کرتا ہوں:
- ڈیٹا کا معاہدہ (SysOperationDataContractBase میں توسیع کرنی چاہیے)
- سروس (SysOperationServiceBase کو بڑھانا چاہیے)
- کنٹرولر (SysOperationServiceController کو بڑھانا ضروری ہے)
مزید برآں، میں UIBuilder کلاس کو بھی لاگو کر سکتا ہوں (SysOperationUIBuilder کو بڑھانا ضروری ہے)، لیکن یہ صرف اس صورت میں ضروری ہے جب کسی وجہ سے ڈائیلاگ کو فریم ورک کے خود بخود پیدا ہونے سے زیادہ ایڈوانس کرنا ہو۔
ڈیٹا معاہدہ
ڈیٹا کا معاہدہ آپ کے آپریشن کے لیے درکار ڈیٹا ممبرز کو رکھتا ہے۔ اس کا موازنہ رن بیس فریم ورک میں بیان کردہ عام کرنٹ لسٹ میکرو سے کیا جا سکتا ہے، لیکن اس کی بجائے کلاس کے طور پر لاگو کیا جاتا ہے۔ ڈیٹا کنٹریکٹ کو SysOperationDataContractBase میں توسیع کرنی چاہیے، لیکن کام کرے گا چاہے ایسا نہ ہو۔ سپر کلاس کو بڑھانے کا فائدہ یہ ہے کہ یہ سیشن کی کچھ معلومات فراہم کرتا ہے جو کام آسکتی ہے۔
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
اس مثال میں، آئٹم آئی ڈی ڈیٹا ممبر ہے۔ آپ کو ہر ڈیٹا ممبر کے لیے پرم طریقہ نافذ کرنے اور اسے DataMemberAttribute کے ساتھ ٹیگ کرنے کی ضرورت ہے تاکہ فریم ورک کو معلوم ہو کہ یہ کیا ہے۔ یہ فریم ورک کو خود بخود آپ کے لیے ڈائیلاگ بنانے کے قابل بناتا ہے۔
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
سروس
سروس کلاس وہ کلاس ہے جس میں حقیقی کاروباری منطق ہوتی ہے۔ اس کا تعلق ڈائیلاگ، بیچ پروسیسنگ یا اس طرح کی کوئی بھی چیز دکھانے سے نہیں ہے - یہ کنٹرولر کلاس کی ذمہ داری ہے۔ اسے الگ کرنے سے، آپ کو اپنے کوڈ کو اچھی طرح سے ڈیزائن کرنے اور دوبارہ قابل استعمال کوڈ بنانے کا زیادہ امکان ہے۔
ڈیٹا کنٹریکٹ کلاس کی طرح، سروس کلاس کو خاص طور پر کسی چیز سے وراثت حاصل کرنے کی ضرورت نہیں ہے، لیکن اسے SysOperationServiceBase کلاس سے وراثت میں ملنا چاہیے، کم از کم اگر آپ توقع کرتے ہیں کہ سروس بیچ جاب کے طور پر چلائی جائے گی، جیسا کہ سپر کلاس بیچ کے سیاق و سباق کے بارے میں کچھ معلومات فراہم کرتی ہے۔ وہ طریقہ جو آپریشن شروع کرتا ہے (یعنی بزنس لاجک چلاتا ہے) کو آپ کے ڈیٹا کنٹریکٹ کلاس کا ایک آبجیکٹ ان پٹ کے طور پر لینا چاہیے اور اسے [SysEntryPointAttribute] سے سجایا جانا چاہیے۔ مثال کے طور پر:
{
}
رن نامی طریقہ کے ساتھ:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
کنٹرولر
کنٹرولر کلاس آپ کے آپریشن کے عمل اور بیچ پروسیسنگ کو سنبھالتی ہے۔ یہ اس بات کو بھی یقینی بناتا ہے کہ زیادہ سے زیادہ کارکردگی کے لیے کوڈ کو CIL میں لاگو کیا گیا ہے۔ کنٹرولر کلاس عام طور پر SysOperationServiceController کلاس سے وراثت میں ملتی ہے، حالانکہ دیگر آپشنز بھی ہیں۔
{
}
سپر کلاس کا کنسٹرکٹر کلاس کا نام، طریقہ کار کا نام اور (اختیاری طور پر) ایگزیکیوشن موڈ کو پیرامیٹرز کے طور پر لیتا ہے۔ کلاس اور طریقہ کے نام آپ کی سروس کلاس کا نام اور اس پر چلنے والا طریقہ ہونا چاہیے۔ لہذا، آپ اپنے کنٹرولر کے تعمیراتی طریقہ کو اس طرح نافذ کر سکتے ہیں:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
پھر MyController کلاس کا بنیادی طریقہ اتنا ہی آسان ہوسکتا ہے۔
{
;
MyController::construct().startOperation();
}
اور آپ بنیادی طور پر کام کر چکے ہیں۔ مندرجہ بالا واضح طور پر ایک بہت ہی آسان مثال ہے اور فریم ورک میں دیگر اختیارات اور امکانات کی بہتات ہے، لیکن یہ ایک فوری جائزہ کے طور پر کام کرتا ہے اگر آپ کو برش اپ کی ضرورت ہو جب آپ نے کچھ عرصے سے فریم ورک کا استعمال نہیں کیا ہو۔
مزید پڑھنا
اگر آپ اس پوسٹ سے لطف اندوز ہوتے ہیں، تو آپ ان تجاویز کو بھی پسند کر سکتے ہیں:
- Dynamics AX 2012 میں قانونی ہستی (کمپنی اکاؤنٹس) کو حذف کریں
- Dynamics AX 2012 میں میکرو اور strFmt کے ساتھ سٹرنگ فارمیٹنگ
- ڈائنامکس اے ایکس 2012 میں ایکس ++ سے براہ راست اے آئی ایف دستاویز خدمات کو کال کرنا
