【C#】過ぎたるは及ばざるがごとし

情報化に対して,他業種より20年は遅れているうちの業界だが,ようやく,職場の名簿管理システムが電子化(まだ第二次試験導入の段階w)された。

しかし,非常に香ばしい仕様となっているため,業務改善にならず,むしろ業務改悪になってしまっている現状をなんとかするべく,ボランティア開発のまっただ中である。

先に述べておくと,この記事は愚痴の様相が強く,あまり技術的なことには突っ込んでいないため,あくまで自己満足記事である。現状の整理とストレスの発散を目的に記事にする。

職場の環境はイントラネットに接続されたWindowsネットワークログイン端末で,アプリケーションのインストール等はもちろん,ローカルに保存できるデータ量も微々たるものという非常に限られた環境下にある。

端末で利用できる一般的なアプリケーションはMicrosoft Office(Word, Excel, Access, PowerPoint)といくつかのフリーウェア(ドロー,ペイント,楽譜作成)程度。あとは,.NET Framework4.0とJava Runtime Environment 7くらい。

職場内の共有フォルダになんでもかんでも入れて情報共有を図り,かつ,セキュリティも確保(したつもり)という環境。会議のときなどは,約40人で一斉に共有フォルダからWordやExcelのファイルを開くという状況。その道の人からすればかなりお粗末な状況である。

そんな中,上の組織がかなり力を入れて作った名簿管理システムがかなりお粗末で,アウトプットのテンプレートがほぼ1パターン(ほぼの意味は後述)で,現場利用したいテンプレートは,その出力ファイルから手作業でコピペをするという,これまたなんとも香ばしい仕様。

人的ミスを多分に含むオペレーションで,また,出力されたデータもマクロや参照リンク等が中途半端に埋め込まれており,そのファイル自体は弄るのにちょっとやっかいなものになっている。一体何が便利になったのかさっぱりわからないシステムの導入で上は満足しているんだろうな。

悪しき習慣というか,日本らしいというか・・・

いずれにせよ,愚直にこんなものを手作業でオペレーションし続けていても誰も特をしないので,せめて,出力データを放り込むだけでよしなに処理してくれるプログラムを書こうと思ったわけだが(本業が忙しすぎて,ほとんど余裕ないので,苦痛でしかない),先述の通り,基本的に管理者権限のいるインストールは職場の端末には許されていない。そのため,インストーラ不要のスタンドアロン形式で,配布できる実行ファイルを用意するしかない。

また,基本的に業界の特性上,パソコン操作には不慣れな人が大半である職場において,参照ライブラリファイルなどが必要なものは煩雑であるし,職場内サーバーにはSQL Serverひとつ入っていないというつらさ(データベースはAccessを利用するしかないので,どうあがいても脆弱性はかなり・・・しかし,WordやExcelファイルを直接40人で参照するよりはマシ)。

そのため,どのようなアプリケーション設計にするかを思案したところ,以下のようにしようと考えている。

■二度手間。

最初は,都度,出力ファイルを読み込んで,任意のテンプレートに情報を当てはめ直したxlsファイルを出力する方針で設計した。しかし,名簿データの利用用途があまりにも多いうちの職場では出力パターンが非常に多いため,1回の読込で,全種類出力するわけにもいかず,かといって,その都度読込をするのも煩わしい。また,ユーザー名のあて字などの都合上,アドホックな調整を加えるなどの必要性もあるが,それを毎度行うのも面倒くさい。しかも,そのアドホックな調整を加えた人以外が,同じユーザーのデータを利用したいときに加えるべきアドホックな調整を知らなければ整合性がとれないため,そこに不具合が生じる。

そのため,オンラインから引っ張ってきた出力データを元に,ローカル(職場内)でもう一度データベース化し,それを利用して名簿出力を行う方針にする。

つまり,結局,職場内にもう一つ名簿管理ソフトを挟むということだ。なんとも無駄の大きな車輪の再発明にも等しい行為だが,情報化をきちんと行い,業務改善を図るのであれば,必要であるし,こうでもしないと上は絶対に現場を理解できない。(将来的に,自分がそういうことを主導できる立場になれればいいんだけどな。少なくとも組織の体質上あと十年は無理。)

というわけで,なんとも無駄でモチベーションの上がらない開発を行っている。

本当はExcel Add-Inを作って,さくっと処理してしまおうと思ったんだけど,VSTOのインストールさえ,上にかけあったけど,断られる始末。

開発はC#.NETで,.NET framework4.0。ライブラリにはNPOIを使って,出力ファイルは1つのexeにコンバージョンして配布することにした。現在,開発バージョン0.5.5といったところ。

 

GW中に完成させたいなあ・・・

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください