Documentation

Building a Time Off Requester

Liferay Objectsは、コードを書いたりモジュールをデプロイすることなく、アプリケーション全体を構築することができます。 ここでは、Liferayの オブジェクト選択リストを使用して、Time Off Requestアプリケーションを作成します。

まず、部門の値を定義するための 選択リストを追加 します。 そして、 Time Off Requests 用と Employees 用の2つのオブジェクトを作成します。 このプロセスでは、これらのオブジェクトを相互に関連付け、Time Off RequestオブジェクトにWebhookを追加します。 最後に、リレーションシップフィールドを表示するための カスタムレイアウトを設計します

注釈

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

Build a Time Off Request application.

新しいLiferayインスタンスを実行します。

docker run -it -m 8g -p 8080:8080 liferay/dxp:7.4.13-u22

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

部門選択リストの追加

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

  1. グローバルメニュー](Global Menu)を開き、 [コントロールパネル] タブをクリックし、 [Picklists] に進みます。

  2. Add] ボタン(Add Button)をクリックし、名前に [Department] を入力し、 [保存] をクリックします。

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

    Add items to the Department Picklist.

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

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

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

  2. Add] ボタン( Add Button )をクリックし、以下の値を入力します。

    フィールド

    ラベル

    Time Off Request

    複数形のラベル

    Time Off Requests

    オブジェクト名

    TimeOffRequest

  3. オブジェクト] を選択し、 [Fields] タブをクリックして、以下の4つの フィールド を追加します。

    ラベル

    項目名

    タイプ

    選択リスト

    必須

    開始日

    startDate

    日付

    n/a

    終了日

    endDate

    日付

    n/a

    部門

    department

    選択リスト

    部門

    コメント

    コメント

    文字列

    n/a

    Add the Start Date, End Date, Department, and Comments fields to the Object.

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

    フィールド

    名前

    作成の同期

    日時

    追加後

    次を実行

    Webhook

    URL

    自分のアプリやサイトからhttps://webhook.siteのようなテスト用のwebhook URLを入力します。

    このアクションは、Time Off Requestエントリーが追加されるたびに、外部システムにデータを送信します。 詳しくは、 Defining Actions をご覧ください。

    Create a webhook action that's triggered after requests are added.

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

    フィールド

    タイトルフィールド

    開始日

    範囲

    会社

    パネルのカテゴリキー

    アプリケーション > コミュニケーション

  6. 公開] をクリックします。 これにより、オブジェクトが起動します。

次に、Employeeオブジェクトを作成し、それをTime Off Requestオブジェクトに関連付けることで、リクエストエントリーを個々のユーザに関連付けることができます。

Employeeオブジェクトの追加

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

  2. Add] ボタン( Add Button )をクリックし、以下の値を入力します。

    フィールド

    ラベル

    Employee

    複数形のラベル

    Employees

    オブジェクト名

    Employee

  3. オブジェクト] を選択し、 [Fields] タブをクリックして、これらの フィールド を追加します。

    ラベル

    項目名

    タイプ

    必須

    名前

    名前

    文字列

    メールアドレス

    メールアドレス

    文字列

    Add the Name and Email fields to the Object.

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

    フィールド

    ラベル

    Requester

    リレーション名

    requester

    タイプ

    1 対多

    オブジェクト

    TimeOffRequest

    注釈

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

    Add a One to Many Relationship with the Time Off Request Object.

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

    フィールド

    タイトルフィールド

    名前

    範囲

    会社

    パネルのカテゴリキー

    コントロールパネル > ユーザー

  6. 公開] をクリックします。

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

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

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

Time Off Requestsの場合

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

  2. レイアウト] タブをクリックし、 [Add] ボタン( Add Button )をクリックし、Nameに [Request] を入力し、 [Save] をクリックします。

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

    Add a new Layout and mark it as the Object's default layout.

  4. Layout] タブをクリックし、 [tab] に2つの [block] を追加します。

    要素

    ラベル

    タイプ

    タブ

    リクエスト情報

    フィールド

    ブロック

    日付

    n/a

    ブロック

    詳細

    n/a

  5. ブロックにフィールドを追加します。

    ブロック

    項目

    日付

    開始日、終了日

    詳細

    部門、Employee、コメント

    Add the Start Date, End Date, Department, Employee, and Comments fields to the layout blocks.

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

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

The layout is used for creating and editing Time Off Request entries.

Employeesの場合

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

  2. レイアウト] タブをクリックし、 [Add] ボタン( Add Button )をクリックし、Nameに [Employee Info] を入力し、 [Save] をクリックします。

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

  4. Layout] タブをクリックし、1つのブロックを持つ[Fields]タブを追加します。

    要素

    ラベル

    タイプ

    タブ

    基本情報

    フィールド

    ブロック

    従業員情報

    n/a

  5. ブロックに [Name] と [Email] フィールドを追加します。

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

    要素

    ラベル

    種類

    リレーションシップ

    タブ

    Time Off Requests

    リレーションシップ

    Requester

    Add a Relationships tab for the Object's Requester relationship.

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

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

The layout is used to create and edit employee entries.

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

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

Employeesの追加

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

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

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

    [
      {
        "email": "[email protected]",
        "name": "Able"
      },
      {
        "email": "[email protected]",
        "name": "Baker"
      },
      {
        "email": "[email protected]",
        "name": "Charlie"
      }
    ]
    
  3. Execute] をクリックします。

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

Time Off Requestの追加

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

  1. グローバルメニューGlobal Menu)を開き、 [アプリケーション] タブをクリックして、 [Time Off Requests] を選択します。

  2. Add] ボタン(Add Button)をクリックして、フォームに入力してください。

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

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

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

View an employee's related requests in the Time Off Requests tab.