intra-mart Accel Platform IM-LogicDesigner チュートリアルガイド 第12版 2023-10-01

5.4.7.2. ユーザ定義(CSV Fetch)の詳細

この章では、CSV Fetchを利用したユーザ定義の作成方法とその詳細について説明します。

5.4.7.2.1. 本チュートリアルで作成する概要

本チュートリアルでは、シンプルなユーザ情報を列挙したCSVファイルを定義し、そのCSVファイルを取り扱うユーザ定義(CSV Fetch)の実装を通して、CSV Fetchを利用したユーザ定義の作成方法とその詳細を説明します。

5.4.7.2.1.1. 本チュートリアルで定義するCSVファイルの詳細

本チュートリアルで扱うユーザは、以下の情報(プロパティ)を持つものと定義します。
  • ユーザ名(user_name
  • 年齢(age
  • 誕生日(birth_date
  • 備考(description
加えて、本チュートリアルで扱うCSVファイルは、以下の仕様に沿って定義します。
  • 1行目はヘッダ行とする。
  • 各フィールドの値はダブルクォーテーション("~")で括る。
  • フィールド間はカンマ(,)で区切る。
上記の定義を踏まえて、本チュートリアルで定義するユーザ情報のCSVファイルのサンプルは以下の通りです。
1
2
3
4
5
6
7
8
9
user_name, age, birth_date, description
"csv_user00001","20","2016-08-01T00:00:00Z","CSV User No. 00001"
"csv_user00002","21","2016-08-01T00:00:00Z","CSV User No. 00002"
"csv_user00003","22","2016-08-01T00:00:00Z","CSV User No. 00003"
"csv_user00004","23","2016-08-01T00:00:00Z","CSV User No. 00004"
"csv_user00005","24","2016-08-01T00:00:00Z","CSV User No. 00005"
...
"csv_user99998","28","2016-08-01T00:00:00Z","CSV User No. 99998"
"csv_user99999","29","2016-08-01T00:00:00Z","CSV User No. 99999"

5.4.7.2.2. 入力値/出力値

はじめに、作成するユーザ定義を呼び出す際の入力値と、呼び出しが完了した際に返却する出力値を定義します。
ユーザ定義(CSV Fetch)の入力値/出力値の初期値は以下の通りです。
../../../../_images/csv_fetch_autoset_input_and_output.png

図:入力値、および、出力値の初期値

5.4.7.2.2.1. 入力値

ユーザ定義(CSV Fetch)の入力値はシステムによって固定です。
IM-LogicDesignerではCSVファイルを取り扱うにあたり、以下の内容を入力値として定義しています。
入力値 説明
file<storage> データを読み込むCSVファイルのアドレスを示すストレージ情報

5.4.7.2.2.2. 出力値

ユーザ定義(CSV Fetch)では出力値と、読み込んだCSVファイルの各フィールド値と紐付けます。
より具体的にはユーザ定義(CSV Fetch)では、CSVファイルの1番目のフィールドと、出力値の1番目の定義値とを紐付けます。
以後同様にCSVファイルのN番目のフィールドと出力値のN番目の定義値が紐づけます。
../../../../_images/field_auto_fill.png

図:CSVファイルのフィールドと出力値の紐付け

コラム

CSVファイルのヘッダ名と出力値名

出力値との紐付けを行う際に、CSVファイルにヘッダが指定されていても動作は変わりません。
CSVファイルのヘッダ名と出力値名が同一であった場合でも、紐付けの順番は変わらないことに注意してください。
またユーザ定義(CSV Fetch)では、読み込んだCSVファイルの各フィールドの値を全て文字列(string)として扱います。
出力値と紐付ける際に、紐付け先の出力値の型がstring以外だった場合、IM-LogicDesignerは自動的に型変換を行います。
(そのため、stringから変換することの出来ない型を出力値に定義した場合は、エラーとして扱います)
../../../../_images/field_auto_fill2.png

図:CSVファイルのフィールドと出力値の型変換

本チュートリアルでは、「本チュートリアルで作成する概要」を元に出力値を以下のように定義します。
出力値 説明
name<string> ユーザ名(user_name)フィールドを格納します。
age<integer> 年齢(age)フィールドを格納します。
birth<date> 誕生日(birth_date)フィールドを格納します。
desc<string> 備考(description)フィールドを格納します。
以上で、出力値の設定が完了しました。

5.4.7.2.3. フォーマット設定

次に、作成するユーザ定義(CSV Fetch)が読み込むCSVファイルのフォーマット情報を設定します。
フォーマット設定を「本チュートリアルで作成する概要」を元に以下のとおりに定義します。
  • 文字コード
    • UTF-8
  • 引用文字
    • "(ダブルクォート)
  • 区切り文字
    • ,(カンマ)
  • 行の終端文字
    • CRLF
../../../../_images/format_setting.png

図:フォーマット設定

以上で、フォーマット設定が完了しました。

5.4.7.2.4. 処理設定

次に、作成するユーザ定義(CSV Fetch)の処理時の振る舞いを設定します。
処理設定の定義内容は以下の通りです。
  • ヘッダ行をスキップする
    • チェックボックス:オン
  • 返却値と列数が一致しない場合エラーにする
    • チェックボックス:オフ
../../../../_images/execute_setting.png

図:処理設定

以上で、処理設定が完了しました。

5.4.7.2.5. ユーザ定義(CSV Fetch)を作成する。

最後に、これまでの内容を踏まえてユーザ定義(CSV Fetch)を作成します。
  1. 「CSV Fetch定義編集」画面を表示します。

  2. ユーザ定義の基本情報となる各項目に以下の値を入力します。

    • ユーザ定義ID「tutorial_ud_csv_fetch

    • バージョン「1」(固定)

    • ユーザ定義名
      • 標準 - 「ユーザ定義[CSV Fetch]
      • 日本語、英語、中国語(中華人民共和国) - 入力なし
    • カテゴリ
      • カテゴリID - 「tutorial_user_category
    • ソート番号「5001

    ../../../../_images/implement_ud_csv_fetch1.png

    図:基本情報の定義

  3. 入力値、および、出力値を「入力値/出力値」をもとに定義します。

    ../../../../_images/implement_ud_csv_fetch2.png

    図:入出力値の定義

  4. フォーマット設定を「フォーマット設定」をもとに定義します。

    ../../../../_images/implement_ud_csv_fetch3.png

    図:フォーマット設定の定義

  5. 処理設定を「処理設定」をもとに定義します。

    ../../../../_images/implement_ud_csv_fetch4.png

    図:処理設定の定義

  6. 登録」をクリックします。

    ../../../../_images/implement_ud_csv_fetch5.png

    図:登録

以上で、ユーザ定義(CSV Fetch)の作成が完了しました。