Miklix

Dynamics AX 2012 SysOperation Framework Ringkesan Cepet

Diterbitake: 15 Februari 2025 ing 22:36:59 UTC

Artikel iki nyedhiyakake ringkesan cepet (utawa sheet cheat) babagan carane ngleksanakake kelas pangolahan lan proyek kumpulan ing kerangka SysOperation ing Dynamics AX 2012 lan Dynamics 365 kanggo Operasi.


Kaca iki diterjemahake mesin saka basa Inggris supaya bisa diakses dening akeh wong. Sayange, terjemahan mesin durung dadi teknologi sing sampurna, mula kesalahan bisa kedadeyan. Yen sampeyan seneng, sampeyan bisa ndeleng versi Inggris asli ing kene:

Dynamics AX 2012 SysOperation Framework Quick Overview

Informasi ing kirim iki adhedhasar Dynamics AX 2012 R3. Bisa uga ora bener kanggo versi liyane. (Update: Aku bisa konfirmasi manawa informasi ing artikel iki uga bener kanggo Dynamics 365 for Operations)


Kiriman iki mung dimaksudake minangka ringkesan cepet lan sheet cheat. Yen sampeyan anyar ing framework SysOperation, Aku banget suggest sing maca kertas putih Microsoft ing subyek uga. Informasi ing kene bisa uga migunani yen sampeyan mung butuh cepet babagan macem-macem kelas sing melu ngembangake operasi kanthi kerangka iki.

Ana variasi, nanging nalika aku nggunakake kerangka aku biasane ngleksanakake telung kelas:

  • Kontrak data (kudu ngluwihi SysOperationDataContractBase)
  • Layanan (kudu ngluwihi SysOperationServiceBase)
  • Controller ( kudu ngluwihi SysOperationServiceController)

Kajaba iku, aku uga bisa ngleksanakake kelas UIBuilder ( kudu ngluwihi SysOperationUIBuilder), nanging mung perlu yen dialog sakperangan alesan kudu luwih maju tinimbang apa framework ngasilake kanthi otomatis.


Kontrak data

Kontrak data ngemot anggota data sing dibutuhake kanggo operasi sampeyan. Bisa dibandhingake karo makro CurrentList khas sing ditetepake ing kerangka RunBase, nanging dileksanakake minangka kelas. Kontrak data kudu ngluwihi SysOperationDataContractBase, nanging bakal bisa digunakake sanajan ora. Kauntungan saka ndawakake kelas super yaiku nyedhiyakake sawetara informasi sesi sing bisa migunani.

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

Ing conto iki, itemId minangka anggota data. Sampeyan kudu ngleksanakake metode parm kanggo saben anggota data lan menehi tag karo DataMemberAttribute supaya kerangka ngerti apa iku. Iki ngidini framework nggawe dialog kanthi otomatis kanggo sampeyan.

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

    itemId = _itemId;
    return itemId;
}


Layanan

Kelas layanan yaiku kelas sing ngemot logika bisnis sing nyata. Iku ora ngangap karo nuduhake dialogs, Processing kumpulan utawa apa wae - sing tanggung jawab kelas controller. Kanthi misahake iki, sampeyan luwih seneng ngrancang kode kanthi apik lan nggawe kode sing bisa digunakake maneh.

Kaya kelas kontrak data, kelas layanan ora perlu oleh warisan saka apa-apa ing tartamtu, nanging kudu oleh warisan saka kelas SysOperationServiceBase, paling yen sampeyan nyana yen layanan bakal mbukak minangka proyek kumpulan, minangka kelas super menehi sawetara informasi bab konteks kumpulan. Cara sing miwiti operasi (yaiku nganggo logika bisnis) kudu njupuk obyek saka kelas kontrak data minangka input lan kudu dihiasi karo [SysEntryPointAttribute]. Contone:

class MyService extends SysOperationServiceBase
{
}

kanthi cara sing diarani run:

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


Pengontrol

Kelas controller nangani eksekusi lan pangolahan kumpulan operasi sampeyan. Iku uga nggawe manawa kode wis kaleksanan ing CIL kanggo kinerja maksimum. Kelas pengontrol biasane entuk warisan saka kelas SysOperationServiceController, sanajan ana uga opsi liyane.

class MyController extends SysOperationServiceController
{
}

Konstruktor kelas super njupuk jeneng kelas, jeneng metode lan (opsional) mode eksekusi minangka paramèter. Jeneng kelas lan metode kudu jeneng kelas layanan sampeyan lan metode sing kudu ditindakake. Dadi, sampeyan bisa ngleksanakake cara mbangun controller kaya iki:

public static MyController construct()
{
    ;

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

Banjur cara utama kelas MyController bisa gampang kaya

public static void main(Args _args)
{
    ;

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

Lan sampeyan wis rampung. Ing ndhuwur iku temenan conto banget prasaja lan framework ngandhut plethora opsi liyane lan kemungkinan, nanging iki serves minangka ringkesan cepet yen sampeyan perlu rerumput munggah nalika sampeyan wis ora digunakake framework kanggo nalika.

Nuduhake ing BlueskyNuduhake ing FacebookNuduhake ing LinkedInNuduhake ing TumblrNuduhake ing XNuduhake ing LinkedInPin ing Pinterest

Mikkel Bang Christensen

Babagan Penulis

Mikkel Bang Christensen
Mikkel minangka pencipta lan pemilik miklix.com. Dheweke duwe pengalaman luwih saka 20 taun minangka programmer komputer / pangembang piranti lunak profesional lan saiki kerja full-time kanggo perusahaan IT Eropa sing gedhe. Nalika ora ngeblog, dheweke mbuwang wektu luang kanggo macem-macem minat, hobi, lan kegiatan, sing bisa uga katon ing macem-macem topik sing dibahas ing situs web iki.