このCookbookでは、IM-BIS 2017 Winterから新たに追加された「 外部連携のレスポンスとして、ファイルデータを受け取る 」機能を利用する方法を紹介いたします。
BISで作成した申請画面の入力内容をそのままExcelファイルにダウンロードして加工したり、テンプレートとして他のExcelファイルを読み込んで出力したりといった様々な方法で活用できます。
今回のCookbookでは、BIS画面で入力したデータをレポートタイトルやグラフの元データに活用するサンプルの作成を通じて、BISとLogicDesignerを組み合わせたファイルの操作方法を確認できます。
完成イメージ
BIS画面の入力内容をパブリックストレージのテンプレートExcelファイルに基づいて出力するサンプルです。
ダウンロードしたExcelファイルでは、ピボットテーブルの「データの更新」を実行することにより、そのままグラフを更新できます。
グリッドテーブルには、以下のドキュメントで紹介されているデータ参照(リスト)からダウンロードしたCSVファイルがインポートできます。
完成サンプル
以下のサンプルをダウンロードしてご利用ください。
- ロジックフロー定義 / ユーザ定義(Excel出力定義) : im_logicdesigner-data_132010.zip
- IM-LogicDesignerのインポート機能からインポートしてください。サンプルのユーザ定義(Excel出力)、ロジックフローが登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-LogicDesigner ユーザ操作ガイド] - [インポートを行う]
- Excel出力向けテンプレート : im_cookbook_132010_template.zip
- サンプルの実行時には、上記ファイルを解凍後パブリックストレージにそのまま配置してください。
具体的には以下の場所に上記のファイルを配置してください。
%PUBLIC_STORAGE_PATH%/sample/cb_132010/graph/cb132010_graph_template.xlsx
- パブリックストレージへのファイルの配置方法は以下のドキュメントをご覧ください。
[システム管理者 操作ガイド] - [ファイル操作]
- サンプルの実行時には、上記ファイルを解凍後パブリックストレージにそのまま配置してください。
- BIS一括インポート : im_cookbook_132010_bis.zip
- BISの一括インポート機能からインポートしてください。サンプルのフローが登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [一括インポート・エクスポートを行う]
サンプルに含まれる定義情報は以下の表の通りです。
種類 | 定義名 | 補足説明 |
---|---|---|
ユーザ定義(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)で動作確認を行っています。
レシピ
- BISフローを作成する
- ユーザ定義(Excel出力定義)を作成する
- ロジックフローを作成する
- データソース定義を作成する
- アクションイベントを作成する
- 実行画面で確認する
なお、以下の手順ではサンプルで実装されているCSVインポートの設定については省略しております。
CSVインポートの設定を確認したい場合は以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [データソース定義を設定する] - [CSVインポート]
1. BISフローを作成する
以下のアイテムを配置した処理画面を作成してください。
a. 文字列
レポートタイトルの入力に利用します。
b. グリッドテーブル
グラフデータの元データの入力に利用します。
列は文字列・数値・数値の3列の構成です。
c. ボタン(イベント)
1つはCSVファイルの取り込み、もう1つはExcelファイルを出力する外部連携の実行のトリガに利用します。
2. ユーザ定義(Excel出力定義)を作成する
Public Storageに配置したExcelのテンプレートに基づいて、IM-LogicDesignerのユーザ定義(Excel出力定義)を作成してください。
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で外部連携のレスポンスとしてファイルを受け取るためには、指定のパラメータで定義する必要があります。
- 入出力設定については、以下の画面の通りに設定してください。
2. 定数の設定
- 以下の通りに、ファイルの連携に必要な情報を定数として定義してください。
定数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) 「開始」と「セッションストレージ取得」を接続してください。
(3) 「セッションストレージ取得」でのマッピング設定を以下の通りに行ってください。
3-2. 「セッションストレージ取得」→「ユーザ定義(Excel出力)」
(1) 「セッションストレージ取得」タスクの下に、2の手順で作成した「ユーザ定義(Excel出力)」タスクを配置してください。
(2) 「セッションストレージ取得」と「ユーザ定義(Excel出力)」、「ユーザ定義(Excel出力)」と「終了」を接続してください。
「ユーザ定義(Excel出力)」でのマッピング設定を以下の通りに行ってください。
「終了」でのマッピング設定を以下の通りに行ってください。
ここまででロジックフローが完成しましたので、保存後に次の手順に移ってください。
4. データソース定義を作成する
作成したロジックフローをLogicDesignerのデータソース定義として設定してください。
設定の詳細は以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [データソース定義を設定する] - [LogicDesigner]
5. アクションイベントを作成する
BISのフォーム・デザイナの「アクション設定」から「ボタン(イベント)」をトリガとした外部連携を設定してください。
このアクションイベントでは、「リクエスト」でユーザ定義(Excel出力)に対して画面項目とのマッピングを設定してください。
レスポンスは暗黙的にマッピングを行っているため、設定は不要です。
- リクエストの設定
以下の図で矢印でつないだ項目をマッピングしてください。
- レスポンスの設定
6. 実行画面で確認する
最後に、実行画面で画面に入力後、「Download Excel」をクリックしてください。
完成イメージと同様のExcelファイルがダウンロードできることが確認できます。
データ出力したセルを別シートのセルに計算式を設定して参照するようにしましたが、値が表示されません。
その状態で、計算式の最後でEnterキーを押下するか、もしくは参照元のセルデータの最後にカーソルを合わせてエンターを
押すと初めて表示されます。
ダウンロードしたEXCELを開いた時点で該当の参照セルにデータを表示するのはどのようにすれば
よろしいでしょうか。
2.定数の設定について
directory_file_prefixやtemplateの定数値は何を設定しているのかが分かりません。
こちらを応用した実装をする場合、上記2点は何を設定すべきでしょうか?
また、出力するファイルの保存場所を任意またはローカルに設定したい場合はどのようにすればよろしいのでしょうか?
3-2.(2)以降、表示がおかしくなっている箇所があります。
ご指摘、誠にありがとうございます。
修正し、スクリーンショットが表示されるようにいたしました。