ଡାଇନାମିକ୍ସ AX 2012 ରେ ଏକ SysOpation ଡାଟା ଚୁକ୍ତି ଶ୍ରେଣୀରେ ଏକ କ୍ୱେରୀ ବ୍ୟବହାର କରିବା
ପ୍ରକାଶିତ: 1:26:09 AM UTC ଠାରେ ଫେବୃଆରୀ 16, 2025
ଡାଇନାମିକ୍ସ AX 2012 (ଏବଂ ଅପରେସନ୍ ପାଇଁ ଡାଇନାମିକ୍ସ 365) ରେ ଏକ ସିସ୍ଅପରେସନ୍ ଡାଟା କଣ୍ଟ୍ରାକ୍ଟ କ୍ଲାସରେ କିପରି ଏକ ଉପଭୋକ୍ତା-କନଫିଗ୍ରେବଲ୍ ଏବଂ ଫିଲ୍ଟରେବଲ୍ କ୍ୱେରୀ ଯୋଡିବେ ସେ ବିଷୟରେ ଏହି ଲେଖାଟି ବିବରଣୀ ଉପରେ ଯାଇଛି।
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
ଏହି ପୋଷ୍ଟରେ ଥିବା ସୂଚନା ଡାଇନାମିକ୍ସ ଏଏକ୍ସ ୨୦୧୨ ଆର୩ ଉପରେ ଆଧାରିତ । ଏହା ଅନ୍ୟ ସଂସ୍କରଣ ପାଇଁ ବୈଧ ହୋଇପାରେ କିମ୍ବା ହୋଇନପାରେ। (ଅପଡେଟ୍: ମୁଁ ନିଶ୍ଚିତ କରିପାରିବି ଯେ ଏହା ଅପରେସନ୍ ପାଇଁ ଡାଇନାମିକ୍ସ 365 ରେ ମଧ୍ୟ କାର୍ଯ୍ୟ କରେ)
ମୁଁ ସବୁବେଳେ ସିଆଇଏସ୍ ଅପରେସନ ଫ୍ରେମୱାର୍କରେ ଏକ ପ୍ରଶ୍ନକୁ କିପରି ନିର୍ଦ୍ଦିଷ୍ଟ ଏବଂ ପ୍ରାରମ୍ଭିକ କରିବି ସେ ବିଷୟରେ ବିବରଣୀ ଭୁଲିଯାଉଛି । ମୁଁ ଭାବୁଛି ଯେ ମୁଁ କରୁଥିବା ଅଧିକାଂଶ ବ୍ୟାଚ୍ ଚାକିରି ଉପଭୋକ୍ତାଙ୍କ-କନଫିଗ୍ରେବଲ୍ ପ୍ରଶ୍ନ ଉପରେ ଆଧାରିତ ନୁହେଁ, କିନ୍ତୁ ପ୍ରତ୍ୟେକ ସମୟରେ ମୋତେ ଏପରି ଏକ ବ୍ୟାଚ୍ ଚାକିରି କରିବାକୁ ପଡିବ, ତେଣୁ ଏହି ପୋଷ୍ଟମୋର ନିଜ ରେଫରେନ୍ସ ପାଇଁ ମଧ୍ୟ ଅଟେ ।
ପ୍ରଥମେ, ଡାଟା କଣ୍ଟ୍ରାକ୍ଟ କ୍ଲାସରେ, କ୍ୱେରୀକୁ ଏକ ଷ୍ଟ୍ରିଙ୍ଗରେ ପ୍ୟାକ୍ କରାଯିବ। ଏହାର ପାର୍ମ ପଦ୍ଧତିକୁ ଆଇଫ୍କ୍ୱେରିଟାଇପ୍ ଆଟ୍ରିବ୍ୟୁଟ୍ ଗୁଣ ସହିତ ସଜ୍ଜିତ କରାଯିବା ଆବଶ୍ୟକ, ଯେପରିକି (ଏହି ଉଦାହରଣରେ ମୁଁ ସେଲ୍ସଅପଡେଟ୍ କ୍ୱେରୀ ବ୍ୟବହାର କରିଛି, କିନ୍ତୁ ଆପଣ ଏହାକୁ କୌଣସି 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);
}
ଆପଣ ନିୟନ୍ତ୍ରକ ଶ୍ରେଣୀରୁ ଏହି ପଦ୍ଧତିକୁ କଲ୍ କରିବାକୁ ନିଶ୍ଚିତ କରିବା ଆବଶ୍ୟକ।