Mfumo wa Dynamics AX 2012 SysOperation Muhtasari wa Haraka
Iliyochapishwa: 15 Februari 2025, 22:36:35 UTC
Mara ya mwisho kusasishwa: 12 Januari 2026, 08:39:51 UTC
Makala haya yanatoa muhtasari mfupi (au karatasi ya kudanganya) kuhusu jinsi ya kutekeleza madarasa ya usindikaji na kazi za kundi katika mfumo wa SysOperation katika Dynamics AX 2012 na Dynamics 365 kwa Uendeshaji.
Dynamics AX 2012 SysOperation Framework Quick Overview
Taarifa katika chapisho hili inategemea Dynamics AX 2012 R3. Huenda ikawa halali au isiwe halali kwa matoleo mengine. (Sasisho: Ninaweza kuthibitisha kwamba taarifa katika makala haya pia ni halali kwa Dynamics 365 kwa Uendeshaji)
Chapisho hili linakusudiwa tu kama muhtasari mfupi na karatasi ya kudanganya. Ikiwa wewe ni mgeni katika mfumo wa SysOperation, ninapendekeza sana usome karatasi nyeupe ya Microsoft kuhusu mada hii pia. Taarifa hapa inaweza kuwa muhimu ikiwa unahitaji tu muhtasari mfupi kuhusu madarasa tofauti yanayohusika katika kukuza shughuli na mfumo huu.
Kuna tofauti, lakini ninapotumia mfumo kwa kawaida mimi hutekeleza madarasa matatu:
- Mkataba wa data (unapaswa kupanua SysOperationDataContractBase)
- Huduma (inapaswa kupanua SysOperationServiceBase)
- Kidhibiti (lazima kipanue Kidhibiti cha Huduma ya Uendeshaji wa Mfumo)
Zaidi ya hayo, naweza pia kutekeleza darasa la UIBuilder (lazima nipanue SysOperationUIBuilder), lakini hilo ni muhimu tu ikiwa mazungumzo kwa sababu fulani lazima yawe ya hali ya juu zaidi kuliko yale ambayo mfumo huzalisha kiotomatiki.
Mkataba wa data
Mkataba wa data unashikilia wanachama wa data wanaohitajika kwa ajili ya uendeshaji wako. Unaweza kulinganishwa na makro ya kawaida ya CurrentList iliyofafanuliwa katika mfumo wa RunBase, lakini ikatekelezwa kama darasa badala yake. Mkataba wa data unapaswa kupanua SysOperationDataContractBase, lakini utafanya kazi hata kama haufanyi kazi. Faida ya kupanua darasa kuu ni kwamba hutoa taarifa fulani ya kipindi ambayo inaweza kuwa muhimu.
class MyDataContract extends SysOperationDataContractBase
{
ItemId itemId;
}
Katika mfano huu, itemId ni mwanachama wa data. Unahitaji kutekeleza mbinu ya parm kwa kila mwanachama wa data na kuitambulisha kwa DataMemberAttribute ili mfumo ujue ni nini. Hii huwezesha mfumo kujenga kiotomatiki kidirisha cha mazungumzo kwa ajili yako.
public ItemId parmItemId(ItemId _itemId = itemId)
{
;
itemId = _itemId;
return itemId;
}
Huduma
Darasa la huduma ni darasa ambalo lina mantiki halisi ya biashara. Halihusiani na kuonyesha mazungumzo, usindikaji wa kundi au kitu chochote cha aina hiyo - hilo ni jukumu la darasa la kidhibiti. Kwa kutenganisha hili, kuna uwezekano mkubwa wa kubuni msimbo wako vizuri na kutengeneza msimbo unaoweza kutumika tena zaidi.
Kama darasa la mkataba wa data, darasa la huduma halihitaji kurithi kutoka kwa kitu chochote mahususi, lakini linapaswa kurithi kutoka kwa darasa la SysOperationServiceBase, angalau ikiwa unatarajia kwamba huduma itaendeshwa kama kazi ya kundi, kwani darasa la super hutoa taarifa fulani kuhusu muktadha wa kundi. Njia inayoanza operesheni (yaani inaendesha mantiki ya biashara) lazima ichukue kitu cha darasa lako la mkataba wa data kama ingizo na inapaswa kupambwa na [SysEntryPointAttribute]. Kwa mfano:
{
}
Kwa njia inayoitwa run:
public void run(MyDataContract _dataContract)
{
// run business logic here
}
Kidhibiti
Darasa la kidhibiti hushughulikia utekelezaji na usindikaji wa kundi la shughuli zako. Pia huhakikisha kwamba msimbo unatekelezwa katika CIL kwa utendaji wa hali ya juu. Darasa la kidhibiti kwa kawaida hurithi kutoka kwa darasa la SysOperationServiceController, ingawa kuna chaguzi zingine pia.
{
}
Mjenzi wa darasa kuu huchukua jina la darasa, jina la mbinu na (hiari) hali ya utekelezaji kama vigezo. Majina ya darasa na mbinu yanapaswa kuwa jina la darasa lako la huduma na mbinu ambayo inapaswa kuendeshwa juu yake. Kwa hivyo, unaweza kutekeleza mbinu ya ujenzi ya mtawala wako kama hii:
{
;
return new MyController(classStr(MyService),
methodStr(MyService, run));
}
Kisha njia kuu ya darasa la MyController inaweza kuwa rahisi kama
{
;
MyController::construct().startOperation();
}
Na kimsingi umemaliza. Yaliyo hapo juu ni mfano rahisi sana na mfumo una chaguo na uwezekano mwingi, lakini hii inatumika kama muhtasari mfupi ikiwa unahitaji marekebisho wakati hujatumia mfumo kwa muda.
Kusoma Zaidi
Ikiwa ulifurahia chapisho hili, unaweza pia kupenda mapendekezo haya:
- Jinsi ya Kupima Juu ya Vipengele vya Enum kutoka kwa X++ Code katika Dynamics AX 2012
- Tofauti kati ya data() na buf2Buf() katika Dynamics AX 2012
- Kutumia Mfumo wa SysExtension ili kujua ni darasa gani ndogo la instantiate katika Dynamics AX 2012
