Miklix

Dynamics AX 2012 SysOperation Framework فوری جائزہ

شائع شدہ: 15 فروری، 2025 کو 10:35:55 PM UTC

یہ مضمون ڈائنامکس اے ایکس 2012 اور ڈائنامکس 365 فار آپریشنز میں سائس آپریشن فریم ورک میں پروسیسنگ کلاسز اور بیچ کی ملازمتوں کو نافذ کرنے کے بارے میں ایک فوری جائزہ (یا چیٹ شیٹ) فراہم کرتا ہے۔


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

Dynamics AX 2012 SysOperation Framework Quick Overview

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


یہ پوسٹ صرف ایک فوری جائزہ اور دھوکہ دہی شیٹ کے طور پر ہے. اگر آپ سائس آپریٹنگ فریم ورک میں نئے ہیں تو ، میرا پختہ مشورہ ہے کہ آپ اس موضوع پر مائیکروسافٹ کا وائٹ پیپر بھی پڑھیں۔ اگر آپ کو اس فریم ورک کے ساتھ آپریشنز کو ترقی دینے میں شامل مختلف کلاسوں پر فوری برش کرنے کی ضرورت ہے تو یہاں کی معلومات مفید ہوسکتی ہیں۔

تغیرات ہیں ، لیکن جب میں فریم ورک استعمال کرتا ہوں تو میں عام طور پر تین کلاسوں کو لاگو کرتا ہوں:

  • Data contract (should extend SysOperationDataContractBase)
  • Service (should extend SysOperationServiceBase)
  • Controller (must extend SysOperationServiceController)

مزید برآں ، میں یو آئی بلڈر کلاس کو بھی لاگو کرسکتا ہوں (سیس آپریٹریشن یو آئی بلڈر کو بڑھانا ضروری ہے) ، لیکن یہ صرف اس صورت میں ضروری ہے جب کسی وجہ سے ڈائیلاگ کو فریم ورک خود بخود پیدا ہونے والے ڈائیلاگ سے زیادہ جدید ہونا چاہئے۔


ڈیٹا معاہدہ

ڈیٹا کنٹریکٹ آپ کے آپریشن کے لئے درکار ڈیٹا ممبروں کو رکھتا ہے۔ اس کا موازنہ رن بیس فریم ورک میں بیان کردہ عام کرنٹ لسٹ میکرو سے کیا جاسکتا ہے ، لیکن اس کے بجائے کلاس کے طور پر لاگو کیا جاسکتا ہے۔ ڈیٹا معاہدے کو سائس آپریٹریشن ڈیٹا کنٹریکٹ بیس کو بڑھانا چاہئے ، لیکن اگر یہ نہیں بھی ہوتا ہے تو بھی کام کرے گا۔ سپر کلاس کو بڑھانے کا فائدہ یہ ہے کہ یہ کچھ سیشن کی معلومات فراہم کرتا ہے جو آسان ہوسکتا ہے۔

[DataContractAttribute]
class MyDataContract extends SysOperationDataContractBase
{
    ItemId itemId;
}

اس مثال میں ، آئٹم آئی ڈی ایک ڈیٹا ممبر ہے۔ آپ کو ہر ڈیٹا ممبر کے لئے ایک پارم طریقہ کار نافذ کرنے کی ضرورت ہے اور اسے ڈیٹا ممبر ایٹریبوٹ کے ساتھ ٹیگ کریں تاکہ فریم ورک کو معلوم ہو کہ یہ کیا ہے۔ یہ فریم ورک کو آپ کے لئے خود بخود ڈائیلاگ بنانے کے قابل بناتا ہے۔

[DataMemberAttribute]
public ItemId parmItemId(ItemId _itemId = itemId)
{
    ;

    itemId = _itemId;
    return itemId;
}


خدمت

سروس کلاس وہ کلاس ہے جس میں اصل کاروباری منطق شامل ہے۔ یہ ڈائیلاگ ، بیچ پروسیسنگ یا اس طرح کی کسی بھی چیز کو دکھانے سے متعلق نہیں ہے - یہ کنٹرولر کلاس کی ذمہ داری ہے۔ اس کو الگ کرکے ، آپ اپنے کوڈ کو اچھی طرح سے ڈیزائن کرنے اور زیادہ دوبارہ قابل استعمال کوڈ بنانے کا زیادہ امکان رکھتے ہیں۔

ڈیٹا کنٹریکٹ کلاس کی طرح ، سروس کلاس کو کسی خاص چیز سے وراثت میں لینے کی ضرورت نہیں ہے ، لیکن اسے سائس آپریشن سروس بیس کلاس سے وراثت میں ملنا چاہئے ، کم از کم اگر آپ توقع کرتے ہیں کہ سروس کو بیچ جاب کے طور پر چلایا جائے گا ، کیونکہ سپر کلاس بیچ سیاق و سباق کے بارے میں کچھ معلومات فراہم کرتی ہے۔ آپریشن شروع کرنے والا طریقہ (یعنی کاروباری منطق چلاتا ہے) آپ کے ڈیٹا کنٹریکٹ کلاس کے ایک آبجیکٹ کو ان پٹ کے طور پر لینا چاہئے اور اسے [ساس انٹریپوائنٹ ایٹریبوٹ] کے ساتھ سجایا جانا چاہئے۔ مثال کے طور پر:

class MyService extends SysOperationServiceBase
{
}

رن نامی طریقہ کار کے ساتھ:

[SysEntryPointAttribute]
public void run(MyDataContract _dataContract)
{
    // run business logic here
}


کنٹرولر

کنٹرولر کلاس آپ کے آپریشن کے نفاذ اور بیچ پروسیسنگ کو سنبھالتا ہے۔ یہ اس بات کو بھی یقینی بناتا ہے کہ زیادہ سے زیادہ کارکردگی کے لئے کوڈ کو سی آئی ایل میں نافذ کیا جائے۔ کنٹرولر کلاس عام طور پر سائس آپریشن سروس کنٹرولر کلاس سے وراثت میں ملتی ہے ، حالانکہ دیگر اختیارات بھی موجود ہیں۔

class MyController extends SysOperationServiceController
{
}

سپر کلاس کا کنسٹریکٹر کلاس کا نام ، طریقہ کار کا نام اور (اختیاری طور پر) عملدرآمد موڈ کو پیرامیٹرز کے طور پر لیتا ہے۔ کلاس اور طریقہ نام آپ کی سروس کلاس کا نام ہونا چاہئے اور اس پر چلنے والا طریقہ ہونا چاہئے۔ لہذا ، آپ اپنے کنٹرولر کے تعمیراتی طریقہ کار کو اس طرح نافذ کرسکتے ہیں:

public static MyController construct()
{
    ;

    return new MyController(classStr(MyService),
    methodStr(MyService, run));
}

پھر مائی کنٹرولر کلاس کا بنیادی طریقہ اتنا ہی آسان ہوسکتا ہے جتنا کہ

public static void main(Args _args)
{
    ;

    MyController::construct().startOperation();
}

اور آپ بنیادی طور پر مکمل ہو چکے ہیں. مندرجہ بالا واضح طور پر ایک بہت ہی آسان مثال ہے اور فریم ورک میں دیگر اختیارات اور امکانات کی کثرت ہے ، لیکن اگر آپ کو کچھ وقت کے لئے فریم ورک کا استعمال نہیں کیا ہے تو یہ فوری جائزہ کے طور پر کام کرتا ہے۔

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

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

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

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