Miklix

Dinamika AX 2012 SysOperation Framework Ihtisar Gancang

Diterbitkeun: 15 Pébruari 2025 jam 22.39.12 UTC
Panungtungan diropéa: 12 Januari 2026 jam 8.40.20 UTC

Artikel ieu nyayogikeun tinjauan ringkes (atanapi contekan) ngeunaan kumaha nerapkeun kelas pamrosésan sareng padamelan batch dina kerangka SysOperation dina Dynamics AX 2012 sareng Dynamics 365 for Operations.


Kaca ieu ditarjamahkeun ku mesin tina basa Inggris supados tiasa diaksés ku saloba-lobana jalma. Hanjakalna, tarjamahan mesin henteu acan janten téknologi anu sampurna, janten kasalahan tiasa lumangsung. Upami anjeun hoyong, anjeun tiasa ningali versi Inggris asli di dieu:

Dynamics AX 2012 SysOperation Framework Quick Overview

Inpormasi dina tulisan ieu dumasar kana Dynamics AX 2012 R3. Éta tiasa valid atanapi henteu pikeun vérsi anu sanés. (Apdet: Abdi tiasa mastikeun yén inpormasi dina tulisan ieu ogé valid pikeun Dynamics 365 for Operations)


Tulisan ieu ngan saukur minangka tinjauan ringkes sareng conto ringkesan. Upami anjeun anyar kana kerangka SysOperation, kuring nyarankeun pisan anjeun maca buku bodas Microsoft ngeunaan éta ogé. Inpormasi di dieu tiasa mangpaat upami anjeun ngan ukur peryogi tinjauan ringkes ngeunaan kelas anu béda-béda anu kalibet dina ngembangkeun operasi nganggo kerangka ieu.

Aya variasi, tapi nalika kuring nganggo kerangka kerja kuring biasana nerapkeun tilu kelas:

  • Kontrak data (kedah manjangkeun SysOperationDataContractBase)
  • Service (kedah manjangkeun SysOperationServiceBase)
  • Pangontrol (kedah manjangkeun SysOperationServiceController)

Salian ti éta, kuring ogé tiasa nerapkeun kelas UIBuilder (kedah manjangkeun SysOperationUIBuilder), tapi éta ngan diperyogikeun upami dialog kusabab alesan anu tangtu kedah langkung maju tibatan anu dihasilkeun ku kerangka sacara otomatis.


Kontrak data

Kontrak data nyimpen anggota data anu diperyogikeun pikeun operasi anjeun. Éta tiasa dibandingkeun sareng makro CurrentList has anu ditetepkeun dina kerangka RunBase, tapi diimplementasikeun salaku kelas. Kontrak data kedah manjangkeun SysOperationDataContractBase, tapi bakal tiasa dianggo sanaos henteu. Kauntungan tina manjangkeun kelas super nyaéta nyayogikeun sababaraha inpormasi sési anu tiasa kapaké.

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

Dina conto ieu, itemId nyaéta anggota data. Anjeun kedah nerapkeun metode parm pikeun unggal anggota data sareng masihan tag ka éta ku DataMemberAttribute supados framework terang naon éta. Ieu ngamungkinkeun framework pikeun sacara otomatis ngawangun dialog pikeun anjeun.

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

    itemId = _itemId;
    return itemId;
}


Layanan

Kelas layanan nyaéta kelas anu ngandung logika bisnis anu saleresna. Éta henteu museur kana némbongkeun dialog, pamrosésan batch atanapi naon waé anu sapertos kitu - éta mangrupikeun tanggung jawab kelas controller. Ku misahkeun ieu, anjeun langkung condong ngarancang kode anjeun kalayan saé sareng ngadamel kode anu langkung tiasa dianggo deui.

Sapertos kelas kontrak data, kelas layanan henteu kedah ngawaris tina naon waé anu khusus, tapi kedah ngawaris tina kelas SysOperationServiceBase, sahenteuna upami anjeun ngarepkeun yén layanan éta bakal dijalankeun salaku padamelan batch, sabab kelas super nyayogikeun sababaraha inpormasi ngeunaan kontéks batch. Métode anu ngamimitian operasi (nyaéta ngajalankeun logika bisnis) kedah nyandak objék kelas kontrak data anjeun salaku input sareng kedah dihias ku [SysEntryPointAttribute]. Salaku conto:

class MyService extends SysOperationServiceBase
{
}

Nganggo metode anu disebut run:

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


Pangontrol

Kelas controller ngatur palaksanaan sareng pamrosésan batch operasi anjeun. Éta ogé mastikeun yén kode dieksekusi dina CIL pikeun kinerja maksimal. Kelas controller biasana ngawaris tina kelas SysOperationServiceController, sanaos aya pilihan sanés ogé.

class MyController extends SysOperationServiceController
{
}

Konstruktor kelas super nyandak nami kelas, nami metode sareng (opsional) modeu palaksanaan salaku parameter. Nami kelas sareng metode kedah janten nami kelas layanan anjeun sareng metode anu kedah dijalankeun dina éta. Janten, anjeun tiasa nerapkeun metode konstruksi controller anjeun sapertos kieu:

public static MyController construct()
{
    ;

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

Teras metode utama kelas MyController tiasa saderhana sapertos

public static void main(Args _args)
{
    ;

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

Sareng anjeun parantos réngsé. Anu di luhur jelas mangrupikeun conto anu saderhana pisan sareng kerangka kerja ieu ngandung seueur pilihan sareng kamungkinan anu sanés, tapi ieu janten gambaran umum gancang upami anjeun peryogi perbaikan nalika anjeun teu acan nganggo kerangka kerja ieu salami sababaraha waktos.

Bacaan salajengna

Upami anjeun resep kana tulisan ieu, anjeun ogé tiasa resep saran ieu:


Bagikeun on BlueskyBagikeun dina FacebookBagikeun on LinkedInBagikeun dina TumblrBagikeun harga XBagikeun on LinkedInPin on Pinterest

Mikkel Christensen

Ngeunaan Pangarang

Mikkel Christensen
Mikkel mangrupikeun panyipta sareng pamilik miklix.com. Anjeunna gaduh pangalaman langkung ti 20 taun salaku programmer komputer / pamekar software profésional sareng ayeuna padamelan full-time pikeun korporasi IT Éropa anu ageung. Nalika henteu ngeblog, anjeunna nyéépkeun waktos luangna dina sajumlah ageung minat, hobi, sareng kagiatan, anu tiasa ditingali dina rupa-rupa topik anu aya dina halaman wéb ieu.