ಡೈನಾಮಿಕ್ಸ್ AX 2012 ರಲ್ಲಿ SysOperation ಡೇಟಾ ಕಾಂಟ್ರಾಕ್ಟ್ ಕ್ಲಾಸ್ನಲ್ಲಿ ಪ್ರಶ್ನೆಯನ್ನು ಬಳಸುವುದು
ಪ್ರಕಟಣೆ: ಫೆಬ್ರವರಿ 16, 2025 ರಂದು 01:25:13 ಪೂರ್ವಾಹ್ನ UTC ಸಮಯಕ್ಕೆ
ಈ ಲೇಖನವು ಡೈನಾಮಿಕ್ಸ್ AX 2012 (ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಗಳಿಗಾಗಿ ಡೈನಾಮಿಕ್ಸ್ 365) ನಲ್ಲಿ SysOperation ಡೇಟಾ ಒಪ್ಪಂದ ವರ್ಗಕ್ಕೆ ಬಳಕೆದಾರ-ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದ ಮತ್ತು ಫಿಲ್ಟರ್ ಮಾಡಬಹುದಾದ ಪ್ರಶ್ನೆಯನ್ನು ಹೇಗೆ ಸೇರಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ವಿವರಗಳನ್ನು ನೀಡುತ್ತದೆ.
Using a Query in a SysOperation Data Contract Class in Dynamics AX 2012
ಈ ಪೋಸ್ಟ್ನಲ್ಲಿರುವ ಮಾಹಿತಿಯು ಡೈನಾಮಿಕ್ಸ್ AX 2012 R3 ಅನ್ನು ಆಧರಿಸಿದೆ. ಇದು ಇತರ ಆವೃತ್ತಿಗಳಿಗೆ ಮಾನ್ಯವಾಗಿರಬಹುದು ಅಥವಾ ಇಲ್ಲದಿರಬಹುದು. (ನವೀಕರಣ: ಇದು ಕಾರ್ಯಾಚರಣೆಗಳಿಗಾಗಿ ಡೈನಾಮಿಕ್ಸ್ 365 ನಲ್ಲಿಯೂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನಾನು ಖಚಿತಪಡಿಸಬಲ್ಲೆ)
SysOperation ಫ್ರೇಮ್ವರ್ಕ್ನಲ್ಲಿ ಪ್ರಶ್ನೆಯನ್ನು ಹೇಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು ಮತ್ತು ಪ್ರಾರಂಭಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ವಿವರಗಳನ್ನು ನಾನು ಯಾವಾಗಲೂ ಮರೆತುಬಿಡುತ್ತೇನೆ. ನಾನು ಮಾಡುತ್ತಿರುವ ಹೆಚ್ಚಿನ ಬ್ಯಾಚ್ ಕೆಲಸಗಳು ಬಳಕೆದಾರ-ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದ ಪ್ರಶ್ನೆಗಳನ್ನು ಆಧರಿಸಿಲ್ಲ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ, ಆದರೆ ಆಗೊಮ್ಮೆ ಈಗೊಮ್ಮೆ ನಾನು ಅಂತಹ ಬ್ಯಾಚ್ ಕೆಲಸವನ್ನು ಮಾಡಬೇಕಾಗಿದೆ, ಆದ್ದರಿಂದ ಈ ಪೋಸ್ಟ್ ನನ್ನ ಸ್ವಂತ ಉಲ್ಲೇಖಕ್ಕಾಗಿಯೂ ಆಗಿದೆ.
ಮೊದಲಿಗೆ, ಡೇಟಾ ಒಪ್ಪಂದ ವರ್ಗದಲ್ಲಿ, ಪ್ರಶ್ನೆಯನ್ನು ಸ್ಟ್ರಿಂಗ್ನಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತದೆ. ಇದರ ಪಾರ್ಮ್ ವಿಧಾನವನ್ನು 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);
}
ನೀವು ನಿಯಂತ್ರಕ ವರ್ಗದಿಂದ ಈ ವಿಧಾನವನ್ನು ಕರೆಯುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು.