#HeartCoreRoboのプロシージャは何度も使用する処理の管理が簡単
RPAの開発が進んでくると、似たような処理を違う処理で使いたい場面が出てきます。
その際、前に作った処理からコピーして新しい処理に使いがちなのですが、そうすると修正が必要な場合に、コピー前後の二つとも修正をしなければならず、開発が進むほどメンテナンスが大変になってきます。
HeartCoreRoboでは、プロシージャという機能を使って、違う処理から以前の処理を呼び出すことが簡単にできます。
私は他のRPAツールもある程度使ってみたことがあるのですが、下記のような共通処理に対して変数の指定が思ったようにいかず、共通処理側に変数が渡らない、処理後の変数が返ってこないというように苦労することがありました。その点、HeartCoreRoboでは変数の指定が簡潔に行え、スムーズに開発を進めることができました。
#プロシージャを使用しない記述例
例えば、画面上に2つのボタンがあり、どれか一つを選択した後に検索実行する処理があるとします。この場合、ボタンAをクリックしてから検索実行する処理をHeartCoreRoboで実現すると、
//処理1 ボタンAをクリック
click "image" template="comp1021-1"
//処理2 検索ボタンをクリック
click "image" template="comp1021-2"
といった処理になります。ボタンBをクリックしてから検索実行する処理は
//処理1’ ボタンBをクリック
click "image" template="comp1021-3"
//処理2 検索ボタンをクリック
click "image" template="comp1021-2"
となります。この処理は同一システムでいろんなメニューで使われているもので、その都度設定しているとすると、そのボタンの形が変わった場合、この処理が使われているスクリプト一つひとつを修正する必要が出てきてしまいます。
#プロシージャを使用する記述例
上記の処理をプロシージャを使ってまとめると
//変数{1}:クリックするボタンを指定する。
procedure buttonclick {
//処理1 ボタン{1}(変数で指定)をクリック
click "image" template="{1}"
//処理2 検索ボタンをクリック
click "image" template="comp1021-2"
}
//ボタンAをクリックする場合は、プロシージャ名の後ろに「comp1021-1」
buttonclick comp1021-1
//ボタンBをクリックする場合は、プロシージャ名の後ろに「comp1021-3」
buttonclick comp1021-3
のように半角スペース区切りで、クリックするボタンのテンプレートイメージを指定すれば、前後の処理は同一で、クリックするボタンだけを変更する処理を簡潔に実装することができます。
#変数が複数ある場合
buttonclick comp1021-1 paramA paramB
のように半角スペース区切りで並べれば、呼び出し元のプロシージャ側で順に{1}、{2}、{3}のように指定することで受け取ることが可能です。
#プロシージャを別スクリプトとしておくことも可能
また、procedure部分だけを保存したスクリプト(仮に「プロシージャ集.tpr」とする)を作成し、他のスクリプトで使用したい場合は、
include プロシージャ集.tpr
buttonclick comp1021-1
のように、include関数を使って他のスクリプト内のプロシージャを読み込み、その後でプロシージャを実行することができ、呼び出す側のスクリプトをシンプルにすることができます。
#私の実際の使用例
上記のようなプロシージャは、今のところ
・ネットバンキングから口座ごとの入出金明細をダウンロードする際、口座番号の選択だけ異なるが、その後のダウンロード処理は同一。
・検索画面で検索条件を指定する際、条件指定のパターンは複数あるが、検索前後の処理が同一。
といった処理に、非常に役立っています。
エンジニアの方ならリファレンスを読めば理解できるのでしょうが、私のような非エンジニアの者には少々抵抗があるため、同じような境遇の方が参考にしていただければ幸いです。