6

通常、トリガーが実行されると、ユーザーが持っているプロファイルの種類を確認し、トリガーを実行したくない種類のプロファイルである場合は、他のコードを実行する前にトリガーを終了します。

問題: 他社から購入した SF パッケージがインストールされていますが、そのコードはすべて見えず、編集することもできません。UI から手動で無効にする以外に、これらのトリガーの実行を停止するにはどうすればよいでしょうか? テストクラスの実行中に一時的に無効にしたい。

このようなことを考えていたのですが、「ApexTriggerではDMLは許可されていません」というエラーが出ました。

ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
4

2 に答える 2

4

私は似たようなことをしようとしましたが、行き詰まりました。管理パッケージの所有者にApexコードを更新させずに、あなたが求めていることを実行する方法はないと思います。

問題の前にリストしたアプローチは優れた解決策です。ただし、カスタム設定を追加で使用することをお勧めします。トリガーを実行する前に、トリガーの所有者/開発者にカスタム設定チェックを実装することをお勧めします。これは、私が自分のトリガーのいくつかに対して思いつくことができる最良の解決策です。

ApexTriggerオブジェクトを更新できれば素晴らしいのですが、Salesforceでは許可されていません。

于 2012-01-26T18:57:03.973 に答える
1

あなたの唯一の選択肢は、管理パッケージをアンインストールまたはアンデプロイすることだと思います.

于 2012-01-26T18:59:48.243 に答える