CSVのマスターデータを定期インポート

サーバーサイド 活用編

このサーバーサイド処理はサーバーサイド処理の活用シナリオにある「CSVのマスターデータを定期インポート」の具体的な作成方法を解説したものです。

処理を定期実行することで、特定のフォルダーにある商品マスターデータ(CSVファイル)をアプリケーションの商品マスターテーブルに自動で取り込みを行います。

 

プロジェクトファイル
(作成バージョン:8.0.5.0)
regular-import_before.fgcp
regular-import_after.fgcp(実装済みプロジェクトファイル)
サンプルデータm_product.csv 

1.プロジェクトを確認する

サンプルプロジェクトを開いてテーブルやページの確認を行います。

手順1-1.テーブルの確認

プロジェクトには商品マスターテーブルが存在します。
このテーブルにCSVのデータを追加していきます。

手順1-2.ページの確認

商品一覧ページには商品マスターをデータ連結したリストビューが配置されています。
その右上には「ページの再読み込み」のハイパーリンクが配置してあります。
データ更新の結果を確認する際には、このハイパーリンクを押下します。

2.スケジュールタスクを作成する

処理を定期実行するスケジュールタスクを作成します。

手順2-1.スケジュールタスクの設定

リボンの[作成]から[サーバーオブジェクト]の[スケジュールタスク]を押下します。
スケジュールタスクマネージャースケジュールタスクの設定ウィンドウ)が開くので、「全般」タブの名前欄に「商品マスターの取り込み」と入力します。 

手順2-1-1.トリガーの設定

トリガータブを開き、毎日23時に1回実行されるトリガーを作成します。

  • 「毎日」を選択し「間隔」を「1日」に設定
  • 「開始」の時刻を「00:23:00」に設定
動作確認のためのスケジュール設定

上記設定では毎日23時にスケジュールタスクの処理が行われるため、テスト結果をすぐに確認する場合はトリガーの設定を変更してください。

手順2-2.処理コマンドの作成

コマンドタブを開き、CSVインポート/エクスポートコマンドを追加します。
指定フォルダーに配置されたCSVファイルをインポートする処理を以下の通り作成します。

  • 「処理の種類」を「インポート」に設定
  • 「対象テーブル」を「商品マスター」に設定
  • 「インポートモード」を「マージ」に設定
インポートモードをマージに設定すると

インポート先のテーブルに存在するデータは追加されず差分のみが追加されます。データが存在するかどうかは、「一意となる列」でチェックした項目で判断されます。

  • 列の関連付けの定義で「商品コード」行の「一意となる列」をチェック
  • 列の関連付けの定義で「ID」行を選択し、「列の関連付け定義の削除」ボタンをクリックし削除
    商品マスターテーブルのID列は自動で番号が生成されるためCSVファイルからはデータを取り込みません。
  • 「CSVファイルのパス」に取り込み用のファイルパス「c:\fgc\import\200-01_活用編_商品マスター.csv」を入力
CSVファイルの配置

上記で設定したパスにサンプルデータの「200-01_活用編_商品マスター.csv」ファイルを配置しておきます。

3.デバッグを実行

プロジェクトをデバッグ実行します。

手順3-1.デバッグを実行する

リボンの[ホーム]>[デバッグ]>[開始]ボタン、またはForguncy Builderの左上にある▶ボタンを押下してプロジェクトをデバッグ実行します。

作成したページがブラウザで表示されます。

スケジュールタスクの実行後、ページの再読み込みをクリックするとCSVファイルから取り込んだ商品マスターのデータが追加されていることを確認できます。
また、「インポートモード」を「マージ」に設定しているため、複数回スケジュールタスクが実行されても商品マスターにはデータが重複して取り込まれないことも確認できます。

Forguncyのコマンドについてもっと知る

Forguncyの開発スタートガイドやオンラインヘルプでは、今回使用したコマンドについてより詳しくご紹介しています。
こちらもぜひご活用ください。

>ノーコードWebアプリ開発ツール「Forguncy」

ノーコードWebアプリ開発ツール「Forguncy」

Forguncy(フォーガンシー)は複数のシステムと直接接続して参照・更新が行えるデータ管理機能と、Excel感覚でレイアウトができる画面デザイン機能を備えたノーコードWeb開発&運用プラットフォームです。基幹システムでは対応できず、仕方なくExcelやAccessで管理していた業務のサブシステム化を強力に支援します。

CTR IMG