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