計算式プラグインで、ステータス別フィールド権制御を行ってみます。
概要
フィールドのアクセス権には、ユーザー選択・組織選択・グループ選択の項目を指定することが出来ます。
あらかじめフィールドのアクセス権設定に、ユーザー選択等を指定しておき、ステータス変更時に計算式プラグインでユーザー選択項目に対象ユーザーをセットすることで、ステータス別フィールド権制御を行うことが出来ます。
- 文字列A,B,C に、フィールドのアクセス権を設定した例
- 文字列Aは、処理中A にしたユーザーが処理中 A,B,C で編集可能
- 文字列Bは、処理中B にしたユーザーが処理中 B,C で編集可能
- 文字列Cは、処理中C にしたユーザーが処理中 C で編集可能
操作例
フォーム設定
アクセス権制御用のユーザー選択等は、グループに入れて通常見えなくしても構いません。
フィールドアクセス権
フィールドアクセス権に、複数のユーザー選択・組織選択・グループ選択を指定すると、上位の指定項目が優先になります。
プロセス管理
計算式プラグイン設定
ステータスに応じて、ユーザー選択項目にログインユーザー等をセットします。
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権限)
)