Building Applications
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Time Off Requestの構築

Liferay DXP 7.4+

Liferay オブジェクトを使用すると、コードを記述したりモジュールをデプロイしたりすることなく、アプリケーション全体を構築できます。 ここでは、Liferay オブジェクトピックリストを使用して、休暇申請アプリケーションを作成します。

まず、部門の値を定義するための Picklist を 追加します 。 次に、 休暇申請 用と 従業員用の 2 つのオブジェクトを作成します。 このプロセス中に、これらのオブジェクトを相互に関連付け、休暇リクエスト オブジェクトに Webhook を追加します。 最後に、関係フィールドを表示するための カスタム レイアウトを設計 します。

システムオブジェクトの拡張には制限があるため、リクエストとユーザープロファイルを関連付けるには、Employeeオブジェクトを作成する必要があります。

Time Off Requestアプリケーションを構築します。

新しいLiferay DXPインスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/dxp:2025.q1.6-lts

メールアドレス test@liferay.com とパスワード testを使用して、 http://localhost:8080 で Liferay にサインインします。 プロンプトが表示されたら、パスワードを learnに変更します。

部門選択リストの追加

ピックリストは会社の部門を表しています。

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネル タブに移動して、 ピックリストをクリックします。

  2. 追加 (Add Button) をクリックし、名前に 部門 と入力して、 保存をクリックします。

  3. 新しい ピックリスト を選択し、 追加 ボタン (Add Button) を使用してアイテムを追加します (例: マーケティング、人事、営業)。

    部門選択リストに項目を追加する。

これで、Time Off Requestオブジェクトのフィールドとして選択リストを使用できるようになりました。

Time Off Requestオブジェクトの追加

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネル タブに移動して、 オブジェクトをクリックします。

  2. 追加 (Add Button) をクリックし、次の値を入力します。

    項目
    ラベルTime Off Request
    複数形のラベルTime Off Requests
    オブジェクト名TimeOffRequest
  3. オブジェクトを選択し、 フィールド タブをクリックして、次の 4 つの フィールドを追加します。

    ラベル項目名種類候補リスト必須
    開始日startDate日付n/a
    終了日endDate日付n/a
    部門department候補リスト部門
    掲示板のディスカッションcommentsテキストボックスn/a

    オブジェクトに開始日、終了日、部門、コメントの各フィールドを追加します。

  4. [Actions] タブをクリックし、このアクションを追加します。

    項目
    アクション名作成の同期
    日時追加後
    次を実行Webhook
    URL自分のアプリやサイトからhttps://webhook.siteのようなテスト用のwebhook URLを入力します。

    このアクションは、Time Off Requestエントリーが追加されるたびに、外部システムにデータを送信します。 詳細については、 アクションの定義 を参照してください。

    リクエストが追加された後にトリガーされるwebhookアクションを作成します。

  5. [Details]タブをクリックし、 次のエントリディスプレイとスコープ設定を設定します。

    項目
    タイトルフィールド開始日
    範囲会社名
    パネルリンクアプリケーション > コミュニケーション
  6. 公開をクリックします。 これにより、オブジェクトが起動します。

次に、従業員オブジェクトを作成し、それを休暇リクエストオブジェクトに関連付けて、リクエストエントリを個々のユーザーに関連付けることができます。

Employeeオブジェクトの追加

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネル タブに移動して、 オブジェクトをクリックします。

  2. 追加 ボタン (Add Button) をクリックし、次の値を入力します。

    項目
    ラベルEmployee
    複数形のラベル従業員
    オブジェクト名Employee
  3. オブジェクトを選択し、 フィールド タブをクリックして、次の フィールドを追加します。

    ラベル項目名種類必須
    名前nameテキストボックス
    メールemailテキストボックス

    オブジェクトに名前とメールアドレスのフィールドを追加します。

  4. [Relationships] タブをクリックし、このリレーションシップを追加します。

    項目
    ラベルRequester
    リレーション名requester
    種類1 対多
    オブジェクトTimeOffRequest

    このリレーションシップを作成すると、Time Off Requestオブジェクトに外部キーフィールドが自動的に追加されます。

    Time Off Requestオブジェクトに一対多の関係を追加します。

  5. [Details]タブをクリックし、 次のエントリディスプレイとスコープ設定を設定します。

    項目
    タイトルフィールド名前
    範囲会社名
    パネルリンクコントロールパネル > ユーザー
  6. 公開をクリックします。

公開されると、Liferay UIやHeadless APIを使ってエントリーを作成することができます。 ただし、これらのエントリをリクエストエントリに関連付けるには、まず カスタム レイアウトを作成する必要があります。

カスタムオブジェクトレイアウトの設計

オブジェクトのレイアウトは、オブジェクトエントリを作成や編集をする際にフィールドの構成を決定します。 リレーションシップはデフォルトのオブジェクトレイアウトには表示されないので、リレーションシップフィールドを表示するには、両方のオブジェクトにカスタムレイアウトを設計する必要があります。

Time Off Requestsの場合

  1. [オブジェクト] アプリケーションに移動し、[Time Off Request]オブジェクトを選択します。

  2. レイアウト タブをクリックし、 追加 ボタン (Add Button) をクリックして、名前に リクエスト と入力し、 保存をクリックします。

  3. 新しいレイアウトを選択し、[Mark as Default] のボックスをチェックします。

    新しいレイアウトを追加し、それをオブジェクトのデフォルトレイアウトとしてマークします。

  4. レイアウト タブをクリックし、2つの ブロックを含む タブ を追加します。

    要素ラベル種類
    タブRequest Info項目
    ブロック日付n/a
    ブロック詳細n/a
  5. ブロックにフィールドを追加します。

    ブロック項目
    日付Start Date、End Date
    詳細Department、Employee、Comments

    レイアウトブロックに、開始日、終了日、部門、コメントの各フィールドを追加します。

  6. [保存]をクリックします。

保存されると、新しいレイアウトは、LiferayのUIでTime Off Requestのエントリーを作成や編集をする際に使用されます。 employeeエントリーが存在する場合、それを個々のリクエストに関連付けることができます。

このレイアウトは、Time Off Requestのエントリーを作成・編集するために使用します。

Employeesの場合

  1. オブジェクト アプリケーションに移動し、 従業員 オブジェクトを選択します。

  2. レイアウト タブをクリックし、 追加 ボタン(Add Button)をクリックし、名前に 従業員情報 と入力して、 保存をクリックします。

  3. 新しいレイアウトを選択し、[Mark as Default] のボックスをチェックします。

  4. [Layout]タブをクリックし、1つのブロックを持つ[フィールド]タブを追加します。

    要素ラベル種類
    タブ基本の詳細項目
    ブロック従業員情報n/a
  5. ブロックに 名前メール フィールドを追加します。

  6. Employeeオブジェクトの Requesterリレーションシップの[リレーションシップ]タブを追加します。

    要素ラベル種類リレーション
    タブTime Off Requests リレーションRequester

    オブジェクトのRequester関係の[リレーションシップ]タブを追加します。

  7. [保存]をクリックします。

保存されると、新しいレイアウトは、LiferayのUIでemployeeのエントリーを作成や編集をする際に使用されます。 リクエストエントリーが存在する場合は、 [Time Off Requests] タブでemployeeエントリーと関連付けることができます。 ここでは、選択したemployeeエントリーに関連するすべてのリクエストを表示することもできます。

このレイアウトは、employeeエントリーの作成と編集に使用されます。

オブジェクトエントリーの追加

これでアプリが完成したので、Liferay UIとHeadless APIを使って、Time Off RequestとEmployeeオブジェクトにデータを追加することができます。

Employeesの追加

以下の手順で、Headless APIを使ってemployeeエントリーを追加します。

  1. Liferay の API Explorer (つまり localhost:8080/o/api) を開き、 REST アプリケーション ドロップダウン メニューをクリックして、 c/employeesをクリックします。

  2. このスクリプトを、バッチPOST APIのリクエストボディに入力します。

    [
       {
          "email": "foo@liferay.com",
          "name": "Able"
       },
       {
          "email": "bar@liferay.com",
          "name": "Baker"
       },
       {
          "email": "goo@liferay.com",
          "name": "Charlie"
       }
    ]
    
  3. 実行をクリックします。

これにより、Employeeオブジェクトに 3 つのエントリが追加されます。

Time Off Requestの追加

以下の手順で、Liferay UIを使ってリクエストエントリを追加します。

  1. グローバル メニュー (Global Menu) を開き、 アプリケーション タブをクリックして、 休暇申請を選択します。

  2. 追加 (Add Button) をクリックしてフォームに入力します

  3. [保存]をクリックします。

エントリーを保存すると、そのエントリーの編集画面が表示されます。 さらにエントリーを追加するには、Time Off Requestsのメインページに戻ります。 時間のリクエストが追加されると、ObjectのWebhookがトリガーされ、設定されたURLにエントリーのデータが投稿されます。

リクエストが追加され、employeeエントリーに関連られると、Employeesアプリケーションでそれらを表示することができます。 グローバル メニュー (Global Menu) を開き、 コントロール パネル タブに移動して、 従業員をクリックします。 関連する エントリ を選択し、 休暇申請 タブをクリックします。

[Time Off Requests]タブで、employeeの関連するリクエストを表示します。