ASTERIA Warp 製品ブログ

ファイルを連携してみた:複数ファイルの連携 ~菊ちゃんのASTERIA Warp体験記~

こんにちは。インフォテリアのキクチです。

そろそろ花粉の季節になってきたようですが、みなさん対策はされてますか?

季節の変わり目にもなってくるので、体調を崩されないように気をつけてくださいね。私自身はまったく花粉症ではないので、大変さは分からないのですが…(汗)

さて、今回のASTERIA Warp体験記では前回行ったファイル連携を少し発展させてみました。複数のファイル連携を体験しています。

この辺りの要件は業務上必須になってくる場合も多いと思うので、何かしらのヒントになればいいなと思いながら今回も頑張っていきます。

それでは早速、ASTERIA Warp体験記、ファイル連携編その2を始めてみたいと思います!


前回はファイル連携の基礎的な部分を体験しました。今回はもう少し実践的に複数のファイルの連携を体験していきます。

単一のファイルを読み込んで出力する、単純な連携は無事に行えました。じゃあ、複数のファイルを連携させたい場合にはどんな手順で行っていけばいいんでしょう…?

前回のフローを元にして複数のファイルの連携を行ってみたいと思います。

まずは、フローデザイナーの立ち上げです。

前回作成したフローを元にしたいと思いますので、前回のフロー(ファイルを連携する1)を右クリックで表示されるメニュー「複製」を選択します。

右クリックで表示されるメニュー「複製」を選択

ちなみに、同じように表示される右クリックメニュー「コピー」では別プロジェクトへもフローをコピーできるようです。
「フローサービス マニュアル」_「フローデザイナー」_「フロー管理」_「フローをコピーする」

新しいフロー名を入力すると…

「フローを連携する2」を作成

新しいフロー「フローを連携する2」が作成されました。こちらをいじっていきたいと思います。

新しいフロー「フローを連携する2」が作成される

今回はよくあるASTERIA Warpの使い方を想定してみます。

例えば、

  1. 店舗ごとの売上情報が記載されたCSVファイルがあるフォルダに保存されている
  2. 保存されたファイルは別システムでも使用されるため、一定時間ごとに別フォルダにも連携する必要がある

みたいな場合にASTERIA Warpでどう実現するのかを考えてみます。

ひとまず、簡素化のために売上情報ファイル2つを別フォルダに配置してみたいと思います。

「売上情報」ファイルを連携ファイルとして配置

プログラム的に考えてみると、

  1. 読み込みファイルパスの取得
  2. 1で取得したファイルパスでファイルオープン
  3. ファイルデータ読み込み
  4. ファイルクローズ
  5. 1~4 を連携するファイル数分繰り返す
  6. 出力ファイルパスの取得
  7. 5で取得したファイルパスでファイルオープン
  8. 3で取得したファイルデータを書き込み
  9. ファイルクローズ
  10. 6~9 を保存するファイル数分繰り返す

というような流れになるんじゃないでしょうか。

ファイルパスについては、別途設定ファイルなどに記載してある情報を読み取るのなど、あらかじめ設定しておく必要がありそうですし、一つ一つのファイルのオープンクローズにも気を使いそうです…

ASTERIA Warpではどうやってフローに表現するのかなー、簡単だといいなぁ~

まずは自分なりにフローを作ってみました。

初めに作成したフロー図。悪い例

ものすごくダサいですが、単純にファイル2つの読み込みなので、フローの流れを2つ作ってしまえばファイルの連携自体は成功しました。

悪い例で正常に作成されたCSV

ただ、これだとファイルの数が増えたときにファイル数分設定を行わなければならないので非常に面倒ですよね。

きっともっとスマートに出来るはずだと思い、Hさんに見てもらいました。

キクチ「Hさん、複数ファイルの連携についてなんですけど、このフローを見てもらってもいいですか?」
Hさん「もちろん!………何、このものすごくダサくて手間のかかるフローは…」
キクチ「ですよね…。ファイルの取得とか出力をもっとスマートにしたいんですけど…(汗)」
Hさん「なるほど、そういうことねー。それならFileGetコンポーネントでループさせてあげれば出来るんじゃないかな」
キクチ「ループ!確かに!でもそれだと、ファイルパスの指定とかどうしてあげればいいんですかね?繰り返しの度に動的に変えてあげないと…」
Hさん「ファイルパスにはワイルドカードが指定できるから、それで取得することが出来るんじゃない?」
キクチ「ワイルドカード使えるんですね!それならいちいち絶対パスで指定しなくても取得できますね。」
Hさん「出力ファイルパスもマッパーの中で決められるからそれで出来るんじゃないかな。」
キクチ「はい!ありがとうございます。」

ループとファイルパスのワイルドカード指定、この二つがあれば出来そうな気がしてきました。
早速フローを作り直してみます。
こんな感じになりました。

修正したフロー図

一見、前回作成したフローと同じように見えますが、FileGetコンポーネントのプロパティでループを指定しています。
また、ファイルパスのプロパティにもワイルドカードを指定してみました。

FileGetプロパティで「ループ」を指定

「ループを開始」プロパティを「はい」に指定すると、FileGetコンポーネントの出力ストリームの表示も少し変わるみたいです。

FileGetコンポーネントの出力ストリーム表示

ていうか、ワイルドカードが使えることもリファレンスにはしっかり記載があるんですね…
「コンポーネント」_「ファイル」_「FileGet」

使うコンポーネントを決めたら、まずはリファレンスを確認することを心に決めました(汗)

どうやら、FileGetコンポーネントのループでは1ファイルずつをストリームとして読み込んでくれるようです。

それに、出力ストリーム変数で「FileName」を持っているので、今回は読み込んだファイル名をそのままユーザーのホームディレクトリに出力してみたいと思います。

具体的にはマッパー画面でこんな風にマッピングしてあげます。

マッパー画面

するとFilePutコンポーネントのファイルパスプロパティには

FileName(ストリームFileGet/ストリーム変数/FineName)

こんな感じで表示されます。

で、実行してみると…

実行画面

見事成功しました!
ユーザーのホームディレクトリにも…

ユーザーのホームディレクトリに書き出された複数のファイル

読み込んだ複数のファイルが作成されています。

作成されたファイルを見てみると…

作成されたCSVファイルを開く

中身もきちんと出力されているのが確認できます。(当たり前ですね…(汗))

複数ファイルの読み込みを考えたとき、プログラムだとループ回数の指定、ループ内で行う処理の記述などステップ数が多くなりがちですが、ASTERIAだとプロパティ2つを変更するだけで処理が完結できてしまいました。なんともお手軽だなぁ~

次は今作成したフローを一定時間ごとに実行するスケジュールの設定です。作成したフローの呼び出し方を決める「実行設定」

まずはマニュアルを参照してみます。

「フローデザイナー」_「トリガー管理」_「実行設定」

ツールバーの雷マークから設定を出来るようです。

ツールバーの雷マーク

クリックして進めてみます。
今回は一定時間ごとに起動する設定にしたいので「間隔」の設定を行います。

実行間隔の設定

起動するフローや、実行間隔の設定をして、「登録」ボタンを押下すると…

起動するフローや、実行間隔の設定をして、「登録」

新しい実行設定が追加されています。

追加された新しい実行設定

実行設定もなんともお手軽ですね。
こうしておくことでフローサービスが起動されている間は設定された間隔に沿ってフローが実行されるようです。


と、いうことで今回はここまでにしたいと思います。
どうでしょう。ASTERIA Warpでファイル連携、すごく簡単な気がしてきたんじゃないですか?

さて、次回についてですが、実運用を考えたとき、大きなファイルでもメモリがパンクしないように考えておきたいですよね。

そんなわけで、ビッグサイズのファイルでもタイムアウト、メモリ制限に引っかからないようなフローの作成に挑戦してみたいと思います。
次回もお楽しみに!

【ASTERIA Warp 事例集】業務自動化/RPA、EAI、マスターデータ管理、クラウド連携・・・業務効率化・データ活用事例をまとめ読み

ASTERIA Warp関連サイトのご紹介

X

<技術情報をお探しの方>

ASTERIA Warp Developer Network
(ADN)サイト

ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。

X

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーグループ
(AUG)サイト

ASTERIA Warpユーザー同士の交流の場として、各種イベント案内や開催レポートを掲載しています。

X

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーサイト
Login

製品更新版や評価版のダウンロード、各種ドキュメントのご提供、また 技術的なお問合せもこちらで受付ています。

X

<ASTERIA Warpパートナーの方>

ASTERIA Warpパートナーサイト
Login

パートナーライセンスの発行や各種ドキュメントのご提供をしています。