カスタム状態の追加と管理
Liferay DXP 7.4+
ユースケースによっては、1つのオブジェクトエントリーに複数の状態を同時に割り当てる必要がある場合があります。 例えば、注文アプリケーションを構築する場合、同じエントリーに対して、注文、支払い、配送の各状態を割り当て、管理する必要があり、それぞれに独自のフローと関連するビジネスロジックがあります。 Liferayの候補リストとカスタムオブジェクトを使うことで、この機能を実現できます。
候補リストでは、文字列のリストを定義し、それをオブジェクトフィールドとして使用して、エントリーのカスタム状態を定義できます。 オブジェクト定義に追加すると、各状態のフローを設計し、 検証 と アクション を使用して、さまざまな状態のビジネス ロジックを追加できます。 状態は、 ワークフロー ステータス と一緒に使用して、より複雑なレビューおよび承認プロセスを定義することもできます。

オブジェクト定義に状態フィールドを追加する
-
グローバル メニュー (
) を開き、 コントロール パネル タブに移動して、 ピックリストをクリックします。 -
必要な項目で候補リストを作成します。 これらの項目は、オブジェクトのエントリー状態を定義します。 詳細な手順については、「 ピックリストの作成 」を参照してください。
注下書きと公開されたオブジェクト定義の両方について、いつでも候補リストの項目を追加、削除、編集することができます。

-
グローバル メニュー (
) を開き、 コントロール パネル タブに移動して、 オブジェクトをクリックします。 -
目的のカスタムオブジェクトの編集を開始します。
-
フィールド タブに移動し、 追加 (
) をクリックします。
-
ラベル と フィールド名を入力します。
-
候補リストタイプを選択し、必要なリストを選択します。
-
状態としてマークを切り替えます。
注状態フィールドは自動的に 必須に設定され、オプションに変更することはできません。
-
状態フィールドの[Default Value]を選択します。
![候補リストを選択し、[Mark as State]に切り替えて、フィールドのデフォルト値を設定します。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/objects/creating-and-managing-objects/fields/adding-and-managing-custom-states/images/04.png)
-
[保存]をクリックします。
定義にフィールドを追加した後、 フローを設定 して、各状態で使用できる遷移を決定できます。
状態フィールドのフローを設定する
デフォルトでは、各状態は他のすべての状態に移行することができます。 ただし、エントリーが目的のプロセスを通るように移行を制限することは可能です。
以下の手順で、状態フィールドのカスタムフローを設定します。
-
カスタムオブジェクトの編集中に、[State Manager] タブを開き、必要な状態フィールドを選択します。
![[State Manager]タブで、状態フィールドのフローを設定します。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/objects/creating-and-managing-objects/fields/adding-and-managing-custom-states/images/05.png)
-
[Next Status]でドロップダウンメニューをクリックし、各状態で利用可能な移行を決定するためのボックスにチェックを入れます。
状態の移行はいくつでも選択できます。

-
[保存]をクリックします。
一度保存すると、ユーザーは定義したフローに従ってのみ、エントリーの状態を移行させることができます。
