Dynamics AX 2012-ൽ ഒരു SysOperation Data Contract Class-ൽ ഒരു ചോദ്യം ഉപയോഗിക്കുന്നു
പ്രസിദ്ധീകരിച്ചത്: 2025, ഫെബ്രുവരി 16 1:25:42 AM UTC
Dynamics AX 2012 ലെ ഒരു SysOperation ഡാറ്റാ കോൺട്രാക്റ്റ് ക്ലാസിലേക്ക് ഒരു ഉപയോക്തൃ-കോൺഫിഗറബിൾ, ഫിൽട്ടർ ചെയ്യാവുന്ന അന്വേഷണം എങ്ങനെ ചേർക്കാം എന്നതിനെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ ഈ ലേഖനം പരിശോധിക്കുന്നു (ഓപ്പറേഷനുകൾക്കായി ഡൈനാമിക്സ് 365)
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
Dynamics AX 2012 R3 അടിസ്ഥാനമാക്കിയുള്ളതാണ് ഈ പോസ്റ്റിലെ വിവരങ്ങൾ. ഇത് മറ്റ് പതിപ്പുകൾക്ക് സാധുതയുള്ളതോ അല്ലാത്തതോ ആകാം. (അപ്ഡേറ്റ്: ഓപ്പറേഷനുകൾക്കായുള്ള ഡൈനാമിക്സ് 365-ലും ഇത് പ്രവർത്തിക്കുന്നുവെന്ന് എനിക്ക് സ്ഥിരീകരിക്കാൻ കഴിയും)
SysOperation Framework-ൽ ഒരു ചോദ്യം എങ്ങനെ വ്യക്തമാക്കാം, ഇനീഷ്യലൈസ് ചെയ്യാം എന്നതിനെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ ഞാൻ എല്ലായ്പ്പോഴും മറക്കുന്നതായി തോന്നുന്നു. ഞാൻ ചെയ്യുന്ന മിക്ക ബാച്ച് ജോലികളും ഉപയോക്തൃ-കോൺഫിഗറബിൾ ചോദ്യങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളതല്ലെന്ന് ഞാൻ ഊഹിക്കുന്നു, പക്ഷേ എല്ലായ്പ്പോഴും എനിക്ക് അത്തരമൊരു ബാച്ച് ജോലി ചെയ്യേണ്ടതുണ്ട്, അതിനാൽ ഈ പോസ്റ്റ് എന്റെ സ്വന്തം റഫറൻസിനുള്ളതാണ്.
ആദ്യം, ഡാറ്റാ കോൺട്രാക്റ്റ് ക്ലാസിൽ, ചോദ്യം ഒരു സ്ട്രിംഗിൽ പായ്ക്ക് ചെയ്ത് സൂക്ഷിക്കും. അതിന്റെ പാർം രീതി AifQueryTypeAtribute ആട്രിബ്യൂട്ട് ഉപയോഗിച്ച് അലങ്കരിച്ചിരിക്കണം (ഈ ഉദാഹരണത്തിൽ ഞാൻ സെയിൽസ് അപ്ഡേറ്റ് ചോദ്യം ഉപയോഗിച്ചു, പക്ഷേ നിങ്ങൾക്ക് ഇത് ഏത് 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());
}
നിങ്ങൾക്ക് ചോദ്യം ഇനീഷ്യലൈസ് ചെയ്യേണ്ടതുണ്ടെങ്കിൽ (ഉദാഹരണത്തിന്, ശ്രേണികൾ ചേർക്കുക), നിങ്ങൾ ഒരു ഇൻറ്റ്ക്വറി രീതി നടപ്പിലാക്കണം:
{
Query queryLocal = this.getQuery();
;
// add ranges, etc...
this.setQuery(queryLocal);
}
കൺട്രോളർ ക്ലാസിൽ നിന്ന് ഈ രീതി വിളിക്കുന്നുവെന്ന് നിങ്ങൾ ഉറപ്പാക്കേണ്ടതുണ്ട്.