Kutumia Hoja katika Darasa la Mkataba wa Data ya SysOperation katika Dynamics AX 2012
Iliyochapishwa: 16 Februari 2025, 01:24:37 UTC
Makala haya yanapitia maelezo ya jinsi ya kuongeza swali linaloweza kusanidiwa na kuchujwa kwa darasa la mkataba wa data la SysOperation katika Dynamics AX 2012 (na Dynamics 365 kwa Uendeshaji)
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Maelezo katika chapisho hili yanatokana na Dynamics AX 2012 R3. Inaweza au isiwe halali kwa matoleo mengine. (Sasisho: Ninaweza kuthibitisha kuwa hii pia inafanya kazi kwenye Dynamics 365 kwa Uendeshaji)
Mimi huonekana kusahau maelezo ya jinsi ya kutaja na kuanzisha hoja katika mfumo wa SysOperation. Nadhani kazi nyingi za kundi ambazo nimekuwa nikifanya hazitegemei hoja zinazoweza kusanidiwa na mtumiaji, lakini kila mara ninahitaji kufanya kazi ya kundi kama hilo, kwa hivyo chapisho hili pia ni la kumbukumbu yangu mwenyewe.
Kwanza, katika darasa la mkataba wa data, swali litahifadhiwa likiwa limefungwa kwenye mfuatano. Njia yake ya parm lazima ipambwa kwa sifa ya AifQueryTypeAttribute, kama hivyo (katika mfano huu nimetumia swala ya SalesUpdate, lakini unaweza kubadilisha hii na swali lolote la AOT):
DataMemberAttribute,
AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
;
packedQuery = _packedQuery;
return packedQuery;
}
Ikiwa ungependa hoja iamuliwe na darasa la kidhibiti badala yake, unaweza pia kutumia kamba tupu. Katika hali hiyo, unahitaji pia kutekeleza njia kadhaa za msaidizi (ambazo labda unapaswa kutekeleza kwa urahisi wako mwenyewe wakati unahitaji kupata hoja):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
Ikiwa unahitaji kuanzisha hoja (kwa mfano, ongeza safu), unapaswa kutekeleza njia ya initQuery:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Unahitaji kuhakikisha kuwa unaita njia hii kutoka kwa darasa la mtawala.