Kutumia Hoja katika Darasa la Mkataba wa Data ya SysOperation katika Dynamics AX 2012
Iliyochapishwa: 16 Februari 2025, 01:24:37 UTC
Mara ya mwisho kusasishwa: 12 Januari 2026, 08:47:28 UTC
Makala haya yanaangazia maelezo kuhusu jinsi ya kuongeza hoja inayoweza kusanidiwa na kuchujwa na mtumiaji kwenye darasa la mkataba wa data wa SysOperation katika Dynamics AX 2012 (na Dynamics 365 kwa Operesheni)
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Taarifa katika chapisho hili inategemea Dynamics AX 2012 R3. Huenda ikawa halali au isiwe halali kwa matoleo mengine. (Sasisho: Ninaweza kuthibitisha kwamba hii pia inafanya kazi kwenye Dynamics 365 kwa Uendeshaji)
Inaonekana kila wakati nasahau maelezo kuhusu jinsi ya kubainisha na kuanzisha hoja katika mfumo wa SysOperation. Nadhani kazi nyingi za kundi ambazo nimekuwa nikifanya hazitegemei maswali yanayoweza kusanidiwa na mtumiaji, lakini mara kwa mara ninahitaji kufanya kazi kama hiyo ya kundi, kwa hivyo chapisho hili pia ni kwa ajili ya marejeleo yangu mwenyewe.
Kwanza, katika darasa la mkataba wa data, hoja itahifadhiwa ikiwa imefungwa kwenye kamba. Mbinu yake ya parm lazima ipambwe na sifa ya AifQueryTypeAttribute, kama hivyo (katika mfano huu nimetumia hoja ya SalesUpdate, lakini unaweza kuibadilisha na hoja yoyote ya AOT):
DataMemberAttribute,
AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
;
packedQuery = _packedQuery;
return packedQuery;
}
Ukitaka hoja iamuliwe na darasa la kidhibiti badala yake, unaweza pia kutumia mfuatano mtupu. Katika hali hiyo, unahitaji pia kutekeleza mbinu kadhaa za usaidizi (ambazo labda unapaswa kutekeleza kwa urahisi wako unapohitaji kufikia hoja):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
Ikiwa unahitaji kuanzisha hoja (kwa mfano, ongeza masafa), unapaswa kutekeleza mbinu ya initQuery:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
Unahitaji kuhakikisha unaita njia hii kutoka kwa darasa la kidhibiti.
Kusoma Zaidi
Ikiwa ulifurahia chapisho hili, unaweza pia kupenda mapendekezo haya:
- Tofauti kati ya data() na buf2Buf() katika Dynamics AX 2012
- Badilisha Real kuwa Mfuatano wenye Desimali Zote katika Dynamics AX 2012
- Mfumo wa Dynamics AX 2012 SysOperation Muhtasari wa Haraka
