Miklix

Nganggo Query dina Kelas Kontrak Data SysOperation dina Dynamics AX 2012

Diterbitkeun: 16 Pébruari 2025 jam 1.26.10 UTC
Panungtungan diropéa: 12 Januari 2026 jam 8.47.40 UTC

Artikel ieu ngajelaskeun sacara rinci ngeunaan kumaha nambihan pamundut anu tiasa dikonfigurasi ku pangguna sareng tiasa disaring kana kelas kontrak data SysOperation dina Dynamics AX 2012 (sareng Dynamics 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:

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

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 ieu ogé tiasa dianggo dina Dynamics 365 for Operations)

Sigana mah kuring sok poho kana detil kumaha nangtukeun jeung ngainisialisasi hiji pamundut dina kerangka SysOperation. Sigana mah kalolobaan padamelan batch anu kuring jieun teu dumasar kana pamundut anu bisa dikonfigurasi ku pamaké, tapi sakapeung kuring kudu nyieun padamelan batch kitu, jadi tulisan ieu ogé pikeun rujukan kuring sorangan.

Mimitina, dina kelas kontrak data, pamundut bakal disimpen dibungkus dina string. Métode parm-na kedah dihias ku atribut AifQueryTypeAttribute, sapertos kieu (dina conto ieu kuring parantos nganggo pamundut SalesUpdate, tapi anjeun tiasa ngagentos ieu ku pamundut AOT naon waé):

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

    packedQuery = _packedQuery;
    return packedQuery;
}

Upami anjeun hoyong pamundut diputuskeun ku kelas controller, anjeun ogé tiasa nganggo string kosong. Dina hal éta, anjeun ogé kedah nerapkeun sababaraha metode helper (anu sigana anjeun kedah nerapkeun pikeun genah anjeun nalika anjeun kedah ngaksés pamundut éta):

public Query getQuery()
{
    ;

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

public void setQuery(Query _query)
{
    ;

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

Upami anjeun kedah ngainisialisasi pamundut (contona, nambihan rentang), anjeun kedah nerapkeun metode initQuery:

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

    // add ranges, etc...

    this.setQuery(queryLocal);
}

Anjeun kedah mastikeun pikeun nyauran metode ieu tina kelas controller.

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.