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)
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):
{
;
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:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Anjeun kedah pastikeun nelepon metoda ieu ti kelas controller.