您位於此處:
設定動態收入協調流程以暫停狀態變更
透過設定等待特定「訂單管理」里程碑的暫停步驟,協調「動態收入協調流程器」(DRO) 與「訂單管理」之間的履行。例如,暫停履行,直到傳送所有訂購的項目為止。
開始之前,請在您的組織中開啟「動態收入協調流程」。
將 OMS 欄位對應至內容定義,以便「運算式集」在決定是否要在協調流程計畫中釋出暫停步驟時評估這些欄位。
-
延伸內容定義以對應 OMS 欄位。
- 進入「設定」,移至「動態收入協調流程器設定」,然後選取預先設定的內容定義。
-
為您要追蹤的 OMS 欄位新增內容標記。
常見範例:
- ItemStartQuantity:對應至 OrderItemSummary.QuantityOrdered
- ItemEndQuantity:對應至 OrderItemSummary.QuantityDelivered 或 QuantityShipped
- 將這些標記對應至 SalesTransactionItem 物件上的欄位。
- 儲存內容定義。
-
建立暫時屬性以用於計算。
運算式集需要暫時屬性才能保留暫時計算值。
- 在您的內容定義中,將自訂屬性新增至與對應欄位相同的節點。
- 設定「顯示名稱」和「描述」 以完全符合屬性名稱。
- 將屬性標記為「暫時」,讓資料不會保留。
- 儲存您的變更。
重要 如果「顯示名稱」與「描述」不符合屬性名稱,則 ExpressionSet 評估會失敗。 -
建立履行條件的運算式集。
- 在「設定」中,搜尋 運算式集並建立運算式集。
- 選取延伸的內容定義。
- 將「使用類型」設定為「履行條件」。
-
設定邏輯以比較 OMS 欄位值。
範例:所有項目都交付時的釋出暫停。
- 新增 清單群組以處理 OrderSummary 中的多個 OrderItemSummaries。
- 計算每個項目的 ItemStartQuantity 和 ItemEndQuantity 之間的差異。
- 使用「彙總清單」函數來加總差異。如果所有數量皆符合,則總和等於 0。
-
使用預設值
False新增名為isExecuteStep的本機布林值變數。 -
設定條件:如果總和等於 0,則設定
isExecuteStep = True。 -
在最終計算步驟中,選取
isExecuteStep變數的「包含在輸出中」。 - 儲存 ExpressionSet。
重要 將輸出變數完全設定為isExecuteStep(區分大小寫)。若為 True,則 DRO 會繼續進行步驟。False 時,DRO 會將步驟保持暫停。 -
在履行工作流程中設定暫停步驟。
- 在您的履行步驟定義中,新增新的「暫停處理」步驟。
- 在步驟組態中,選取「使用 ExpressionSet」作為條件類型。
- 選取您在步驟 3 中建立的 ExpressionSet。
- 設定 DRO 重新評估條件的頻率 (輪詢間隔)。
- 儲存您的履行步驟定義。
提交訂單時,DRO 會評估在每個輪詢間隔時設定的運算式。在「訂單管理」更新 OrderItemSummary 數量,且條件傳回 True 後,暫停步驟會釋出並繼續履行。
| 暫停直到 | expressionSet 邏輯 |
|---|---|
| 已傳送的所有項目 | OrderItemSummary.QuantityDelivered = QuantityOrdered |
| 所有已出貨項目 | OrderItemSummary.QuantityShipped = QuantityOrdered |
| 部分出貨值 | OrderItemSummary.QuantityShipped >= (QuantityOrdered × 0.8) |
| 庫存已配置 | OrderItemSummary.QuantityReserved = QuantityOrdered |
疑難排解
| 問題 | 解決方案 |
|---|---|
| ExpressionSet 會顯示「發生問題」。 | 定義 isExecuteStep 並選取「包含在輸出中」。 |
| 內容標記不適用於 ExpressionSet。 | 確認「顯示名稱」和「描述」符合暫時屬性的屬性名稱。 |
| 暫停步驟永不發行。 | 檢查 isExecuteStep 是否為布林值變數,且符合條件時,邏輯會將其設定為 True。 |
| 一般評估錯誤顯示。 | 開啟 DynamicCommonOrchestrator 組織權限。 |
