アセスメントを検証するためのオブジェクトの変更の例
この例を使用して、アプリケーション・コンポーザでGroovyスクリプトを使用して、アカウント、リード、担当者または商談を変更し、指定したアセスメント・テンプレートが完了したことを検証する方法を学習します。
この例では、営業管理者として、営業担当が商談を「受注済」に設定する前にアセスメント・テンプレートDiscount Eligibilityを完了したことを確認します。
スクリプトを使用したアセスメントの検証
商談をクローズする前に、常に営業担当がDiscount Eligibilityアセスメント・テンプレートに入力したことを確認するには:-
営業管理者としてサインインします。
-
サンドボックスを作成してアクティブ化します。
-
「アプリケーション・コンポーザ」にナビゲートします。
-
「アプリケーション」リストから「営業」を選択します。
-
「標準オブジェクト」を展開し、次に「商談」を展開します。
-
「サーバー・スクリプト」をクリックします。
-
サーバー・スクリプトの商談ページで、「トリガー」を選択します。
-
「オブジェクト・トリガー」リージョンで、「新規トリガーの追加」アイコンをクリックします。
-
「オブジェクト・トリガーの作成」ページで、「トリガー」リストから「データベースでの更新の前」を選択します。
-
トリガー名を入力します。
-
「トリガー定義」リージョンに、次のスクリプトを入力します。
def optyStatusCode = getAttribute('StatusCode') if (optyStatusCode == 'WON') { def id = getAttribute('OptyId') def vo = newView('AssessmentVO') def vc = vo.createViewCriteria() def vcr = vc.createRow() def vci = vcr.ensureCriteriaItem('AssessedObjectId') vci.setOperator('=') vci.setValue(id) vc.add(vcr) vo.appendViewCriteria(vc) vo.executeQuery() def completedMandatoryAsmnt = false; if (vo.getEstimatedRowCount() > 0) { vo.reset() while (vo.hasNext()) { def row = vo.next() if (row != null) { def tempName = row.getAttribute('TemplateName') if (tempName == 'Discount Eligibility') { def status = row.getAttribute('StatusCode') println("Asmnt Status is " + status) if(status != 'COMPLETED') { throw new oracle.jbo.ValidationException('Please complete the Mandatory Discount Eligibility Assessment before changing status to WON') } else { completedMandatoryAsmnt = true; break; } } } } } if (completedMandatoryAsmnt == false) { throw new oracle.jbo.ValidationException('Please create and complete Mandatory Discount Eligibility Assessment before changing status to WON') } }
-
「保存して閉じる」をクリックします。
トリガー・スクリプトによって、営業担当が商談ステータスを「受注済」に変更するたびにメッセージが表示されます。 このメッセージで、ステータスを「受注済」に変更する前に、営業担当がDiscount Eligibilityアセスメント・テンプレートに入力したことが確認されます。