Miklix

Dynamics AX 2012 SysOperation Framework Ringkesan Cepet

Diterbitake: 15 Februari 2025 ing 22:36:59 UTC
Dianyari pungkasan: 12 Januari 2026 ing 08:40:01 UTC

Artikel iki nyedhiyakake ringkesan cepet (utawa contekan) babagan carane ngetrapake kelas pangolahan lan tugas batch ing kerangka SysOperation ing Dynamics AX 2012 lan Dynamics 365 for Operations.


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 kiriman iki adhedhasar Dynamics AX 2012 R3. Iki bisa uga valid utawa ora valid kanggo versi liyane. (Nganyari: Aku bisa ngonfirmasi manawa informasi ing artikel iki uga valid kanggo Dynamics 365 for Operations)


Kiriman iki mung minangka ringkesan cepet lan lembar contekan. Yen sampeyan anyar ing framework SysOperation, aku banget nyaranake sampeyan maca buku putih Microsoft babagan subyek kasebut uga. Informasi ing kene bisa migunani yen sampeyan mung butuh pambuka cepet babagan macem-macem kelas sing ana gandhengane karo ngembangake operasi nganggo framework iki.

Ana variasi, nanging nalika aku nggunakake framework iki, aku biasane ngetrapake telung kelas:

  • Kontrak data (kudune ngluwihi SysOperationDataContractBase)
  • Layanan (kudune ngluwihi SysOperationServiceBase)
  • Kontroler (kudu ngembangake SysOperationServiceController)

Kajaba iku, aku uga bisa ngetrapake kelas UIBuilder (kudu ngembangake SysOperationUIBuilder), nanging mung perlu yen dialog amarga sawetara alesan kudu luwih maju tinimbang sing digawe framework kanthi otomatis.


Kontrak data

Kontrak data nyimpen anggota data sing dibutuhake kanggo operasi sampeyan. Iki bisa dibandhingake karo makro CurrentList khas sing ditetepake ing framework RunBase, nanging diimplementasikake minangka kelas. Kontrak data kudune ngluwihi SysOperationDataContractBase, nanging bakal bisa digunakake sanajan ora. Kauntungan saka ngembangake kelas super yaiku nyedhiyakake sawetara informasi sesi sing bisa migunani.

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

Ing conto iki, itemId iku anggota data. Sampeyan kudu ngetrapake metode parm kanggo saben anggota data lan menehi tag nganggo DataMemberAttribute supaya framework ngerti apa iku. Iki ngaktifake framework kanggo mbangun dialog kanthi otomatis kanggo sampeyan.

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

    itemId = _itemId;
    return itemId;
}


Layanan

Kelas layanan iku kelas sing ngemot logika bisnis sing nyata. Kelas iki ora ana hubungane karo nampilake dialog, pamrosesan batch utawa apa wae sing padha - iku tanggung jawabe kelas controller. Kanthi misahake iki, sampeyan luwih cenderung ngrancang kode kanthi apik lan nggawe kode sing luwih bisa digunakake maneh.

Kaya kelas kontrak data, kelas layanan ora perlu nurun saka apa wae, nanging kudu nurun saka kelas SysOperationServiceBase, paling ora yen sampeyan ngarepake layanan kasebut bakal dilakokake minangka tugas batch, amarga kelas super nyedhiyakake sawetara informasi babagan konteks batch. Metode sing miwiti operasi (yaiku mbukak logika bisnis) kudu njupuk obyek kelas kontrak data sampeyan minangka input lan kudu dihias nganggo [SysEntryPointAttribute]. Contone:

class MyService extends SysOperationServiceBase
{
}

Nganggo metode sing diarani run:

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


Kontroler

Kelas controller nangani eksekusi lan pamrosesan batch operasi sampeyan. Kelas iki uga njamin manawa kode kasebut dieksekusi ing CIL kanggo kinerja maksimal. Kelas controller biasane entuk warisan saka kelas SysOperationServiceController, sanajan ana pilihan liyane uga.

class MyController extends SysOperationServiceController
{
}

Konstruktor kelas super njupuk jeneng kelas, jeneng metode, lan (opsional) mode eksekusi minangka parameter. Jeneng kelas lan metode kudu dadi jeneng kelas layanan sampeyan lan metode sing kudu dilakokake. Dadi, sampeyan bisa ngetrapake metode konstruksi controller kaya iki:

public static MyController construct()
{
    ;

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

Banjur metode utama saka kelas MyController bisa sesederhana kaya

public static void main(Args _args)
{
    ;

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

Lan wis rampung. Ing ndhuwur iki conto sing prasaja banget lan framework iki ngemot akeh pilihan lan kemungkinan liyane, nanging iki minangka ringkesan cepet yen sampeyan butuh penyegaran nalika sampeyan wis suwe ora nggunakake framework kasebut.

Wacan Salajengipun

Yen sampeyan seneng karo kiriman iki, sampeyan bisa uga seneng saran iki:


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

Mikkel Christensen

Babagan Penulis

Mikkel 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.