Salesforce Transactions

ליאור נכתב על ידי ליאור לביא, עודכן בתאריך 01/11/2021

טרנסאקציה (Transaction), או הקשר הרצה (Execution context), היא מסגרת בה קוד רץ, ובסופה כל פעולות ה-DML המוגדרות בה מבוצעות בו-זמנית כנגד ה-Database, כך שאם אחת מהן נכשלת, כל היתר מבוטלות ומבוצע Rollback מלא.

טרנסאקציות הן אמצעי חיוני להבטחת השלמת סטים של פעולות מול ה-Database שתלויות זו בזו באופן כזה שעל כולן לרוץ בהצלחה יחד, או להיכשל יחד, אבל אין להתיר מצב בו רק חלק מהפעולות מבוצעות מול ה-Database.

דוגמה נפוצה לתהליך שכזה הוא תהליך העברת כספים מחשבון בנק אחד לחשבון בנק אחר. נתאר לעצמנו מצב בו נרצה להעביר 100 שקלים מחשבון א' לחשבון ב'. ברור שלא נרצה שיתווספו לחשבון ב' 100 שקלים, אלא אם הם הוסרו מחשבון א', וברור שלא נרצה להסיר מחשבון א' 100 שקלים מבלי להבטיח שהם אכן הוספו לחשבון ב'. כששתי הפעולות מבוצעות באותה הטרנסאקציה, אם אחת מהן נכשלה, שתיהן תכשלנה ויבוצע Rollback, וכך נבטיח את אמינות ושלמות המידע.