Miklix

Nggunakake Kueri ing Kelas Kontrak Data SysOperation ing Dynamics AX 2012

Diterbitake: 16 Februari 2025 ing 01:24:45 UTC
Dianyari pungkasan: 12 Januari 2026 ing 08:47:32 UTC

Artikel iki ngrembug rincian babagan cara nambahake query sing bisa dikonfigurasi pangguna lan bisa difilter menyang kelas kontrak data 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:

Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012

Informasi ing kiriman iki adhedhasar Dynamics AX 2012 R3. Iki bisa uga valid utawa ora valid kanggo versi liyane. (Nganyari: Aku bisa ngonfirmasi manawa iki uga bisa digunakake ing Dynamics 365 for Operations)

Aku koyone tansah lali babagan rincian babagan carane nemtokake lan miwiti query ing framework SysOperation. Aku kira umume proyek batch sing dakgawe ora adhedhasar query sing bisa dikonfigurasi pangguna, nanging sok-sok aku kudu nggawe proyek batch kaya ngono, mula kiriman iki uga kanggo referensiku dhewe.

Kapisan, ing kelas kontrak data, query bakal disimpen dikemas ing string. Metode parm-e kudu dihias nganggo atribut AifQueryTypeAttribute, kaya ing ngisor iki (ing conto iki aku wis nggunakake query SalesUpdate, nanging sampeyan bisa ngganti iki karo query AOT apa wae):

[
    DataMemberAttribute,
    AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
    ;

    packedQuery = _packedQuery;
    return packedQuery;
}

Yen sampeyan pengin query diputusake dening kelas controller, sampeyan uga bisa nggunakake string kosong. Ing kasus iki, sampeyan uga kudu ngetrapake sawetara metode helper (sing mesthine kudu sampeyan laksanakake kanggo penak sampeyan dhewe nalika sampeyan kudu ngakses query):

public Query getQuery()
{
    ;

    return new Query(SysOperationHelper::base64Decode(packedQuery));
}

public void setQuery(Query _query)
{
    ;

    packedQuery = SysOperationHelper::base64Encode(_query.pack());
}

Yen sampeyan kudu nginisialisasi query (contone, nambah rentang), sampeyan kudu ngetrapake metode initQuery:

public void initQuery()
{
    Query queryLocal = this.getQuery();
    ;

    // add ranges, etc...

    this.setQuery(queryLocal);
}

Sampeyan kudu mesthekake yen sampeyan nelpon metode iki saka kelas controller.

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.