我有一個使用映射的批量觸發器,以避免遇到SOQL調控器限制。該觸發器還使用靜態類變量進行遞歸和限制查詢。批量刪除觸發器(太多的Soql語句)Salesforce.com
我正在做的是當一個批量操作(如插入或更新)在對象上觸發對象,在這種情況下觸發對象,然後觸發器將在第一個觸發器上構建相關帳戶的映射,並將使用這些地圖用於其餘觸發點火。
這裏是偉大的工作,操作的例子,但僅用於更新&插入扳機操作之後:
檢查靜態類變量是不正確的。
如果變量不是真的構建映射。
將靜態類變量設置爲true。
執行觸發操作。
對於插入/更新觸發器,會話狀態將保持不變,直到批量操作結束後纔會重置靜態類變量。
但是,對於之前的刪除觸發器,似乎沒有會話狀態,並且每次刪除記錄時都會重置會話。會話重置,但州長限制對於批量刪除記錄是累積的。因此,即使使用映射,在刪除觸發器之前,soql查詢計數仍會繼續計入臭名昭着的「Too Many Sql Queries」限制,以刪除超過100條記錄。
有關如何防止進入SOQL限制的任何想法將非常感激。我無法在任何地方找到任何東西。