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

オブジェクト定義に状態フィールドを追加する
-
グローバルメニュー (
) を開き、 コントロールパネル → ピックリスト に移動します。 -
希望するアイテムの選択リストを作成してください。 これらの項目は、オブジェクトのエントリ状態を定義します。 詳細な手順については、 選択リストの作成 を参照してください。
注記ドラフト版および公開版のオブジェクト定義の両方について、選択リスト項目をいつでも追加、削除、または編集できます。

-
グローバルメニュー (
) を開き、 コントロールパネル → オブジェクト に移動します。 -
目的のカスタムオブジェクトの編集を開始します。
-
フィールド タブに移動し、 追加 (
をクリックします。
-
ラベル と フィールド名 を入力してください。
-
選択リストタイプ を選択し、目的のリストを選択します。
-
トグル 状態としてマーク。
注記状態フィールドは自動的に 必須に設定され、オプションに変更することはできません。
-
状態フィールドには、 デフォルト値 を選択してください。
![候補リストを選択し、[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]タブで、状態フィールドのフローを設定します。](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]でドロップダウンメニューをクリックし、各状態で利用可能な移行を決定するためのボックスにチェックを入れます。
状態の移行はいくつでも選択できます。

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