intra-mart Accel Platform ViewCreator 管理者操作ガイド 第31版 2023-10-01

4.9. 外部データソースの利用

ViewCreatorでは、RDB(リレーショナルデータベース)以外に格納されたデータを扱うためのインタフェースを用意しています。
標準では静的なファイル(CSVファイルおよび、ログファイル)を参照するための実装を提供しています。

4.9.1. インタフェース一覧

../../_images/apply_guide_9_1.png

  • VCDataSourceインタフェース
このインタフェースの実装は、複数のVCResourceインスタンスへのアクセスを提供します。
新しい外部データソースの設定は、%コンテキストパス%/WEB-INF/conf/viewcreator-config.xmlで行います。

  • FileDataSourceクラス
静的なファイルリソースへのアクセスを提供するクラスです。

  • VCResourceインタフェース
VCResourceはあらかじめ決められたフォーマットの2次元データを表します。

  • CSVResourceクラス
CSVファイルをリソースとして扱います。

  • LogResourceクラス
ログファイル(*.log)をリソースとして扱います。

  • VCResultSetインタフェース
リソースから取得した結果データセットを表します。

コラム

インタフェースの詳細についてはAPIリストを参照してください。

jp.co.intra_mart.foundation.viewcreator.expansion.VCDataSource
jp.co.intra_mart.foundation.viewcreator.expansion.VCResource
jp.co.intra_mart.foundation.viewcreator.expansion.VCResultSet

4.9.2. CSVファイルおよびログファイルのリソース登録

テキストファイル(CSVファイルおよびログファイル)の場合は、プログラムを書くことなく
簡単な設定をするだけでViewCreator上で扱うことができます。

「サイトマップ」→「ViewCreator」→「ファイルリソース管理」をクリックします。
../../_images/apply_guide_9_2.png
新規登録をクリックすると、下記のようなダイアログが表示されます。

../../_images/apply_guide_9_3.png

4.9.2.1. リソースの設定項目

項目名 説明
リソース名

ファイルリソースの名称です。半角英数字およびアンダースコアのみ入力可能です。

※RDBにおけるテーブル名に相当します。

エンコーディング テキストファイルのエンコーディングを指定します。デフォルトは「UTF-8」です。
リソースパス

ファイルリソースのパスを入力します。相対パスが入力された場合は、ストレージディレクトリ内を検索します。

またファイル名の一部に「*(アスタリスク)」を入力することで、複数のファイルを指定することも可能です。

例)system/platform/system*.log

その場合、対象となるファイルのフォーマットはすべて同じである必要があります。

デフォルトでは相対パスのみ入力が許可されています。

リソースクラス名

オリジナルのリソースクラスを使用する場合にクラス名を入力します。

デフォルトでは、リソースファイルの拡張子が「.log」のファイルはLogResourceクラスが適用され、それ以外のファイルはCSVResourceクラスが適用されます。

クラス名を入力する場合は、VCResourceを実装している必要があります。

データベースとの連携

この設定項目にチェックが付けられた場合、テナントデータベースに新しくテーブルが作成されます。

テキストファイルの内容は、作成されたテーブルにインポートされます。

※テーブル名は、「imvc_rc_」 + リソース名です。

また、この設定を有効にするにはリソースクラスが下記のクラスのサブクラスである必要があります。

jp.co.intra_mart.foundation.viewcreator.expansion.impl.ResourceWithTable

※標準のCSVResourceクラスとLogResourceクラスは上記クラスのサブクラスです。

セパレータ

データの区切り文字を指定します。

設定が省略された場合、

CSVResourceクラスのデフォルト値は、「,(カンマ)」

LogResourceクラスのデフォルト値は、「\t(TAB)」です。

日付フォーマット 後述のフィールドのデータ型で「タイムスタンプ」が指定されたフィールドデータのフォーマットパターンを指定します。
最大グループ数

このリソースを使用して「リスト集計」が作成された場合の、「グループ化」列の最大項目数を指定します。

OutOfMemoryErrorを起こさないようにするための設定です。

省略時のデフォルト値は20000です。

フィールド一覧

テキストデータのデータ構成を設定します。1行分のデータをセパレータで区切った要素単位でフィールドを設定します。

データ型は、データの性質に合わせて「文字列、数値、タイムスタンプ」の中から設定します。

タイムスタンプが設定されたフィールドは、日付フォーマットの設定値を用いて解析が行われます。

コラム

リソースパスには「ファイルリソースに設定可能なパス形式」を変更することで、%LOG_DIRECTORY% および絶対パスが設定できます。
%LOG_DIRECTORY% は intra-mart Accel Platform が出力するログファイルの出力先に変換されます。

ログファイルの出力先については以下を参照してください。

ファイルリソースに設定可能なパス形式」 は 2023 Autumn(Hollyhock)から利用可能です。

注意

%LOG_DIRECTORY% および絶対パスは分散環境に対応していません。
分散環境で利用する場合、想定していないファイルが取得されたり、ファイルが取得できないことがあります。

注意

標準のCSVResourceクラスとLogResourceクラスはソートの実装を提供しません。
従って、これらの標準クラスを使用して作成されたリスト集計ではソートに関する全ての機能を利用できません。

「プレビュー」ボタンをクリックすると、テキストデータを正しく解析できているか確認できます。
../../_images/apply_guide_9_4.png

作成したファイルリソースは、クエリ編集画面でRDBのテーブルと同様にクエリに追加できます。
接続IDのコンボボックスから「files」を選択すると、テーブル一覧に登録済みのリソースが表示されます。
../../_images/apply_guide_9_5.png

コラム

接続IDの名前を「files」ではなく別の名前に変更するには、%コンテキストパス%/WEB-INF/conf/viewcreator-config.xmlを編集します。

<data-source>
  <id>files</id>
  <class-name>jp.co.intra_mart.foundation.viewcreator.expansion.impl.FileDataSource</class-name>
</data-source>


「リソース」をダブルクリックしてクエリに追加します。

../../_images/apply_guide_9_6.png
カラムの追加や抽出条件の設定もRDB上のテーブルと同じように行います。

注意

外部データソースを使用するクエリは、以下の制限が適用されます。

・クエリに追加できるリソースは1つのみです(JOIN等は一切行えません)。
・SQLの生成はできません。
・抽出条件で、WHERE句の直接入力はできません
・SQLビルダでは外部データソースは利用できません。

4.9.2.2. ファイルリソースとRDBの連携

テキストファイルのデータ量が大きい場合、またはJOINや複雑な抽出条件を設定したい場合は
新しくテーブルを作成して、そのテーブルへテキストファイルの内容を反映させることができます。

ファイルリソース登録の際に、「データベースとの連携」にチェックを入れて登録します。
../../_images/apply_guide_9_7.png

注意

このチェックを入れて登録処理を行った場合、テーブルの作成と同時にデータのインポートも同時に実行されます。
データ量によっては処理が完了するまでに時間がかかる場合があります。

ファイルリソースの登録後、テキストファイルのデータ内容に変更があった場合は
「テーブルへ反映」アイコンをクリックすることで、テキストファイルの内容をテーブルへ反映できます。
../../_images/apply_guide_9_8.png

テーブルはテナントデータベース上に作成されます。
../../_images/apply_guide_9_9.png

テーブル名には imvc_rc、 フィールド名には f_ がプレフィックスとして付加されます。

注意

ファイルリソースの設定の削除時に、テーブルの削除(ドロップ)は行われません。
必要に応じて手動で削除してください。

4.9.3. ロジックフローの利用

IM-LogicDesigner のロジックフローを外部データソースとして利用できます。
「ロジックフロー管理」画面 で、外部データソースとして利用したいフローを登録できます。

コラム

ロジックフローの利用は 2017 Winter(Rebecca) から利用可能です。

ロジックフローを外部データソースとして利用するには、ViewCreatorに利用可能な出力設定を定義する必要があります。
詳細については「ViewCreatorで利用可能なロジックフローの出力設定」を参照してください。

登録した外部データソースを利用するクエリ作成については「クエリの作成」を参照してください。
クエリに利用できるリソース名は、半角英数字およびアンダースコアのみです。

4.9.3.1. ViewCreatorで利用可能なロジックフローの出力設定

IM-LogicDesigner のフロー定義編集において、ViewCreatorに対応した出力設定を定義することで、ロジックフローの出力結果をリソースで利用できます。
../../_images/apply_guide_9_10.png
図:「入出力設定」画面

出力設定に「result」というキー名のobject[]型のパラメータを定義します。
「result」の配下に配置された各パラメータは、ViewCreatorのリソースの各カラムに利用されます。

4.9.3.2. 「ロジックフロー管理」画面

「ロジックフロー管理」画面では、リソースとして利用したいフローを登録できます。

「サイトマップ」→「ViewCreator」→「外部データソース連携」→「ロジックフロー管理」をクリックします。
../../_images/apply_guide_9_11.png
図:「ロジックフロー管理」画面 - 初期表示
項目名 説明
検索条件 条件を指定し、ロジックフローを検索します。
ViewCreatorで使用する
ng_icon )アイコンをクリックし、( tick_icon )にすることでリソースを登録します。
tick_icon )アイコンをクリックし、( ng_icon )にすることでリソースの登録を解除します。
フロー定義ID ロジックフローのフロー定義IDが表示されます。
フロー定義名 ロジックフローのフロー定義名が表示されます。
フローカテゴリ ロジックフローのカテゴリが表示されます。
プレビュー アイコンをクリックすると「ロジックフロー定義のプレビュー」画面が表示されます。

4.9.3.3. ロジックフローを検索する

  1. 画面中央の「検索条件」をクリックします。

    ../../_images/apply_guide_9_12.png
  2. 検索フィールドが表示されます。

    ../../_images/apply_guide_9_13.png

    <画面項目>

    項目 説明
    フロー定義ID 検索するロジックフローのフロー定義IDを表す文字列(の一部)を入力します。
    フロー定義名 検索するロジックフローの定義名を表す文字列(の一部)を入力します。
    フローカテゴリ 検索するロジックフローが属するフローカテゴリを指定します。
    「検索」ボタン ロジックフローを検索します。
    「クリア」ボタン 入力した検索条件をクリアします。

コラム

検索フィールドにおけるフローカテゴリのドロップダウンリストは、カテゴリの階層に関係なく、すべてのカテゴリをフラットなリストとして表示します。
  1. 検索条件を入力し、「検索」をクリックします。

    ../../_images/apply_guide_9_14.png
  2. 検索結果が表示されます。

    ../../_images/apply_guide_9_15.png

コラム

フローカテゴリ選択時の検索結果には、選択されたフローカテゴリの直下に存在するフローのみが表示されます。

4.9.3.4. クエリの作成

「ロジックフロー管理」画面で登録したリソースは、クエリ編集画面でRDBのテーブルと同様にクエリに追加できます。
接続IDのプルダウンから「logicFlow」を選択すると、テーブル一覧に登録済みのリソースが表示されます。
../../_images/apply_guide_9_16.png
表示された「リソース」をダブルクリックしてクエリに追加します。
../../_images/apply_guide_9_17.png
カラムの追加もRDB上のテーブルと同じように行います。

注意

外部データソースを使用するクエリは、以下の制限が適用されます。

・クエリに追加できるリソースは1つのみです(JOIN等は一切行えません)。
・SQLの生成はできません。
・「抽出条件一覧」は動作しません。「抽出条件一覧」にはフィールドを追加しないでください。
・SQLビルダでは外部データソースは利用できません。