Miklix

Dinamika AX 2012 SysOperation Framework Ihtisar Gancang

Diterbitkeun: 15 Pébruari 2025 jam 22.39.12 UTC

Artikel ieu nyadiakeun gambaran gancang (atawa curang lambar) dina cara nerapkeun kelas processing jeung jobs bets dina kerangka SysOperation dina Dinamika AX 2012 sarta Dinamika 365 pikeun Operasi.


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. Ieu bisa atawa bisa jadi teu valid pikeun vérsi séjén. (Update: Abdi tiasa mastikeun yén inpormasi dina tulisan ieu ogé valid pikeun Dynamics 365 for Operations)


Tulisan ieu ngan dimaksudkeun salaku tinjauan gancang sareng lambaran curang. Upami anjeun énggal dina kerangka SysOperation, kuring nyarankeun pisan yén anjeun ogé maca kertas bodas Microsoft ngeunaan éta. Inpormasi di dieu tiasa mangpaat upami anjeun ngan ukur peryogi gancang-gancang dina kelas anu béda-béda anu aub dina ngembangkeun operasi sareng kerangka ieu.

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

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

Salaku tambahan, kuring ogé tiasa nerapkeun kelas UIBuilder ( kudu manjangkeun SysOperationUIBuilder), tapi éta ngan ukur diperyogikeun upami dialog pikeun sababaraha alesan kedah langkung maju tibatan naon anu dibangkitkeun sacara otomatis.


kontrak data

Kontrak data nahan anggota data anu dipikabutuh pikeun operasi anjeun. Éta tiasa dibandingkeun sareng makro CurrentList khas anu ditetepkeun dina kerangka RunBase, tapi dilaksanakeun salaku kelas. Kontrak data kedah manjangkeun SysOperationDataContractBase, tapi bakal tiasa dianggo sanajan henteu. Kauntungannana ngalegaan kelas super téh nya éta nyadiakeun sababaraha émbaran sési nu bisa jadi gunana.

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

Dina conto ieu, itemId mangrupa anggota data. Anjeun kedah nerapkeun metode parm pikeun tiap anggota data sareng tag sareng DataMemberAttribute supados kerangka terang naon éta. Ieu ngamungkinkeun kerangka pikeun otomatis ngawangun dialog pikeun anjeun.

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

    itemId = _itemId;
    return itemId;
}


Palayanan

Kelas jasa nyaéta kelas anu ngandung logika bisnis anu sabenerna. Éta henteu prihatin kalayan nunjukkeun dialog, pamrosesan bets atanapi naon waé - éta mangrupikeun tanggung jawab kelas controller. Ku misahkeun ieu, anjeun leuwih gampang mendesain kode anjeun ogé sarta nyieun kode leuwih reusable.

Kawas kelas kontrak data, kelas jasa teu kudu inherit tina nanaon hususna, tapi kudu inherit ti kelas SysOperationServiceBase, sahenteuna lamun nyangka yén layanan bakal dijalankeun salaku pakasaban bets, sakumaha kelas super nyadiakeun sababaraha émbaran ngeunaan kontéks bets. Métode anu ngamimitian operasi (nyaéta ngajalankeun logika bisnis) kedah nyandak obyék kelas kontrak data anjeun salaku input sareng kedah dihias ku [SysEntryPointAttribute]. Salaku conto:

class MyService extends SysOperationServiceBase
{
}

kalawan metoda disebut ngajalankeun:

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


Controller

Kelas controller handles palaksanaan na bets processing operasi Anjeun. Éta ogé mastikeun yén kodeu dieksekusi dina CIL pikeun pagelaran maksimal. Kelas controller ilaharna inherits ti kelas SysOperationServiceController, sanajan aya pilihan séjén ogé.

class MyController extends SysOperationServiceController
{
}

Konstruktor kelas super nyandak nami kelas, nami metode sareng (opsional) mode palaksanaan salaku parameter. Ngaran kelas sareng metode kedah janten nami kelas jasa anjeun sareng metode anu kedah dijalankeun. Janten, anjeun tiasa nerapkeun metode konstruksi controller anjeun sapertos kieu:

public static MyController construct()
{
    ;

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

Mangka metodeu utama kelas MyController tiasa sasederhana

public static void main(Args _args)
{
    ;

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

Jeung anjeun dasarna geus rengse. Di luhur écés conto saderhana pisan sareng kerangka ngandung seueur pilihan sareng kemungkinan anu sanés, tapi ieu janten tinjauan gancang upami anjeun peryogi sikat nalika anjeun teu acan nganggo kerangka samentawis.

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

Mikkel Bang Christensen

Ngeunaan Pangarang

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