今回は、あるシステムの1機能として実現した、ソリューションをご紹介致します。 対象の業務は、予算管理です。お客様は「予算担当部署」の方であり、その部署の業務軽減が主なご依頼でした。
ソシューション実施前の業務フローは以下の通りです。経営層への提出後、承認が得られるまでこの工程を3~4回繰り返します。
「予算担当部署」と言っても、それだけを業務として行っている訳ではなく、それ以外の業務も行っています。 今回ご提供したシステムの最終型は、「予算担当業務」のシステム化でしたが、今回のソリューションのご紹介は、このシステムの中から1番目の「各部署から送られてきた予算を、メールで受信」をご紹介します。
エクセルへのこだわり実績対比等の照会は、インターフェイスをブラウザで実現していましたので今回の予算登録においても、同様にブラウザを使用する予定でした。しかし、実際に予算作成をしている各部署の意見を伺うと、Excel の方が良いとの見解をいただきました。お客様が Excel にこだわる理由は、現在の「予算作成から提出」の手順にありました。
当該システムを構築するにあたり、「予算担当部署以外の業務へ与える影響を最小限に抑える」事が大切になります(どのシステムも同じですが)。そこで当該システムにおいて、各部署が行う事は、上記の3番目「専用のフォーマットへカットアンドペーストし提出する」に相当するものとしました。但し、システムとして必要となる科目コード等のコード類は入力していただける事になりました。
機能要件以上の要望を踏まえ、システム担当部署と相談した結果、以下の様にシステム構築する事になりました。
上記の機能要件のうち、1番目から4番目は「 PHPによるWeb-EDI 」と同様の仕組みを、5番目は「IBM i (AS/400) RPGⅣ(ILE RPG)登場・・・そして完成へ」でご紹介した「VB アプリケーションの自動配布」の仕組みを使用します。それに加え、今回はもう一歩機能改善を致しました。
エクセルを使う利点は大量のデータを入力する事が容易になる事にあります。しかし、大量に入力可能であるが為に、「科目コード」を始めとするコード系の存在チェックが問題となります。コード系の存在チェックや名称取得は、サーバーへのアクセスが必要となり、ODBC等を使用したとしても、セルへ入力する度サーバーへのアクセスを行うと、待ち時間が発生し、入力の妨げになる場合があります。入力完了後最後に一括でチェックを行う場合は、データが大量なので時間がかかります。
当時 ajax が世間で騒がれ始めており、ブラウザの案件には一部に ajax を実装した経験もありました。そのため ajax の様に非同期でサーバーへのチェックができれば、入力の妨げにはならない事を思いつきました。ajax を実現するためには、サーバーへの要求送信後、一旦実行は終了し onreadystatechange 等のイベントによりサーバーからの応答を察知できれば良い訳です。調査の結果、MSXML はこのイベントを持っている事が解りました。早速実装し、お客様にお見せすると、大変気に入っていただけました。そこで、今回のエクセルに、この機能を実装する事と致しました。結果、エクセルの1シートをブラウザの画面に見立て、画面遷移をする事なく、データのメンテナンスを可能とする事ができました。コードチェック等のサーバーへアクセスが必要なチェックも、非同期で行うためお客様のストレスを軽減できました。(図 参照)
この機能の実装により、カットアンドペースによるデータの貼りつけを実現しつつ、最低限必要なコード入力もお客様のストレスをさほど増やす事なく、実現する事ができました。勿論、当該システム「予算担当部署」のシステム化も、問題なく実現できた事は言うまでもありません。
最後に、今回のタイトルにある「avax」は、私の造語で ajax が Asynchronous JavaScript? + XML なので、Asynchronous Visual Basic for Application + XML の略で「avax」(エイバックス)としています。
お客様からの要望を実現するため我々は様々な角度からソリューションをご提案させていただきます。 お一人で悩まずに我々に是非ご相談ください。