このCookBookでは、IM-FormaDesignerでBISフローの申請画面にてアップロードしたExcelファイルの内容を承認画面にて出力する方法を紹介します。
完成イメージ
完成サンプル
以下の完成サンプルをダウンロードしてご活用ください。
IM-LogicDesigner インポート : im_cookbook_134784_logicdesigner-data.zip
・IM-LogicDesignerのインポート機能からインポートしてください。
・手順の詳細は、以下のドキュメントを参照してください
IM-LogicDesigner ユーザ操作ガイド / 8.1. インポートを行う
BIS一括インポート用ファイル : im_cookbook_134784_bis.zip
・BISの一括インポート機能からインポートしてください。
・手順の詳細は、以下のドキュメントを参照してください
IM-BIS システム管理者 操作ガイド / 4.9. 一括インポート・エクスポートを行う
Excelファイル : im_cookbook_134784_excel.xls
・アップロードするExcelファイルのサンプルです。
上記サンプルの利用条件は以下の通りです。
- IM-BIS 2017 Winter(8.0.15)以降のバージョンであること。
- サンプルデータのインポートが行われていること。
サンプルは、IM-BIS 2017 Winter(8.0.15)で動作確認を行っています。
レシピ
- BISフローを作成する。
- ユーザ定義(Excel入力定義)を作成する。
- ロジックフローを作成する。
- データソース定義を作成する。
- アイテムイベントを設定する。
- 作成したフォーム画面にて確認する。
1. BISフローを作成する。
以下の用途を想定して、BISフローを作成します。
【申請画面】
Excelファイルをアップロードします。
【承認画面】
アップロードしたExcelファイルの内容を画面に出力します。
以下のアイテムを配置した処理画面を作成してください。
【申請画面】
・ファイルアップロード
・ボタン(BISフロー登録)
【承認画面】
・ファイルアップロード
・ボタン(イベント)
・文字列
・数値
・グリッドテーブル
2.ユーザ定義(Excel入力定義)を作成する。
このCookBookで出力するExcelファイルの内容は以下の通りです。
出力するExcelファイルの内容に沿って入力定義を作成してください
① 単一セルの項目はセル出力定義
に設定してください。
② 表部分は、行数分が出力されるように範囲指定出力定義
に設定してください。
3.ロジックフローを作成する。
以下のエレメントを配置したロジックフローを作成します。
【エレメント】
・getFileId(ファイルアップロード情報取得)
・getFileData(ファイルアップロード情報取得)
・sessionStorage(セッションストレージ取得)
・writeBinaryToStorage(ストレージ出力(バイナリ))
・excelUpload(ユーザ定義(Excel入力定義))
3-1.入出力定義を設定します。
入力項目は、getFileIdエレメントとgetFileDataエレメントで使用するシステムパラメータを設定してください。
サンプルでは、システムパラメータを以下のように設定しています。
キー名 | 文字種 |
---|---|
imfr_application_id | string |
imwUserDataId | string |
imfr_process_key | string |
出力項目は、Excelファイルを画面に出力する為のパラメータを設定してください。
3-2.定数を設定します。
セッションスコープストレージの場所を、定数で定義してください。
3-3.マッピング設定を行います。
3-3-1.getFileIdエレメント
ファイルIDを取得する為、applicationId
、 insertId
、 processKey
を以下のようにマッピング設定してください。
3-3-2.getFileDataエレメント
Excelファイルの内容(バイナリデータ)を取得する為、applicationId
、 fileId
、 insertId
、 processKey
を以下のようにマッピング設定してください。
3-3-3.sessionStorageエレメント
セッションスコープストレージを取得する為、3-2で設定した定数をマッピング設定してください。
3-3-4.writeBinaryToStorageエレメント
3-3-3で取得したセッションスコープストレージに、3-3-2で取得したExcelファイルの内容(バイナリデータ)を出力する為、以下のようにマッピング設定してください。
3-3-5.excelUploadエレメント
画面に出力するExcelファイルの内容を取得する為、以下のようにマッピング設定してください。
3-3-6.endエレメント
3-3-5で取得したExcelファイルの内容を、3-1で設定した入出力定義の出力項目にマッピング設定してください。
4.データソース定義を作成する。
レシピ3で作成したロジックフローを、LogicDesignerのデータソース定義として設定します。
設定の方法は、以下のドキュメントを参照してください。
IM-BIS システム管理者 操作ガイド / 「データソース - 編集[LogicDesigner]」画面の操作手順
5.アイテムイベントを設定する。
レシピ3-1の入出力定義で暗黙的に連携している為、リクエストタブの設定は必要ありません。
詳細は、以下のドキュメントを参照してください。
IM-BIS 仕様書 / 9.12. 暗黙的に連携するリクエストパラメータの仕様
レスポンスタブは、レシピ3-1で設定した入出力定義の出力項目に対して画面項目とのマッピング設定してください。
6.作成したフォーム画面にて確認する。
作成した申請画面でExcelファイルをアップロードして、承認画面でEventボタンをクリックしてください。
アップロードしたExcelファイルの内容が、各画面アイテムに出力されます。
Excelのデータを表示できたのですが、何度テストしても一行しかグリットテーブルに表示されません。Excel自体は複数行存在しており、全ての行が空になるまで実行するように定義してあります。
サンプルも見直したのですが特段違ったところは見受けられませんでした。
どこが悪いのかさっぱりわからないため、ご教授いただけたらと思います。
records オブジェクトが配列になっていないのでは?