Korišćenje upita u klasi ugovora o podacima SisOperation u Dinamics AKS KSNUMKS
Objavio: 19. mart 2025. 21:33:34 UTC
Ovaj članak se bavi detaljima o tome kako dodati upit koji se može konfigurisati i filtrirati u klasu ugovora o podacima SisOperation u Dinamics AKS KSNUMKS (i Dinamics KSNUMKS for Operations)
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Informacije u ovom postu zasnivaju se na Dynamics AX 2012 R3. Možda nisu validne za druge verzije. (Ažuriranje: mogu potvrditi da ovo takođe funkcioniše na Dynamics 365 za Operacije)
Čini se da uvek zaboravim detalje o tome kako da specifikujem i inicijalizujem upit u SysOperation okviru. Pretpostavljam da većina batch poslova koje sam pravio nije zasnovana na upitima koje korisnik može da konfiguriše, ali s vremena na vreme moram da napravim takav batch posao, pa je ovaj post takođe i za moju ličnu referencu.
Prvo, u klasi data contract-a, upit će biti smešten upakovan u string. Njegova parm metoda mora biti ukrašena atributom AifQueryTypeAttribute, kao što je prikazano (u ovom primeru koristim upit SalesUpdate, ali možete zameniti ovo bilo kojim AOT upitom):
DataMemberAttribute,
AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
;
packedQuery = _packedQuery;
return packedQuery;
}
Ukoliko želite da upit odluči kontrolerska klasa, takođe možete koristiti prazan string. U tom slučaju, takođe morate implementirati nekoliko pomoćnih metoda (koje biste verovatno trebali implementirati iz praktičnih razloga kada vam bude potrebno da pristupite upitu):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
Ukoliko morate da inicijalizujete upit (na primer, dodate opsege), trebate implementirati metodu initQuery:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Morate se pobrinuti da pozovete ovu metodu iz kontrolerske klase.