तुमच्या Apex मध्ये Summer '26 मध्ये कमी रेकॉर्ड्स मिळू शकतात
Salesforce Summer '26 (API v67.0) Apex मध्ये एक मोठा बदल घेऊन येत आहे. हा बदल कोणताही एरर न दाखवता तुमच्या कोडचे निकाल बदलू शकतो.
अनेक वर्षांपासून, Apex बाय डिफॉल्ट 'system mode' मध्ये चालत असे. याचा अर्थ असा की SOQL, SOSL आणि DML वापरकर्त्याच्या परवानग्या (user permissions) आणि शेअरिंग नियमांकडे (sharing rules) दुर्लक्ष करत असत. तुमचा कोड अशा वापरकर्त्यांना डेटा दाखवू शकत होता ज्यांना तो पाहण्याचा अधिकार नाही.
API v67.0 मध्ये, हा डिफॉल्ट बदलला आहे. आता डेटाबेस ऑपरेशन्स 'user mode' मध्ये चालतात.
v67.0 मध्ये काय बदल होतात:
• SOQL, SOSL आणि DML आता बाय डिफॉल्ट वापरकर्त्याच्या परवानग्या आणि शेअरिंग नियमांची अंमलबजावणी करतात. • ज्या क्लासेसमध्ये शेअरिंग डिक्लेरेशन नाही, ते आता बाय डिफॉल्ट "with sharing" मोडमध्ये असतील. • "WITH SECURITY_ENFORCED" काढून टाकण्यात आले आहे. त्याऐवजी तुम्हाला "WITH USER_MODE" वापरावे लागेल. • Triggers नेहमी 'system mode' मध्येच चालतील.
हा बदल तुमच्या क्लासच्या API व्हर्जनशी संबंधित आहे. जोपर्यंत तुम्ही तुमचे जुने क्लासेस 67.0 वर अपग्रेड करत नाही, तोपर्यंत ते तसेच राहतील. यामुळे तुम्हाला मायग्रेशनवर नियंत्रण ठेवता येईल.
या शांतपणे उद्भवणाऱ्या समस्यांकडे लक्ष द्या:
- क्वेरीजमध्ये कमी रेकॉर्ड्स: वापरकर्त्याकडे प्रवेश (access) नसल्यामुळे एखादी क्वेरी 500 ऐवजी फक्त 40 रो (rows) परत करू शकते. यामुळे चुकीची बेरीज आणि चुकीचे रिपोर्ट्स तयार होऊ शकतात.
- कंपायलेशन एरर्स: नवीन व्हर्जनमध्ये "WITH SECURITY_ENFORCED" कंपाईल होणार नाही.
- इंटिग्रेशन फेल्युअर: इंटिग्रेशन वापरकर्त्यांना ऑटोमेटेड जॉब्ससाठी आवश्यक असलेल्या डेटाचा ॲक्सेस गमवावा लागू शकतो.
- शेअरिंगमधील बदल: ज्या क्लासेसमध्ये 'no sharing declaration' वर अवलंबून होते, ते आता शेअरिंग नियमांची अंमलबजावणी करतील.
सुरक्षितपणे मायग्रेट कसे करावे:
- तुमच्या कोडची तपासणी करा: "WITH SECURITY_ENFORCED" आणि शेअरिंग डिक्लेरेशन नसलेले क्लासेस शोधा.
- सँडबॉक्समध्ये (sandbox) टेस्ट करा: कंट्रोलर्स आणि REST एंडपॉइंट्स सारख्या उच्च-धोका असलेल्या क्लासेसना आधी अपडेट करा.
- System.runAs() वापरा: फक्त टेस्ट पास झाल्याचा विश्वास ठेवू नका. डेटा व्हिजिबिलिटी तपासण्यासाठी मर्यादित अधिकार असलेल्या वापरकर्त्यांसह टेस्ट करा.
- विचारपूर्वक निर्णय घ्या: जेव्हा तुमच्याकडे विशिष्ट कारण असेल, तेव्हाच "SYSTEM_MODE" किंवा "without sharing" वापरा.
आता हे बदल केल्यामुळे भविष्यात प्रोडक्शनमध्ये (production) शांतपणे उद्भवणारे बग्स टाळता येतील.
पर्यायी लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi