操作中のユーザーが承認者か決裁者か確認する

✔ 概要

1つのフォームは「申請フォーム」と「承認フォーム」で構成しており、「承認フォーム」は「承認者」「決裁者」「閲覧者」が共通して使用するフォームです。 「決裁者」のみのように特定の役割だけで個別の処理を行うときは、操作中のユーザーがどの役割(承認者・決裁者・閲覧者)であるのか確認が必要です。

本項では、JavaScript を使用したユーザーの役割(承認者・決裁者・閲覧者)を参照する方法を説明します。

注意

本設定は、V5.2.0以降のフォームで利用可能です。
V5.2.0より前のバージョンで作られたフォーム、Liteフォームおよび旧バージョン形式のフォーム(JSP/PDF)では利用できません。

ヒント

以降の説明では、申請・承認フォームを表示しているユーザーの情報を参照するため JavaScript の API を利用します。
それぞれのAPIは、以下の名前空間で公開しています。JavaScript API リファレンス もあわせて参照ください。

  • フォームを表示しているユーザーの情報を参照
    • iftc.cwf.api.Forms
    • iftc.cwf.api.WorkFlowNode


操作中のユーザーが持つ役割(申請・承認・決裁・閲覧)を確認する

操作中のユーザーが「申請者」「承認者」「決裁者」「閲覧者」であるかは 「iftc.cwf.api.WorkFlowNode」クラスのプロパティ「role」 を参照して判断できます。本プロパティの値は各役割により一意となるため、フォームを表示したユーザーがどの役割であるか確認できます。

役割 roleの値
申請者 0
承認者 1
決裁者 2
閲覧者 3

以下の JavaScript では、フォームを表示したユーザーの役割を条件に使用して各個別の処理を実行します。
そのため、承認者だけ特定の入力テキストを必須入力としたり、決裁者だけメッセージを表示するといった個別の処理が実行できます。

//APIをインスタンス化
const forms = new iftc.cwf.api.Forms();

//ユーザーの役割を取得
const userRole =  forms.getCurrentWorkFlowNode().role;

//役割による処理の分岐
if(userRole == 0 ){
    //申請者のときの処理

}else if(userRole == 1 ){
    //承認者のときの処理

}else if(userRole == 2 ){
    //決裁者のときの処理

}else if(userRole == 3 ){
    //閲覧者のときの処理

}

実用例

以下の JavaScript では、フォームを表示したユーザーが「承認者」と「決裁者」であるときに入力テキストの必須入力を有効とします。

ヒント

//APIをインスタンス化
const forms = new iftc.cwf.api.Forms();

//ユーザーの役割を取得
const userRole =  forms.getCurrentWorkFlowNode().role;

//承認者もしくは決裁者であるかの確認
if(userRole == 1 || userRole == 2 ){
   //入力テキスト「ITEXT000」を必須入力とする
   new iftc.cwf.api.FormObject( 'ITEXT000' ).setRequired( true );
}