詳細情報:
Salesforce Contracts でのオブジェクト状態遷移アクションのシナリオ
これらのシナリオには、契約のアクションを設定するときに留意すべき重要な情報が含まれています。
シナリオ 1
Apex クラスのロジックと状態遷移の対応付けが一致しないため、契約状況は変更されません。次に例を示します。
-
契約がドラフト状態である。
-
次のように設定します。
-
Apex 種別 DraftToInApproval を使用したオブジェクト状態アクション定義。
-
DraftToInApproval アクションの [ドラフト] から [承認中] へのオブジェクト状態移行アクション。
-
ChangeStatus.apxc という Apex クラス。契約を Draft から Canceled に移動するロジックを備えています。
-
-
[DraftToInApproval] をクリックしても、契約は [ドラフト] から [承認中] に移行しません。Apex クラスは定義されたロジックを実行し、中間状態として契約をドラフトからキャンセルに移行します。
-
オブジェクト状態遷移に [キャンセル] から [承認中] への契約移行が含まれる場合、契約は最初の [ドラフト] 状態に戻ります。
メモ 契約を [ドラフト] 状態から [承認中] 状態に移行するには、[キャンセル] から [承認中] へのオブジェクト状態移行を作成する必要があります。 -
契約の最終状態はドラフトです。
シナリオ 2
Apex クラス ロジックと状態遷移の対応付けが一致しなくても、契約状況は変更されます。これは、オブジェクト状態遷移に必要なすべての遷移が含まれるためです。次に例を示します。
-
契約がドラフト状態である。
-
次のように設定します。
-
Apex 種別 DraftToCanceled を使用したオブジェクト状態アクション定義。
-
DraftToCanceled アクションの [ドラフト] から [キャンセル] へのオブジェクト状態遷移アクション。
-
StatusChange.apxc という Apex クラス。契約をドラフトから承認中に移行するロジックを備えています。
-
-
[DraftToCanceled] をクリックすると、契約は [ドラフト] から [承認中] に変わります。これは、デフォルトの移行が InApproval_To_Canceled であるためです。
-
契約の最終状態は [キャンセル] です。
シナリオ 3
オブジェクト状態アクションボタンをクリックしても、契約状況は変更されません。これは、Apex クラスの実行によってすでに契約状況が更新されているためです。次に例を示します。
-
契約がドラフト状態である。
-
次のように設定します。
-
Apex 種別 DraftToInApproval を使用したオブジェクト状態アクション定義。
-
DraftToInApproval アクションの [ドラフト] から [承認中] へのオブジェクト状態移行アクション。
-
ChangeStatus.apxc という Apex クラス。契約をドラフトから承認中に移行するロジックを備えています。
-
-
[DraftToInApproval] をクリックすると、契約が [承認中] になります。これは、契約を [ドラフト] から [承認中] に中間状態として移行するクラスで定義されたロジックが Apex クラスですでに実行されているためです。そのため、契約状況は有効な状態であるため、[承認中] のままです。
-
契約の最終状態は [承認中] です。
シナリオ 4
オブジェクト状態定義には、複数のオブジェクト状態遷移アクションが関連付けられています。オブジェクト状態遷移アクションには、同じ開始状態と異なる終了状態があります。Salesforce Contracts アプリケーションは、定義されたトランジションとアクションに基づいて契約の状況を更新します。Apex クラス ロジックと定義済みの遷移が異なる場合、アプリケーションは定義済みの遷移に従います。次に例を示します。
-
契約がドラフト状態である。
-
次のように設定します。
-
Apex 種別 DraftToFinalStatus を使用したオブジェクト状態アクション定義。
-
DraftToFinalStatus アクションの [ドラフト] から [承認中] へのオブジェクト状態移行アクション。
-
DraftToFinalStatus アクションの [ドラフト] から [有効] へのオブジェクト状態遷移アクション。
-
-
Apex クラスとその結果を構成する 2 つのオプションを次に示します。
メモ このシナリオの Apex コールを正常に実行するには、finalStatusValue パラメータは必須です。オプション シナリオ ChangeStatus.apxc という Apex クラスを作成し、契約をドラフトから承認中に移行するロジックを使用します。 -
finalStatusValue が [承認プロセス中] に設定されている場合、契約はドラフトから承認プロセスに移行します。
-
finalStatusValue が Activated に設定されている場合、パスが [承認プロセス中] から [有効] に定義されていないため、移行は失敗します。契約はドラフト状態のままです。
ChangeStatus.apxc という Apex クラスを作成し、契約をドラフトから有効に移行するロジックを使用します。 -
finalStatusValue が Activated に設定されている場合、契約は Draft から Activated に移行します。
-
finalStatusValue が [承認プロセス中] に設定されている場合、パスが [有効] から [承認プロセス中] に定義されていないため、移行は失敗します。契約はドラフト状態のままです。
-
