Përdorimi i një pyetjeje në një klasë të kontratës së të dhënave SysOperation në Dynamics AX 2012
Publikuar: 16 shkurt 2025 në 1:25:15 e paradites, UTC
Përditësimi i fundit: 12 janar 2026 në 8:47:34 e paradites, UTC
Ky artikull trajton detajet se si të shtoni një pyetje të konfigurueshme nga përdoruesi dhe të filtrueshme në një klasë kontrate të të dhënave SysOperation në Dynamics AX 2012 (dhe Dynamics 365 for Operations)
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Informacioni në këtë postim bazohet në Dynamics AX 2012 R3. Mund të jetë ose jo i vlefshëm për versione të tjera. (Përditësim: Mund të konfirmoj që kjo funksionon edhe në Dynamics 365 for Operations)
Gjithmonë më duket se harroj detajet se si të specifikoj dhe inicializoj një pyetje në framework-un SysOperation. Mendoj se shumica e punëve në grup që kam bërë nuk bazohen në pyetje të konfigurueshme nga përdoruesi, por herë pas here më duhet të bëj një punë të tillë në grup, kështu që ky postim është edhe për referencën time.
Së pari, në klasën e kontratës së të dhënave, pyetja do të ruhet e paketuar në një varg. Metoda e saj parm duhet të dekorohet me atributin AifQueryTypeAttribute, kështu (në këtë shembull kam përdorur pyetjen SalesUpdate, por mund ta zëvendësoni këtë me çdo pyetje AOT):
DataMemberAttribute,
AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
;
packedQuery = _packedQuery;
return packedQuery;
}
Nëse dëshironi që pyetja të vendoset nga klasa e kontrolluesit, mund të përdorni edhe një varg bosh. Në këtë rast, duhet të implementoni edhe disa metoda ndihmëse (të cilat ndoshta duhet t'i implementoni gjithsesi për lehtësinë tuaj kur keni nevojë të qaseni te pyetja):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
Nëse duhet të inicializoni pyetjen (për shembull, të shtoni diapazone), duhet të implementoni një metodë initQuery:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Duhet të siguroheni që ta thirrni këtë metodë nga klasa e kontrolluesit.
Lexime të mëtejshme
Nëse ju pëlqeu ky postim, mund t'ju pëlqejnë edhe këto sugjerime:
- Dallimi midis të dhënave() dhe buf2Buf() në Dynamics AX 2012
- Thirrja e Shërbimeve të Dokumenteve AIF direkt nga X++ në Dynamics AX 2012
- Konvertoni një real në varg me të gjithë numrat dhjetorë në Dynamics AX 2012
