Miklix

ಡೈನಾಮಿಕ್ಸ್ 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;
}

ನಿಯಂತ್ರಕ ವರ್ಗವು ಪ್ರಶ್ನೆಯನ್ನು ನಿರ್ಧರಿಸಬೇಕೆಂದು ನೀವು ಬಯಸಿದರೆ, ನೀವು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಸಹ ಬಳಸಬಹುದು. ಆ ಸಂದರ್ಭದಲ್ಲಿ, ನೀವು ಒಂದೆರಡು ಸಹಾಯಕ ವಿಧಾನಗಳನ್ನು ಸಹ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ (ನೀವು ಪ್ರಶ್ನೆಯನ್ನು ಪ್ರವೇಶಿಸಬೇಕಾದಾಗ ನಿಮ್ಮ ಸ್ವಂತ ಅನುಕೂಲಕ್ಕಾಗಿ ನೀವು ಬಹುಶಃ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು):

public Query getQuery()
{
    ;

    return new Query(SysOperationHelper::base64Decode(packedQuery));
}

public void setQuery(Query _query)
{
    ;

    packedQuery = SysOperationHelper::base64Encode(_query.pack());
}

ನೀವು ಪ್ರಶ್ನೆಯನ್ನು ಪ್ರಾರಂಭಿಸಬೇಕಾದರೆ (ಉದಾಹರಣೆಗೆ, ಶ್ರೇಣಿಗಳನ್ನು ಸೇರಿಸಿ), ನೀವು initQuery ವಿಧಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು:

public void initQuery()
{
    Query queryLocal = this.getQuery();
    ;

    // add ranges, etc...

    this.setQuery(queryLocal);
}

ನೀವು ನಿಯಂತ್ರಕ ವರ್ಗದಿಂದ ಈ ವಿಧಾನವನ್ನು ಕರೆಯುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು.

ಬ್ಲೂಸ್ಕೈನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿಫೇಸ್‌ಬುಕ್‌ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿTumblr ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿX ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿPinterest ನಲ್ಲಿ ಪಿನ್ ಮಾಡಿ

Mikkel Bang Christensen

ಲೇಖಕರ ಬಗ್ಗೆ

Mikkel Bang Christensen
ಮಿಕೆಲ್ miklix.com ನ ಸೃಷ್ಟಿಕರ್ತ ಮತ್ತು ಮಾಲೀಕರು. ಅವರು ವೃತ್ತಿಪರ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮರ್/ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್ ಆಗಿ 20 ವರ್ಷಗಳಿಗೂ ಹೆಚ್ಚು ಅನುಭವ ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಪ್ರಸ್ತುತ ದೊಡ್ಡ ಯುರೋಪಿಯನ್ ಐಟಿ ಕಾರ್ಪೊರೇಷನ್‌ನಲ್ಲಿ ಪೂರ್ಣ ಸಮಯದ ಉದ್ಯೋಗಿಯಾಗಿದ್ದಾರೆ. ಬ್ಲಾಗಿಂಗ್ ಮಾಡದಿರುವಾಗ, ಅವರು ತಮ್ಮ ಬಿಡುವಿನ ವೇಳೆಯನ್ನು ವ್ಯಾಪಕವಾದ ಆಸಕ್ತಿಗಳು, ಹವ್ಯಾಸಗಳು ಮತ್ತು ಚಟುವಟಿಕೆಗಳಲ್ಲಿ ಕಳೆಯುತ್ತಾರೆ, ಇದು ಸ್ವಲ್ಪ ಮಟ್ಟಿಗೆ ಈ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ವಿವಿಧ ವಿಷಯಗಳಲ್ಲಿ ಪ್ರತಿಫಲಿಸಬಹುದು.