この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Apex トリガ: 完了した作業指示を含むケースの自動クローズ

次のトリガは、ケースにリンクされた作業指示が「完了」とマークされると、自動的にケースをクローズします。関連付けられた作業が完了した後にサポートエージェントが手動でケースをクローズする手間を省きます。

ケースに複数の作業指示がある場合、関連付けられた作業指示が初めて「完了」とマークされるとトリガが起動します。

メモ

1trigger CloseCaseOnWorkOrderUpdate on WorkOrder (after update) {
2    // Query all the cases whose work order ID is the incoming work order
3    List<Case> casesToUpdate = [select Id, Status from Case 
4                               where Id IN (select caseId from WorkOrder 
5                                            where Id IN :Trigger.newMap.keySet() 
6                                            and Status ='closed')];             
7	// Set the case status to closed 
8    for (Case c : casesToUpdate) {
9        c.status = 'closed';
10    }
11    update casesToUpdate;
12}
開発者コンソールで Apex 単体テストを設定し、コードに問題がないかをスキャンできます。円滑な遂行のために、Apex コードの 3/4 以上がテストでカバーされる必要があります。次の単体テストはこのトリガに適用されます。
1@isTest
2private class WOTriggerTest {
3    static testMethod void validateWO() {
4    Case ca = new Case();
5    ca.Origin ='Phone';
6    ca.Status ='new';
7    insert(ca);
8        WorkOrder wo = new WorkOrder();
9        wo.Subject = 'test';
10        wo.Status ='closed';
11        wo.CaseId = ca.Id;
12        insert(wo);
13        update(wo);
14        Case ca1 = [SELECT Status from Case where id= :ca.Id];
15        System.assertEquals('Closed', ca1.Status);
16    }
17}