CookBook

IM-BloomMaker 排他制御エレメントでロックを取得したユーザのみが編集できる画面の作成方法

投稿日:

このCookBookでは、「排他制御」エレメントを利用して、ロックを取得したユーザのみ編集できる画面を作成する方法について紹介します。

「排他制御」エレメントは 2021 Winter でリリースした共通エレメントです。IM-BloomMaker 排他制御エレメントの使い方 も合わせてご覧ください。

完成イメージ

このCookBookで紹介するサンプルのイメージです。
このサンプルではロックを取得したユーザのみ値の編集ができます。

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。

サンプルは intra-mart Accel Platform(Advanced)2022 Winter 以降のバージョンで動作を確認できます。

レシピ

「排他制御」エレメントを利用し、ロックを取得したユーザのみが編集できる画面を作成します。

  1. 変数の作成
  2. アクションの作成
  3. 「排他制御」エレメントの設定
  4. 任意のエレメントの配置
  5. 動作確認

変数の作成

真偽値の変数を2つ作成してください。

「lockedState」 変数は 「排他制御」エレメントで利用し、「uneditable」変数は編集の可否を設定したいエレメントで利用します。

アクションの作成

アクションを2つ作成します。

最初に、アクション「onLockedEvent」を作成します。
アクション名を「onLockedEvent」と指定してください。

アクションアイテム「変数○に○を代入する」を配置してください。

先頭のアクションアイテム「変数○に○を代入する」を次のように設定してください。

  • 代入先
    • $variable.uneditable
  • 代入元
    • $variable.lockedState

1つ目のアクションはこれで完成です。

続いて、2つ目のアクション「onUnlockedEvent」を作成します。
アクション名を「onUnlockedEvent」と指定してください。

アクションアイテム「変数○に○を代入する」を配置してください。
アクションアイテム「変数○に○を代入する」を次のように設定してください。

  • 代入先
    • $variable.uneditable
  • 代入元
    • $env.const.true

これで2つ目のアクションは完成です。

「排他制御」エレメントの設定 

「排他制御」エレメントを配置します。

配置した「排他制御」エレメントを選択し、プロパティタブを開いてください。

「application」プロパティ、「businessKeys」プロパティに値を指定してください。
今回は、「im_cookbook_214779」を指定します。

次に、ロック関係のプロパティを設定します。

  • 「useLock」プロパティが有効になっていること確認してください。
  • 「lockedState」プロパティに先程作成した「$variable.lockedState」変数を指定してください。
  • 「onLockedEvent」プロパティにアクション「onLockedEvent」を指定してください。
  • 「onUnlockedEvent」プロパティにアクション「onUnlockedEvent」を指定してください。

画像のようになっていることを確認してください。

任意のエレメントの配置

「排他制御」エレメントで制御したいエレメントを配置します。
サンプルでは画像のようにエレメントを配置しました。

各フォーム部品エレメントの「disabled」プロパティに「$variable.uneditable」を指定します。

以上でサンプルが完成しました。

動作確認

動作確認をします。

動作確認では、ブラウザを2画面使用します。
異なるブラウザを2つ、または「シークレットモード」とそうでない画面の2つを用意してください。

ブラウザからintra-martにアクセスし、それぞれ別のアカウントでログインしてください。
このCookBookでは、「aoyagi」と「ueda」アカウントでログインしています。

サンプルでは以下のURLでサンプルの実行画面を開くことができます。

http://localhost:8080/imart/im_cookbook/bloommaker/214779
※ http://localhost:8080/imart はお使いの環境によって異なる可能性があります。

-CookBook
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

IM-Workflowの色々なコンテンツ画面へ遷移するURL

このCookbookでは、IM-Workflowの色々なコンテンツ画面へ遷移するURLをご紹介いたします。 独自で作成した画面やViewCreator、BloomMakerなど、IM-Workflow …

no image

IM-BloomMaker でウィザード形式の設定画面の作り方

この CookBook では、IM-BloomMaker を使用して、ウィザード形式で設定を進めていくような画面を作成する方法を紹介します。 完成イメージ 完成サンプル 以下の完成サンプルをダウンロー …

no image

Forma標準アプリとIM-LogicDesignerを利用してBISワークフローの一括承認画面を作成する

このCookBookでは、Forma標準アプリとLogicDesignerを利用して、BISワークフローの一括承認画面を作成する方法を紹介します。 完成イメージ ① 承認を実施するフローとノードを設定 …

IM-BloomMaker アクション「エレメントの位置へ遷移する」の使い方

このCookBookでは、intra-mart Accel Platform 2024 Autumnでリリースしたアクション「エレメントの位置へ遷移する」の使い方について紹介しています。 完成イメージ …

no image

IM-LogicDesigner「繰り返し」「分岐」EL式の定義例

このCookBookでは、IM-LogicDesignerの「条件分岐」「繰り返し」制御要素の条件で利用するEL式について定義例を紹介しています。 ここでは主に「 IM-LogicDesigner上で …