こんにちは。C&I統括本部の木村です。
レガシーシステムと呼ばれるようなシステムの保守を担当していると、ユーザーの要望に応えようとするあまり、開発規模が大きくなって、結果、何も達成できず、歯がゆい気持ちになることってありませんでしょうか。
そこで、今回、新技術とレガシーシステムを組み合わせて、効果的な提案をした実例を紹介します!
同じような状況になった時に、解決策のひとつになれば幸いです。
では、さっそく見ていきましょう。
1.はじめに
私たちの取引先様では大型コンピューター(以下、ホストコンピューター)で基幹システムを運用しています。
基幹業務はそのホストコンピューターのエミュレーターを導入したPCで業務運用されています。
私たち業務SEは、取引先の担当者様からシステム改善の相談を受けた場合、このホストコンピューターで稼働するシステム改修の要件をまとめ、開発することで取引先様の業務改善をサポートしています。
しかし、現状、使用しているシステム内での改善に留まるため、システムが制約となって、取引先様が改善を断念してしまうことがあります。
そうした時に、別のシステムと組み合わせることで、取引先様の要求に対して、柔軟に対応する提案を行いました。
2.提案した実例
今回は、ホストオンライン業務(以下、オンライン)の一部のRPA化を行いました。
担当者様は以下のステップでオンラインでの入力作業を行います。
それに対して、RPAとオンラインシステムを組み合わせることで、担当者様の要求に応えることができました。
(1)取引先様でのオンライン入力作業
取引先様では以下の手順でオンラインへの入力作業を行っています。
-
手順①「入力元データの準備」:オンラインで登録するデータの準備
-
手順②「モジュール作成」:オンライン上で動作するマクロの作成
-
手順③「オンライン入力」:手順②で作成したオンラインのエミュレータのマクロを実行し、オンライン画面から手順①で準備したデータを入力
取引先様よりこの一連の業務の自動化の相談があり、システムを構築しました。
(2)システム対応と課題
作業の自動化はPythonとRobotFrameworkを用いて取り組みましたが、オンラインエミュレータにあるマクロの実行(手順③)を上手く自動化出来ませんでした。
-
手順①「入力元データの準備」:オンラインで登録するデータの準備
⇒自動化達成! -
手順②「モジュール作成」:オンライン上で動作するマクロの作成
⇒自動化達成! -
手順③「オンライン入力」:手順②で作成したオンラインのエミュレータ自体にあるマクロを実行し、オンラインでデータを登録
⇒Pythonではエミュレータソフト内のマクロが起動されず、自動化出来ず(あと一歩)
(3)画像認識機能との組み合わせ
手順①、②はPythonとRobotFrameworkで自動化することができましたが、手順③はPythonとRobotFrameworkから直接、エミュレータ自体にあるマクロを実行することができなかったため、別のアプローチが必要でした。
そこで、エミュレータの画面上にあるマクロの起動ボタンに着目して、対策を考えました。
マクロ起動ボタン()を画像認識させて、ボタンを 押下するようにしました。しかし、ボタンを押下する部分は、Pythonでは実現できなかったためRobotFrameworkからSikuliXを使ってマクロ起動ボタンの画像を認識して押下するようにしました。
RobotFramework上でのコマンド部分。m_0001.png()の画像ファイルと同じ画像を探し、確認できれば画像部分をクリックします。
また、マクロ起動ボタンの画像認識をし易くするため、画像認識処理の前にエミュレータのウィンドウを最大化するアクションを入れるように工夫を加えました。
RobotFramework上でのコマンド部分。エミュレータのウインドウを最大化しています。
こうして、取引先様から依頼されたオンライン入力データの作成から入力までの自動化が実現しました。
3.今回の対応を通して感じたこと
ホストオンラインというレガシーシステムでの入力作業の省力化ということで、RPAとの組み合わせ、特に画像認識機能を用いて自動化を実現した実例でしたが、いかがでしたでしょうか?
今回、レガシーシステムの改善であっても、新しい技術を組み合わせることで、選択肢が増えて、取引先様に喜んでもらえる提案が出来たと思います。
また、私たち技術者にとっても新しく得た技術を実践し、結果、ユーザーの役に立つことができました。
以上