您位於此處:
Salesforce Contracts 中的物件狀態轉換動作情境
這些情況包含設定契約動作時要記住的重要資訊。
情況 1
契約狀態不會變更,因為 Apex 類別邏輯與狀態轉換對應不相符。範例如下:
-
契約處於「草稿」狀態。
-
您可以設定:
-
使用 Apex 類型 DraftToInApproval 的物件狀態動作定義。
-
DraftToInApproval 動作的物件狀態轉換動作,由「草稿」轉換為「批准中」。
-
稱為 ChangeStatus.apxc 的 Apex 類別,其邏輯會將契約從「草稿」移至「已取消」。
-
-
當您按一下 DraftToInApproval 時,契約不會從「草稿」移至「批准中」。Apex 類別會執行定義的邏輯,並將契約從「草稿」移至「已取消」作為中間狀態。
-
如果物件狀態轉換包含將契約從「已取消」移至「批准中」的轉換,則契約會回到初始「草稿」狀態。
備註 若要將契約從「草稿」轉換為「批准中」狀態,您必須建立物件狀態從「已取消」轉換為「批准中」。 -
契約的最終狀態為「草稿」。
情況 2
即使 Apex 類別邏輯與狀態轉換對應不相符,契約狀態仍會變更,因為物件狀態轉換包含所有必要轉換。範例如下:
-
契約處於「草稿」狀態。
-
您可以設定:
-
使用 Apex Type DraftToCanceled 的物件狀態動作定義。
-
針對 DraftToCanceled 動作,從「草稿」轉換為「已取消」的物件狀態動作。
-
稱為 StatusChange.apxc 的 Apex 類別,其邏輯會將契約從「草稿」移至「批准中」。
-
-
當您按一下 DraftToCanceled 時,契約會從「草稿」移至「批准中」移至「已取消」,因為預設會從 InApproval_To_Canceled 轉換。
-
契約的最終狀態為「已取消」。
情況 3
當您按一下物件狀態動作按鈕時,契約狀態不會變更,因為 Apex 類別執行已更新契約狀態。範例如下:
-
契約處於「草稿」狀態。
-
您可以設定:
-
使用 Apex 類型 DraftToInApproval 的物件狀態動作定義。
-
DraftToInApproval 動作的物件狀態轉換動作,由「草稿」轉換為「批准中」。
-
稱為 ChangeStatus.apxc 的 Apex 類別,其邏輯會將契約從「草稿」移至「批准中」。
-
-
當您按一下 DraftToInApproval 時,因為契約已處於「批准流程」中,因為 Apex 類別已執行類別中定義的邏輯,將契約從「草稿」移至「批准中」作為中間狀態。因此,由於契約狀態為有效狀態,因此保持為「批准中」。
-
契約的最終狀態為「批准中」。
情況 4
物件狀態定義有多個相關聯的物件狀態轉換動作。物件狀態轉換動作具有相同的「寄件者」狀態與不同的「收件者」狀態。Salesforce Contracts 應用程式會根據定義的轉換和動作更新契約的狀態。如果 Apex 類別邏輯與定義的轉換之間有差異,則應用程式會嘗試遵循定義的轉換。範例如下:
-
契約處於「草稿」狀態。
-
您可以設定:
-
使用 Apex Type DraftToFinalStatus 的物件狀態動作定義。
-
DraftToFinalStatus 動作的物件狀態轉換動作,由「草稿」轉換為「批准中」。
-
針對 DraftToFinalStatus 動作,從「草稿」到「已啟用」的物件狀態轉換動作。
-
-
以下是設定 Apex 類別及其結果的兩個選項。
備註 若要讓此情況中的 Apex 呼叫成功,則 finalStatusValue 參數是必要的。選項 情況 使用將契約從「草稿」移至「批准中」的邏輯,建立名為 ChangeStatus.apxc 的 Apex 類別。 -
如果 finalStatusValue 設定為「批准中」,則契約會從「草稿」移至「批准中」流程。
-
如果 finalStatusValue 設定為「已啟用」,則轉換會失敗,因為未將路徑從「批准中」定義為「已啟用」。契約保持處於「草稿」狀態。
建立名為 ChangeStatus.apxc 的 Apex 類別,其邏輯會將契約從「草稿」移至「已啟用」。 -
如果 finalStatusValue 設定為「已啟用」,則契約會從「草稿」移至「已啟用」。
-
如果 finalStatusValue 設定為「批准中」,則轉換會失敗,因為未從「已啟用」定義路徑至「批准中」流程。契約保持處於「草稿」狀態。
-
