Miklix

Mfumo wa Dynamics AX 2012 SysOperation Muhtasari wa Haraka

Iliyochapishwa: 15 Februari 2025, 22:36:35 UTC

Makala haya yanatoa muhtasari wa haraka (au laha la kudanganya) kuhusu jinsi ya kutekeleza madarasa ya uchakataji na kazi za kundi katika mfumo wa SysOperation katika Dynamics AX 2012 na Dynamics 365 kwa Uendeshaji.


Ukurasa huu ulitafsiriwa kwa mashine kutoka kwa Kiingereza ili kuifanya iweze kupatikana kwa watu wengi iwezekanavyo. Kwa bahati mbaya, utafsiri wa mashine bado sio teknolojia iliyokamilishwa, kwa hivyo makosa yanaweza kutokea. Ukipenda, unaweza kutazama toleo asili la Kiingereza hapa:

Dynamics AX 2012 SysOperation Framework Quick Overview

Maelezo katika chapisho hili yanatokana na Dynamics AX 2012 R3. Inaweza au isiwe halali kwa matoleo mengine. (Sasisho: Ninaweza kuthibitisha kuwa maelezo katika makala haya ni halali kwa Dynamics 365 kwa Uendeshaji)


Chapisho hili linamaanishwa tu kama muhtasari wa haraka na laha ya kudanganya. Ikiwa wewe ni mpya kwa mfumo wa SysOperation, ninapendekeza sana usome karatasi nyeupe ya Microsoft juu ya mada hiyo pia. Taarifa hapa inaweza kuwa muhimu ikiwa unahitaji tu mswaki wa haraka juu ya madarasa tofauti yanayohusika katika kuendeleza shughuli na mfumo huu.

Kuna tofauti, lakini ninapotumia mfumo mimi hutumia madarasa matatu:

  • Mkataba wa data (unapaswa kupanua SysOperationDataContractBase)
  • Huduma (inapaswa kupanua SysOperationServiceBase)
  • Kidhibiti ( lazima kiongeze SysOperationServiceController)

Kwa kuongeza, naweza pia kutekeleza darasa la UIBuilder ( lazima iongeze SysOperationUIBuilder), lakini hiyo ni muhimu tu ikiwa mazungumzo kwa sababu fulani lazima yawe ya juu zaidi kuliko yale ambayo mfumo hutoa moja kwa moja.


Mkataba wa data

Mkataba wa data huwa na washiriki wa data wanaohitajika kwa uendeshaji wako. Inaweza kulinganishwa na orodha kuu ya kawaida ya CurrentList iliyofafanuliwa katika mfumo wa RunBase, lakini inatekelezwa kama darasa badala yake. Mkataba wa data unapaswa kupanua SysOperationDataContractBase, lakini itafanya kazi hata kama haifanyi kazi. Faida ya kupanua darasa bora ni kwamba hutoa habari fulani ya kikao ambayo inaweza kuwa muhimu.

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

Katika mfano huu, bidhaaId ni mwanachama wa data. Unahitaji kutekeleza njia ya kanuni kwa kila mwanachama wa data na kuitambulisha kwa DataMemberAttribute ili mfumo ujue ni nini. Hii huwezesha mfumo kukuundia kiotomatiki kidirisha.

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

    itemId = _itemId;
    return itemId;
}


Huduma

Darasa la huduma ni darasa ambalo lina mantiki halisi ya biashara. Haijalishi kuonyesha mazungumzo, usindikaji wa bechi au kitu chochote cha aina hiyo - hilo ni jukumu la darasa la kidhibiti. Kwa kutenganisha hili, kuna uwezekano mkubwa wa kuunda msimbo wako vizuri na kutengeneza msimbo unaoweza kutumika tena.

Kama darasa la mkataba wa data, darasa la huduma haliitaji kurithi kutoka kwa chochote haswa, lakini inapaswa kurithi kutoka kwa darasa la SysOperationServiceBase, angalau ikiwa unatarajia kuwa huduma hiyo itaendeshwa kama kazi ya kundi, kwani darasa la juu hutoa habari fulani juu ya muktadha wa kundi. Mbinu inayoanzisha utendakazi (yaani inaendesha mantiki ya biashara) lazima ichukue kitu cha darasa lako la mkataba wa data kama ingizo na inapaswa kupambwa kwa [SysEntryPointAttribute]. Kwa mfano:

class MyService extends SysOperationServiceBase
{
}

na njia inayoitwa run:

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


Kidhibiti

Darasa la kidhibiti hushughulikia utekelezaji na usindikaji wa bechi ya uendeshaji wako. Pia inahakikisha kuwa nambari inatekelezwa katika CIL kwa utendaji wa juu zaidi. Darasa la kidhibiti kawaida hurithi kutoka kwa darasa la SysOperationServiceController, ingawa kuna chaguzi zingine pia.

class MyController extends SysOperationServiceController
{
}

Mjenzi wa darasa bora huchukua jina la darasa, jina la njia na (hiari) hali ya utekelezaji kama vigezo. Majina ya darasa na mbinu yanapaswa kuwa jina la darasa lako la huduma na njia ambayo inapaswa kuendeshwa juu yake. Kwa hivyo, unaweza kutekeleza njia ya ujenzi ya mtawala wako kama hii:

public static MyController construct()
{
    ;

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

Kisha njia kuu ya darasa la MyController inaweza kuwa rahisi kama

public static void main(Args _args)
{
    ;

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

Na kimsingi umemaliza. Ya hapo juu ni mfano rahisi sana na mfumo una wingi wa chaguzi na uwezekano mwingine, lakini hii hutumika kama muhtasari wa haraka ikiwa unahitaji brashi juu wakati haujatumia mfumo kwa muda.

Shiriki kwenye BlueskyShiriki kwenye FacebookShiriki kwenye LinkedInShiriki kwenye TumblrShiriki kwenye XShiriki kwenye LinkedInBandika kwenye Pinterest

Mikkel Bang Christensen

Kuhusu Mwandishi

Mikkel Bang Christensen
Mikkel ndiye muundaji na mmiliki wa miklix.com. Ana uzoefu wa zaidi ya miaka 20 kama mtaalamu wa kupanga programu/programu za kompyuta na kwa sasa ameajiriwa muda wote kwa shirika kubwa la IT la Ulaya. Wakati si kublogi, yeye hutumia wakati wake wa ziada kwenye safu nyingi za mapendeleo, vitu vya kufurahisha, na shughuli, ambazo zinaweza kuonyeshwa kwa kadiri fulani katika mada anuwai zinazozungumziwa kwenye wavuti hii.