dbSheetClientを利用したDX推進(開発デモ)
今回のコラムから、dbSheetClientについて、より詳しく解説していきます。
(1)dbSheetClientとは
dbSheetClientは株式会社ニューコム社より2007年にdbSheetClientV2がリリースされましたが、2023年5月時点で、dbSheetClient2022(V10.2.1.0)となっています。
すでに、600社以上の企業様で運用されており、ホームページでは、ERPの周辺業務としての予実・見込管理、生産管理、工程管理、品質管理等の多数の事例が掲載されています。
詳しくは、下記のニューコム社のサイトと、動画をご覧ください。
●ユーザー事例
https://www.newcom07.jp/dbsheetclient/usrvoice/
●紹介動画
(2)dbSheetClientの特徴
①Excelをそのまま利用できるWebアプリ開発ツール
最大の特徴としては、Excelをそのまま実行画面として表示し、dbSheetClientの実行版、開発版(外部アプリ)から、Excelを制御して、インターネット上のWebサーバー経由で、汎用データーベースのデーターに対して、読み書きを行うことが可能です。
Excelをそのまま利用することから、Excelの編集機能、数式や関数、オートフィルター、ピボットテーブル、複数シート間でのデーター参照、VBAといった機能をそのまま利用することが可能なため、Excelで構築した業務システムで作成したブックを最大限に利用できることが、他社製品にはない特徴となっています。
②Excelの全バージョンに対応
Excel自体、今日に至るまで、Excel97から、Excel2000、Excel2003、Excel2007、Excel2010、Excel2013、Excel2016、Excel2019、Office365、Microsof365と進化してきていますが、そのすべてのバージョンに、dbSheetClientは対応してきています。
日本のモノづくりの現場では、古くから、QC(品質管理)サークル活動が盛んにおこなわれてきており、その推進役である日科技連で紹介されているQC7つ道具として、Excelを利用してきた製造現場はかなり多いと思います。
https://www.juse.or.jp/service_solution/qc_circle/index.html
そのため、日本の多くの企業で、QC活動の一環として、業務ノウハウの詰まった入力フォームや帳票フォーム、分析資料がExcelで作成され、今もなお、現場ではExcelが利用され続けています。
③汎用DBを直接制御できるWebアプリ開発ツール
dbSheetClientは、ユーザー用のDBとして、既存の汎用データーベース(MS SQLSERVER、ORACLE、ODBC等)をネーティブのSQL文を利用して、データーの読み込み、書き込みをおこなうことができます。
前回のコラムでも記載しましたが、多くのクラウド型ノーコード・ローコード開発ツールが『データーの構造や仕様が外部公開されていない独自のクローズドなデーターベース』を利用しています。
DXがデジタル・トランスメーションの略語であることからもわかるように、DX推進のためには、「デジタルデーターの蓄積と見える化」「様々なシステムのデーターの相互連携・相互利用」が重要ですが、クローズドな独自のデーターベースでは、せっかく蓄積したデーターも、結局、ブラックボックス化してしまい、将来、自由に再利用できなくなるリスクが発生する可能性があります。
データーのリアルタイムな集計作業や更新、他システムとの同期、データーの二重入力の手間の削減が、今後数年後、5年後、10年後も継続して可能かどうかを事前によく検討しておく必要があります。
④複数のレコードを編集して排他制御による一括更新が可能
Excelでは複数レコードの編集や集計は当たり前におこなわれますが、dbSheetClientではExcel上に表示された複数のレコードを編集し、データーベースに対して一括してデーターを更新することができます。
通常、SQL文を利用してデーターを更新するためには、Insert、Delete、Update句をSQL文として記述する必要がありますが、dbSheetClientでは、これらデーター更新用のSQL文を一切書かずに、しかもトランザクション処理、排他制御まで行ってくれます。
この、複数レコードの排他制御による一括更新機能が極めて特徴のあるdbSheetClientの優れた機能となっています。
⑤スマホやタブレットのブラウザで動作するWebアプリ作成も可能
dbSheetClient2020(V9)までの弱点の一つが、Excelを利用するがゆえに、ブラウザのみで利用できる業務システムの作成ができなかったことでしたが、dbSheetClient2022(V10.0.1.0)からは、WebAPI+WebPortalというオプション製品がリリースされ、ブラウザのみで利用可能なExcelを利用しない簡単な業務アプリを自動作成できるように機能強化されています。
(3)dbSheetClientでの開発スタイル
①ウォーターフォール型の開発スタイルからアジャイル型開発スタイルへの転換
従来のウォーターフォール型の開発スタイルでは、事前にすべての要件を定義して、詳細設計までおこなってからコーディング作業に入る手法を取りますが、そうなると、完成までに期間がかかり、急速な外部環境の変化についていくことができなくなります。
経済産業省のレポートP8~9にも、我が国と諸外国との違いについて述べられており、ウォーターフォール型の開発スタイルの問題点について以下のように記載されています。
https://www.meti.go.jp/shingikai/mono_info_service/digital_transformation/pdf/20180907_03.pdf
●ユーザ企業とベンダー企業の関係がレガシー化の一因
我が国では、ユーザ企業よりもベンダー企業の方に IT エンジニアの多くが所属している。
ユーザ企業のためにベンダー企業が IT システムを開発し、納入する受託開発構造であるため、ユーザ企業の内部に情報システムに関するノウハウが蓄積しにくい。
諸外国のようにユーザ企業が社内に IT エンジニアを抱えて、開発を主導している場合は、高頻度でかつ小規模に(細かく)プログラムをメンテナンスしつづける形態が一般的になる。
短期間でメンテナンスを行い続ければ、結果的にブラックボックス化は起こりにくい。個人が持つノウハウもメンテナンスによって他のエンジニアに伝承しやすくなる。
しかし、我が国のように外部のベンダー企業に開発を委託することが主となっている場合は、メンテナンスをある程度の間隔でまとめて行っていくことになり、ベンダー企業側にノウハウが蓄積される。この形態では、要求仕様を整理・調達し、契約を結び、ウォーターフォール型開発を行うので時間もかかる。
●ベンダー企業の目指すべき姿
同レポートのP41 3.4.2 の中では、ウォーターフォール型の開発スタイルからアジャイル型開発スタイルへの転換が求められています。
「dbSheetClient」は、アジャイル型開発を得意としていますので、現在使用中のExcelブックを利用しながら、短期間でプロトタイプを作成し、ユーザー部門と動作を確認しながら、段階的に要件を実装しながら完成形に近づけていくことが可能です。
また、変化の激しい時代、業務内容の変化や拡大に伴い、新たな情報をテーブルに追加して機能を追加したり、継続的な改善が可能になります。
②ユーザー部門とシステム開発部門の役割分担
dbSheetClientは、Webアプリ開発ツールでありながら、Excelは入力画面としても帳票としてもそのまま利用でき、VBAも実行させることが可能です。
つまり、入力画面、帳票はExcelがそのまま利用できるため、ユーザー部門が入力画面、帳票の設計と作成を直接担当することができます。
そうすることで、新たな情報がテーブルに追加された場合にでも、入力画面や帳票レイアウトの、どこをどのように直せばよいかは、ユーザー部門のほうがシステム開発担当者以上に詳しいことになります。
また、マスターテーブルのもとになる一覧データーのシートを準備しておけば、IOTG Plusというウィザード形式の機能を利用して、10分程度でデーターベース用のテーブルが作成でき、マスタメンテナンスプログラムも同時に自動作成することが可能です。
つまり、Excelを最大限に利用することで、最初からユーザー部門が画面・帳票・データーベースの設計と開発の作業に関わり、内製化することが可能で、DX推進をより速く効率的に進めることが可能になります。
(4)dbSheetClientでの開発手順のまとめ
dbSheetClientでの開発手順をざっくりまとめると以下のようになります。
① 比較的簡単なテーマを選定する
Excelで実際に運用している業務の中から、複数人数で利用している比較的簡単なテーマを選定します。
特に、管理したいレコード件数が10万件以上、一覧形式で大量のレコードを同時に編集する業務に適しています。
② マスター化したいデーターを整理して、マスターテーブル、トランザクションテーブルを作成する
Excelでは、特に主キー(レコードを特定することのできるユニークキー)などを用意しなくても、テーブル形式の表を自由に作成することができますが、データーの再利用を行うためには、データーベースで利用できるように、主キーの設定とマスターテーブルの作成が必要となります。
例えば、社員マスターの場合、社員IDが主キーになりますが、社員の家族テーブルを別に作る必要がある場合には、社員IDのほかに、家族番号も必要になってきます。
また、例えば取引先一覧表の場合、Excelではブックやシート間で、取引先ID、取引先CD、取引先番号 のように同じ項目名を別名で設定していることがよくあります。また、部門が異なると、管理項目が微妙に異なった取引先マスターを作成して管理していることもあるので、マスターテーブル化するときには、統一した項目名にしたり、全部門で利用できる得意先マスターにしておいたほうが、メンテナンス性が良くなります。
③ 現在利用しているExcelシートのフォームをベースにして、データーベースを利用したExcelフォームに改良する。
④ プロトタイプを作成し、ユーザー部門と動作を確認しながら、アジャイル型開発スタイルで段階的に、システムをブラッシュアップしていく。
(5)補足事項:データーベースの概念とSQL文の学習について
①VLOOKUP関数とSELECT句の共通性
dbSheetClientの良さを最大限に利用するためには、リレーショナルデーターベースの概念と、リレーショナルデーターベースから自由にデーターを取得するためのSQL 文を学び、ServerやOracleといった汎用データーベースの使い方をマスターする必要があります。
例えば、Excelの場合には、テーブルからキーに対応するデーターを抜き出す際によく使われる関数に、
目的とする値=VLOOKUP(検索値,範囲,列番号,検索方法)
がありますが、これに相当するSQL文は
SELECT 項目リスト FROM テーブル名 WHERE 項目名=値
となり、VLOOKUPと対比すると
SELECT 項目リスト FROM 範囲 WHERE 項目名=検索値
に表現でき、VLOOKUPで行いたい内容は、ほとんど、SQL文のSELECT文で実現可能です。
最も、大きな違いとして、VLOOKUPで参照できるテーブルのレコード数の最大は、Excelシート上に展開可能な100万行が限界ですが、SQL文の場合には、テーブル内のデーター件数は、100万件でも1000万件でも可能です。
つまり、100万件以下のレコード件数のときは、Excelだけでも可能ですが、それを超える場合には、データーベースを利用してSQL文で行ったほうが高速に処理することができます。
②最初に学習したいSQL文の構文
更新系のInsert、Update、Deleteなどは、dbSheetClient側で自動的に処理してくれますので、最初は、データー照会を効率よく行うために、SELECT、WHERE、ORDER BY、GROUP BY、CASE句、内部結合・外部結合、サブクエリー レベルの学習だけで十分です。
③データーベースの最適化について
データーベースの設計というと、テーブルの最適化の重要性がよく言われますが、現在のPCやデーターベースは性能がアップしており、それほど、厳格に最適化を行わなくても、dbSheetClientを利用する場合には、特に問題は発生しません。
逆に、最適化しすぎるとSQL文が複雑になりすぎて、メンテナンス性が悪くなるケースがありますので、最初は、シンプルなテーブル構成にしておいた方が、短期間でシステム化が可能になります。
次回は、具体的なテーマを設定して、より詳しく開発の手順を説明してみたいと思います。
参考になる記事
経済産業省 中小企業向け補助金・支援ポータル ミラサポplus中小企業向け補助金・総合支援サイト
「デジタル・トランスフォーメーション」DXとは何か? IT化とはどこが違うのか?
https://mirasapo-plus.go.jp/hint/15869/