複数のテーブルを1つのコマンドで一括更新する

活用編 コマンド

Forguncyではコマンドを使って、テーブルデータの更新をすることができます。
デフォルトでは1つのコマンドにつき1つのテーブルを更新する設定になっていますが、実は複数のテーブルを指定することができます。
この方法で複数テーブルの一括更新を実装する場合、トランザクションが有効になるためデータの不整合の防止も可能です。

今回は営業用の日報システムで「日報データ」と「営業案件の進捗状況」を、それぞれのテーブルに一括で更新する方法について解説します。

 

プロジェクトファイル
(作成バージョン:8.0.6.0)
bulk-update_before.fgcp 
bulk-update_after.fgcp(実装済みプロジェクトファイル)

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

処理の実装を始める前に、サンプルプロジェクトファイルの構成を確認します。

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

プロジェクトには「営業案件リスト」と「営業活動履歴」という2つのテーブルがあります。
ユーザーがこのアプリケーションを使って営業日報を作成すると、そのデータは「営業活動履歴」テーブルに新規登録されます。
それと同時に、日報に入力した案件の確度と最終コンタクト日のデータを用いて「営業案件リスト」の該当案件レコードが更新される処理を実装していきます。

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

プロジェクトには、「営業メニュー」「営業案件一覧」「営業日報一覧」「営業日報」の4つのページが存在します。
各ページの概要は以下のテーブルの通りです。

ページ名概要
営業メニューアプリケーションのスタートページ
「営業案件一覧」ページと「営業日報一覧」ページに遷移可能
営業案件一覧営業案件リストテーブルのデータを一覧表示を行う
営業日報一覧営業活動履歴テーブルのデータを一覧表示を行う
「営業日報」ページをポップアップ形式で表示可能
営業日報日報データの新規登録・登録済みデータの表示を行う
営業日報一覧のどのボタンから遷移したかで登録/表示の役割が変わる
登録時は営業活動履歴テーブル・営業案件リストテーブルに対してデータ更新を行う

この時点では必須項目の入力チェックと、データ更新後に表示されるポップアップメッセージしか実装されていません。

2.データの更新コマンドの実装

「営業日報」ページでデータの登録ができるよう、コマンドを実装します。

手順2-1.条件分岐コマンドの確認

「営業日報」ページ下部の「登録」ボタンセルを選択した状態ます。
その状態で、右ペインのセル型タブから「コマンド」のハイパーリンクをクリックします。

開いたコマンドウィンドウには、「条件分岐」コマンドが既に設定されています。
ここの条件は、「商談メモ欄以外に未入力の項目があるかどうか」で分岐します。
未入力項目があった場合には、If側が下記のように動作します。

 1.エラーメッセージが表示される
 2.処理を強制終了する(データ更新処理は動かない)

テーブルデータの更新は未入力項目が無い場合、つまりElseの条件に当てはまる場合に動くように設定します。

手順2-2.変数の設定

「営業日報」ページの顧客名と案件名の欄に連結されているフィールドはそれぞれ「顧客番号」と「案件番号」フィールドです。
そのため、このページには顧客名と案件名のデータがありません。
これらのデータはマスタ的な役割をしている「営業案件リスト」テーブルから、変数の設定コマンドを用いて取得します。
Else側の子コマンドである「メッセージの表示」の上に、「変数の設定」コマンドを2つ配置し以下のように設定します。

・1つ目の変数の設定コマンド

 

(共通)変数名企業名
変数値データベースのテーブルを参照
対象テーブル営業案件リスト
選択タブ
選択単一のフィールド
対象フィールド[顧客名]
クエリータブ
フィールド[顧客番号]
条件=(等しい)
=F7
先頭レコードタブ
取得する先頭レコードの数1

・2つ目の変数の設定コマンド

 

(共通)変数名案件名
変数値データベースのテーブルを参照
対象テーブル営業案件リスト
選択タブ
選択単一のフィールド
対象フィールド[案件名]
クエリータブ
フィールド[案件番号]
条件=(等しい)
=F9
先頭レコードタブ
取得する先頭レコードの数1

手順2-3.テーブルデータの更新コマンドの設定

「変数の設定」コマンドの下に「テーブルデータの更新」コマンドを追加します。

手順2-3-1.トランザクションの設定

初期状態では対象テーブルはを1つしか指定することしかできません。
これを変更するには、「トランザクションを有効にする」ハイパーリンクを押下します。

設定が有効になると、画面が下図のように変わります。

手順2-3-2.新規登録コマンドの設定

「営業活動履歴」テーブルにデータを新規登録するため、以下のように設定します。

 

処理の種類追加
対象テーブル営業活動履歴
フィールドと値
案件番号=F9
案件名=案件名
顧客名=F7
企業名=企業名
対応内容=F11
確度=F13
商談メモ=F15
対応日=F5
開始=V5
終了=AD5
対応者=F3

手順2-3-3.更新コマンドの設定

緑色の+ボタンを押下し、CRUDを行うテーブルの数を増やします。
「営業案件リスト」の更新用に、下記のように設定します。

 

処理の種類更新
対象テーブル営業案件リスト
フィールドと値
確度=F13
最終コンタクト日=F5
更新対象レコード特定レコード
条件
フィールド案件番号
条件=(等しい)
=F9

手順2-2-4.更新後の処理の設定

テーブルデータの更新後、「営業日報」ページのポップアップを閉じるコマンドを追加します。
Else側の「メッセージの表示」コマンドの下に「ポップアップウィンドウの終了」コマンドを追加します。
この時、忘れずに「親ページの連結データを最新の情報に更新する」にチェックを入れてください。

3.デバッグを実行

これでページが完成したので、プロジェクトをデバッグ実行します。

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

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

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

手順3-2.動作確認

「営業メニュー」ページから「営業日報一覧」ページに遷移します。
データ更新処理を行うには、「営業日報の新規作成」ボタンを押下しポップアップを開きます。

登録内容は自由に入力して構いませんが、以下に一例を示します。

 

担当者名久留一
対応日2023/04/12
開始10:00
終了12:00
顧客名ラディッシュネットソリューションズ
案件ラディッシュネットソリューションズ_PC入れ替え提案
対応内容商談
確度提案説明
商談メモヒアリング内容に基づき、プランの提案を実施。次回見積提示予定

入力後、登録ボタンを押下してポップアップを閉じます。

登録されたデータはそれぞれ「営業日報一覧」ページと「営業案件一覧」ページから確認できます。

・営業日報一覧ページ

・営業案件一覧ページ

4.Forguncyのリストビューについてもっと知る

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

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

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

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

CTR IMG