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-BloomMaker 変数の入力規則、どう使い分ければいいの?

Accel Platform 2023 Autumnで、文字列型変数の入力規則に「最大の文字数」「最小の文字数」が追加されました。 一見似ている「長さ」「文字数」「バイト数」という入力規則をどうやって …

no image

バージョンアップを認めずパッチのみを許可する module.xml の依存関係の指定方法の書き方

この CookBook では、module.xml の依存関係の書き方について紹介しています。 記事のタイトルにあるように、モジュールを特定のバージョンのパッチまでに依存する方法についてご紹介します。 …

no image

ウォッチ機能のご紹介

このCookBookでは「intra-mart Accel Collaboration」に備わっているウォッチ機能のご紹介です。 各会社様でグループで仕事をする機会が多いと思います。 仕事を行う上で、 …

no image

Oracle Cloud に iAP を構築する方法

この CookBook では、Oracle Cloud に iAP を構築する方法について紹介しています。 Oracle Cloud では 2019/5/8 より東京リージョンが利用可能になりました。 …

no image

ViewCreatorの計算式で日付データを操作する例

ViewCreatorを利用するとデータベース等に格納されているデータを簡単に画面に表示することが出来ます。 ViewCreatorについて – intra-mart Accel Platform V …