МЕТОД ОПТИМІЗАЦІЇ DML-ОПЕРАЦІЙ У SALESFORCE НА ОСНОВІ ПАТЕРНУ UNIT OF WORK: АРХІТЕКТУРНИЙ ПІДХІД ДО КОНСОЛІДАЦІЇ ТРАНЗАКЦІЙНИХ ЗМІН
DOI:
https://doi.org/10.28925/2663-4023.2026.35.1322Ключові слова:
Salesforce, Unit of Work, DML-операції, транзакційні ресурси, governor limits, оптимізація, мультитенантна архітектура, патерни проєктуванняАнотація
У статті представлено метод оптимізації операцій маніпулювання даними (DML) на платформі Salesforce, що базується на архітектурному патерні Unit of Work. Мультитенантна архітектура платформи Salesforce накладає жорсткі обмеження на кількість DML-операцій у межах однієї транзакції: максимум 150 операторів для синхронного контексту виконання. Зі зростанням складності бізнес-логіки та кількості обробників тригерів кожен обробник незалежно виконує власні операції вставки, оновлення та видалення записів, що спричиняє лінійне зростання споживання DML-ресурсів і підвищує ризик аварійного завершення транзакцій. У роботі формалізовано математичну модель споживання DML-операцій, яка описує залежність кількості операторів від числа активних обробників, кількості типів об'єктів та коефіцієнта транзакційної зв'язності. Запропонований метод передбачає впровадження централізованого шару управління змінами, який акумулює всі заплановані модифікації даних від бізнес-обробників у реєстрі змін та виконує їх у консолідованому вигляді наприкінці транзакції з дотриманням порядку залежностей між об'єктами. Доведено, що при застосуванні патерну Unit of Work кількість DML-операторів визначається виключно кількістю унікальних комбінацій типу об'єкта та типу операції і не залежить від кількості бізнес-обробників, що забезпечує математично гарантоване дотримання платформних обмежень. Експериментальну перевірку проведено в середовищі Salesforce Developer Edition на тестовому стенді з п'ятьма бізнес-обробниками під час масової обробки 200 записів. Результати експериментів підтвердили зниження кількості DML-операторів на 73% порівняно з традиційним підходом, скорочення часу виконання транзакції на 42% та зменшення споживання процесорного часу на 28%. Запропонований метод у поєднанні з раніше розробленою методологією централізації доступу до даних формує цілісний підхід до управління транзакційними ресурсами, який охоплює як операції читання, так і операції запису даних.
Завантаження
Посилання
Salesforce. (2024). Execution Governors and Limits. Apex Developer Guide. https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm
Fowler, M. (2002). Patterns of Enterprise Application Architecture. Addison-Wesley Professional.
Fawcett, A. (2014). Apex Enterprise Patterns: Common Apex Library. GitHub. https://github.com/apex-enterprise-patterns/fflib-apex-common
Salesforce. (2024). Apex Developer Guide: Bulk DML Exception Handling. https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dml_bulk_exceptions.htm
Salesforce. (2024). Bulk Apex Triggers. Trailhead. https://trailhead.salesforce.com/content/learn/modules/apex_triggers/apex_triggers_bulk
Cloud Sundial. (2021). The 3rd Age of Trigger Frameworks. https://cloudsundial.com/the-third-age-of-trigger-frameworks
Andrushchak, I., & Bondarchuk, H. (2025). Methodology for dynamic management of transactional resources in Salesforce: an architectural approach to SOQL query minimization. International Science Journal of Engineering & Agriculture, 4(6). https://isg-journal.com/isjea/article/view/1119/672
Andrushchak, I., & Bandach, H. (2026). Comparative analysis of methods and algorithms for trigger-based transactional resource management in Salesforce. International Science Journal of Engineering & Agriculture.
Pethad, C. A. (2020). Platform Event Trigger Framework Implementation in Salesforce Apex. Journal of Scientific and Engineering Research, 7(5), 391–394.
Spano, M. (2020). Trigger Actions Framework. GitHub. https://github.com/mitchspano/trigger-actions-framework
ApexHours. (2024). Bulkification of Apex Triggers. https://www.apexhours.com/bulkification-of-apex-triggers/
Salesforce Architects. (2024). Record-Triggered Automation Decision Guide. https://architect.salesforce.com/decision-guides/trigger-automation
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2026 Георгій Бандач, Ігор Андрущак

Ця робота ліцензується відповідно до Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.