1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 計算式プラグイン ステータス別フィールド権制御

Last updated at Posted at 2025-07-03

計算式プラグインで、ステータス別フィールド権制御を行ってみます。

概要

フィールドのアクセス権には、ユーザー選択・組織選択・グループ選択の項目を指定することが出来ます。
あらかじめフィールドのアクセス権設定に、ユーザー選択等を指定しておき、ステータス変更時に計算式プラグインでユーザー選択項目に対象ユーザーをセットすることで、ステータス別フィールド権制御を行うことが出来ます。

  • 文字列A,B,C に、フィールドのアクセス権を設定した例
    • 文字列Aは、処理中A にしたユーザーが処理中 A,B,C で編集可能
    • 文字列Bは、処理中B にしたユーザーが処理中 B,C で編集可能
    • 文字列Cは、処理中C にしたユーザーが処理中 C で編集可能

2025-07-03_09h20_34.png

操作例

2025-07-03_09h44_50.gif

フォーム設定

アクセス権制御用のユーザー選択等は、グループに入れて通常見えなくしても構いません。

2025-07-03_09h35_28.png

フィールドアクセス権

フィールドアクセス権に、複数のユーザー選択・組織選択・グループ選択を指定すると、上位の指定項目が優先になります。

2025-07-03_09h19_48.png

プロセス管理

2025-07-03_09h37_07.png

計算式プラグイン設定

ステータスに応じて、ユーザー選択項目にログインユーザー等をセットします。

2025-07-03_10h24_02.png

OPTION: 循環参照を許可, 非同期計算

// ユーザー選択A USER_SELECT
IF(AND(ユーザー選択A="",ステータス="処理中A"),
  SET_CODE(LOGIN_INFO()),
  SET_CODE(ユーザー選択A)
)

// ユーザー選択A権限 USER_SELECT
IF(IN(ステータス,"処理中A"),
  SET_CODE(ユーザー選択A),
  SET_CODE(ユーザー選択A権限)
)

// ユーザー選択B USER_SELECT
IF(AND(ユーザー選択B="",ステータス="処理中B"),
  SET_CODE(LOGIN_INFO()),
  SET_CODE(ユーザー選択B)
)

// ユーザー選択B権限 USER_SELECT
IF(IN(ステータス,"処理中A","処理中B"),
  SET_CODE(ユーザー選択B),
  SET_CODE(ユーザー選択B権限)
)

// ユーザー選択C USER_SELECT
IF(AND(ユーザー選択C="",ステータス="処理中C"),
  SET_CODE(LOGIN_INFO()),
  SET_CODE(ユーザー選択C)
)

// ユーザー選択C権限 USER_SELECT
IF(ステータス="処理中C",
  SET_CODE(ユーザー選択C),
  SET_CODE(ユーザー選択C権限)
)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?