擷取進入狀態的原因

部分業務物件支援設定特定狀態,以在物件進入狀態時允許或需要狀態原因。產品提供集中式狀態原因資料表,可用來定義各種業務物件和各種狀態的有效業務物件狀態原因。狀態原因是使用狀態原因入口所定義。

下列各個區段提供有關業務物件狀態原因功能的其他資訊。

維護物件必須支援狀態原因

為了讓業務物件使用集中式狀態原因資料表來定義原因,維護物件必須先支援狀態原因。支援狀態原因的維護物件具有下列特性:

  • 主要資料表包含「狀態原因」資料欄。這代表記錄目前狀態的狀態原因 (如果適用的話)。

  • 日誌資料表包含「狀態原因」資料欄。進入狀態時用於擷取日誌記錄的標準邏輯也會擷取狀態原因 (如果適用的話)。這可讓使用者複查狀態的變更歷史以及上一個狀態轉變所擷取的狀態原因 (如果適用的話)。

  • 維護物件選項集合包含可定義「狀態原因」欄位的選項。此設定是一種觸發,讓此維護物件的業務物件能夠設定狀態以允許或需要狀態原因。

業務物件狀態指出原因是否適用

將維護物件設定成支援狀態原因之後,便需要業務物件上的組態,以指出適用原因的狀態。狀態可設定為需要狀態原因、允許狀態原因為選擇性,或不允許狀態原因。透過此組態,架構將會自動取得允許或需要原因的有效狀態原因列表,然後在該狀態發生手動狀態轉變時,提示使用者輸入狀態原因。如果狀態需要狀態原因,但未提供原因,則也會自動觸發錯誤。

備註:可自訂業務物件狀態上的狀態原因組態。這表示對於產品擁有的業務物件,實作可以選擇變更已傳遞的組態。

上階 (或「生命週期」) 業務物件定義狀態原因。上階業務物件階層中所有業務物件的狀態都會有相同的有效原因。

集中式狀態原因資料表的狀態原因代碼必須是唯一的。業務物件和狀態是必要欄位,因此無法在多個業務物件或狀態間共用常見原因代碼 (如「不適用」)。如果多個業務物件/狀態想要支援「不適用」原因,則每個業務物件/狀態都必須為其定義唯一的記錄。規劃您的狀態原因時,應該考量這點。

置換描述

您的實作可能會置換產品擁有之狀態原因的描述。

可選取與不可選取

定義狀態原因時,您可以指出它是可選取還是不可選取。執行手動轉變並提示使用者輸入狀態原因時,則只會顯示可選取原因。可定義不可選取原因,以支援透過演算法處理發生的轉變。

備註:可自訂「可選取」設定。這表示,如果產品為業務物件狀態提供基準擁有的狀態原因,則不論是否為可選取,實作都可以選擇變更。在將基準傳遞的狀態原因從不可選取變更為可選取之前應該謹慎考量,因為這可能會影響可依賴不可選取設定之基準提供的演算法功能。

狀態原因業務物件

與產品中的許多維護物件相同,狀態原因維護物件參考業務物件,該業務物件用來定義與定義狀態原因相關的屬性和行為。架構為狀態原因提供業務物件 (F1–BOStatusReason)。對於狀態需要狀態原因的業務物件 (稱為「交易業務物件」),如果定義狀態原因時需要一些特殊邏輯,則可以定義不同的狀態原因業務物件。在此情況下,應該使用狀態原因業務物件選項類型,將要用於擷取狀態原因的置換狀態原因業務物件定義為交易業務物件上的業務物件選項。如果交易業務物件未定義任何狀態原因業務物件選項,則會在新增狀態原因時使用 F1–BOStatusReason

定義使用

基準產品狀態原因業務物件可讓您定義「使用」值。這對於執行狀態轉變的演算法很有用,這些演算法需要狀態原因且演算法可供多個業務物件使用。在此情況下,無法將要使用的狀態原因提供作為參數,因為每個業務物件都必須為每個狀態定義自己的狀態原因集。可以改為使用「使用」值。每個業務物件都可以設定要在演算法中使用的狀態原因,並設定適當的使用值。演算法可以參考使用值,並根據記錄的交易業務物件來擷取要使用的正確狀態原因。

隨同架構產品提供的狀態原因業務物件 (F1–BOStatusReason) 支援擷取使用。有效的使用值是在使用狀態原因特性類型中定義。

定義原因的替代項目

除了業務物件狀態原因資料表之外,系統中可能還有可擷取在某處定義之原因的業務物件。例如,部分物件可能有狀態原因的明確管理資料表。部分物件可能會使用「查尋」或「可延伸查尋」來擷取原因。如需如何定義有效原因 (如果適用的話) 的相關資訊,請參閱業務物件描述。

如果業務物件支援與狀態轉變無關的原因 (如建立原因),則不會使用業務物件狀態原因。將會使用上述定義原因的其中一種替代方法。