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;
}
यदि तपाईं क्वेरीलाई नियन्त्रक वर्गद्वारा निर्णय गर्न चाहनुहुन्छ भने, तपाईं खाली स्ट्रिङ पनि प्रयोग गर्न सक्नुहुन्छ। त्यस अवस्थामा, तपाईंले केही सहायक विधिहरू पनि लागू गर्न आवश्यक छ (जुन तपाईंले क्वेरी पहुँच गर्न आवश्यक पर्दा आफ्नो सुविधाको लागि जे भए पनि लागू गर्नुपर्छ):
{
;
return new Query(SysOperationHelper::base64Decode(packedQuery));
}
public void setQuery(Query _query)
{
;
packedQuery = SysOperationHelper::base64Encode(_query.pack());
}
यदि तपाईंलाई क्वेरी सुरु गर्न आवश्यक छ (उदाहरणका लागि, दायराहरू थप्नुहोस्), तपाईंले initQuery विधि लागू गर्नुपर्छ:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
तपाईंले यो विधिलाई नियन्त्रक वर्गबाट कल गर्न निश्चित गर्नुपर्छ।