Miklix

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)


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

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

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 masafa), unapaswa kutekeleza mbinu ya initQuery:

public void 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:


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

Mikkel Christensen

Kuhusu Mwandishi

Mikkel 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.