外部システムのマスタに差分をリアルタイムでアップデート

サーバーサイド 活用編

本記事はサーバーサイド処理の活用シナリオにある「外部システムのマスタに差分をリアルタイムでアップデート」の具体的な作成方法を解説したものです。

発注先マスタテーブルに発注先のデータ登録を行う際に、外部システムのデータベース内にある顧客マスタテーブルにもデータの登録を行います。
また、顧客マスタテーブルのデータ登録時、外部システム側で採番された顧客IDの値を発注先マスタテーブルにも登録を行います。
これにより、二つのテーブルのデータの紐づけができるようにします。

プロジェクトファイル
(作成バージョン:8.0.5.0)
data-synchronization_before.fgcp
data-synchronization_after.fgcp(実装済みプロジェクトファイル)

本演習のサンプルでは、基幹システムを想定した顧客マスタを外部データベースではなくForguncyの内部データベースで実装しています。

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

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

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

プロジェクトには発注先マスタ外部DB_顧客マスタの2つのテーブルが存在します。
そのうち外部DB_顧客マスタテーブルは前述の通り基幹システムを想定したものとなっています。

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

発注マスタ照会ページ上部には、新規登録画面を開くための「発注先登録」ボタンが配置してあります。
その横には「ページの再読み込み」のハイパーリンクが配置してあります。
データ更新の結果を確認する際にはこのハイパーリンクを押下します。
その下には発注先マスタテーブルと外部DB_顧客マスタテーブルがデータ連結されている2つのリストビューが配置されています。

2.サーバーサイドコマンドを作成する

処理を実行するサーバーサイドコマンドを作成します。

手順2-1.サーバーサイドコマンドの設定

リボンの[作成]から[サーバーオブジェクト]の[サーバーサイドコマンド]を押下します。
サーバーサイドコマンドマネージャーサーバーサイドコマンドの設定ウィンドウ)が開くので、「全般」タブの名前欄に「顧客マスタ新規登録」と入力します。

手順2-2-1.パラメーターの設定

パラメータータブを開き、2つのパラメーターを作成します。
「新しいパラメーター」ボタンを押下し、下記のように設定します。

  • パラメーターの名前に「発注先ID」と入力
    種類を「基本型」に設定
  • パラメーターの名前に「顧客名」と入力
    種類を「基本型」に設定

手順2-2.処理コマンドの設定

コマンドタブを開き、トランザクションコマンドを追加します。
そのトランザクションの子コマンドにテーブルデータの更新コマンドを追加します。
発注先マスタにデータを登録するため、以下のように設定します。

  • 「処理の種類」を「追加」に設定
  • 「対象テーブル」を「発注マスタ」に設定
  • 対象フィールドに「発注先ID」を選択
    値にコマンドパラメーターの「発注先ID」を設定
  • 対象フィールドに「顧客名」を選択
    値にコマンドパラメーターの「顧客名」を設定

同様に、トランザクションの子コマンドにテーブルデータの更新コマンドを追加します。
外部DB_顧客マスタにデータを登録するため、以下のように設定します。

  • 「処理の種類」を「追加」に設定
  • 「対象テーブル」を「外部DB_顧客マスタ」に設定
  • 対象フィールドに「顧客名」を選択
    値にコマンドパラメーターの「顧客名」を設定

顧客マスタのデータ登録時に採番される顧客IDを保持する変数を作成します。
この変数は、発注先マスタ顧客IDの値を顧客マスタの値と同じ値にするために使用します。
変数の設定コマンドを追加し、以下の通りに設定します。

  • 「変数名」を「顧客ID」に設定
  • 「変数値」で「値、または数式」を選択
    「=NewRow.顧客ID」と入力
変数とは

変数には、テーブルの更新を行った際に新規に追加または更新されたレコードが格納されます。デフォルトの名称は「NewRow」で、この名称は任意で変更が可能です。 「= NewRow.(フィールド名)」のような式を用いることで、その変数に格納されているレコードからフィールドを指定し、値を参照することが出来ます。 上図の例では、変数値の入力の欄で「=NewRow.顧客ID」と指定をしており、変数に格納されているレコードにおける顧客IDの値が参照可能になります。

発注先マスタ顧客IDの値を変数「顧客ID」の値で更新する処理を追加します。
テーブルデータの更新コマンドを追加し、以下の通りに設定します。

  • 「処理の種類」を「更新」に設定
  • 「対象テーブル」を「発注先マスタ」に設定
  • 「フィールド」に「顧客ID」を選択
    値に変数の設定で作成した「顧客ID」を設定
  • 「対象条件」の「新しい条件」をクリックして追加
    「フィールド」に「発注先ID」、条件に「=(等しい)」、「値」にコマンドパラメーターの「発注先ID」を設定

3.サーバーサイドコマンドの呼び出し処理の作成

作成したサーバーサイドコマンドを実装するため、発注マスタ登録ページを開きます。
ページには新規登録ボタンが配置してあります。
新規登録ボタンを選択した状態で右ペインのコマンドを開き、ポップアップウィンドウの終了の上に新しいコマンドを作成します。
コマンドのサーバーサイドコマンドの呼び出しを追加し、以下のように設定します。

  • 「サーバーサイドコマンド」に「顧客マスタ新規登録」を設定
  • パラメーター名「発注先ID」の値に「=F4」を設定
  • パラメーター名「顧客名」の値に「=F6」を設定

4.デバッグを実行

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

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

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

作成したページがブラウザで表示されます。
「発注先登録」ボタンを押下し、ポップアップ画面からデータの新規登録を行います。
「ページの再読み込み」を押下すると、登録したデータが発注先マスタ顧客マスタ両方のリストビューに追加されています。
また、双方のテーブルで追加されたレコードの顧客IDの値が一致していることも確認できます。

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

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

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

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

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

CTR IMG