条件分岐を含む承認ルートでユーザー情報を集約する¶
「帳票データ出力」機能で出力するCSVファイルへ「決裁者情報」を出力するときは、予めフォーム上に情報表示フィールドを配置します。
承認ルートで「条件分岐」を使用しているときは、分岐先単位で「決裁者情報」を表示する情報表示フィールドの用意が必要です。
このようなフォームの構成では、各決裁者情報がそれぞれ個別のCSV項目となり1つのCSV項目として出力できません。
本項では、条件分岐を含む承認ルートでも「帳票データ出力」機能で1つのCSV項目へ決裁者の情報を出力する方法について説明します。
注意
本設定は、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.FormObject
想定する運用と必要な設定¶
想定する運用
「帳票データ出力」機能で出力するCSVへ決裁者の「ID」/「氏名」、所属するグループの「グループコード」/「グループ名」を出力します。
下図のように承認ルートへ条件分岐が含まれているとき、条件分岐は3個の分岐先があるため全体で3名の決裁者が登場します。 情報表示フィールドで3名の決裁者の情報を表示する場合、決裁者単位に情報表示フィールドを用意して「分岐番号」を指定する必要があります。
「帳票データ出力」機能では1つのオブジェクトを1つのCSV項目として出力します。
複数の情報表示フィールドはそれぞれ個別のCSV項目として出力しますが、同じ決裁者情報となる項目は1つのCSV項目へ集約して出力します。◇CSV出力イメージ(個別の出力状態)
CXF_SUBJECT DCN_NAME-A C1_DCN_NAME-A C2_DCN_NAME-A 総務部決裁案件 柳瀬 貴志 (空白) (空白) 人事部決裁案件 (空白) 柳沢 昇 (空白) 経理部決裁案件 (空白) (空白) 中村 俊 ◇CSV出力イメージ(集約した出力状態)
CXF_SUBJECT USER_NAME 総務部決裁案件 柳瀬 貴志 人事部決裁案件 柳沢 昇 経理部決裁案件 中村 俊
必要な設定
この運用を実現するために必要となる設定や方法は以下です。
注意
- 本対応では、決裁グループがAND決裁であるときは、最後に決裁したユーザーの情報を出力します。
- 本対応は JavaScript が動作しない「連続承認」や「一括承認」、「API(Java/SOAP/REST)」を使用して決裁したときは情報を集約できません。申請案件を決裁するときはWebブラウザにて「連続承認」や「一括承認」を使用しない操作してください。
- 決裁がスキップされると、JavaScript が動作しないため決裁者の情報を集約できません。
決裁がスキップされないように、ルート作成時に決裁者のオブジェクトで「同一ユーザーが連続時に決裁をスキップする」の設定を無効としてください。
フォーム上で決裁者情報を集約する¶
決裁者情報を集約するため以下を設定します。
決裁者情報の集約先とするオブジェクトを配置する
「帳票データ出力」で指定する項目を用意するため、下図のように決裁者の情報を表示する入力テキストを配置します。
情報表示フィールドでは「分岐番号」を設定するため個別に配置が必要ですが、条件分岐が存在してもこの入力テキストへ情報を出力することで集約します。
JavaScriptで決裁者情報を参照してオブジェクトへ反映する
「決裁者情報の集約先とするオブジェクトを配置する」 で配置した入力テキストへ決裁者の情報を反映するためには、 操作者が決裁者であるかの確認とそのユーザー情報を参照する必要があります。
JavaScript API の 「iftc.cwf.api.WorkFlowNode」クラス を使用することで操作中のユーザー情報が参照できます。
ヒント
参照できる情報の詳細は 「iftc.cwf.api.WorkFlowNode」 を確認してください。
//APIをインスタンス化 const forms = new iftc.cwf.api.Forms(); //現在処理中のユーザー情報を取得 const userInfo = forms.getCurrentWorkFlowNode();ユーザー情報として、そのユーザーの役割(申請/承認/決裁/閲覧)、氏名やグループ名などが参照できるため、 以下のように操作中のユーザーが「決裁者」であるかを確認して入力テキストへユーザー情報を反映できます。
ヒント
- 本 JavaScript は「承認フォーム」のみに登録します。
- 本 JavaScript は以下の手順で起動する[JavaScriptの編集]ダイアログへ設定します。
- Formエディターのメニューバーで[オプション - 送信ボタン設定]を選択して、[送信ボタン設定]ダイアログを起動します。
- [承認ボタン]タブの項目「クリック時のJavaScript」の[編集]ボタンをクリックして[JavaScriptの編集]ダイアログを起動します。
//APIをインスタンス化 const forms = new iftc.cwf.api.Forms(); //現在処理中のユーザー情報を取得 const userInfo = forms.getCurrentWorkFlowNode(); //決裁者の場合に処理を実施 if( userInfo.role == 2 ){ //ユーザーIDの反映 new iftc.cwf.api.FormObject( 'USER_ID' ).updateValue( userInfo.userId ); //姓名の反映 new iftc.cwf.api.FormObject( 'USER_NAME' ).updateValue( userInfo.lastName + " " + userInfo.firstName ) ; //所属グループコードの反映 new iftc.cwf.api.FormObject( 'USER_GROUP_CODE' ).updateValue( userInfo.groupCode ); //所属グループ名の反映 new iftc.cwf.api.FormObject( 'USER_GROUP_NAME' ).updateValue( userInfo.groupName ); }
帳票データ出力の設定で出力対象の項目を指定する¶
「帳票データ出力」で出力する項目のオブジェクト名を指定するときは、 「決裁者情報の集約先とするオブジェクトを配置する」 で用意した 入力テキストを指定します。この入力テキストを指定することで、集約した決裁者情報を CSV ファイルへ出力できます。
下図は[帳票データ出力設定]画面での登録内容として、CSV 出力項目となる[CSV フォーマット]へ申請案件の申請件名、集約用に配置した決裁者の「グループ名」と
「グループコード」、ユーザーの「ID」と「氏名」を指定しています。
また、[オプション]で1行目へフォーム上に配置した項目名(オブジェクト名)を出力する設定を有効としています。
動作確認¶
承認ルートは以下として「帳票データ出力」機能で出力するCSVファイルへ1つの項目として決裁者の氏名やグループ名が出力されているか確認します。
申請案件をそれぞれの分岐先へ進行する状態で申請して完了まで進めます。
下図は該当の申請案件を「帳票データ出力」機能で出力したCSVファイルの内容です。
決裁者情報は2項目~5項目ですが、条件分岐を使用しても決裁者の「所属するグループ名」や「氏名」などの同じ情報が1つの項目へ集約して出力できます。
CXF_SUBJECT USER_GROUP_NAME USER_GROUP_CODE USER_NAME USER_ID 総務部決裁案件 総務部 111000 柳瀬 貴志 A10012 人事部決裁案件 人事部 112000 柳沢 昇 A10033 経理部決裁案件 経理部 113000 中村 俊 A10017