MIGARO.
TECHNICAL
REPORT
ミガロ.テクニカルレポートhttp://www.migaro.co.jp/
本社 〒556-0017 大阪市浪速区湊町2-1-57 難波サンケイビル 13F TEL:06(6631)8601 FAX:06(6631)8603 東京営業所 〒106-0041 東京都港区麻布台1-4-3 エグゼクティブタワー麻布台 11F TEL:03(5573)8601 FAX:03(5573)8602.
ミガロ. facebook ページ
http://www.facebook.com/migaro.co.jpMIGARO.
TECHNICAL
REPORT
ミガロ.テクニカルレポートNo.6
2013年秋
株式会社ミガロ.MIGARO.
TECHNICAL
REPORT
Migaro.Technical Report No.6 2013 年秋 ミガロ.テクニカルレポート 2013 年 11 月1日 初版発行 ◆発行 株式会社ミガロ. 〒 556-0017 大阪府大阪市浪速区湊町 2-1-57 難波サンケイビル 13F TEL:06(6631)8601 FAX:06(6631)8603 http://www.migaro.co.jp/ ◆発行人 上甲 將隆 ◆編集協力 アイマガジン株式会社 ◆デザインフォーマット 近江デザイン事務所 ©Migaro.Technical Report2013 本誌コンテンツの無断転載を禁じます 本誌に記載されている会社名、製品名、サービスなどは一般に各社の商標または 登録商標です。本誌では、TM、® マークは明記していません。 JC/400 [中級者向け] Delphi/400 [初級者向け] Delphi/400 [中級者向け] Delphi/400 [上級者向け] シルバー賞 【部門 2】 優秀賞 優秀賞 シルバー賞 シルバー賞 ゴールド賞 【部門 1】最優秀賞Migaro.Technical Report
ミガロ.テクニカルレポートC O N T E N T S
Migaro.TechnicalReport2013ミガロ.SE 論文/
ミガロ.テクニカルレポート
IBM WebFacing から JC/400 への移行・リニューアル手法
20
八木秀樹様●極東産機株式会社Delphi/400 と Delphi を利用した IBM i 資源の有効活用
24
小山祐二様●澁谷工業株式会社
Delphi/400 で CTI 開発および関連機能組み込み
12
仲井正人様●株式会社スマイル・ジャパン発注システムを VB から Delphi へ移植しリニューアル
30
川島寛様●株式会社タツミヤ5250 画面を使用せずに AS/400 スプールファイルをコントロールする
34
白井昌哉様●太陽セメント工業株式会社Delphi/400 を利用した 承認フロー導入による IT 内部統制構築
38
塚本圭一様●ライオン流通サービス株式会社FastReport を使用した帳票作成入門
42
尾崎浩司● RAD 事業部営業推進課Delphi/400 で開発する 64bit アプリケーション
52
吉原泰介● RAD 事業部技術支援課顧客サポートWeb コンポーネントのカスタマイズ入門
58
佐田雄一●システム事業部システム 1 課Indy を利用したメール送信機能開発
68
辻野健/前坂誠二●システム事業部システム 2 課Windows テキストファイル操作ノウハウ
78
小杉智昭●システム事業部プロジェクト推進室JC/400 Web アプリケーションのユーザー管理・メニュー管理活用術
86
吉原泰介/國元裕二● RAD 事業部技術支援課顧客サポート自社用開発フレームワークの構築
04
駒田純也様●ユサコ株式会社Migaro.TechnicalAward2013お客様受賞論文/
ミガロ.テクニカルアワード
目
次
ごあいさつ01
1
ごあいさつ
いつもミガロ. 製品をご愛用いただき誠にありがとうございます。 さて「ミガロ. 製品をご利用中の技術者の皆様に、日々の開発に少しでもお役に立つような技術情報をご 提供したい」という思いから 2008 年に創刊した『Migaro.Technical Report』は、このたび第 6 号を無事 に発刊する運びとなりました。これもひとえに、ご多忙中にもかかわらず『Migaro.Technical Award(お 客様論文)』にご寄稿いただいた多くのお客様、ならびに『Migaro.Technical Report』に対して貴重なご 意見・ご要望をお寄せ下さった皆様のご支援の賜物と、心より感謝をしております。 本 Report の創刊もつい昨日のことのように思い出されますが、2008 年は iPhone が日本で発売開始、ま た Android 搭載スマートフォンが世界で発売開始になった年でもあり、昨今のスマートデバイスの隆盛を 見るにつけ、着実に変化している時代に合わせて弊社も変化していかなければならないとの決意を新たに しております。 今回も従来と同様に、第 1 部は「Migaro.Technical Award 2013 お客様受賞論文」、第 2 部は「ミガロ . SE 論文」の 2 部構成としています。第 1 部の「Migaro.Technical Award」とは、日々アプリケーション の開発・保守に携わるエンジニアの方々の努力と創意工夫の成果を顕彰することを目的とし、「Delphi/400」 「JC/400」「Business4Mobile」などの弊社製品をご利用中のユーザー様を対象に実践レポート(論文)を公 募して厳正な審査・選考のうえ表彰する制度です。昨年に引き続き、従来のお客様論文にあたる「部門 1 」 と「業務課題を解決した開発技術・テクニック」を簡潔にまとめていただく「部門 2 」の 2 部門構成とい たしました。 今回のお客様論文は、「Delphi/400 の開発効率や保守性を向上させる専用フレームワークの構築」や 「Delphi/400 画面と CTI の連携によりコールセンター業務を改善した事例」など、創意工夫にあふれる論 文を多数ご寄稿いただきました。 第 2 部「ミガロ.SE 論文」では、弊社 SE による技術論文を掲載しております。今回は、「Delphi/400 の 64bit アプリケーション開発手法」や「Delphi/400 Web コンポーネントのカスタマイズ手法」など、さま ざまな応用テクニックを開発に活かしていただくための技術情報をご紹介しております。 本レポートが少しでも皆様の開発・保守のお役に立てば幸いです。 最後に『Migaro.Technical Report』第 6 号を発刊するにあたりまして、多くのお客様・パートナー様に ご支援、ご協力をいただきましたことを、この場をお借りして、あらためて厚く御礼を申し上げます。 2013 年秋 株式会社ミガロ . 代表取締役社長 上甲 將隆MIGARO.
TECHNICAL
REPORT
3
お客様受賞論文/
ミガロ. テクニカルアワードMigaro.
Technical Award
Delphi/400導入の経緯
ユサコは、海外の医学系学術誌やデー タベースの輸入販売などを行っている会 社 で あ り、 ユ ー ザ ー 企 業 の 立 場 で、 System/38 の時代から IBM のメインフ レームを使い続けている。 当時から基幹システムとして販売管理 システムを自社開発しており、現行の基 幹システムも開発開始から 16 年、運用 開始から 14 年の間機能拡張を行いなが ら使い続けてきた。 とはいえ、現場で扱わなければならな い情報量が格段に増え、エミュレーター 画面の表示能力にも限界を強く感じ、イ ンターフェースを再構築するためのツー ルを探していた。 他にも CASE ツール等も検討してい たが、開発やユーザー操作の自由度が低 く、Delphi/400 であればどんな要望に もフレキシブルに応えられると考えた。なぜフレームワークが
必要か
Delphi/400 での開発は自由度が高く、 CASE ツールのように煩雑な事前作業 は必要ないが、その反面、開発者ごとに データベースやコーディング上の命名基 準、画面構成や配色、エラー処理といっ たものがバラバラになってしまう恐れが ある。 この問題を回避するには、モデリング やコーディング規則だけでなく、ユー ザーに同じ見た目で、同じ操作基準を 持った、一貫性のあるシステムを提供す る「開発フレームワーク」が必要である。 しかし、製品化されているものがなく、 内製するに至った。 加えて、フレームワークを使用するこ とにより仕様変更に強く、開発やテスト 工数を削減し、バグも減らせるという利 点も重要であった。フレームワーク概要
フレームワークは現行システムに不足 している管理用テーブルや、標準コン ポーネントを拡張したオリジナルコン ポーネント、キャッシュ用エンティティ クラス等の共通クラス、入力値チェック や値選択機能、アプリケーション自動配 布の仕組みで構成している。 開発に当たっては、コーディング量を 減らし、開発効率と保守性を高めるため、 オブジェクト指向でいうカプセル化(※) やロジックの汎用化(汎化)を意識した。 【図 1】 また、オブジェクト指向言語でクライ アント / サーバー系システムの開発をフ レームワーク部分から行うのは初めてで あったため、開発支援を受け試行錯誤し ながらの構築であった。 ※カプセル化とは オブジェクト内のデータを直接操作で きないように、その構造を外部から隠蔽 すること。オブジェクト内の仕様変更がMigaro.Technical Award 2013
最優秀賞
部門 1自社用開発フレームワークの構築
―なぜフレームワークが必要か 高効率な内製実現のために
駒田 純也 様
ユサコ株式会社
システムグループ マネージャー
ユサコ株式会社 http://www.usaco.co.jp/top.html 海外の学術雑誌、書籍の輸入販売を 中心に事業を展開している。特に医 学、薬学等の自然科学分野に強みを 持つ。近年、学術情報媒体の多様化 に伴い、電子ブック、データベース、 各種ソフトウェアの取り扱いを強 化。学術情報を通じ、知的情報の創 造、蓄積、共有による社会貢献を目 指している。5
ソース1 サンプルコード
図1 フレームワーク概要
他のプログラムに影響せず、他からも影 響されないため、プログラムの開発効率 と保守性が高まり、再利用しやすくなる。
開発効率と保守性を
高める工夫
社内 SE の仕事は開発以外にも多岐に わたるため、内製を維持するには開発効 率が非常に重要である。また、現場の要 望に迅速に応え、競争力を上げるために、 保守性も同様に重要である。 そのため、いかに同じコードを記述せ ずコード数を減らすか、誰が書いても同 様の記述になるかを意識しており、その いくつかを紹介する。 (1)アプリケーションの自動配布 EXE ファイルと Delphi/400 をクラ イアント PC へ事前にインストールせ ず、ユーザーの初回起動時に自動でイン ストールする仕組みを構築した。初回起 動時以降は、EXE ファイルや Delphi/400 のバージョンアップを自動で行うように しており、インストールと更新作業の手 間をなくした。 これにより、ひんぱんにアプリケー ションの仕様変更や Delphi/400 のバー ジョンアップがあったとしても、配布の 手間を気にせずクライアントを最新の状 態にすることができる。 各クライアントの設定を保管する ini ファイルに関しては、初回起動時には ファイルをコピーしているが、それ以降 は ini ファイルの内容をチェックして追 加されたセクションおよびキーのみ追加 し、設定情報を消さないようにしている。 64bit 版 OS のクライアントも対応済で ある。【図 2】 (2)フィールド論理名管理 DBGrid の列名や入力項目(DBEdit) のラベル Caption をデザイン画面で設 定するのではなく、データベースに格納 したフィールド論理名を画面表示時に コードから設定することにした。これに より、類似した記述の重複をなくし、変 更箇所を一元化することで開発効率を上 げている。 DBGrid の 列 名 設 定 の コ ー ド は、 DBGrid を拡張したオリジナルコンポー ネントに記述している。入力項目のラベ ル Caption 設 定 箇 所 は、 使 用 し な い フォームもあるため汎化していない。 【ソース 1】 (3)可変メニュー メニュー内容は、データベース化した ものをツリービューを使って表示する仕 組みとした。フォームの変更が不要であ るためビルド回数を減らせるとともに、 各メニューの有効無効を切り替えると いった対応も、データベースの変更のみ で可能とした。 メニューは、開発側で用意した標準メ ニューと、各自がオリジナルメニューを 作成できるお気に入りメニューの 2 つを 用意し、各自で工夫できるようにした。 【図 3】 メニュークリック時に開くフォーム は、データベースに文字列として格納す ることになるため、他の情報と合わせ record 型として TTreeNode の Data プ ロパティへ格納し、メニュークリック時 に読み出している。 フォームクラスは、FindClass 関数で 探せるようにフォームの Create イベン ト等で事前に RegisterClass 手続きを使 い、登録しておく必要がある。【ソース 2】 (4)入力値チェック オリジナルコンポーネントのプロパ ティに設定した値を使用し、全角 / 半角 / 半角大文字 / 数値型に合致する文字列 か ど う か、 文 字 型 フ ィ ー ル ド で は EBCDIC 換算した文字数に収まってい るかどうか、数値型フィールドでは数値 フォーマットに合致するかどうかの妥当 性チェックを行っている。 オリジナルコンポーネントへのプロパ ティとイベント設定は、コード上で行っ ている。ただし、手作業でのコーディン グは行わず、Excel 化したテーブル仕様 書(※)をもとに入力項目仕様書(図 4) を作成し、Excel 関数で作成したコード を貼り付けているだけである。【図 4】 【ソース 3】【ソース 4】 また、妥当性チェックのコードも共通 クラスに記述してあるため、ほぼノー コーディングで行っている。【ソース 5】 ※ DSPFFD コ マ ン ド で FILE 化 し、 ODBC 経由で Excel に取り込む (5)値選択とローカルキャッシュ 区分やマスター値については通常、 CD や ID としてフィールドに格納され ているが、それを名称や他のフィールド 値から検索して選択するための入力補助 機能を備えている。【図 5】【図 6】 選択画面の Grid に表示される内容は 事前にキャッシュしておき、高速な表示 や検索を実現した。選択画面表示時にリ フレッシュも可能である。 区分値選択のキャッシュは各フォーム でそれぞれ行い、マスター値選択の キャッシュはキャッシュ用のクラスで 行っている。【ソース 6】 (6)値変換とエンティティクラス 各レコードの詳細を表示する欄では、 DataSource の DataChange イベントを 使いフォーム表示時やデータ変更時に CD や ID を名称に変換し、CD や ID と は 別 に わ か り や す く 表 示 し て い る。 【図 7】【ソース 7】 SQL 文に ID や CD に対応した区分や マスターテーブルを結合して表示せず、 事前にエンティティクラスに読み込んだ データを使用している。そのため高速で、 CD や ID を直接入力した際にもサー バーと通信することなく、表示内容を更 新できる。【ソース 8】 また、手入力した CD や ID がデータ ベ ー ス 上 に 存 在 す る か ど う か も ClientDataSet の Validate イ ベ ン ト を 使い、その場でチェック可能としている。 【図 8】今後の予定・計画
(1)業務ポータルとしてのグループウェア Delphi/400 とは別の統合開発環境で 構築しているグループウェアの Web サービス連携機能について、これを Delphi/400 に移植し、更新情報やアラー トをグループウェアに最新情報として書 き込めるようにする。 (2)印刷方法の拡張 現在の印刷方法は、帳票サーバーへ CSV データとしてデータを渡して印刷 する方法しかなく、その場でプレビュー す る こ と が で き な い。 そ の た め、 QuickReport や Excel を使った出力手 段を実装したい。7
図4 入力項目仕様書
ソース2 レコード型定義のサンプルコード
図3 可変メニューの仕組み
(3)フィールド指定検索の拡張 対象テーブルの指定フィールドでレ コードを検索する機能があるが、CD や ID でしか検索できない。これを、関連 テーブルの名称(例えば、社員マスター にある社員名)を使って検索できるよう に拡張する。(※)【図 9】 ※「含む」「=」等のオペランドリストは、 フィールド型に対応した内容に自動変更。 (4)バッチ処理の実行管理 現在は IBM i 上でバッチ処理を実行 しているが、Delphi/400 への置き換え も検討している。その場合は Windows サ ー バ ー 上 で 動 く こ と に な る が、 Windows のタスクスケジューラーを使 うのではなく、独自の実行管理アプリ ケーションの構築を考えている。
フレームワーク構築で
感じたこと
当社のように少人数で自社システムの 開発運用を行うためには、いかに冗長 コードやデータを減らし、再利用性を高 めるかが重要であると考えられる。しか し、情報システム部門にはインフラ管理 やユーザーサポートをはじめ、開発以外 の仕事についても多くの時間を要し、開 発自体も次々に相談や依頼が舞い込んで くる。 後々のことを考えれば、開発効率を上 げるためのリファクタリングが重要であ ることはわかっている。とはいえ、ユー ザーにとって目に見えるものではなく、 その効果を捉えにくいものであるため、 時間を割り当てにくいというジレンマを 感じた。 今後も拡張やリファクタリングを続け ていくことになるが、自社用にゼロから 構築するのは情報量も少なくなかなか骨 の折れる作業であり、テクニカルレポー トのようなユーザー同士の情報共有がさ らに活発に実践されていけば、IBM i と Delphi という強力な組み合わせが もっと広がるのではないかと感じた。 ユーザー企業が集まり、勉強会という 形でアイデアを出し合ったり相談をする 機会があってもよいとも思う。 M9
ソース4 オリジナルコンポーネントのプロパティ設定サンプルコード
ソース5 入力チェック時のサンプルコード
ソース3 Excel関数で作成したコードサンプル
ソース6 区分選択画面呼び出しのサンプルコード
図6 区分コード
図5 マスター値選択:社員コード
11
図8 存在チェック結果
図9 検索画面の拡張
ソース7 DataSourceのDataChangeイベントでの呼び出し例
通信販売事業と
注文の流れ
当社では健康食品を研究・開発し、通 信販売により商品をお客様へお届けし、 お客様のお悩みを少しでも解消すること を目的として運営している。基幹システ ム IBM i(AS/400)で「顧客管理シス テム]を構築しており、広告・受注・発 送・入金・督促・DM の管理をしている。 お客様との関係は、例えば広告媒体に ついては、テレビ・新聞・雑誌・ラジオ・ インターネット等、多岐にわたり展開し ている。 お客様からの注文は、電話・FAX・ はがき・インターネットで受け付けてい る。注文受票は、電話注文の場合は手書 きで作成し、インターネット注文の場合 は EC カート自動送信メールのプリント アウトを注文受票としている。 注文受票作成後からの業務がシステム の対象範囲で、顧客マスター登録および 受注入力を行い、発送・入金・(督促)・ DM の流れをシステム化している。Delphi/400導入前の
CTIの課題
顧客管理システムは IBM i(5250 画 面)を利用しているため、そのままでは CTI の PC 連携機能が使えない。イリイ の「BIG 顧客 ProCTI」の提案があり、 導入することになったが、以下の利点と 難点があった。 ・利点 電話履歴(電話が何時何分にあったか 等)が自動で残せる点と、その履歴に対 応内容を追記し残せる点だ。その結果、 顧客との次回の電話応対時に、スムーズ に話ができるようになった。 ・難点 顧客データと電話履歴データが累積さ れるだけなので、そのままでは受注以降 の業務ができない点がまず挙げられる。 また、顧客管理システム(IBM i )とデー タを同期化するためには、IBM i と「BIG 顧客 ProCTI」にすべての顧客を登録、 変更しなくてはならず、二重作業や二重 管理に苦労する点も挙げられる。 当面の運用としては、IBM i と「BIG 顧客 ProCTI」の顧客マスターの同期化 は諦め、「BIG 顧客 ProCTI」は単なる 古い電話帳データを参照するだけとし た。他方、「BIG 顧客 ProCTI」の電話 履歴データについては IBM i に受け渡 して、顧客管理システム側でも電話履歴 を参照できるようにした。 このような状況と問題点により、CTI のメリットが活かしきれていなかった。 そのため今回、Delphi/400 を導入し、 IBM i に CTI を組み込んだシステム構 築を計画した。Delphi/400でのCTI
開発について
(1)CTI 動作環境の準備 はたして Delphi/400 で CTI は実現 可能なのか、わからないところからのス タートだった。Migaro.Technical Award 2013
ゴールド賞
部門 1Delphi/400でCTI開発および関連機能組み込み
―はたしてDelphi/400で CTIは実現可能なのか?
仲井 正人 様
株式会社スマイル・ジャパン
システム部
株式会社スマイル・ジャパン http://www.care-cure.jp/company/ index2.html 健康食品の通信販売事業を行ってい る。健康食品の研究・開発を通して、 お客様の健康づくりをサポートし、 健やかでいきいきとした日々をすご していただくことを目的として活動 している。13
図2 ツールパレット追加&設計画面
図1 CTI ActiveXのテスト取込手順
CTI を動作させるには、まず CTI に 対応可能な電話の主装置が必要である。 主装置は、「BIG 顧客 ProCTI」の導入 時に、NTT のα NX に切り替えた。そ して、PC に NTT より納品される NX - CTI ミドルウェアをインストールす る。このインストールにより、電話機(内 線番号)と電話の主装置と PC の紐付け が行われる。また、NTT 製ソフトの中 にはα CT ベーシックシステムがあり、 そのソフト起動により電話機と PC の紐 付けができているかを確認できる。 (2)Delphi/400 と CTI 連携方法の確認 α CT ベ ー シ ッ ク シ ス テ ム は、 ActiveX CT 協議会の ACT コントロー ルに対応とのことなので、ミガロ.導入 支 援 担 当 に 確 認 し て み た。 す る と、 Delphi/400 のコンポーネントとしてイ ンポートできるとの回答を得た。 早速インポートを行うと、ActiveX コントロールからプログラムソースが展 開され、そのソースを pas(Delphi ソー スファイル)で保存した。 プログラムソースの展開や保存後の方 法について、再度ミガロ.へ問い合わせ をし、回答を得た。【図 1】 コンポーネントのインストールを行う と、ツールパレットに ActiveX のペー ジができて、その中に ACTFrontCtl の コンポーネントができたので、そのコン ポーネントを画面に貼り付けた。【図 2】 そこから先がまたわからなかったが、 ActiveX から展開したソースを見てい ると、参照元が C:¥WINDOWS¥system 32¥ACTFront.ocx であることがわかっ た。同じフォルダーの ACTFront.ocx を見ていると、並びに ACTFRONT. HLP ファイルを発見し、これを開いて みるとアプリケーション開発、リファレ ンス、定数一覧があり、参照しながら組 み立てることができた。 (3)CTI 連動システム開発のポイント Delphi/400 による「新システム」では、 顧客マスター保守がメインで、CTI は あくまでも 1 機能とした。電話を利用し ない部署もあるため、顧客マスタ保守は 必要最低限の機能を共通機能とし、利用 したい機能を追加で選択できる形にし た。他方、電話を受ける部門では、CTI で自動表示できる情報を最大限に発揮で きる内容を目指した。 電話番号に関する実務面の工夫とし て、顧客情報にはメイン番号(通常は固 定電話)・携帯電話番号・別送先電話番 号の 3 つが存在しているケースがあり、 それぞれを CTI で連動させることとし た。また、同じメイン番号に対して 1 家 族内から数人が登録されることもあり、 電話番号+’A’、’B’……と複数登録 されているケースにも連動させることと した。 CTI の仕様としては、電話の着信時 は「顧客マスター保守」画面上部に複数 候補から 1 行だけを自動的に表示し、通 話時には、複数候補の 1 番目を自動で展 開させ、一覧選択で切替可能とした。 (4)Delphi/400 でのプログラミング内容 CTI 機 能 フ ォ ー ム を 作 成 し、 ACTFrontCtl のコンポーネントを貼り 付ける。他の必要部品もフォームへ貼り 付けて、画面を完成させる。【図 2】 ロジックとしては、FormCreate の時 に Open と Login、FormClose の 時 に Disconnect と Logout と Close をする。 ACTFrontCtl の イ ベ ン ト Offering に は、電話が鳴った時の処理を記述した。 ACTFrontCtl のイベント DataReceived には、通話した時の処理を記述した。 【図 3】 また、メイン・携帯・別送電話の連動 に つ い て は、3 つ の SELECT 文 を UNION でつなぐことで候補一覧を表示 し、選択で切り替え可能とした。電話番 号+’A’、’B’……と複数登録されて いる対応には、WHERE 中で LIKE を 使用し、前方一致条件とした。
システム開発について
の評価と感想
・Delphi/400 を知らなかった SE が 1 〜 2 か月で実現 CTI の 動 作 環 境 は 揃 っ て い た。 Delphi/400 で構築するための調査はミ ガロ.の支援により実現できた。開発の ポイントはテクニカルセミナーなどでヒ ントを得た結果、プログラミングは非常 にシンプルであった。 最 初 の「 は た し て Delphi/400 で、 CTI は実現可能なのか?」は、やって みると「簡単にできた」の一言に尽きる。 現 に、2012 年 3 月 に Delphi/400 導 入決定、4 月インストール、5 月トレー ニングコース(開発入門、開発基礎)受 講、そして 6 月には CTI を Delphi/400 で動かすところまでできた。その後、微 調整等はあったが、Delphi/400 を知ら なかった SE がわずか 1 〜 2 か月で構築 できた。 ここで得た結論としては、Delphi/400 に ActiveX 等を組み込むことにより、 わずかな時間で意図していることが実現 可能ということだ。 ・お客様と CS の関係をスムーズに ここまでが現状の CTI 開発であるが、 今後は、CTI で顧客情報に関して芋づ る式にどれだけ必要な内容を表示できる かがカギであり、お客様と CS(カスタ マーサービス)部門の関係をいかにス ムーズにさせるかに焦点をあてたい。 現在表示できる内容は、電話対応履歴・ 購入履歴・購入履歴 1 番目の荷物追跡(通 常:佐川 Web、メール便:ヤマト Web)・ 定期登録内容・DM 履歴・Google 住所 マップ・メール履歴となっており、これ らをさらに充実させていきたい。 今後の予定はまだ構想中ではあるが、 メソッドとして CALL があり、PC 上で 発番(電話発信)可能なため、CS 担当 者ごとに本日電話する一覧を表示し、選 択すると発番する仕組みを構築できたら と検討中である。エンドユーザーの評価・
評判・反応
CTI の恩恵を一番受けるのが CS 部門 であるが、平均年齢が高めでもあり一度 IBM i(5250 画面)で覚えているので、 一気に切り替えが難しい状況にあり、現 在のところ併用している。 新システムの使用感想としては、「以 前は画面遷移が多いため、一度に複数の 情報が見られなかったが、新システムで は一度で情報が見え画面遷移せず処理が できるため、作業効率が上がった」や「一 度に見られる情報が増え、自動で表示さ れること」との評価があった。この評価 は、5250 画面から Delphi/400 に切り換 えたこと、および CTI 機能も含めての ものである。【図 4】〜【図 9】 CTI 機能の利用は電話対応において15
図5 顧客マスタ保守 顧客マスタ詳細・保守(機能未選択)
図4 顧客マスタ保守 初期画面(機能未選択)
柱になるところであり、CTI へのさら なる機能追加によりお客様対応にも大き な効果を発揮する。今後も CTI はもち ろん、システムに必要な機能を追加して いきたい。【図 10】【図 11】 M
17
図8 顧客マスタ保守 通話時(機能選択)
図7 顧客マスタ保守 着信時(機能選択)
図11 システム構成(対応後)
図10 システム構成(対応前)
1.短期間でのシステム
移行が求められた経緯
極東産機では、Web による「畳ネッ トワーク工事管理システム」を 2000 年 に本稼働させ、2006 年には基幹システ ムとの連動を図るために、WebFacing により刷新し、機能拡張を行った。 当システムは当社と当社の取引先であ る畳店、材料店、工事依頼先とを結ぶネッ トワークで、IBM i + WebFacing に よってすべて社内開発し稼働させた。 WebFacing は IBM i 上で RPG 言語で 開発し、IBM i のデータベースに直接 アクセスしている。 今回のシステム移行は、システムを稼 働させているサーバー(WebFacing 管 理サーバーおよび IBM i )の老朽化に よりハードのリプレースは決定していた が、更改後の新サーバー上で WebFacing が稼働しないのと、WebFacing につい て問い合わせをする窓口もすでにないこ とから、迅速かつ確実に別システムへの 移行が求められる状況になっていた。 そこで、2011 年 12 月に JC/400 で作 成した「得意先との Web-EDI」(※)が 好評で、さらに「仕入先との Web-EDI」 (2012 年 5 月から本稼働)を稼働させて 実績作りができたことで、WebFacing による「畳ネットワーク工事管理システ ム」を JC/400 へ完全移行することが決 定した。 ※『ミガロ.テクニカルレポート2012年』 掲 載 の「JC/400 に よ る 取 引 先 と の Web-EDI シ ス テ ム 構 築 」(Migaro. Technical Award 2012 最優秀賞受賞) を参照。2.WebFacingからの
移行についての工夫
(1)IBM i のデータベースは変更しない JC/400 も WebFacing と 同 様 に、 IBM i のデータベースに直接アクセス する。現在稼働中の「畳ネットワーク工 事管理システム」で使われているデータ ベース設計はまったく変更せず、そのま ま利用するようにした。 (2)プログラムパターンの分類 プログラム作成の効率を上げるため、 WebFacing でシステム作成した当時の プログラムを機能別に分類し、数種類の パターン(入力、照会など)に分けた。 パターン化することにより開発効率を上 げた。 (3)主要ロジックは WebFacing から移植 更新やエラーチェック、レコード読み 込 み 条 件 な ど の 主 要 な ロ ジ ッ ク は、 WebFacing で作成したロジックをその まま移植した。ほとんどのロジックはそ のまま使えるため、デバックもスムーズ に行えた。 (4) 画面デザインは慣れるまで変更しない WebFacing は 24 x 80 の画面制約が ある。JC/400 で開発するのだから、画 面デザインを変えたいと思ったが、すべ ての移植が完了し稼働確認するまでは、 画面デザインの改良には着手しなかっMigaro.Technical Award 2013
シルバー賞
部門 1IBMWebFacingからJC/400への移行・リニューアル手法
―JC/400へのスムーズな移行とWebの操作性向上で顧客満足度UP
八木 秀樹 様
極東産機株式会社
管理本部 社長室
システム開発課 主任
極東産機株式会社 http://www.kyokuto-sanki.co.jp/ 昭和 23 年に畳の製造機器メーカー として創業以来、職人さんの快適な 職場環境作りと消費者の豊かな生活 空間作りを 2 本柱として、伝統技 術と先端技術の融合により、ユニー クなオリジナル商品を開発。畳製造 機器はもとよりインテリア施行省力 機器、カーテン縫製機器等、幅広く 事業を拡大している。21
図2 今回の開発前後の画面比較
図1 今回の開発前後の画面比較
ことができるスケルトンプログラム(必 要なロジックがコーディングされている プログラム)が自動作成される。 このスケルトンプログラムには、「使 用ファイル定義部分」「配列テーブルの 定義部分」「パラメーター定義部分」「キー リスト定義部分」「ボタン押下時処理部 分」「データの抽出と画面の転送部分」「画 面データの取得とファイルへの更新部 分」が明確にわかるようになっている。 これらの部分に必要なロジックを組み込 んで、コンパイルして完了すれば、プロ グラム制作が完成する。 今回、以前のシステムで稼働していた ロジック部分を再考する必要がないた め、非常に効率が良く、また難しそうに 思えるロジック部分もプログラムに必要 な部品をはめ込む感覚で行えるため、慣 れてきたころから開発ペースが飛躍的に 上がった。
4.今後の展望
iPad 等のスマートパッドでの開発に 適 し て い る SmartPad4i(SP4i) や、 Query を作成する感覚で開発できる Business4Mobile(B4M)を活用して、 より便利なシステム構築を推進してい く。特に、SP4i の開発手法は JC/400 と同じであるため、開発の効率アップが 望める。 近々、iPad を利用した生産管理シス テムを新たに稼働させる。この開発には SP4i と B4M を利用する。RPG でタブ レット開発できるので、私にとっては新 たな発見が多く、ワクワクする開発と なっている。 さらに、利用者が便利さを実感し、喜 んで使っていただける仕組みづくりを推 進していきたい。 M ンが変わっても、作成したシステムにも 何の変更もなく順調に稼働した。 (9)新・旧システムで並行稼働 新システムを作成した際に、数社だけ でテスト稼働を実施した。テスト稼働と いっても、テスト環境や新旧システム環 境での重複入力のテスト運用ではなく、 実際の環境で利用してもらい、問題点が ないかをチェックした。これは、データ ベース設計を変更していないからできた ことだ。3.JC/400へ移行・
リニューアルの所感
(1)見栄えの向上と操作性の向上 当システムは、当社の取引のある畳店 や工事依頼される取引先によって運用さ れるシステムである。そのため、運用開 始前に説明会を行ったところ、当社の営 業担当の第一声が「画面が見やすくなっ た。操作性も良くなっているので、これ なら話が進めやすい。興味を持ってもら える」であった。 実際、本稼働後も営業担当経由で「簡 単にネットで確認できそうなので、ログ インする方法を教えてほしい」など、開 発者にとってはうれしい問い合わせが あった。【図 1】【図 2】【図 3】【図 4】 (2)機能の充実 多少の開発が必要であるが、ボタン 1 つでデータの CSV 形式でのダウンロー ドや Word 形式での伝票印刷機能が装 備できたため、非常に便利だ。これらは WebFacing ではできなかったことだ。 データダウンロードの開発では、セ キュリティ面を重視し、取引先ごとにプ ログラムや作成ファイルを変える手法を 取った。ミガロ.のテクニカルサポート のアドバイスもあり、難なくスムーズに 開発対応ができた。 利用者にはマニュアルで説明するまで もなく、簡単な操作で処理が行えるため、 好評を得ている。 (3)開発の手軽さ・効率のよさ ホームページビルダー等で画面デザイ ンを行った後、IBM i へプロジェクト を配布し、Web サーバーへ配布する。 その後、ユーザーがロジックを組む込む た。 すべての構築が完了し、工数に余力が 出てから、画面デザインを変更していっ た。画面デザインは、ネット上や書籍な どのテンプレートを活用し、カスタマイ ズして進めた。また、リーフレットやカ タログを製作している社内デザイナーに 依頼して、タイトルロゴを作成しても らったので見栄えが一変し良くなった。 (5)問題点の解消 開発テキストには、よく使用する機能 の解説や事例があるため、テキストを読 むだけで問題点解決できることが大半 だった。 エラーの原因が推測できない場合は、 ミガロ.テクニカルサポートを積極的に 活用させてもらった。電話やメールでの 迅速丁寧なサポートで安心感があり、こ のサポートがプログラムの開発効率を上 げてくれた要因だ。 (6)ホームページビルダーの利用 WebFacing は画面デザインを数種類 のパターンから選択するしかなかった が、JC/400 は HTML 画面で自由に設 計できるため、ホームページビルダーを 活用し画面をデザイン開発することがで きた。見栄えも良くなり、JC/400 で画 面の操作性も上がっており、社内外の関 係者から好評を得ることができた。 (7)ノーツや AutoFax サーバーとも連携 リニューアルした際に、どのようにし たらもっと便利になるのかを利用者に調 査した。 「入力された情報が自動的に取引先へ 連絡できるようになればもっと便利にな る」ということで、ノーツメールや FAX 送信サーバーに連動させ、「工事 依頼書」などを自動送信できる仕組みを 新たに追加した。 (8)旧 IBM i で開発し、新 IBM i で稼働 新システムは、ハード(IBM i )の リプレースよりも前に仕上げる必要が あったために、旧 IBM i 上で開発を進 めた。想定していた予定より前倒しで移 植 が 完 了 し た の で、旧 IBM i で リ ニューアル稼働をさせた。 2013 年 5 月、新しいサーバー(IBM i ) へ切り替えを行ったが、OS のバージョ23
図3 今回の開発前後の画面比較
はじめに
澁谷工業は 1931 年創立、1949 年設立 の会社で、今日まで多くのお客様に支え られ、2011 年に創立 80 周年を迎えるこ とができた。当社では「カスタマーファー スト」を貫き、お客様のニーズにあわせ たパッケージングプラントを“ターン キー(直ぐに稼働できる状態)”で提供 するビジネスを主体としている。 当社の基幹システムにおける既存帳票 作成方法や帳票配布方法は、主に IBM i ネ イ テ ィ ブ 環 境 に よ る 帳 票( 以 下 「SPOOLF」)とクイックレポート(以 下「ツール」)を利用している。しかし、 この SPOOLF とツールは利用するうえ で強みもあるが、弱みも多い。 そ こ で 本 稿 で は、「Delphi/400 と Delphi を利用した IBM i 資源の有効活 用」と題して、既存方法とは別の帳票作 成や配布方法を紹介する。 具体的には、IBM i で Excel をベー ス と し た 帳 票 を 作 成 し、 そ れ を Delphi/400 を利用してエンドユーザー に配布する方法、さらには「Delphi + Office エ ン ジ ン に よ る Excel → PDF バッチ変換」方法を解説する。開発経緯
最初にツールにおける帳票作成につい て簡単に説明する。このツールはヘッ ダー、明細、フッターごとにセグメント を分け、それらにデータをセットし、帳 票を作成するものである。 このツールはレイアウトを作成するう えで、視覚的に非常に理解しやすいもの である。しかし、このツールを利用する には、細かな罫線制御やセル内のフォン ト等の制御をすべてアプリケーション側 で行う必要があり、この点が考慮点とな る。 当時、帳票作成方法の選択肢に関して は、(1)ツール(2)SPOOLF(3)新た な帳票作成ツールの導入、があった。 しかし(2)を利用すれば、逆に工数 が膨らみ、帳票作成における柔軟度も下 がることになる。また(3)を導入する コストもかけられなかったため、この ツールを使い続けていたのが現状であ る。 そこで、他のさまざまな方法を模索す る中で、やはりクライアント側ではなく、 サーバー側(IBM i )で処理できない かと考えた。 検証の結果、IBM i で Java を利用し て IFS(IBM i におけるファイル格納領 域)に Excel を作成できることがわかっ た。ここではその作成方法の詳細には触 れないが、Excel 自体の既存機能により (条件付き書式や各種セルの書式設定 等)、前述の考慮点で挙げた制御が可能 となった。すなわち、アプリケーション 側で細かな制御の必要なく、帳票を作成 できる。苦労した点/
その解決方法
ここでいくつかの問題点が出てきた。 それは、IBM i で作成した帳票を、い かにエンドユーザーに配布するかというMigaro.Technical Award 2013
シルバー賞
部門 1Delphi/400とDelphiを利用したIBM i 資源の有効活用
―IBM i で作成した帳票配布、Delphi + OfficeエンジンによるExcel→PDFバッチ変換
小山 祐二 様
澁谷工業株式会社
経営情報システム部 主任
澁谷工業株式会社 http://www.shibuya.co.jp/ パッケージプラントを主力製品とす る東証名証 1 部上場の機械メー カー。特に、国内外の大手飲料メー カーに採用されているボトリングシ ステム製造では、世界トップの地位 を確立している。また、半導体製造 装置、医療機器などの製造も行って いる。25
図2
ソース1
図1
利用して Excel → PDF バッチ処理」変 換し、それをクライアントに配布するこ とを可能とした。
※ Saving Workbooks to PDF and XPS Formats in Excel2007 http://msdn.microsoft.com/en-us/ library/bb407651.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-5
DelphiでExcelと
PDFを作成しなかった
理由
今回は、IBM i で Excel を作成する 方法、およびその Excel から Office エ ンジンを利用してバッチ的に PDF を作 成する方法を紹介した。しかし、Delphi でも Excel や PDF の作成は可能である。 では、なぜ Delphi で Excel や PDF を作成しなかったか? その理由として、 Delphi で Excel を作成する場合は OLE で作成するため、多少の処理時間がかか ることが挙げられる。またクライアント 側で処理するのではなく、他のプロシー ジャーとともに IBM i で処理すること がよいのではと思う。 また、PDF 作成も無償サードパー ティー製品で作成可能である。ただし、 罫線の制御やフォントの制御を加味して 帳票を作成するには、少し労力が必要で ある。他方、有償サードパーティー製品 を利用するのは 1 つの手段であり、当然 それなりのコストも発生する。 なお、今回の組み合わせによる帳票作 成は、当社は Office2007 導入済みとい うこともあり、追加投資を必要としな かった。メッセージと課題
以上を踏まえたうえで、私は IBM i で Excel を作成することを決断した。 そして、その Excel から PDF を作成す ることとした。 そこで危惧されることは「Java は敷 居の高い言語?」と感じる人が多いはず である。しかし、私はそんなことはない と断言する。なぜなら、今回の Java は そんなに難しい考え方を行っていないこ ともあるが、RPG 畑で育ってきた私自 身が実装している。本稿を読んだ人はぜ の中に、IFS を操作できる CoIFS コン ポーネントがある。 当然 Delphi では、IFS をネットワー クドライブとして認識させることは可能 である。そして信じられないかもしれな いが、Delphi と FTP の連携では多少面 倒な処理も、Delphi/400 では簡単に処 理可能となる。【ソース 1】 しかし、ここで新たな問題点が発生し た。検証当初は、拡張子を「xlsx」タイ プで Excel を作成していた。このタイ プで作成した場合、かなり処理時間がか かることがわかり、実運用には不向きだ という結論に至った。 そこでゼロベースで再考した結果、拡 張子を「xls」タイプで Excel を作成し、 処理時間を比較してみた。その結果、処 理時間としては約 1/7 〜 1/9 くらい短 いことが確認できた。幸いなことに、マ イクロソフトの発表によれば、拡張子 xls タイプの Excel は Office2013 も対 応していることが確認できた。そこで私 は、拡張子 xls タイプで Excel を作成す ることとした。【図 2】Delphi +
Officeエンジンによる
Excel→PDFバッチ処理
ある意味、裏技的な処理を紹介する。 多くのユーザーが利用している Office というソフトがある。ご存知の通り、 Office2007 以降では PDF 変換機能が備 わっており、一度該当ファイルを開き、 保存する時に PDF を選択すれば簡単に PDF を作成することができる。 しかし、その該当ファイルを開くこと なく、バッチ的に PDF を作成する方法 はないだろうか? うれしいことに、マ イクロソフトはこれらの情報を公開して いる。(※) この情報を参考に、Delphi で該当 Excel を PDF にバッチ変換できること を検証できた。参考までに、そのコーディ ン グ お よ び 実 行 結 果 を 記 し て お く。 【ソース 2】【図 3】 この検証結果をベースに、Java を利 用 し て IFS に 作 成 し た Excel を、 Delphi/400 を利用してクライアントに 配布、そして IFS に作成した Excel を ベースに「Delphi + Office エンジンを ことである。 ・解決その 1 実際にその方法を考えると、最初に、 IBM i の NetServer 機能(クライアン ト側から、IFS をネットワークドライブ として認識できる機能)を利用し、IBM i をファイルサーバーとして利用するこ とが考えられた。しかし、IBM i のコ ストから考えると、この利用方法は非常 にコストパフォーマンスの悪い解決方法 になってしまう。 ・解決その 2 また、IBM i で作成した Excel をメー ルに添付し、エンドユーザーに配布する 方法も考えられる。この方法は、個人別 ログイン等でエンドユーザーと送信先 メールアドレスを関連付ける必要はある が、IBM i で Java を利用することによ り簡単に実現可能である。 ただし、Excel をメールに添付して送 信する方法はセキュリティに問題が生じ るため、その帳票の性質を十分に考慮す る必要がある。 ・解決その 3 そこで、次に挙げられる方法として、 FTP で IFS の Excel を GET する方法 が 考 え ら れ る。 確 か に こ の 方 法 は、 NetServer 機能と抱き合わせて考える ことにより可能である。とはいえ、IFS の Excel を GET する 方法を知っている人は少ないのではと思 う。参考までに以下にその方法を記して おく。 該当 IFS フォルダーに適切な制御を 与え、ネットワークドライブ接続を確立 することにより、Delphi をトリガーと して IFS の該当ファイルの取得は可能 である。 なお、私の知る限りこのような処理を 行っている人は知らないし、一般的にも このような処理を行っている人は少ない と予想される。【図 1】 ・解決その 4 そこで私が行った内容を紹介する。当 社 で は Delphi/400 を 導 入 し て お り、 IBM i とやり取りを行っている。一般 的な使い方でもかなり有効に活用できる が、この Delphi/400 のコンポーネント
27
ひチャレンジしてほしい。 今後の課題としては、Excel → PDF 変換に関してはクライアント側で処理す る形となってしまったが、このプロセス をサーバー側で処理できないかを検討し たいと思う。
エンドユーザーの評価
と今後の展望
今回紹介した方法は、まだ部分的な業 務の使用にとどまっている。当社では、 今でも SPOOLF で帳票出力しているも のが多々あることもあり、新しい手法に ついては、利用しているエンドユーザー の評価としては上々である。 そして今回の導入により、各プロセス のテンプレートを作成することができた ため、今後の業務に展開していく予定で ある。最後に
本稿を読んだ人は、今回紹介した方法 により、IBM i ネイティブやネイティ ブ以外の資源の融合によって IBM i の 資源をさらに有効に使えるという、1 つ の利用例があることが理解できたと思 う。加えて、まだ IBM i の資源を有効 に使える可能性が潜んでいると考えられ るため、今後もその可能性を模索してい きたい。 ただし、問題は残っている。それは IBM i の情報は他のサーバーとは異な り、非常に入手しにくい点である。この 状況を打開する 1 つの方法として、企業 間を越えたナレッジの共有が考えられ る。自企業から同地区の企業へ、そして 全国の企業へとその輪を広めていくこと が、今後の有効な手段の 1 つだと思われ る。 ぜひ、本稿執筆をトリガーとして、全 国の企業の方々とナレッジ共有を実現さ せ て、Delphi/400 お よ び Delphi と と もに、今まで以上に IBM i を有効かつ 効率的に活用していきたい。 M29
1.発注システム開発の
経緯
当社は、全国に約 400 店舗を有する 婦人服の小売業を営んでいる。商品部が メーカーから商品を買い付け、商品の上 代や下代を決定のうえ、買い付けた商品 を各店舗に配分・供給する。この業務を サポートするシステムが「発注システム」 である。 発注システムは、AS/400 のデータ ベースを使い、画面は VB で作られた画 期的なシステムとして 12、3 年前にス タートした。しかし、Windows95 時代 に VB で作成したシステムがベースのた め、端末が Windows7 になった場合、 起動できるかどうかの不安があった(実 際、Windows7 のパソコンにインストー ルして確認したが、起動できなかった)。 VB のシステムを Windows7 に対応 させるバージョンアップも検討したが、 作成した開発会社に問い合わせたとこ ろ、システムの検証だけでも 1 千万円の 費用がかかり、さらに、プログラム作成 費用がそれに上乗せされるとの回答で あった。 というわけで、Windows XP のパソ コンがなくなるまでにはまだ時間的な猶 予もあるので、VB システムを Delphi/ 400 に移植し、リニューアルする方法に 挑戦することにした。2.新システムへの要望
発注システムの改修作業にとりかかる と、直ぐに商品部より新しい要望があっ た。それは、「検討中の発注」と「確定 した発注」を明確に分けてほしいという ものであった。 従来のシステムでは確定した発注しか 入力していなかったが、実際にはメー カーまたは卸問屋に買い付けしたものの 中で、発注システムに未登録のものが存 在した。このため、突然確定した発注が 出てきて、予算オーバーを招くことがし ばしば発生した。この防止策として、買 い付けに行ったときの発注内容を「検討 中」と「確定」に分けて登録・表示する ことにより、それが現在どのような位置 付けになっているかを把握できることが 必要となっていた。 また、バイヤー(買付担当者)とアシ スタントとの緊密な情報交換をとるため の手段が発注システムにはなかった。そ のため、買い付けの状況を記載したエク セルシートのシステムへの取り込みも求 められた。 今回の開発は、単に VB から Delphi/ 400 への移植ではなく、商品投入から店 舗展開までの一連の進捗を管理できるシ ステムとすることを目指した。 入力画面で仕入、売上、在庫の各状況 を把握できるようにし、仕入予算に対し て現在の受け払い状況と発注状況を合算 したものを表示可能にした。3.発注システム開発の
課題と解決サポート
「VB からの移植」と題したが、実際 の開発はまったく新しいシステムを構築 していくようなものであった。Migaro.Technical Award 2013
シルバー賞
部門 1発注システムをVBからDelphiへ移植しリニューアル
―商品投入から店舗展開までの“見える”進捗管理システムを実現
川島 寛 様
株式会社タツミヤ
管理部 情報システム課
株式会社タツミヤ http://tatsumiya1969.co.jp/ 婦人服専門店として、北は北海道か ら南は沖縄まで、全国に約 400 店 舗を展開。独自の情報システムの構 築により、全店舗へのすばやいトレ ンド商品の供給を実現し、豊かな ファッション文化を提案している。31
図2 仕入入力画面
図1 仕入予定画面
2:納品 (商品が本部に到着後、本部で店舗に配賦する伝 票を作成し、プライスを付けて発送) 3:直送 (商品をメーカーから直接店舗に発送) 例えば「2:納品」の場合、本部での 納品作業が発生し、作業人員の確保が必 要となる。作業予定を立てられるように するため、本部への「納品日付」と店舗 への「商品到着日付」を設定した。また、 メーカーより納期が確定した場合は「納 期確定」の表示を可能にした。 「納入区分集計のアウトライン」では、 各ファイルの関連を示している。【図 4】
5.システムの効果と
今後の展望
発注システムは、全社システムの上流 部分に当たる。そのため、新システムに よりデータが正確に区分されて登録され ることにより、他のシステムに対しても 非常に有益な改善となった。 例えば、店舗システムへの画像や商品 情報の供給がスムーズになった。さらに、 発注システムの入力部分の完成により、 全社でのデータ共有化が促進されてき た。仕入のワークフローでは、発注シス テムから店舗システムとの関連づけを 行っている。 今後の展望としては、従来の発注シス テムはバイヤーのみのためのシステムと 見られていたが、新システムではバイ ヤーのみではなく、アシストする担当者 との発注情報共有がさらに重要になって きている。現在は入力部分が完成したと ころだが、今後、出力系などの周辺モ ジュールや、予算管理・配分の仕組みの 改善を図っていく予定である。 M を直接サーバーに保管するのではなく、 保管前にデータを圧縮するようにした。 画像を圧縮するコーディング方法につい ては、ミガロ.サポートに助言を得た。 ・商品の色による分類 今回、商品の色についても検討した。 色コードは、商品分類のキー項目とせず、 商品の情報項目として色展開がわかるよ うな登録方法とした。 理由は、色コードで商品を分類した場 合、商品マスターのレコード数が増加し すぎること、および色に対応した区分け 作業が発生し業務に混乱をきたす可能性 があったことによる。このため、色によ るコード化はあえてせず、色展開を商品 情報として見せる形にとどめた。 ・発注状況管理 次に、発注システムで店舗に商品を供 給するまでの「状況」を説明する。発注 システムに「状況コード」を追加し、以 下のように意味付けをした。【図 3】 0 仕入検討中:商品が投入される 1 発注入力へ追加: 予算範囲内であれば発注登録 2 配分準備: 配分編集画面で店舗への配分を検討 3 配分:配分が決定 4 削除:取り消したい場合に選択 (状況が 0、1、2 のとき取消可能) 5 伝票発行:伝票発行レコード 6 店舗へ: レコードが店舗に渡り仕入が発生する ※ 0 と 1 の違い:0 には発注番号がなくブランク である。1 になると発注番号ができる。 ・納入区分管理 次に納入区分について説明する。納入 については、前述したように従来はメー カー直送のケースが大半であったが、海 外メーカーとの取引の増大やその他の事 情により、一度本部に納入し本部から各 店舗に商品を発送するというケースが出 てきた。 納入方法は、以下の 3 通りのケースに わかれる。 1:経由 (事前に伝票とプライスをメーカーに送ってお き、商品にセットして本部に納入。その後、本 部から店舗に発送) 「従来できていた機能が Delphi では できないのでなくします」では許されな かった。機能を失うことなく、さらに使 い勝手のよさを追求していくために、ミ ガロ.サポートデスクに相談することが しばしばあった。 例えば、従来の VB システムの入力画 面では、表と組み合わせてコンボボック スを使うことができた。Delphi/400 で 多用した StringGrid 自体にはコンボ ボックスの機能はないが、表のある項目 に達したらコンボボックスを表示する方 法について知りたかった。 サポートデスクに問い合わせ、回答を 得ることで、技術的な問題を解決するこ とができた。ミガロ.はサポート体制が 充実しており、サポート担当の方には深 く感謝している。4.発注システムの
改善内容
新しい発注システムでは、以下のよう なさまざまな改善を行った。【図 1】【図 2】 ・バイヤーへの情報提供 従来は、発注した商品は直接店舗に配 送されることが普通だったが、最近は海 外メーカーからの仕入れが増えた。一度 本部に商品を送り、本部から店舗へ商品 を発送するというパターンが増え、物流 の形態が変わってきた。 これに伴い、バイヤー(買付担当者) が納期情報、発送状況、メーカーへの返 品、値引、売上状況、6 か月先までの仕 入状況を把握できるようにした。 ・マスター情報 発注システムは商品情報の入り口とな る。マスターデータを正確に区分して登 録できるようにした。 ・商品画像データの登録 商品画像を、デジカメからファイルシ ステムにスムーズに保管できることが要 求された。 VB にはドラッグ&ドロップで画像を コピー&ペーストできる機能があるが、 Delphi にも Image コンポーネントで画 像を貼り付ける機能があり、これを利用 した。 また、画像関係ではデジカメのデータ33
図4 納入区分集計のアウトライン
図3 発注入力から伝票発行までの流れ
業務課題
社内の受注出荷業務を Delphi/400 に よりシステム化したが、日々発行する出 荷伝票を出力する時や用紙の差し替え時 に、5250 画面を立ち上げメッセージに 応答する作業が社内に浸透しなかった。 毎日夕方になると 10 か所ある拠点か ら「伝票が出ない」などの電話があり、 日々対応に追われていた。 業務担当者からは、Delphi 画面と 5250 画面を並行的に使うことに対する 抵抗もあった。技術課題
Delphi で、5250 画 面 の コ マ ン ド 「WRKOUTQ xxxOUTQ」の照会結果 のような画面を作成して、印刷ボタンを クリックすると、自拠点の印刷待ち行列 を対象として、自動的に AS/400 がメッ セージに応答して帳票を印刷する、とい うシステムを作る計画を立てた。 技術的には、以下が課題となった。 【課題 1】 拠点ごとに OUTQ を作成したが、ど の拠点が、どの OUTQ 情報を照会する か。 【課題 2】 WRKOUTQ 照会画面のようにいった ん画面が止まり、業務担当者が印刷待ち 行列を目視確認し、次のアクションで自 動的に印刷をさせるためには、どのよう な工夫が必要か。技術課題の解決策
ListSpool400 コンポーネントを利用 し、課題を解決した。 【課題 1】 業務担当者のログインユーザー ID に 対して OUTQ を紐づけするテーブルを、 AS/400 上に作成して、ListSpool400 の OUTQ パラメーターにセットすること で実現可能となった。 【課題 2】 WRKOUTQ の よ う な 照 会 画 面 は、 ListSpool400 を Open し、ListSpool400 の必要項目を DBGrid にフィールドを 割り当て、目視確認ができるようにした。 印 刷 ボ タ ン の ク リ ッ ク 時 に、 ListSpool400 に各行(各待ち行列)を 1 レコードずつ読み込み、Call400 で CL プログラムを起動し、パラメーターを送 り CL プ ロ グ ラ ム 内 の コ マ ン ド CHGSPLFA にパラメーターをセットす ることにより、印刷装置への転送が可能 となった。 スプールのメッセージは、あらかじめ AS/400 で、コマンド WRKRPYLE で メッセージ自動応答を組み込んでおく必 要がある。【図 1】【ソース 1】【ソース 2】業務課題の解決と効果
まず、各拠点の業務担当者から日々の 電話がなくなった。業務担当者は、プリ ンターに対し用紙の差し替えのみ行うと いう単純作業で帳票が印刷できる。Migaro.Technical Award 2013
優秀賞
部門 25250画面を使用せずに AS/400
スプールファイルをコントロールする
白井 昌哉 様
太陽セメント工業株式会社
経理部 業務推進室 部長
太陽セメント工業株式会社 http://www.taiyo-cement.co.jp/ 建築用ブロックや舗装材など、さま ざまな用途に使用されるコンクリー トブロックの製造を行っている。業 界におけるパイオニア企業として、 排気ガスを浄化するブロック、緑化 ブロック、個性的で美しいブロック など、常に時代が求めるニーズを読 み取りながら製品を開発している。35
ソース1 CLプログラム
図1 売上伝票印刷状況画面
この効果がシステム利用全体に影響 し、「コンピュータはわからない」とい う担当者レベルの思い込みを払拭でき、 業務担当者からシステムに対する新たな 提案がされるようになった。 結果、システム全体が徐々にバージョ ンアップしてきていることは、システム 管理者からしてみれば、大きな喜びであ り、今後の開発にも力を注ぐことができ る。 Delphi/400 でのシステム開発を通じ、 今まで 5250 画面ではできなかったこと ができるようになった点も多数あり、 Delphi/400 を選択してよかったと思っ ている。 M
37