Miklix

Nganggo Query dina Kelas Kontrak Data SysOperation dina Dynamics AX 2012

Diterbitkeun: 16 Pébruari 2025 jam 1.26.10 UTC

Tulisan ieu langkung rinci ngeunaan kumaha cara nambihan pamundut anu tiasa dikonfigurasi sareng disaring ku pangguna ka kelas kontrak data 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:

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

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

Kuring salawasna sigana poho rinci ngeunaan kumaha carana nangtukeun tur initialize query dina kerangka SysOperation. Kuring nyangka yén sabagéan ageung padamelan angkatan anu kuring lakukeun henteu dumasar kana patarosan anu tiasa dikonfigurasi ku pangguna, tapi unggal ayeuna kuring kedah ngadamel padamelan sapertos kitu, janten tulisan ieu ogé pikeun rujukan kuring sorangan.

Kahiji, dina kelas kontrak data, query bakal disimpen dipak dina string a. Metoda parm na kedah dihias ku atribut AifQueryTypeAttribute, sapertos kitu (dina conto ieu kuring parantos nganggo pamundut SalesUpdate, tapi anjeun tiasa ngagentos ieu ku pamundut AOT):

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

    packedQuery = _packedQuery;
    return packedQuery;
}

Upami anjeun hoyong query bakal mutuskeun ku kelas controller gantina, Anjeun oge bisa make hiji string kosong. Dina hal éta, anjeun ogé kedah nerapkeun sababaraha metode pembantu (anu sigana anjeun kedah laksanakeun pikeun genah anjeun nalika anjeun kedah ngaksés pamundut):

public Query getQuery()
{
    ;

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

public void setQuery(Query _query)
{
    ;

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

Lamun perlu initialize query (contona, nambahkeun rentang), Anjeun kudu nerapkeun metoda initQuery:

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

    // add ranges, etc...

    this.setQuery(queryLocal);
}

Anjeun kedah pastikeun nelepon metoda ieu ti kelas controller.

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.