サーバーサイド 活用編
このサーバーサイド処理はサーバーサイド処理の活用シナリオにある「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の開発スタートガイドやオンラインヘルプでは、今回使用したコマンドについてより詳しくご紹介しています。
こちらもぜひご活用ください。
>開発スタートガイド – 業務ロジックを実装する「コマンド」を知る