操作中のユーザーが承認者か決裁者か確認する¶
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 では、フォームを表示したユーザーが「承認者」と「決裁者」であるときに入力テキストの必須入力を有効とします。
ヒント
- 必須入力の制御は、 「iftc.cwf.api.FormObject」クラスのメソッド「setRequired」 を使用します。
- 本 JavaScript は Formエディターのメニューバー [オプション - アクション - ページ表示時の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 ); }