Miklix

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)


Ukurasa huu ulitafsiriwa kwa mashine kutoka kwa Kiingereza ili kuifanya iweze kupatikana kwa watu wengi iwezekanavyo. Kwa bahati mbaya, utafsiri wa mashine bado sio teknolojia iliyokamilishwa, kwa hivyo makosa yanaweza kutokea. Ukipenda, unaweza kutazama toleo asili la Kiingereza hapa:

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):

public Query getQuery()
{
    ;

    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:

public void initQuery()
{
    Query queryLocal = this.getQuery();
    ;

    // add ranges, etc...

    this.setQuery(queryLocal);
}

Unahitaji kuhakikisha kuwa unaita njia hii kutoka kwa darasa la mtawala.

Shiriki kwenye BlueskyShiriki kwenye FacebookShiriki kwenye LinkedInShiriki kwenye TumblrShiriki kwenye XShiriki kwenye LinkedInBandika kwenye Pinterest

Mikkel Bang Christensen

Kuhusu Mwandishi

Mikkel Bang Christensen
Mikkel ndiye muundaji na mmiliki wa miklix.com. Ana uzoefu wa zaidi ya miaka 20 kama mtaalamu wa kupanga programu/programu za kompyuta na kwa sasa ameajiriwa muda wote kwa shirika kubwa la IT la Ulaya. Wakati si kublogi, yeye hutumia wakati wake wa ziada kwenye safu nyingi za mapendeleo, vitu vya kufurahisha, na shughuli, ambazo zinaweza kuonyeshwa kwa kadiri fulani katika mada anuwai zinazozungumziwa kwenye wavuti hii.