休暇申請システムの構築
Liferay 7.4以降
Liferay Objectsを使えば、コードを書いたりモジュールをデプロイしたりすることなく、アプリケーション全体を構築できます。ここでは、Liferay オブジェクト と ピックリスト を使用して休暇申請アプリケーションを作成します。
まず、部署の値を定義するためのピックリストを追加します。次に、 休暇申請 用と 従業員用の2つのオブジェクトを作成します。このプロセス中に、これらのオブジェクトを相互に関連付け、休暇申請オブジェクトにWebhookを追加します。最後に、 カスタムレイアウト を設計して、関係フィールドを表示します。
システムオブジェクトの拡張には制限があるため、リクエストをユーザープロファイルに関連付けるには、従業員オブジェクトを作成する必要があります。

Liferay DXP の新しいインスタンスを起動するには、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/dxp:2026.q1.9-lts
http://localhost:8080 に、メールアドレス test@liferay.com とパスワード test を使用して Liferay にサインインします。プロンプトが表示されたら、パスワードを learn に変更してください。
部門選択リストの追加
あなたの選択リストは、会社の各部門を表しています。
-
グローバルメニュー (
) を開き、 コントロールパネル → ピックリスト に移動します。 -
追加 (
をクリックし、名前として 部門 を入力し、 保存 をクリックします。 -
新しい 選択リスト を選択し、 追加 ボタン (
) を使用して項目を追加します (例: マーケティング、人事、営業)。
休暇申請オブジェクトのフィールドとして、選択リストを使用できるようになりました。
休暇申請オブジェクトの追加
-
グローバルメニュー (
) を開き、 コントロールパネル → オブジェクト に移動します。 -
をクリックして (
)を追加し、これらの値を入力します。分野 値 ラベル 休暇申請 複数形ラベル 休暇申請 オブジェクト名 休暇申請 -
オブジェクトを選択し、 フィールド タブをクリックして、これらの 4 つの フィールド を追加します。
ラベル フィールド名 タイプ 選択リスト 必須 開始日 startDate日付 該当なし ✔ 終了日 endDate日付 該当なし 部門 department選択リスト 部門 ✔ コメント comments文章 該当なし 
-
アクション タブをクリックして、このアクションを追加します。
分野 価値 アクション名 作成同期 いつ 追加後 それから Webhook URL アプリまたは https://webhook.site のようなサイトからテスト用のウェブフック URL を入力してください。 このアクションは、休暇申請エントリが追加されるたびに、データを外部システムに送信します。詳細については、 アクションの定義 を参照してください。

-
詳細 タブをクリックし、次のエントリ表示とスコープの設定を行います。
分野 価値 タイトルフィールド 開始日 範囲 会社 パネルリンク コントロールパネル > オブジェクト -
をクリックして公開 します。これによりオブジェクトがアクティブ化されます。
次に、従業員オブジェクトを作成し、それを休暇申請オブジェクトに関連付けることで、申請エントリを個々のユーザーに関連付けることができるようにします。
従業員オブジェクトの追加
-
グローバルメニュー (
) を開き、 コントロールパネル → オブジェクト に移動します。 -
追加 ボタン (
) をクリックして、これらの値を入力します。分野 価値 ラベル 従業員 複数形ラベル 従業員 オブジェクト名 従業員 -
オブジェクトを選択し、 フィールド タブをクリックして、これらの フィールド を追加します。
ラベル フィールド名 タイプ 必須 名前 name文章 ✔ メール email文章 ✔ 
-
関係 タブをクリックして、この関係を追加します。
分野 価値 ラベル 依頼者 関係名 依頼者 タイプ 一対多 物体 休暇申請 注記このリレーションシップを作成すると、休暇申請オブジェクトに外部キーフィールドが自動的に追加されます。

-
詳細 タブをクリックし、次のエントリ表示とスコープの設定を行います。
分野 価値 タイトルフィールド 名前 範囲 会社 パネルリンク コントロールパネル > ユーザー -
をクリックして公開 します。
公開後は、Liferay UIまたはヘッドレスAPIを介してエントリを作成できます。ただし、これらのエントリをリクエストエントリに関連付けるには、まず カスタムレイアウト を作成する必要があります。
カスタムオブジェクトレイアウトの設計
オブジェクトレイアウトは、オブジェクトエントリの作成および編集時にフィールドがどのように配置されるかを決定します。デフォルトのオブジェクトレイアウトではリレーションシップが表示されないため、リレーションシップフィールドを表示するには、両方のオブジェクトに対してカスタムレイアウトを設計する必要があります。
休暇申請について
-
オブジェクト アプリケーションに移動し、 休暇申請 オブジェクトを選択します。
-
レイアウト タブをクリックし、 追加 ボタン (
をクリックし、名前に リクエスト と入力して、 保存 をクリックします。 -
新しいレイアウトを選択し、「既定として設定」チェックボックスにチェックを入れます。

-
レイアウト タブをクリックし、 タブ を 2 つの ブロック とともに追加します。
要素 ラベル タイプ タブ リクエスト情報 フィールズ ブロック 日付 該当なし ブロック 詳細 該当なし -
ブロックにフィールドを追加します。
ブロック フィールズ 日付 開始日、終了日 詳細 部署、従業員、コメント 
-
をクリックして保存します。
保存された新しいレイアウトは、Liferayのユーザーインターフェースで休暇申請エントリの作成と編集に使用されます。従業員の登録情報が存在する場合は、それらを個々のリクエストに関連付けることができます。

従業員向け
-
オブジェクト アプリケーションに移動し、 従業員 オブジェクトを選択します。
-
レイアウト タブをクリックし、 追加 ボタン (
をクリックし、名前に 従業員情報 と入力して、 保存 をクリックします。 -
新しいレイアウトを選択し、「既定として設定」チェックボックスにチェックを入れます。
-
レイアウト タブをクリックし、1 つのブロックを含むフィールド タブを追加します。
要素 ラベル タイプ タブ 基本情報 フィールズ ブロック 従業員情報 該当なし -
名前 と メールアドレス フィールドをブロックに追加します。
-
従業員オブジェクトのリクエスター関係に「関係」タブを追加します。
要素 ラベル タイプ 関係 タブ 休暇申請 人間関係 依頼者 
-
をクリックして保存します。
保存された新しいレイアウトは、Liferayのユーザーインターフェースで従業員情報の作成および編集に使用されます。リクエストエントリが存在する場合は、 休暇申請 タブで従業員エントリに関連付けることができます。ここでは、選択した従業員の入力に関連するすべてのリクエストを表示することもできます。

オブジェクトエントリの追加
アプリが完成したので、Liferay UIとヘッドレスAPIを使用して、休暇申請オブジェクトと従業員オブジェクトにデータを追加できます。
従業員の追加
ヘッドレスAPIを使用して従業員情報を追加するには、以下の手順に従ってください。
-
Liferay の API Explorer (つまり、
localhost:8080/o/apiを開き、 REST Applications ドロップダウン メニューをクリックし、 c/employees をクリックします。 -
バッチ
POSTAPI のリクエストボディにこのスクリプトを入力してください。[ { "email": "foo@liferay.com", "name": "Able" }, { "email": "bar@liferay.com", "name": "Baker" }, { "email": "goo@liferay.com", "name": "Charlie" } ] -
をクリックしてを実行します。
これにより、従業員オブジェクトに3つのエントリが追加されます。
休暇申請の追加
Liferay UI を介してリクエストエントリを追加するには、以下の手順に従ってください。
-
グローバルメニュー (
) を開き、 アプリケーション → 休暇申請 に移動します。 -
をクリックして (
)を追加し、フォームに記入してください。 -
をクリックして保存します。
エントリを保存すると、そのエントリの編集画面が表示されます。さらに項目を追加するには、休暇申請のメインページに戻ってください。時間リクエストが追加されると、オブジェクトのウェブフックがトリガーされ、エントリのデータが設定されたURLに投稿されます。
リクエストが追加され、従業員情報に関連付けられると、従業員アプリケーションでそれらを表示できます。グローバルメニュー (
) を開き、 コントロールパネル → 従業員 に移動します。関連する エントリ を選択し、 休暇申請 タブをクリックします。
