状態管理
状態管理を使用すると、管理者は、事前定義された状態リストを通してレコードをどのように移行させるかを制御するステータスモデルとステータス移行を定義できます。
ステータス移行の例は、施設要求の [ステータス] フィールドが [割り当て] ステータスから [対応中] ステータスに移行した場合などです。
ステータス管理は、すべてのインスタンスで有効です。
ステータスモデルとは
ステータスモデルは、レコードのライフサイクルを通じて予想されるレコードワークフローを説明するステータスのリストです。ステータスモデルは、タスクテーブルを拡張する任意のテーブルに対して定義できます。ステータスモデルは、特定のタスクタイプに許可されるステータス移行の定義を簡素化します。
ステータスモデル [sys_state_model] テーブルで、ステータスモデルの名前と、ステータスモデルが適用されるタスクテーブルを定義します。Condition Builder を使用して、ステータスモデルをレコードに適用するための条件と、ステータス間を移動するために必要な条件を指定します。
たとえば、航空券予約の新しいカスタムアプリケーションのステータスモデルを定義できます。カスタムアプリケーションには、保留、確認済み、完了、キャンセルの 4 つの状態がある予約要求 [reservation_request] テーブルがあります。予約要求テーブルを対象とするステータスモデルを定義してから、4 つの各ステータスのステータス移行を定義できます。ステータスモデルを有効にしたときの [ステータス] フィールドの選択リストには、ステータス移行の条件で許可されている選択肢のみが含まれています。
ステータス移行とは
ステータス移行は、テーブルに定義された各ステータスを開始または終了するための条件のリストです。ステータス移行 [sys_state_transition] テーブルで条件ビルダーを使用して、各ステータスの開始または終了に必要な条件のリストを作成します。
ユーザーが無効なステータスを選択しないようにするため、レコードのステータスの更新は、ステータス移行に違反する場合は拒否されます。それが、ユーザー入力、スクリプト、REST や SOAP などの Web API、またはその他のソースを介して行われるかどうかは関係ありません。
ステータス移行は、ターゲットタスクテーブルの [ステータス] フィールドの選択リストを制御し、基礎となるプロセスに準拠していないか、移行に対して定義された条件を満たさないステータス値を選択できないようにします。
たとえば、[完了] ステータスへの移行条件が「 ステータスが確認済み」である場合、[確認済み] ステータスのレコードのみが [完了] ステータスに移行できます。レコードが [確認済み] ステータスの場合、[ステータス] フィールドの選択リストで選択できるのは [完了] のみです。