はじめに
前回は使用例などを紹介しましたので、今回は実際にA社で運用した例とその効果を紹介します。
A社の運用事例について
◆自動化したい業務内容の概要
A社のα部門では「入退社/異動時のシステム権限変更業務」を実施しています。
新入社員が入社する際、あるいは社員が部署異動や退社する際に、まず人事部門がその社員の情報をワークフローシステムにて申請します。α部門ではその申請の情報を確認し、AD(Active Directory)等の社内のシステムにアカウント登録、あるいは権限変更などを行います。作業後に該当ワークフローシステムの申請を作業済みのステータスに変更します。
この業務の特徴としては、下記の通りです。
①手順書通り画面を操作する定型作業。
②作業が必要なシステムが複数ある。
③申請の数が多く、月に約300件ある。
④申請タイミングは不定期。特に入社の際は対象者の業務開始に影響があるため、早急な対応が必要。
この業務を自動化したいが予算をとっていなかったため、低コストで自動化を実現する方法を検討しました。
◆自動化に向けた課題とpowershellの使用方法
1.データベースの操作
最初に直面する課題は、ワークフローシステムにある申請の情報をどうすれば取得できるか、です。人が作業する場合は、ワークフローシステムのウェブ画面にログオンしてから表示された情報を確認します。自動化する場合、そもそも申請の情報を保存しているワークフローシステムのデータベースから取得するのが一番速く確実な方法です。
PowerShellでは、SqlConnection クラス (System.Data.SqlClient)を使用することによって、データベースへの参照・更新などができます。データベースにログインし、SQL文を実行し、必要な情報だけを取得することで今回の課題は簡単にクリアできます。
2.AD(Active Directory)の操作
次に課題となるのはADへのアカウント登録や情報変更などの操作です。低コストで仕事効率化(1)にも話した通り、PowerShellはMicrosoftが開発したスクリプト言語ですので、Windows OSやWindows Server OSでの操作が充実していて、Microsoft系製品もほぼサポートされています。無論ADもPowerShellから操作できます。PowerShellはActive Directoryモジュールが提供されていて、Windows Server 2019 だとコマンドレットが 147個あります。下記のコマンドで詳細を確認できます。
Get-Command -Module ActiveDirectory
アカウント作成はNew-ADUserコマンド、情報変更はGet-ADUser –FilterとSet-ADUserコマンドにて実現可能です。
3.ウェブ画面での操作
最後の課題はワークフローシステムのウェブ画面を操作することです。申請内容にしたがい、システムのアカウント登録・変更後に、ワークフローシステム申請を作業済みのステータスに変更する必要があります。最初の課題と同様、データベースの情報を更新すれば一番速いですが、データベースを直接変更することはリスクもあるため、ここではリスク回避の方法としてあえてウェブ画面上で操作する方法をとっています。
ウェブ画面で操作するには、ブラウザをPowerShellからコントロールすることが必要です。Windows標準ブラウザのIE、Edgeはもちろん、ChromeなどのブラウザもSeleniumやUWSCなどのフレームワークを使用してPowerShellから操作可能です。
今回はワークフローシステムのウェブサイトにログオンし、フォームに情報を入力し、送信ボタンをクリックだけの操作ですので、簡単にクリアできます。ただし、ブラウザの操作は予想外の挙動が多く、自動化業務の中で一番エラーになりやすい操作です。エラーに配慮して処理を記載する必要があります。
4.自動化ツール自体の実行
上記1~3にて、情報取得から、情報更新までの一連業務を自動化するツールが完成します。しかし、これだけだと申請が来るたびに手動で自動化ツールを実行する必要があり、また申請が複数ある場合には複数回実行する必要があるため、もう一歩工夫が必要です。申請に対する一連の作業を処理必要な申請がなくなるまで繰り返し実行するように組込むと、より自動化に近づきます。
また、完成した自動化ツール自体も自動実行されるように設定します。Windowsであればタスクスケジューラーを使用します。自動化ツールをタスクスケジューラーに登録し、1時間ごとに1回実行等に設定すれば、作業者がいなくても、完全に自動処理できます。
◆自動化した効果
まずは業務時間の削減効果が大きいです。自動化ツール導入前は毎月35時間程度の作業量でしたが、導入後は2~3時間に減りました。自動化ツールの作成・導入自体に100時間程度かかりましたが、トータルでみると業務時間の削減に大きく貢献しています。
また、自動化ツールによってオペレーションミスが無くなり、1時間1回の自動処理により対応のリードタイムも短縮しサービスレベルが向上しました。
おわりに
今回紹介した事例のように、低コストでも自動化で大きな効果を得るのは可能です。しかし、自動化する際に落し穴もたくさんあります。導入する前に、業務フローの整理は必要です。はじめにきちんと現場調査、フロー整理しないと、自動化ツール導入後でもエラーが多発し、結局人で対応しないといけないことになるケースもあります。A社の事例の場合は、導入前の業務整理だけで過去7年分の申請内容(約2万件)を精査して、パターン化しました。
また、今回では紹介出来なかった自動化ツール導入時の落し穴も他にたくさんあります。弊社ではRPA導入の経験も豊富ですので、自動化ツールの導入について興味がある方はぜひこちらもご覧ください。