Miklix

Dynamics AX २०१२ मा SysOperation डेटा अनुबंध कक्षामा क्वेरी प्रयोग गर्दै

प्रकाशित: २०२५ फेब्रुअरी १६: ०१:२६:५९ UTC

यस लेखले Dynamics AX २०१२ (र सञ्चालनका लागि Dynamics ३६५) मा SysOperation डेटा अनुबंध वर्गमा प्रयोगकर्ता-कन्फिगर योग्य र फिल्टर योग्य क्वेरी कसरी थप्ने भन्ने बारे विवरणहरू प्रस्तुत गर्दछ।


यो पृष्ठलाई सकेसम्म धेरै मानिसहरूको पहुँचयोग्य बनाउनको लागि अंग्रेजीबाट मेसिन अनुवाद गरिएको थियो। दुर्भाग्यवश, मेसिन अनुवाद अझै पूर्ण प्रविधि होइन, त्यसैले त्रुटिहरू हुन सक्छन्। यदि तपाईं चाहनुहुन्छ भने, तपाईं यहाँ मूल अंग्रेजी संस्करण हेर्न सक्नुहुन्छ:

Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012

यस पोस्टमा भएको जानकारी Dynamics AX २०१२ R3 मा आधारित छ। यो अन्य संस्करणहरूको लागि मान्य हुन पनि सक्छ वा नहुन पनि सक्छ। (अपडेट: म पुष्टि गर्न सक्छु कि यो Dynamics 365 मा सञ्चालनको लागि पनि काम गर्दछ)

SysOperation फ्रेमवर्कमा क्वेरी कसरी निर्दिष्ट गर्ने र सुरु गर्ने भन्ने बारे विवरणहरू म सधैं बिर्सन्छु जस्तो लाग्छ। मलाई लाग्छ कि मैले गरिरहेको धेरैजसो ब्याच कार्यहरू प्रयोगकर्ता-कन्फिगर योग्य क्वेरीहरूमा आधारित छैनन्, तर कहिलेकाहीं मलाई यस्तो ब्याच कार्य गर्न आवश्यक पर्दछ, त्यसैले यो पोस्ट मेरो आफ्नै सन्दर्भको लागि पनि हो।

पहिलो, डेटा अनुबंध वर्गमा, क्वेरीलाई स्ट्रिङमा प्याक गरी भण्डारण गरिनेछ। यसको parm विधि AifQueryTypeAttribute विशेषताले सजाइएको हुनुपर्छ, जस्तै (यस उदाहरणमा मैले SalesUpdate क्वेरी प्रयोग गरेको छु, तर तपाईंले यसलाई कुनै पनि AOT क्वेरीले बदल्न सक्नुहुन्छ):

[
    DataMemberAttribute,
    AifQueryTypeAttribute('_packedQuery', queryStr(SalesUpdate))
]
public str parmPackedQuery(str _packedQuery = packedQuery)
{
    ;

    packedQuery = _packedQuery;
    return packedQuery;
}

यदि तपाईं क्वेरीलाई नियन्त्रक वर्गद्वारा निर्णय गर्न चाहनुहुन्छ भने, तपाईं खाली स्ट्रिङ पनि प्रयोग गर्न सक्नुहुन्छ। त्यस अवस्थामा, तपाईंले केही सहायक विधिहरू पनि लागू गर्न आवश्यक छ (जुन तपाईंले क्वेरी पहुँच गर्न आवश्यक पर्दा आफ्नो सुविधाको लागि जे भए पनि लागू गर्नुपर्छ):

public Query getQuery()
{
    ;

    return new Query(SysOperationHelper::base64Decode(packedQuery));
}

public void setQuery(Query _query)
{
    ;

    packedQuery = SysOperationHelper::base64Encode(_query.pack());
}

यदि तपाईंलाई क्वेरी सुरु गर्न आवश्यक छ (उदाहरणका लागि, दायराहरू थप्नुहोस्), तपाईंले initQuery विधि लागू गर्नुपर्छ:

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

    // add ranges, etc...

    this.setQuery(queryLocal);
}

तपाईंले यो विधिलाई नियन्त्रक वर्गबाट ​​कल गर्न निश्चित गर्नुपर्छ।

ब्लुस्कीमा सेयर गर्नुहोस्फेसबुक मा शेयर गर्नुहोस्लिंक्डइनमा सेयर गर्नुहोस्Tumblr मा सेयर गर्नुहोस्X मा सेयर गर्नुहोस्लिंक्डइनमा सेयर गर्नुहोस्Pinterest मा पिन गर्नुहोस्

मिकेल बाङ क्रिस्टेनसेन

लेखकको बारेमा

मिकेल बाङ क्रिस्टेनसेन
मिकेल miklix.com का निर्माता र मालिक हुन्। उनीसँग एक पेशेवर कम्प्युटर प्रोग्रामर/सफ्टवेयर विकासकर्ताको रूपमा २० वर्ष भन्दा बढीको अनुभव छ र हाल उनी एक ठूलो युरोपेली आईटी निगममा पूर्ण-समय कार्यरत छन्। ब्लगिङ नगर्दा, उनी आफ्नो खाली समय विभिन्न रुचि, शौक र गतिविधिहरूमा बिताउँछन्, जुन केही हदसम्म यस वेबसाइटमा समेटिएका विषयहरूको विविधतामा प्रतिबिम्बित हुन सक्छ।