Miklix

டைனமிக்ஸ் AX 2012 இல் SysOperation தரவு ஒப்பந்த வகுப்பில் வினவலைப் பயன்படுத்துதல்

வெளியிடப்பட்டது: 16 பிப்ரவரி, 2025 அன்று AM 1:24:44 UTC

இந்தக் கட்டுரை, Dynamics AX 2012 (மற்றும் Dynamics for Operations 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;
}

வினவலை கட்டுப்படுத்தி வகுப்பு தீர்மானிக்க விரும்பினால், நீங்கள் ஒரு வெற்று சரத்தையும் பயன்படுத்தலாம். அந்தச் சூழ்நிலையில், நீங்கள் இரண்டு உதவி முறைகளையும் செயல்படுத்த வேண்டும் (வினவலை அணுக வேண்டியிருக்கும் போது உங்கள் சொந்த வசதிக்காக நீங்கள் எப்படியும் செயல்படுத்த வேண்டியிருக்கும்):

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 இல் பகிரவும்பின்டரஸ்டில் பின் செய்யவும்

மிக்கேல் பேங் கிறிஸ்டென்சன்

எழுத்தாளர் பற்றி

மிக்கேல் பேங் கிறிஸ்டென்சன்
மிக்கல் என்பவர் miklix.com இன் படைப்பாளர் மற்றும் உரிமையாளர் ஆவார். அவருக்கு 20 ஆண்டுகளுக்கும் மேலான தொழில்முறை கணினி நிரலாளர்/மென்பொருள் உருவாக்குநராக அனுபவம் உள்ளது, மேலும் தற்போது ஒரு பெரிய ஐரோப்பிய ஐடி நிறுவனத்தில் முழுநேரப் பணியாளராக உள்ளார். வலைப்பதிவு செய்யாதபோது, ​​அவர் தனது ஓய்வு நேரத்தை பரந்த அளவிலான ஆர்வங்கள், பொழுதுபோக்குகள் மற்றும் செயல்பாடுகளில் செலவிடுகிறார், இது இந்த வலைத்தளத்தில் உள்ளடக்கப்பட்ட பல்வேறு தலைப்புகளில் ஓரளவுக்கு பிரதிபலிக்கக்கூடும்.