ASTERIA Warp 2608のAIフロー作成でCSV→DB登録フローを作ってみた

ASTERIA Warp 2608で追加された「AIフロー作成」(ベータ版)を使って、CSVのデータをデータベースに登録するフローと、データベースの内容をCSVに出力するフローをAIに作ってもらいました。生成されたフローがそのまま動くのか、どこを手直しする必要があるのかを確認してみました。

※動作確認環境:ASTERIA Warp 2608 Standard(パッチ AS-20260058-2608 適用)、フローデザイナー ブラウザー版(ベータ版)、データベースはインターナルDB(HSQLDB 2.7.4)

AIフロー作成について

自然言語でやりたいことを伝えると、AIが必要な情報を対話形式で確認しながらフローを生成してくれる機能です。

・AIフロー作成は、フローデザイナー ブラウザー版でのみ使用できます。デスクトップ版のフローデザイナーにはこのメニューはありません。

・AIフロー作成、AIチャットボット、フローデザイナー ブラウザー版は、いずれもベータ版での提供です。今後のバージョンで画面や動作が変わる場合があります。

・リリースノートでは、AIが生成したフローはそのまま運用環境で使うことを前提としておらず、必ず内容を確認して修正するよう案内されています。

・サブスクリプション以外のライセンスでは、パッチを当てないとAI機能が有効になりません(詳しくは後述)。

********************************************

準備:登録先のテーブルとCSVファイル

インターナルDBのコネクション「asteria_internal」に、次のテーブルを用意しました。

CREATE TABLE m_item (item_code VARCHAR(10) PRIMARY KEY, item_name VARCHAR(100), unit_price INTEGER, updated_on DATE)

読み込むCSVはダミーの商品マスタです。ブラウザー版の「ファイル」タブのアップロードボタンから、ホームフォルダーにitem.csv(UTF-8)として置きました。

商品コード,商品名,単価,更新日
A001,サンプル商品A,1200,2026/09/01
A002,サンプル商品B,800,2026/09/01
A003,サンプル商品C,1500,2026/09/02
A004,サンプル商品D,500,2026/09/03
A005,サンプル商品E,2400,2026/09/05

CSVの項目名は日本語、テーブルの列名は英語にしてあるので、AIが項目をどう対応付けるかも確認できます。

********************************************

ブラウザー版でAIフロー作成を起動

ブラウザーで次のURLを開き、開発者アカウントでログインします。

http://{サーバー名}:22080/
※22080の最上位の桁は、サーバーの初期設定で指定した番号になります。

ファイル→新規作成→フロー(またはプロジェクト)で開くダイアログの先頭に「AIでフロー作成」があります。選択してフロー名を入力し、「次へ」をクリックします。

A1_02_new_flow_dialog

新規フローダイアログ

「AIで新規フローを作成」画面が開き、「どのようなフローを作りたいですか?」と聞かれます。

********************************************

検証1:CSVのデータをデータベースに登録する

AIへの指示

次の1文だけを入力しました。

「ホームフォルダーにある item.csv(商品マスタ)を、データベースの m_item テーブルに登録するフローを作ってください。」

指示を送ると、AIから次のように確認がありました。

・登録済みのデータベース接続は asteria_internal(HSQL Database)のみです。こちらを使用してよろしいですか?→「はい」を選択

・登録方法についてお伺いします。既存のレコードがある場合、どのように処理しますか?→「新規登録のみ(重複は無視)」「既存レコードを更新する」「新規登録または既存レコードを更新する」の3択から「新規登録または既存レコードを更新する」を選択

A1_03_ai_hearing

AIからのヒアリング

回答が終わると、作成内容の確認が表示されます。CSVの項目名は伝えていませんでしたが、AIがitem.csvを読み取って、商品コード→ITEM_CODE、商品名→ITEM_NAME、単価→UNIT_PRICE、更新日→UPDATED_ON と正しく対応付けていました。

A1_04_ai_confirm

作成内容の確認

「はい」をクリックすると、30秒ほどでフローが生成されました。フローの「説明」欄にも処理内容が自動で書き込まれます。

生成されたフロー

A1_05_flow1_overview

AIフロー作成で生成されたフロー

CSVファイルを読み込み、Mapperで項目を対応付けたうえでデータベースへ登録する、シンプルな構成です。

FileGet1コンポーネント

A1_06_fileget1

・ファイルパス:item.csv

・相対パスの起点:プロジェクトフォルダー

・ファイルのエンコーディング:UTF-8

・ストリーム:CSV(読込開始行:2、フィールド数:4、区切り文字:,)

・フィールド:商品コード(String)、商品名(String)、単価(Decimal)、更新日(String)

見出し行を飛ばす設定(読込開始行:2)も入っていました。

Mapper1コンポーネント

A1_07_mapper1

・商品コード、商品名、単価は、それぞれの列にそのままマッピングされています。

・更新日は、StrToDateStd関数(日付フォーマット:yyyy/MM/dd)で日付型に変換してupdated_onにマッピングされています。

A1_08_strtodate

StrToDateStd関数の設定

RDBPut1コンポーネント

A1_09_rdbput1

・コネクション名:asteria_internal

・実行する処理:Update/Insert

・テーブル名:m_item

・キーにする:item_codeのみ「はい」

ヒアリングで選んだ「新規登録または既存レコードを更新する」が、そのまま設定に反映されていました。

フローの実行結果

手直しをせずにそのまま実行し、正常終了しました。5件のデータがテーブルに登録され、日本語の商品名や日付も正しく入っていることを確認しました。

A1_10_flow1_result

フローの実行結果

続けて、A002の単価を800から900に変え、A006を追加したCSVで再実行しました。A002は更新、A006は新規登録され、全6件になりました。

********************************************

検証2:データベースの内容をCSVに出力する

AIへの指示

「データベースの m_item テーブルの内容を、ホームフォルダーに item_export.csv として出力するフローを作ってください。」

接続先の確認(asteria_internal を使用してよいか)に「はい」と答えると、AIがデータベースから読み取った m_item の列構成(ITEM_CODE(文字列、主キー)、ITEM_NAME(文字列)、UNIT_PRICE(整数)、UPDATED_ON(日付))を示して、すべての列をCSVに出力してよいか確認してきました。テーブル定義は伝えていませんが、データベースから自分で読み取っています。

A1_11_ai_export

検証2のAIとのやり取り

生成されたフロー

A1_12_flow2_overview

AIフロー作成で生成されたフロー

Mapper1コンポーネント

・const関数で「SELECT ITEM_CODE, ITEM_NAME, UNIT_PRICE, UPDATED_ON FROM PUBLIC.M_ITEM」を作成し、RDBGet1のSQL文にマッピングしています。

RDBGet1コンポーネント

・コネクション名:asteria_internal

・SQL文:Mapper1から設定されます。

Converter1コンポーネント

・取得したレコードをCSV形式に変換します。

FilePut1コンポーネント

・ファイルパス:item_export.csv

・相対パスの起点:実行ユーザーのホームフォルダー

・上書きを許可:はい

フローの実行結果

そのまま実行すると、FilePut1で「実行ユーザーが設定されていません」というエラーになりました。フローデザイナーから実行する場合は実行ユーザーが設定されていないため、「実行ユーザーのホームフォルダー」を起点にできなかったようです。

A1_13_fileput1_error

FilePut1のエラー

FilePut1の相対パスの起点を「ホームフォルダー」に変更して再実行したところ、正常終了しました。

A1_14_fileput1_basedir

相対パスの起点の選択肢

出力されたitem_export.csvの内容です。

ITEM_CODE,ITEM_NAME,UNIT_PRICE,UPDATED_ON
"A001","サンプル商品A","1200","2026-09-01T00:00:00.000 JST"
"A002","サンプル商品B","900","2026-10-01T00:00:00.000 JST"
(以下略)

データは正しく出力されていますが、日付は時刻とタイムゾーン付きの形式で、値はすべてダブルクォートで囲まれています。日付だけを出力したい場合は、Mapperで書式を変換するなどの手直しが必要です。

********************************************

使ってみて気になったところ

「AIサービスを利用できません」と表示される

最初は指示を送っても「AIサービスを利用できません。管理者にお問い合わせください。」と表示され、フローを作成できませんでした。サブスクリプション以外のライセンスでは2608のAI機能が有効にならない不具合があり、ADNで修正パッチ(AS-20260058-2608)が公開されています。パッチを適用してサーバーを再起動したところ、使えるようになりました。

相対パスの起点がフローによって違う

同じ「ホームフォルダー」という指示でも、検証1のFileGet1は「プロジェクトフォルダー」、検証2のFilePut1は「実行ユーザーのホームフォルダー」になっていました。検証1はプロジェクトをホームフォルダーの直下に保存していたので動きましたが、プロジェクトをサブフォルダーに保存している場合はファイルが見つからない可能性があります。ファイルを扱うコンポーネントは、相対パスの起点を必ず確認したほうがよさそうです。

同じ指示でも聞かれることが変わる

同じ指示で2回試したところ、1回目はテーブルの列構成を質問されましたが、2回目はデータベースから読み取って質問されませんでした。検証2でも、1回目は確認1回だけでしたが、2回目は接続先と列構成の2回確認がありました。生成AIを使っているため、同じ指示でも毎回同じ動きになるとは限りません。

********************************************

AIフロー作成は、1文の指示と2〜3回の質問に答えるだけで、フローのたたき台を作ってくれます。CSVの項目名を読み取って列を対応付けたり、ヒアリングの内容をコンポーネントの設定に反映したりと、定番の連携であれば十分に使えると感じました。一方で、ファイルパスの起点、日付変換の失敗時の動作、エラー処理など、運用で困るところは人が確認して直す必要があります。ベータ版のため、今後の改善にも期待しています。

最後までお読みいただき、ありがとうございました。

少しでもご参考になれば幸いです。

参考:
・ASTERIA Warp 2608 リリースノート
・【ベータ版】AI機能がサブスクリプションライセンス以外のライセンスを使用すると有効にならない不具合を修正(ADN)