マイテックのマイツール
はじめに プロ初級編 プロ中級編 プロ上級編 あとがき
            
            会社でも自宅でも仕事が出来るシステムとは?

ある企業の社長から、「うちの会社は残業を極力させない方針です。それは、だらだらと仕事をすることは、決して良くないと思っているからです。」と言われました。それで、「でも、そうしますと社長が真っ先に帰らないと、管理職や社員は帰りにくいでしょう?」と、言いましたら、「そうですね。皆となるべく一緒に帰ります。でも、それだと困るんです。」と、言われました。

「何が困るんですか?」と聞きますと、「会社では、来客やその他実務の指示などで多忙になり、コンピュータに向かうのがどうしても、夜になる・・・自宅に帰ってしまうと会社のコンピュータを使っての仕事ができない。」と社長は言われる。

「でも、ご自宅でもコンピュータはおありでしょう?」と、問いただす。すると、「もちろん、でも、読み出しや書き込みもあるから、会社のデスクタイプのPCと、自宅のPC間ででは、変更データ、削除データ、新規データをそれぞれ使うたびに常に更新させる必要があるから・・・やっかいだ!そのうち、どっちらのデータが新しいのか?わからなくなり、誤って消してしまうこともある」

           USBメモリーを使った双方向性のデータベースコントロール機能 

こうした課題を、マイツールで解決しました。仕組みは、マイツールで両方のPCに同じオペレーション仕様を構築して、まず、会社側のPCに専用のUSBメモリーを差し込んで、もし、情報が更新されていれば、自動的に、最初にデータベースを更新してから使うようにします。作業が終了して、データベースが更新されていれば、自動的に会社側のPCデータをUSBに上書きさせます。自宅へ帰るときは、そのUSBメモリーを持って帰って、自宅のPCにつなげば、同じように動作するので、常に両者のPC上のデータベースは、同期が取れることになります。

           時間を争う作業場でのPCトラブルの回避とは?

ある外食産業で、電話注文が過密になるお昼の時間帯があります。そこで起ったトラブルで解決策を依頼されました。それは、受注管理システムが入っているPCが、一番忙しい昼前に不具合を起こして、その結果、受注明細や、発行伝票、配達伝票、生産指示、などなどが入出力出来なくなる事故があったのです。

この場合、普通ですと市販ソフトの場合、バックアップメモリーをPC外に設けて、予備機のPCにデータを移し変えてやればよさそうなものですが、現場の方はまったくの素人ですからまごつきます。

依頼があったところは業務専門のソフト会社が開発したものでしたが、見るとあまり大した機能も付いていません。それと、データ入力も効率的でないとのことでした。つまり、コードを入れて数量を入れる作業が電話が頻繁になると、追いつかなくなるそうです。

           双方向性のソフトウェアの開発で問題解決!

まず、PCは故障する物であるとの前提に立って、万一故障しても業務が連続して継続できるという条件設定を行いました。それには、二台のPCをノート型にして(停電にも対応できるので) それを直接LANケーブルで繋ぐことにしました。これでまず、2台のPC間でデータのやり取りができます。

そして、主と従の関係機能を有したソフトウェアをマイツールで開発しました。それを双方のPCに移植して、二台のPCをマスターとスレーブにマウスで設定して使います。これでどちらでも受注入力ができますので忙しいときには二台での入力が可能となります。そして万一、マスター側のPCが故障した場合は、常にお互いがデータに関しては、直前まで同期を取っていますから、スレーブ側をマスターに切り替えて、片肺飛行ができます。つまり、スレーブのPCをマスターに切り替えればよいのです。そして、仕事が一息ついたときに、トラブル解決を開発元に依頼することになります。

           データ入力が多い業務先は、帳票直接入力&コード入力併用で!

データ入力において、帳票入力のように視覚的な入力と、コードを入れて顧客名あるいは、品名を呼び出して入力する、この二種類がありますが、前者はマウスで入力したいところをクリックし、後はセルにデータを打ち込むことになりますが、後者は事前にコードと品名、或いは顧客名を事前に摑んでおくか、別画面で探せるようにしておく必要があります。

前者より、後者の方がオートを使っている実感もあり、信頼できる入力と思われがちですが、操作の面では前者の方が便利です。しかし、画面に事前に入力すべき最低の情報が入っていませんと、入力できません。

つまり、事前に必ず注文してくる顧客がわかっていれば、前者の帳票入力で対応でき、今日、注文があるのかすらわからない、不確定顧客に対しては、後者のコード入力の方が便利です。つまり、注文が来るのか来ないのかわからない顧客名を帳票に並べてしまうと、膨大になって、上得意先の顧客を帳票の中から見つけるのが大変だからです。

そこで、マイツールならば、こうした二段構えのシステムを走らせることが、カンタンにできます。PC上に画面に映る程度の帳票ページ(何枚でも構いません)を設定して、上得意先の顧客から注文があれば、画面上でそこのセルをクリックすればセル入力できますし、そうでなければ参照画面をクリックしてコードを調べて直接コード入力も可能です。(もちろん、マイツールでそうしたプログラムを構築した場合の話です。マイツールには同時にそうしたことを実行する命令はありません)

よつて、双方向性ソフトウェアと二段構えの入力システムをマイツールで構築することで、多忙な仕事場でのトラブル対策を完了しました。(もちろん、二台ともさらにバックアップUSBを念のため設定しているのは言うまでもありません)

           複数のメインプログラムをマイツール上で活躍させる!

プログラムと一口にいっても、色々ですね。でも、例えば、製品在庫管理、部品在庫管理、受注生産管理、特注生産管理などのプログラムは、基本的に独立したものです。ただし、お互いの情報交換としては、CSV形式や、MYFILE、FILEXなどで繋がっていることはあります。

それで、マイツールが初めての方は、マイツールの立ち上げアイコンからは、ひとつのメインプログラムしか動かせないのでは?と、思われがちですが、そんなことはありません。複数のメインプログラムを最初にマイツールを起動した状態で、切り替えることがカンタンにできます。もちろん、そのメインプログラムごとに、プルダウンメニューも同時に切り替えができますから、瞬時、違った仕事に移行できます。

           複数のマイツールをPC上に載せられるのか?

また、マイツール本体をPCの(C:)上に複数個、載せることも可能ですが、複数のマイツール本体を切り替えるのは手動で行う必要があります。これが、ボタンひとつで自動で替えれれば本当に便利なのですが、それは次世代のマイツールで実現できればと思います。

                       マイツールのデータページをPDFのブック形式にできるのか?

これは、可能です。但しマイツールに専用ソフトをアドインさせる必要があります。アドビー社のPDFは、マイツールのデータ送信に対して、自動でブックが作れるようには対応できていません。マニュアル操作が必要となります。また、アドビー社のアクロバットPDFは、機能が多すぎて、動作が重く、専用業務には不向きです。したがって、マイテック社では海外メーカーの業務専用PDFソフトをライセンス契約で結び、マイツールとの連繋を実現しています。

                       マイツールを他のソフトにアドインすることが出来るのか?

技術的には可能ですが、他のソフトからマイツールを開いても、結局マイツール内のメインソフトを走らせるには、やはり、操作が要りますから、あまり意味のないことです。他のソフトとの連繋のときは、常にデータとのやり取りの場合が主ですから、それであれば、ファイルの共有によるネットワーク上のやりとりとかいった方式で十分だと思います。

         ネットワーク上共有ファイルへの書き込みはできるのか?

データベースにおける書き込みで問題になるのが、他者との書き込みのぶつかり合いが直近な時刻にありますと、最後に上書きされたものが結果となり、直前のデータが消されてしまうことが起きます。これは、マイツールに限らず、そうならないための処置が、例えばSQLサーバーには機能としてついております。

つまり、使用中のファイルにロックを掛ける機能があればよいのですが、残念ながらマイツールではWIndowsXPになってからは、この命令語が使えなくなりました。しかし、マイツールでのプログラムでロック機能モジュールプログラムを構成すればよいことで、なんら問題はありません。

もし、他のソフトウェアと共有ファイル書き込みを連繋して行う場合は、相手にも同様のロック機能プログラムを構築してもらう必要があります。これは、カンタンなプログラムですから、すぐにやってくれるはずです。

         パスの設定は、プログラム上にはしないこと!

上級を目指される方にとっては、パスという用語は、ごく常識な用語ですが、改めてまだピンと来ない方に、ご説明しますと、パスは郵便物にたとえて言いうと、住所みたいなものです。(C:)は、ハードディスクの中では、日本国としましょう。そしてあとのつなぎを"\"を使ってみますと、\福岡県\福津市\光陽台と、続いて行きます。つまり、PC上のどこにファイルがあるのか?そして、最後のところが、ファイル名というわけです。これが、外部ネットワーク上であれば、\\東芝PCサーバー\C\MYFILE\顧客.csvといった具合になります。他国ではバックスラッシュ"/"の逆向き文字で表記されます。

そこで、大切なことは、こうしたパスをプログラム上に書き込まないことです。それは何故かといいますと、プログラムに書き込んだら、それを変更するときはプログラムの開発者だけにしか変更が出来ないからです。従って、パスは帳票形式のファイルに書き込むようにして、その帳票をプルダウンメニューから、呼び出すことで誰でもカンタンに変更ができるようにすべきです。パスの追加も同じように更新できると大変便利です。

そうすることで、逆にプログラム上のどこに書いたかを探す手間も省けますし、PCの引越しのときもカンタンに設定をし直せます。自分がいないと困るようなシステムづくりは邪道です。



                   距離の離れたマイツール上のトラブルレスキューは?

マイツールで開発したアプリケーションソフトが問題を起こしているとき、まず電話が掛かってきますと、何が原因か?を探ることが大事なのは当たり前の話です。

また、クライアントは、トラブルで血迷っている場合が多々あります。たとえば、マイツールで作ったアプリケーションソフトがおかしいと決めつけてきたり、果てはマイツール本体が、やはり古いフリーウェアバージョンでしかも、お金がただのソースコードなので新しいWindowsには対応できていないのでは?といったおろかな考えを持って、「どうかしろ!」と言う態度で迫ります。

そのときは、冷静に!

昔々、通信機器設計の神様が「電気は正直だ!」といった言葉どおり、電気は正直なのです。つまり、コンピュータは正直なのです。間違えているのは人間です。

トラブルのすべては人によるものなのです。それが、相手か?、第三者か?それとも自分なのか?このいずれかなのです。比較的多いのが、相手で、その次が自分で、最後に第三者であるパターンが良くあるパターンです。

そこで、入力データの問題なのか?開発したアプリケーションソフトにバグがあるのか?それともマイツール自体がなんらかの障害を受けてしまったのかは?やっかいなトラブルのときは現場に行ってみる必要があります。

ひとついえることは、マイツールは幅広いWinのOSバージョンに対して他のVBなどと比較して比べ物にならないくらい安定したソフトなのです。だから、業務に適しているのです。

           シャトルを飛ばそう!

遠距離だと、ガソリン代が馬鹿にならない時代ですし、移動時間も無駄です。そして、瞬時に解決するには、PCメーカーがやる方式としてリモートアクセスというのがありますが、これには双方のブローバンドの通信速度が、ともに速くなくてはなりません。(光通信のレベル)それと、クライアントによっては、これを嫌がる場合があります。それは、企業秘密が漏洩する恐れがあるからです。

そこで、マイツールで、シャトルの設計を行います。そうしますと、シャトルを添付メールで送るだけで、 なんと、クライアントで起きているトラブルをこちら側で再現できるのです。すなはち、相手のトラブルに付随する環境をこちらで、ボタンひとつで一瞬のうちに構築できるのです。

あとは、解決のステップを踏んで何が原因なのか?調査して、もしそれがプログラムバグであれば、修復プログラムと必要とあれば関連ファイルもシャトルに積み込んで飛ばせば、相手の方でボタンひとつで修復が完了します。そして、クライアントに対しては修復に必要以外のものを企業外に持ち出さないということが明確化されていますから安心されます。

          マイツールだけでシステムづくりを依存してはいけません!

マイツールは、命令語がシンプルなのと、業務に最適な帳票形式でのプログラミング稼動が効率よくできていますから、業務ソフトの開発用にはもってこいなのですが、時と場合によっては、ExcelやVBA、VBなどの方が適している場合があります。そんなときはマイツールでなくてそちらを活用した方が、良いのは当たり前のことです。たとえば、対外的にプレゼンする資料のときは、Excelでビジュアルな表記とグラフで作成した方が良いですし、オートプログラムのシミュレーション結果を対外的にそれらを定期的に見せなければならないのであれば、フォントから罫線までを自動で仕上げてしまってEXcelシートに落としてしまうような、VBAのアドインツールで開発するのが効率的です。

マイツールを良く用いるせいか、VBAなどでプログラミングすると、いつの間にか対話形式ばかりで動くシステムにしてしまっていることがありますが、日常使い慣れて頻繁に稼動させるようなシステムには、対話形式は逆にまどろっこしいところがありますから、その点も、使う環境に対して設計することが大切です。

プロとして"出来るSE"をめざすには、ひとつのツールに固まらないないことです。

しかし、何度も申しますが、マイツールは、ソフトを開発する、日本で唯一生産性の高いツールであることは、事実です。それは使ってみてわかって頂きたいところです。

           クライアントの言い分を鵜呑みにしないこと!

ソフト開発を受けるときには、仕様をきちんと文面で交わしておく必要があります。特に、開発中にクライアントからの設変があったときは、きちんと文面に残しておく必要があります。

それらを怠ると、お互いの言い分が違った為に開発のやり直しや、大幅な変更を迫られたとき、責任が不明であると、どうしてもお客様の立場の方が上位になりますから、自分が正しくても泣きを見ることになります。それは、お互いに信頼関係にあってもきちんと押さえておくべきです。

そして、大切なことはクライアントの仕様が本当に、その現場で的確に活用できるシステムなのかを、きちんと検証してから掛かるべきです。そうでないとあとから、不具合を言っても、それはクライアントに対して追加のコストアップになれば、結局お互いの関係がギクシャクする要因にも繋がるからです。

クライアントは、開発者を信頼しているほど、その見識を当てにしていますから、たとえ結果が依頼者仕様の要因であっても、やはりお互いの関係が気まずくなるのは、経験上多々あることです。

もし、仕様に欠陥があってあるいは使い勝手の悪い場合、提案の仕様がコストの掛かるものであってもためらうことなく、きちんと説明すべきでしょう。

           開発直後のサポートについて

アプリケーションソフトを開発して引き渡した直後にトラブルの電話があった場合、使い勝手の問題、あるいはプログラムのバクかいずれにせよ、極力現場に駆けつけるよう心掛けることが大切です。人は意外と最初の印象がいつまでも焼きつくものです。

もし、先方の勘違い程度であれば先方は当方に対してすまない気持ちになりますし、もし、こちらの不手際であればすぐに対応したことで、経験上相手を怒らせることはないです。

           クライアントの言い分に耳を傾ける!

開発を終えて、システムを引き渡して数日後、「このメッセージの用語がわかりにくい!社員がわかる言葉にしてくれないですか?」と言われることが時々あります。

これは、システムをかっこよく表示したいために、メッセージや、コンピュータの質問文が、専門技術用語などで固められて、現場の人や、初めて操作する人には威圧感を与えるようです。

『これは、いけません。』、やはり誰が使うのか?を考えて開発すべきなのです。そうした要望はプログラマーにとっては、カンタンな変更ですから、その場で変更してあげるべきです。

           現地でのプログラム変更、追加、削除など更新した場合の注意!

これは、プロ中のプロがよくやることですが、開発後にプログラム変更が現地で必要なことがわかったとき、仕事を持ち帰らずに自信があるから現場で、さっとプログラムを書き換えて仕事を終わらせることがあります。しかしその更新をクライアントに実施しても、自分のPCにて更新するのを忘れてしまうことがあります。すると、後で元のままのプログラムで、クライアントからその後依頼があった変更分、或いは追加分を書き換えて、クライアントのシステムに上書きします。

すると、以前にに解決済みのトラブルがまた復活することに繋がります。

多忙なときは特に要注意です。プロ中のプロは、本当はこんなチョンボはしませんが・・・。


          マイツールを他のソフトでリモートする!

VBをプログラミングされている方は、Shell関数というのをご存知でしょう。これを使えば、VBをプログラミングすることで、マイツールを起動させることができます。そして、さらにSendKeysメソッドを使うと、アクティブなアプリケーションを、指定したキーコードを送信して操作することができます。

これは、具体的に何を意味するか?と言いますと、VBで書かれたプログラムの仕事中に、マイツールを起動させて、マイツールにある任意のオートプログラムを自由に走らせることが出来るのです。

そして、VBによるリモートでマイツールをマニュアル的な操作をすることも可能なのです。これは、業務における利便性を高め、マイツールが得意とする仕事をVBに代わってやってくれますから、生産性の良いシステム構築が生まれます。

マイツールを知らないVBプログラミングの方には、少しわかりにくい話ですが、マイツールを知っていてVBも勉強されている方にとっては、とても頼りになる工夫と言えます。たとえば、マイツールが得意なデータ処理モジュールを幾つか用意しておけば、必要なときにマイツールを呼び出してマイツールに仕事をさせて、最後の仕上げはVBで終わらせるといった便利な使い方が出来るのです。



\