CookBook

IM-FormaDesignerでアップロードしたExcelファイルの内容を画面上に出力する方法

投稿日:2017-12-04 更新日:

この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)で動作確認を行っています。

レシピ

  1. BISフローを作成する。
  2. ユーザ定義(Excel入力定義)を作成する。
  3. ロジックフローを作成する。
  4. データソース定義を作成する。
  5. アイテムイベントを設定する。
  6. 作成したフォーム画面にて確認する。

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を取得する為、applicationIdinsertIdprocessKey を以下のようにマッピング設定してください。

3-3-2.getFileDataエレメント
Excelファイルの内容(バイナリデータ)を取得する為、applicationIdfileIdinsertIdprocessKey を以下のようにマッピング設定してください。

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ファイルの内容が、各画面アイテムに出力されます。

-CookBook
-,

執筆者:


  1. 初心者 より:

    Excelのデータを表示できたのですが、何度テストしても一行しかグリットテーブルに表示されません。Excel自体は複数行存在しており、全ての行が空になるまで実行するように定義してあります。

    サンプルも見直したのですが特段違ったところは見受けられませんでした。
    どこが悪いのかさっぱりわからないため、ご教授いただけたらと思います。

    • この記事の内容で出来ました より:

      records オブジェクトが配列になっていないのでは?

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

IM-BloomMaker 時刻入力のisErrorプロパティを利用して最大値・最小値を分かりやすくする方法

このCookBookでは、2022 Winter でリリースした「時刻入力」エレメントの「isError」プロパティの利用方法について説明します。「時刻入力」エレメントのmaxプロパティでは最大値(最 …

no image

IM-BloomMaker レイアウトの作り方(縦に並べる編)

この CookBook では、コンテンツ種別が Bulma のレイアウトを縦に並べる方法を紹介します。また、レイアウトを横に並べる編もありますので、併せてご確認ください。https://dev.int …

no image

スクリプト開発で利用できる close 関数のご紹介

この CookBook では、スクリプト開発で利用できる close 関数について紹介します。 スクリプト開発では作成した js ファイルの中に init と言う名前の関数を定義すると思いますが、この …

no image

No.8 Excel からの一括ユーザ一括登録

この記事は、EWS 2017で行われたLogicDesignerの講演内容に関する記事です。 こちらの例では、LogicDesignerを利用して、入社や組織変更等の発生時に有用なExcelファイルの …

画面アイテム「グリッドテーブル」で全行クリアする方法

このCookBookでは、IM-BISの画面アイテムであるグリッドテーブルで、入力データを全行クリアする方法について紹介します。 「グリッドテーブル」は、jqGridを利用しており、入力されたデータを …