Thông thường, khi trình kích hoạt chạy, chúng tôi kiểm tra loại hồ sơ người dùng có và nếu đó là loại mà chúng tôi không muốn trình kích hoạt chạy, thì chúng tôi thoát trình kích hoạt trước khi chạy bất kỳ mã nào khác.Làm cách nào để ngăn chặn trình kích hoạt được quản lý thực thi trong khi chạy một lớp thử nghiệm?
Vấn đề: chúng tôi có gói SF được cài đặt mà chúng tôi đã mua từ một số công ty khác và tất cả mã của nó không hiển thị với chúng tôi và không thể chỉnh sửa được. Làm thế nào chúng ta có thể ngăn chặn một số trong những kích hoạt từ chạy khác hơn là vô hiệu hóa thủ công chúng thông qua giao diện người dùng? Tôi muốn tạm thời vô hiệu hóa chúng trong khi chạy một lớp thử nghiệm.
Đã suy nghĩ về việc làm một cái gì đó như thế này, nhưng có một lỗi nói "DML không được phép trên ApexTrigger."
ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
Bạn có lý do chính đáng nào để vô hiệu hóa tính năng này không? Tôi biết phạm vi kiểm tra là một nỗi đau, nhưng nó phải được thử nghiệm một kịch bản thế giới thực - nếu kích hoạt sẽ chạy trong thế giới thực bạn muốn đảm bảo mã của bạn hoạt động với nó! –
Lý do tôi cần vô hiệu hóa nó là do lớp kiểm tra kiểm tra nhiều kịch bản và trình kích hoạt đóng gói chạy nhiều câu lệnh SOQL, thực thi mà tôi không thể kiểm soát. Trước khi tôi có thể nhận được vùng phủ sóng thử nghiệm lên đến 100%, số truy vấn SOQL truy cập vào giới hạn thống đốc 100 trong không gian tên được đóng gói. –