スクリプトでフォームを表示したユーザーの情報を確認する¶
✔ 概要
JavaScript API を使用することで、フォームを表示したユーザーの「氏名」や「所属のグループ名(グループコード)」などの情報が参照できます。 参照したユーザーの情報は、オブジェクトの表示や入力制御を動的に変更するときの条件として使用できます。
本項では、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」クラスの各プロパティを参照します。
プロパティとしてはユーザーの ID やグループコード/グループ名、役職コード/役職名、などの情報が参照可能です。
ヒント
- 参照可能なプロパティは 「iftc.cwf.api.WorkFlowNode」クラス のプロパティ一覧を参照してください。
- 「iftc.cwf.api.WorkFlowNode」クラス には「承認ステップ」の情報を参照するプロパティがあります。
承認ステップの情報を参照する方法や使用例は 「承認ステップの情報を参照する」 を確認してください。
以下の JavaScript では、フォームを表示したユーザーの情報を参照しています。
これらの値は個別の処理を行うかの判定値として使用できます。
//APIをインスタンス化 const forms = new iftc.cwf.api.Forms(); //現在処理中のユーザー情報を取得 const userInfo = forms.getCurrentWorkFlowNode(); //ユーザーのIDを取得 const userId = userInfo.userId; //ユーザーの姓を取得 const userLastName = userInfo.lastName; //ユーザーの名を取得 const userFirstName = userInfo.firstName; //ユーザーのグループコードを取得 const userGroupCode = userInfo.groupCode; //ユーザーのグループ名を取得 const userGroupName = userInfo.groupName; //ユーザーの役職コードを取得 const userAuthorityCode = userInfo.authorityCode; //ユーザーの役職名を取得 const userAuthorityName = userInfo.authorityName; //ユーザーのユーザー定義1~5を配列で取得 const userExt = userInfo.userExt;
実用例¶
以下の JavaScript では、入力テキストに対してグループや役職を条件として必須入力/読取専用を設定します。
グループや役職を対象とした制御が必要なときは以下のように JavaScript で設定してください。
ヒント
- 必須入力の設定は、 「iftc.cwf.api.FormObject」クラスのメソッド「setRequired」 を使用します。
- 読取専用の設定は、 「iftc.cwf.api.FormObject」クラスのメソッド「setReadOnly」 を使用します。
- 本 JavaScript は Formエディターのメニューバー [オプション - アクション - ページ表示時のJavaScript登録] から
起動するダイアログへ設定します。//APIをインスタンス化 const forms = new iftc.cwf.api.Forms(); //現在処理中のユーザー情報を取得 const userInfo = forms.getCurrentWorkFlowNode(); //ユーザーのグループコードを取得 const userGroupCode = userInfo.groupCode; //ユーザーの役職コードを取得 const userAuthorityCode = userInfo.authorityCode; //グループコードが「101」であるか確認する if( userGroupCode == '101' ){ //グループコードが「101」であるとき //入力テキスト「ITEXT000」の必須入力を有効とする new iftc.cwf.api.FormObject( 'ITEXT000' ).setRequired( true ); }else{ //グループコードが「101」以外であるとき //入力テキスト「ITEXT000」の必須入力を無効とする new iftc.cwf.api.FormObject( 'ITEXT000' ).setRequired( false ); } //役職コードが「A001」であるか確認する if( userAuthorityCode == 'A001' ){ //役職コードが「A001」であるとき //入力テキスト「ITEXT001」の読取専用を有効とする new iftc.cwf.api.FormObject( 'ITEXT001' ).setReadOnly( true ); }else{ //役職コードが「A001」以外のとき //入力テキスト「ITEXT001」の読取専用を無効とする new iftc.cwf.api.FormObject( 'ITEXT001' ).setReadOnly( false ); }