承認ステップの情報を参照する¶
特定の承認ステップで固有の処理を実行する場合、フォームを表示したユーザーの情報を参照する必要があります。
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
特定の承認ステップか確認する¶
承認ルートを作成するときに予め[表示名]や[API コード]を指定しておくことで、JavaScript で[表示名]や[API コード]を参照して特定の承認ステップであるか確認できます。
下図は承認ルートを作成する画面での[表示名]と[API コード]を指定する箇所であり、第2承認グループの[表示名]が「部内承認」、[API コード]が「A002」です。
下表は[表示名]と[API コード]の用途と設定内容が参照できる画面や機能です。
「JavaScript API」では[表示名]と[API コード]が参照できるため、以下の JavaScript で承認ルート上の承認ステップを識別できます。
//APIをインスタンス化 const forms = new iftc.cwf.api.Forms(); //現在処理中のユーザー情報を取得 const userInfo = forms.getCurrentWorkFlowNode(); //現在処理中の承認ステップの表示名を取得 const businessName = userInfo.businessName; //例:表示名が「部内承認」であるかの確認 if( businessName == "部内承認" ){ //表示名が「部内承認」であるときの処理 }else{ //表示名が「部内承認」以外であるときの処理 } //現在処理中の承認ステップのAPIコードを取得 const processCode = userInfo.processCode; //例:APIコードが「A002」であるかの確認 if( processCode == "A002" ){ //APIコードが「A002」であるときの処理 }else{ //APIコードが「A002」以外であるときの処理 }注意
「ルート変更」機能で「挿入」した承認ステップでは、[表示名]と[API コード]が空となるため承認ステップを特定することはできません。
実用例¶
以下の JavaScript では、承認ステップの項目[表示名]が「部内承認」、もしくは、[API コード]が「A002」と等しいときに入力テキスト「ITEXT000」の必須入力を有効とします。 [表示名]や[API コード]は承認ステップ単位で指定できるため、特定の承認ステップのみへ必須入力を反映できます。
ヒント
- 必須入力の制御は、 「iftc.cwf.api.FormObject」クラスのメソッド「setRequired」 を使用します。
- 本 JavaScript は Formエディターのメニューバー [オプション - アクション - ページ表示時のJavaScript登録] から起動するダイアログへ設定します。
//APIをインスタンス化 const forms = new iftc.cwf.api.Forms(); //現在処理中のユーザー情報を取得 const userInfo = forms.getCurrentWorkFlowNode(); //承認ステップのAPIコードを取得 const processCode = userInfo.processCode; //承認ステップの表示名を取得 const businessName = userInfo.businessName; //表示名が「部内承認」もしくはAPIコードが「A002」であるかの確認 if( businessName == '部内承認' || processCode == 'A002' ){ //入力テキスト「ITEXT000」を必須入力とする new iftc.cwf.api.FormObject( 'ITEXT000' ).setRequired( true ); }