Коришћење упита у класи уговора СисОператион Дата у Динамицс АКС 2012
Објављено: 16. фебруар 2025. 01:27:32 UTC
Последње ажурирано: 12. јануар 2026. 08:47:41 UTC
Овај чланак детаљно описује како додати упит који корисник може да конфигурише и филтрира класи уговора о подацима SysOperation у систему Dynamics AX 2012 (и Dynamics 365 for Operations).
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Информације у овом посту су засноване на Dynamics AX 2012 R3. Могу, али и не морају бити важеће за друге верзије. (Ажурирање: Могу да потврдим да ово ради и на Dynamics 365 for Operations)
Чини ми се да увек заборавим детаље о томе како да одредим и иницијализујем упит у SysOperation оквиру. Претпостављам да већина пакетних задатака које сам правио нису засновани на упитима које може да конфигурише корисник, али с времена на време ми је потребно да направим такав пакетни задатак, тако да је овај пост и за моју сопствену референцу.
Прво, у класи уговора о подацима, упит ће бити сачуван упакован у стринг. Његова метода parm мора бити украшена атрибутом AifQueryTypeAttribute, као што је приказано (у овом примеру сам користио упит SalesUpdate, али га можете заменити било којим AOT упитом):
DataMemberAttribute,
AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
;
packedQuery = _packedQuery;
return packedQuery;
}
Ако желите да упит одлучује класа контролера, можете користити и празан стринг. У том случају, потребно је да имплементирате и неколико помоћних метода (које вероватно треба да имплементирате ионако ради ваше удобности када вам је потребан приступ упиту):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
Ако је потребно да иницијализујете упит (на пример, додате опсеге), требало би да имплементирате initQuery методу:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Морате се уверити да позовете ову методу из класе контролера.
Даље читање
Ако сте уживали у овом посту, можда ће вам се свидети и ови предлози:
- Како прећи преко елемената енума из Кс++ кода у Динамицс АКС 2012
- Брзи преглед Динамицс АКС 2012 СисОператион Фрамеворк
- Идентификовање класе документа и упита за АИФ услугу у Динамицс АКС 2012
