𝗬𝗼𝘂𝗿 𝗔𝗽𝗲𝘅 𝗠𝗶𝗴𝗵𝘁 𝗥𝗲𝘁𝘂𝗿𝗻 𝗙𝗲𝘄𝗲𝗿 𝗥𝗲𝗰𝗼𝗿𝗱𝘀 𝗶𝗻 𝗦𝘂𝗺𝗺𝗲𝗿 '𝟮𝟲

Salesforce Summer '26 (API v67.0) นำการเปลี่ยนแปลงครั้งใหญ่มาสู่ Apex ซึ่งการเปลี่ยนแปลงนี้อาจส่งผลต่อผลลัพธ์ของโค้ดของคุณโดยไม่มีการแจ้งข้อผิดพลาด (error) เกิดขึ้น

เป็นเวลาหลายปีที่ Apex ทำงานใน system mode โดยค่าเริ่มต้น ซึ่งหมายความว่า SOQL, SOSL และ DML จะเพิกเฉยต่อสิทธิ์การใช้งาน (user permissions) และกฎการแชร์ (sharing rules) ทำให้โค้ดของคุณอาจแสดงข้อมูลแก่ผู้ใช้ที่ไม่ควรเห็นข้อมูลนั้นได้

ใน API v67.0 ค่าเริ่มต้นจะเปลี่ยนไป โดยการดำเนินการกับฐานข้อมูล (Database operations) จะทำงานใน user mode แทน

สิ่งที่เปลี่ยนแปลงใน v67.0:

• SOQL, SOSL และ DML จะบังคับใช้ user permissions และ sharing rules โดยค่าเริ่มต้น • Class ที่ไม่มีการประกาศ sharing จะเปลี่ยนเป็น "with sharing" โดยค่าเริ่มต้น • "WITH SECURITY_ENFORCED" ถูกนำออกไปแล้ว คุณต้องใช้ "WITH USER_MODE" แทน • Triggers จะทำงานใน system mode เสมอ

การเปลี่ยนแปลงนี้ผูกติดกับ API version ของ class ของคุณ โดย class เก่าของคุณจะยังคงเหมือนเดิมจนกว่าคุณจะอัปเกรดเป็น 67.0 ซึ่งช่วยให้คุณสามารถควบคุมการย้ายระบบ (migration) ได้

ระวังปัญหาที่เกิดขึ้นโดยไม่แจ้งเตือน (silent issues) เหล่านี้:

วิธีการ Migrate อย่างปลอดภัย:

การดำเนินการเปลี่ยนแปลงเหล่านี้ตั้งแต่ตอนนี้ จะช่วยป้องกันบั๊กเงียบ (silent bugs) ในระบบ Production ในภายหลัง

Source: https://dev.to/maintask/your-apex-might-return-fewer-records-in-summer-26-and-not-throw-a-single-error-26de

Optional learning community: https://t.me/GyaanSetuAi