உங்கள் Apex Summer '26-இல் குறைவான பதிவுகளைத் திருப்பித் தரக்கூடும்
Salesforce Summer '26 (API v67.0) Apex-இல் ஒரு முக்கிய மாற்றத்தைக் கொண்டுவருகிறது. இந்த மாற்றம் பிழையை (error) காட்டாமலேயே உங்கள் குறியீட்டின் (code) முடிவுகளை மாற்றக்கூடும்.
பல ஆண்டுகளாக, Apex இயல்பாகவே (default) system mode-இல் இயங்கியது. இதன் பொருள் SOQL, SOSL மற்றும் DML ஆகியவை பயனர் அனுமதிகள் (user permissions) மற்றும் பகிர்வு விதிகளை (sharing rules) புறக்கணித்தன. உங்கள் குறியீடு, பார்க்கக்கூடாத பயனர்களுக்குத் தரவைக் காட்டக்கூடும்.
API v67.0-இல், இந்த இயல்புநிலை மாறுகிறது. தரவுத்தளச் செயல்பாடுகள் (Database operations) இப்போது user mode-இல் இயங்கும்.
v67.0-இல் என்ன மாற்றங்கள் நிகழ்கின்றன:
• SOQL, SOSL மற்றும் DML ஆகியவை இயல்பாகவே பயனர் அனுமதிகள் மற்றும் பகிர்வு விதிகளைப் பின்பற்றும். • sharing declaration இல்லாத Classes இப்போது இயல்பாகவே "with sharing" ஆக இருக்கும். • "WITH SECURITY_ENFORCED" நீக்கப்பட்டுவிட்டது. அதற்குப் பதிலாக நீங்கள் "WITH USER_MODE"-ஐப் பயன்படுத்த வேண்டும். • Triggers எப்போதும் system mode-இல் இயங்கும்.
இந்த மாற்றம் உங்கள் class-இன் API பதிப்போடு தொடர்புடையது. நீங்கள் அவற்றை 67.0-க்கு மேம்படுத்தும் (upgrade) வரை உங்கள் பழைய classes அப்படியே இருக்கும். இது இடமாற்றத்தை (migration) நீங்கள் கட்டுப்படுத்த அனுமதிக்கிறது.
இந்த அமைதியான சிக்கல்களைக் கவனத்தில் கொள்ளுங்கள்:
- வினவல்களில் (queries) குறைவான பதிவுகள்: பயனருக்கு அனுமதி இல்லாததால், ஒரு query 500 வரிசைகளுக்குப் பதிலாக 40 வரிசைகளை மட்டுமே திருப்பித் தரக்கூடும். இது தவறான மொத்தக் கணக்கீடுகளுக்கும் (totals) தவறான அறிக்கைகளுக்கும் (reports) வழிவகுக்கும்.
- தொகுப்பு பிழைகள் (Compilation errors): புதிய பதிப்பில் "WITH SECURITY_ENFORCED" தொகுக்கத் (compile) தவறும்.
- ஒருங்கிணைப்புத் தோல்விகள் (Integration failures): தானியங்கி பணிகளுக்கு (automated jobs)த் தேவையான தரவுகளை அணுகும் உரிமை Integration பயனர்களுக்குத் தடைபடலாம்.
- பகிர்வு மாற்றங்கள்: sharing declaration இல்லாமல் இருந்த Classes இப்போது பகிர்வு விதிகளைப் பின்பற்றும்.
பாதுகாப்பாக எவ்வாறு இடமாற்றம் செய்வது:
- உங்கள் குறியீட்டை ஆய்வு செய்யுங்கள்: "WITH SECURITY_ENFORCED" மற்றும் sharing declarations இல்லாத Classes ஆகியவற்றைத் தேடுங்கள்.
- sandbox-இல் சோதனை செய்யுங்கள்: Controllers மற்றும் REST endpoints போன்ற அதிக ஆபத்துள்ள Classes-களை முதலில் மேம்படுத்துங்கள்.
- System.runAs() பயன்படுத்தவும்: தேர்ச்சி பெற்ற சோதனைகளை (passing tests) மட்டும் நம்பிவிடாதீர்கள். தரவுத் தெரிவுத்திறனை (data visibility) சரிபார்க்கக் கட்டுப்படுத்தப்பட்ட பயனர்களைக் கொண்டு சோதனை செய்யுங்கள்.
- திட்டமிட்டுச் செயல்படுங்கள்: ஒரு குறிப்பிட்ட காரணம் இருக்கும்போது மட்டுமே "SYSTEM_MODE" அல்லது "without sharing"-ஐப் பயன்படுத்தவும்.
இந்த மாற்றங்களை இப்போதே செய்வதன் மூலம், பிற்காலத்தில் ஏற்படும் அமைதியான production பிழைகளைத் தவிர்க்கலாம்.
Optional learning community: https://t.me/GyaanSetuAi