Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Apex からケース割り当てルールを実行する

公開日: Apr 2, 2025
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

トリガからケースの割り当てルールを実行する方法
解決策

ケースの割り当てルールを使用すると、ケースを適切なユーザーやキューに自動的にルーティングできます。ケースの割り当てルールは、ケースを割り当てるための条件と順序を定義する複数のルール項目で構成されます。複数のルール (例: [標準] ルールと [休日] ルール) を作成できますが、一度に「有効」にできるルールは 1 つだけです。

 

標準の UI では、ユーザーは [オプション] セクションの [有効な割り当てルールを使用して割り当てる] チェックボックスをオンにするだけで、割り当てルールをトリガできます。この問題は、アプリケーションによって Apex からケースを挿入する必要があり、割り当てルールをトリガする場合に発生します。このスクリプトを使用すると、ケースは挿入されますが、ケースに [有効な割り当てルールを使用して割り当てる] という項目がないため、割り当てルールがトリガされることはありません。

//Instance of case
Case newCase = new Case(Status = 'New') ; 
//Inserting a Case
insert newCase ;
 

Apex からケースの割り当てルールを実行する

解決策として、Database.DMLOptions を使用します。Database.DMLOptions クラスでは、トランザクション中に追加情報を提供できます。たとえば、項目の切り捨て動作や割り当てルール情報を指定できます。以下のスクリプトでは、ケースの割り当てルールを取得し、[有効な割り当てルールを使用して割り当てる] チェックボックスの DMLOptions を作成しています。

//Fetching the assignment rules on case 
AssignmentRule AR = new AssignmentRule(); 
AR = [select id from AssignmentRule where SobjectType = 'Case' and Active = true limit 1]; 

//Creating the DMLOptions for "Assign using active assignment rules" checkbox
Database.DMLOptions dmlOpts = new Database.DMLOptions(); dmlOpts.assignmentRuleHeader.assignmentRuleId= AR.id; 

Case newCase = new Case(Status = 'New') ; 
//Setting the DMLOption on Case instance
newCase.setOptions(dmlOpts); 
insert newCase ;
 

このスクリプトを使ってケースを挿入すると、割り当てルールがトリガされるようになりました。

ナレッジ記事番号

000387623

 
読み込み中
Salesforce Help | Article