CookBook

申請画面の入力データをExcelファイルにダウンロードする

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

このCookbookでは、IM-BIS 2017 Winterから新たに追加された「 外部連携のレスポンスとして、ファイルデータを受け取る 」機能を利用する方法を紹介いたします。
BISで作成した申請画面の入力内容をそのままExcelファイルにダウンロードして加工したり、テンプレートとして他のExcelファイルを読み込んで出力したりといった様々な方法で活用できます。

今回のCookbookでは、BIS画面で入力したデータをレポートタイトルやグラフの元データに活用するサンプルの作成を通じて、BISとLogicDesignerを組み合わせたファイルの操作方法を確認できます。

完成イメージ


BIS画面の入力内容をパブリックストレージのテンプレートExcelファイルに基づいて出力するサンプルです。
ダウンロードしたExcelファイルでは、ピボットテーブルの「データの更新」を実行することにより、そのままグラフを更新できます。

グリッドテーブルには、以下のドキュメントで紹介されているデータ参照(リスト)からダウンロードしたCSVファイルがインポートできます。

完成サンプル

以下のサンプルをダウンロードしてご利用ください。

サンプルに含まれる定義情報は以下の表の通りです。

種類 定義名 補足説明
ユーザ定義(Excel出力) 【Cookbook】BISからExcelファイルをダウンロードする方法(ユーザ定義) 出力するExcelを定義するユーザ定義です。
ロジックフロー 【Cookbook】BIS画面からExcelファイルをダウンロードする方法(基本編) 上記のユーザ定義を参照しているロジックフローです。
BIS定義 【Cookbook】BIS画面からExcelファイルをダウンロードする方法(基本編) 関連するFormaアプリケーション定義やIM-Workflowのフロー定義等の情報も含まれます。
データソース定義(CSVインポート) 【Cookbook】CSVファイル読み込み グリッドテーブルへのデータ取り込みに利用しています。
データソース定義(LogicDesigner) 【Cookbook-132010】BIS画面からExcelファイルをダウンロードする方法(基本編) LogicDesignerを外部連携として利用するための定義です。

上記のサンプルの利用条件は以下の通りです。

  • intra-mart Accel Platform(Advanced) 2017 Winter(8.0.18), IM-BIS 2017 Winter(8.0.15)以降のバージョンであること
  • LogicDesigner のExcel出力の実行には [標準機能]-[基盤機能]-[IM-LogicDesigner]-[IM-LogicDesigner Excel連携]が含まれている必要があります。
  • サンプルデータのインポートが行われていること

サンプルは、intra-mart Accel Platform(Advanced) 2017 Winter(8.0.18), IM-BIS 2017 Winter(8.0.15)で動作確認を行っています。

レシピ

  1. BISフローを作成する
  2. ユーザ定義(Excel出力定義)を作成する
  3. ロジックフローを作成する
  4. データソース定義を作成する
  5. アクションイベントを作成する
  6. 実行画面で確認する

なお、以下の手順ではサンプルで実装されているCSVインポートの設定については省略しております。
CSVインポートの設定を確認したい場合は以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [データソース定義を設定する] - [CSVインポート]

1. BISフローを作成する

以下のアイテムを配置した処理画面を作成してください。

im_cookbook_132010_1

a. 文字列
  レポートタイトルの入力に利用します。
b. グリッドテーブル
  グラフデータの元データの入力に利用します。
  列は文字列・数値・数値の3列の構成です。
c. ボタン(イベント)
  1つはCSVファイルの取り込み、もう1つはExcelファイルを出力する外部連携の実行のトリガに利用します。

2. ユーザ定義(Excel出力定義)を作成する

Public Storageに配置したExcelのテンプレートに基づいて、IM-LogicDesignerのユーザ定義(Excel出力定義)を作成してください。

im_cookbook_132010_2

a. セル出力定義
   特定のセルに「文字列」の値をレポートタイトルとして出力できるように以下の通り設定してください。
   「description」は作成したBISの画面に配置した文字列アイテムのフィールド識別IDです。

シート名 セル 入力パラメータ名 データ型
 Sheet1 A2 description string

b. 範囲指定出力定義

  • 出力範囲
設定項目 設定値
シート名 Sheet1
対象列 A - C
開始行 5
終了条件 入力データを全て書き込んだら
  • 入力パラメータとデータ型
セルの列 入力パラメータ データ型
親オブジェクト records1 Object[]
A column_a string
B column_b numeric
C column_c numeric

手順の詳細は以下のドキュメントをご覧ください。
[IM-LogicDesigner チュートリアルガイド] - [ユーザ定義 - Excel出力]

3. ロジックフローを作成する

1. 入出力設定の登録

  • 入力はBISで作成した画面項目に合わせて定義してください。
  • 出力はBISで外部連携のレスポンスとしてファイルを受け取るためには、指定のパラメータで定義する必要があります。
  • 入出力設定については、以下の画面の通りに設定してください。

im_cookbook_132010_3

2. 定数の設定

  • 以下の通りに、ファイルの連携に必要な情報を定数として定義してください。

im_cookbook_132010_4

定数ID 定数値
directory_file_prefix sample/cb_132010_
file_extension .xlsx
result false
template sample/cb_132010/graph/cb132010_graph_template.xlsx

3. ロジックフローの作成

以下の通りにロジックフローのタスクを配置し、接続してください。

3-1. 「開始」→「セッションストレージ取得」

(1) 「ストレージ操作」-「セッションストレージ取得」タスクを配置してください。
(2) 「開始」と「セッションストレージ取得」を接続してください。

im_cookbook_132010_5

(3) 「セッションストレージ取得」でのマッピング設定を以下の通りに行ってください。

im_cookbook_132010_6

3-2. 「セッションストレージ取得」→「ユーザ定義(Excel出力)」

(1) 「セッションストレージ取得」タスクの下に、2の手順で作成した「ユーザ定義(Excel出力)」タスクを配置してください。
(2) 「セッションストレージ取得」と「ユーザ定義(Excel出力)」、「ユーザ定義(Excel出力)」と「終了」を接続してください。

im_cookbook_132010_7

「ユーザ定義(Excel出力)」でのマッピング設定を以下の通りに行ってください。

im_cookbook_132010_8

「終了」でのマッピング設定を以下の通りに行ってください。

im_cookbook_132010_9

ここまででロジックフローが完成しましたので、保存後に次の手順に移ってください。

4. データソース定義を作成する

作成したロジックフローをLogicDesignerのデータソース定義として設定してください。
設定の詳細は以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [データソース定義を設定する] - [LogicDesigner]

5. アクションイベントを作成する

BISのフォーム・デザイナの「アクション設定」から「ボタン(イベント)」をトリガとした外部連携を設定してください。
このアクションイベントでは、「リクエスト」でユーザ定義(Excel出力)に対して画面項目とのマッピングを設定してください。
レスポンスは暗黙的にマッピングを行っているため、設定は不要です。

  • リクエストの設定
    以下の図で矢印でつないだ項目をマッピングしてください。

im_cookbook_132010_10

  • レスポンスの設定

im_cookbook_132010_11

6. 実行画面で確認する

最後に、実行画面で画面に入力後、「Download Excel」をクリックしてください。
完成イメージと同様のExcelファイルがダウンロードできることが確認できます。

im_cookbook_132010_12

-CookBook
-, ,

執筆者:


  1. 田中 より:

    データ出力したセルを別シートのセルに計算式を設定して参照するようにしましたが、値が表示されません。
    その状態で、計算式の最後でEnterキーを押下するか、もしくは参照元のセルデータの最後にカーソルを合わせてエンターを
    押すと初めて表示されます。
    ダウンロードしたEXCELを開いた時点で該当の参照セルにデータを表示するのはどのようにすれば
    よろしいでしょうか。

  2. より:

    2.定数の設定について
    directory_file_prefixやtemplateの定数値は何を設定しているのかが分かりません。
    こちらを応用した実装をする場合、上記2点は何を設定すべきでしょうか?
    また、出力するファイルの保存場所を任意またはローカルに設定したい場合はどのようにすればよろしいのでしょうか?

  3. 林朋宏 より:

    3-2.(2)以降、表示がおかしくなっている箇所があります。

    • imdeveloper より:

      ご指摘、誠にありがとうございます。
      修正し、スクリーンショットが表示されるようにいたしました。

comment

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

関連記事

no image

IM-BloomMaker Chrome 拡張機能のデバッグツールの使い方

この CookBook では、2022 Winter でリリースされた Chrome 拡張機能であるデバッグツールの使い方を、実際に不具合のあるコンテンツをデバッグしていきながらご紹介いたします。 レ …

no image

ジョブを作成して定期実行する

このCookBookでは、以下の開発モデルでジョブを作成する方法と、作成したジョブを指定した時刻に定期実行する方法を紹介します。 ・スクリプト開発モデル ・JavaEE開発モデル いずれのモデルでもジ …

no image

スクリプト開発でのCSRF対策(formタグ編)

Cross Site Request Forgery(CSRF)とは、閲覧者に不正にHTTPリクエストを送信させ、攻撃者の意図した処理を実行させる攻撃手法です。 このCookBookでは、スクリプト開 …

no image

IM-LogicDesigner「繰り返し」「分岐」EL式の定義例

このCookBookでは、IM-LogicDesignerの「条件分岐」「繰り返し」制御要素の条件で利用するEL式について定義例を紹介しています。 ここでは主に「 IM-LogicDesigner上で …

複数の種類のグラフを組み合わせて表示したり、自由にオプションを指定してグラフを表示したりできるエレメントのサンプル

このCookBookでは、IM-BloomMaker で作成するアプリケーション画面で複数の種類のグラフを組み合わせて表示したり、自由にオプションを指定してグラフを表示したりできるエレメントのサンプル …