他のシステムとの連携において、CSVファイルを介した情報連携の必要な場合があります。たとえば、別のシステムでサーバーPCの任意のフォルダーへ定期的にCSVファイルを出力し、アプリケーションではフォルダー上のファイルを分類しながらインポート処理したい場合です。
この際、複数システムとの連携によりファイルが複数種類存在する場合や、固定したファイル名ではない場合など、特定のフォルダーに含まれるファイルを取得して処理する必要もあります。
Forguncyの「ファイル操作コマンド」では、「フォルダー上のファイル取得」、「ファイル情報の取得」のようにサーバー上のファイル一覧を取得してフレキシブルにファイルを取り扱うコマンドも用意されています。
また、CSVファイルをインポートする際などにエラー処理が必要な場合には、サーバーサイドコマンドを分けて処理します。Forguncyではエラー発生時に処理を中断してコマンドの実行を中断しますが、サーバーサイドコマンドを分けることで、インポート時にエラーが発生してもエラーの発生したインポート処理のみを中断して、別ファイルのインポートを継続して処理できますし、インポートの結果を履歴としてテーブルなどへ保存して後から確認できるようにすることも可能です。
ここでは、任意のフォルダーに含まれるファイルを取得し、CSVファイルの名前に応じて異なるテーブルへインポートする場合を例にコマンドの使い方を説明します。
※
添付のサンプルと合わせて設定内容を確認できます。
サンプルを実行する際は、最初に「※CSVファイル作成(最初にこのボタンをクリックしてください)」と書かれた紫色のボタンをクリックしてインポート用のCSVファイルを生成してください。CSVファイルは「c:\temp\CSV」フォルダへ生成されます。
実装は以下の手順でサーバーサイドコマンドで行います。
-
フォルダー上のファイルを取得します。
「フォルダー上のファイル取得」コマンドでファイルの配列を取得します。 -
繰り返しコマンドで一つずつファイルを処理します。
「フォルダー上のファイル取得」コマンドでは、配列形式でファイルのリストを取得するので、「繰り返し」コマンドを利用して1つずつファイルを処理します。 -
インポート処理をサーバーサイドコマンドで実行します
フォルダーにCSV以外のファイルが含まれている場合には、「ファイル情報の取得」コマンドで拡張子を取得して判別します。CSVファイルのインポート処理を別のサーバーサイドコマンドで処理します。
以下にCSVファイルをインポートするサーバーサイドコマンドの処理を記載します
3-1.ファイル情報を取得して処理を分岐します
「ファイル情報の取得」コマンドでファイル名を取得し、ファイルの種別を識別します。
3-2 CSVファイルのインポート処理を実行します。
「CSVインポート/エクスポート」コマンドを実行してCSVファイルを取得します。 -
インポートが完了したらファイルを別のフォルダーへ移動します。
CSVファイルのインポートが正しく完了した際にファイルを別のフォルダーへ移動することで、次回に再取り込みされることを防ぎます。 -
インポートの結果を記録します
履歴用のテーブルへインポートの結果を記録することも可能です。たとえばスケジュールタスクで定期実行するような場合でも後より結果を確認できます。
各コマンドの詳細につきましては、以下を参照してください。
- サーバーオブジェクト
https://docs.forguncy.com/v8/serverobject.html - ファイル操作コマンド
https://docs.forguncy.com/v8/operatefileplugin.html - CSVインポート/エクスポート(サーバーサイド)
https://docs.forguncy.com/v8/csvimportexportonserver.html
添付のプロジェクトファイルは、8.0.6.0以降のForguncy Builderで読み込むことができます。
検索キーワード: fgcinfo fgcserver