dbSheetClientを利用したDX推進(開発デモ)
前回のコラムでは、dbSheetClientを利用すると、汎用データーベース(SQL Server、Oracle、MySQL)でのテーブルの作成とテーブルメンテナンス機能を持つExcel版とブラウザ版のプログラムが10分足らずで簡単に作成できることを紹介しました。
今回は、dbSheetClientの開発手法についてより詳しく説明し、より高度なプログラムをどのように作成し、プログラムがどのように動作するのかについて紹介していきたいと思います。
(1)dbSheetClientで作成されるプログラム(プロジェクト)
①メニュー → ボタン → タスク(処理) の階層構造
dbSheetClientで作成されるプログラムのことを、dbSheetClientでは、プロジェクトと呼んでいます。
そして、このプロジェクトは、メニュー定義、ボタン定義、タスク定義、データーベース定義、ブック定義の5つの定義で作成されており、定義内容は、全て、データーベース用のテーブル形式で格納されます。
メニュー、ボタン、タスクの基本的な関係は以下のような階層構造となっています。
メニュー1
|_ボタン定義1
| |-ボタン1-タスク定義1
| |-ボタン2-タスク定義2
| :
| :
メニュー2
|_ボタン定義2
| |-ボタン3-タスク定義3
| |-ボタン4-タスク定義4
| :
: :
(dbSheetClientの階層構造)
②タスク(処理)はソースコードを書かずにタスクタイプの設定画面で定義する
dbSheetClientには、V10.2.1.0では、以下の105個のタスクタイプという、いわゆる関数(機能部品)が用意されており、タスクタイプ設定画面で、パラメータを指定することで一連の処理を実行することができます。
●10000台(15個):データーベース関連
10100:SQL実行、10200:テーブル更新、10301、10302:トランザクション開始・終了
13102:クロス集計 など
●20000台( 3個):入力関連:
20100:入力画面、20101:日付時刻入力画面、20102:カレンダー入力画面
●30000台( 5個):dbSheetClient設定関連
30100:サーバー接続設定、30101:プロジェクト実行設定、30103:Excel動作設定 など
●40000台(15個):処理制御関連
40100:サブタスク実行、40200:条件判定分岐、40300:変数演算
41101,41102:ループ開始・終了 など
●50000台(15個):Excel編集関連
50200:コピー、50300:クリア、51100:セル保護、52100:行列指定、52400:行列挿入
53200:オートフィルター など
●60000台(29個):Excel制御関連
60100:シート切替、60400:範囲取得、61101,61102:CSV入力・出力、61200:保存
61301:印刷、61600:マクロ起動 など
●70000台(11個):Excelオブジェクト関連
70101:図の挿入、70102:図のクリア、70201;イメージ保存、70202:イメージクリア
70301:オートシェイプの挿入 など
●780000台( 6個):ファイル操作関連
80100:ファイルアップロード、80200:ファイルダウンロード、81100:ファイル操作
82100:ログ情報書込 など
●790000台( 6個):外部操作関連
90100:ブラウザ表示、90200:外部アプリ起動、91100:メール送信 など
(タスクタイプ一覧表)
タスクタイプには、データーベース、Excel、各種ファイルに対しての処理を簡単に実装するための様々な処理が関数(機能部品)として用意されているため、VBAと同等の機能を、VBAでソースコードを書かなくても実現できることがお分かりいただけるかと思います。
そのため、フローチャートで手順書を書くようなイメージでタスクタイプを記述するだけで、VBAの大量のソースコードと同等レベルの処理を、圧倒的に少ないステップ数で実行させることが可能になっています。
例えば、前回のコラムで紹介したExcel版でのテーブルメンテナンス機能については、読込処理が7ステップ、更新処理は5ステップ、削除処理は6ステップ、保存処理、印刷処理がそれぞれ1ステップだけで設定することが可能です。
(タスク定義の設定内容)
したがって、ExcelのVBAでは、ソースコードを書く人によって、属人化の問題が発生していましたが、dbSheetClientでは、ステップ数が少なくて済むため、dbSheetClientの基本的な作法を理解していれば、誰が作成してもほぼ同様の処理手順になるため、メンテナンスもしやすく、属人化を防止することが可能です。
③プロジェクトの実行について
プロジェクトの実行は、コンパイル形式ではなく、主に5つの定義テーブルの内容をインタラクティブ的に解析して処理を実行していますので、VBAと同様に、デバッグ実行をおこないながら、ステップごとに実行させることができ、変更内容をすぐに確認することができます。
④デバッグ環境が充実
実行時のエラーの解析、ログの管理、プロジェクト世代間の差分抽出、プロジェクトのドキュメント自動作成機能などデバッグ環境が充実しています。
(2)プロジェクトの管理と公開
①プロジェクト定義とブックの管理
プロジェクト定義はサーバー内のデーターベースで一元管理されているため、実行ユーザーに対しては、最新のプロジェクトが常に自動配賦される仕組みが搭載されています。
また、プロジェクトで利用するExcelブックも、サーバー内の所定のフォルダーで管理されており、常に最新のブックがサーバーから実行ユーザーに自動配賦されるようになっています。
そのため、VBAマクロで実行する際に、古いブックを利用してシステムの整合性が取れなくなるといった問題は発生しません。
②バックエンドのプログラム開発は不要
サーバーサイドのバックエンドのプログラム開発は不要となっており、ブラウザ画面での簡単な設定だけで、アクセス管理、権限管理、ログ管理、データーベースとの連携(データーの取得、排他制御の更新処理、トランザクション処理など)が可能になっています。
③プロジェクトの公開は3ステップだけで完了
プロジェクトをユーザーに公開するためには、アプリケーションサーバー(DBSサーバー)を停止することなく、以下の3ステップだけで行うことができます。
1)プロジェクトを利用できるグループとユーザーを設定する
2)開発版からプロジェクト定義ファイルをアップロードする
3)開発版からプロジェクトで利用するExcelブックをアップロードする
(プロジェクトの公開手順と自動配賦)
以上で、dbSheetClientの開発手法についての説明を終わります。
なお、更に詳しいデモや事例紹介については、ニューコム社が毎月開催している無料のWebセミナーをご覧いただければと思います。
ニューコム社主催のWebセミナー