RPAとサブルーチン

お久しぶりです! ゆる~くずっこけた文章に定評のある、佐助のおっかぁです!

他のライターさん達はマジメな文章でいらっしゃるので、ひとりくらい軽いノリのがいてもいいじゃない?なんて開き直りながら書いてたりします(^_^;)

てなワケなので今回も、ゆる~く行きますよー!

ロボットによる自動化

本日のテーマは、『RPAとサブルーチン』です。

RPAについては割愛するとして、”サブルーチン”ってなんじゃらほい。語感からすると、”サブ”と”ルーチン”の合わせ技っぽい感じなんですが・・・ヒヨコの拙い予測を軽く上回ってくるこの業界なので、詳しく調べてみるに越したコトはないですね。

※先日『シンクライアント』という単語に触れる機会があったんですが・・・「シンク、と・・・ライアント? はて?」となったんで調べてみたところ、「シンとクライアント」の2つだと知りまして。ITヒヨコのちゃちな予測変換、アッサリ敗北。・・・『シンクライアント』に関しては、いつか書くことがある、かなぁ。気になった方は調べてみてくださいね!

で、まずはサブルーチンという単語に絞って調べてみました。困った時のウィキ先生!

そもそもサブルーチンとはなんぞや?

サブルーチン(英: subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。
プログラムのソース中で、繰り返し現れる作業をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる作業でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ(現在のパソコンやワークステーションなどほぼすべて)では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。
引用元:Wikipedia

ウィキ先生の記事を読む限り、サブルーチンはRPAだけに関わる単語ではないようです。合わせ技かな、と思ったことに関しては合っていたようなので、ひと安心。
ただ・・・ウィキ先生だけだとちょっと難しい言葉が多くて、わかりにくいですね。

わかりやすく説明してくれているサイト様の記述によると、プログラムの処理(関数)というのは大きく2つに分けられます。

1.機能全体の中核となる処理(いわゆる「メイン処理」)
2.他の処理から呼び出される処理
引用元:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

の2つです。

この2つのうち

2.他の処理から呼び出される処理を指す呼び名が「サブルーチン」です。

・・・とのこと。こちらにわかりやすい画像も載せてくださってたので、拝借させていただきました。

緑色で『サブ』と書かれているのが、サブルーチンってヤツです。

うーん。いろいろ頑張って考えた結果、『メインとなる処理を完遂するために必要な、一定の繰り返し作業のまとまりをサブルーチンと呼ぶ』という認識で良さそうですね。以下の画像のような構造が成り立つそうですので。

ちなみに、画像ではメインの下に1つ目のサブルーチン、その下に2つ目のサブルーチンがありますが・・・こうした親・子・孫のような構造もある、ってコトみたいです。

でで。
サブルーチンがどういうモノなのかがザックリとわかった・・・というコトにしておいて、いよいよ本題です!

RPAにおける、サブルーチン

RPA、すなわち『Robotic Process Automation /ロボティック・プロセス・オートメーション』では、サブルーチンはどういうかたちになるのでしょうか?
これまた非常にわかりやすい喩えにしてくださったサイト様がいらっしゃいました。以下にリンクを貼りますので、ぜひどうぞ。

 RPAで業務効率化 | 株式会社電算システム(DSK)
知っていたら役立つ?RPA開発用語特集③~「サブルーチン」編~
https://dsk-rpa.amebaownd.com/posts/7309725/
今回で3回目となるこの特集!前回は「条件分岐・例外処理」編と2本立てでした。今回は「サブルーチン」についてです!

引用するとね、あんまりにも「あーなるほど」ってなるんで、もういっそのことページまるごと持ってきたいくらいだったんです。でも、それだとズルになっちゃうでしょう?なので参照させていただきますね。
ところで。上に参照したサイト様の記事にもいるし、この記事を書くためにいろいろ調べている間にもちょいちょい・・・というかガンガン出てきたヤツがいるんですよ。

ソイツの名前は、『WinActor』

正体は何モノかと言いますとですと、RPAツール・・・というところまでは皆さんご存じ、あるいは予想がついたかと思うんですが。コイツがタダのRPAツールではなくて、2010年にNTTが生み出した純国産のRPAツールなんだそう。純国産・・・そりゃあ、あっちこっちで名前が出てくるワケだわな。
いろんなところで出てくる理由、それは日本語に対応しているから。他の代表的なRPAツールの出身地を調べてみたらアメリカだとかイギリスだとかだったんで、日本語に対応してたとしても翻訳がちょっとおかしかったり、下手すると全部英語で使うのに辞書が要ったりなんだり、してたんでしょうね・・・( ̄▽ ̄;)
更に、親会社が国内企業(それも超大手!)なので、サポート体制や事業継続性などの面で安心出来るというのもそこかしこで推されている理由のひとつとなっているようです。
入手はNTTアドバンステクノロジとNTTデータの双方から可能なようですが、ライセンスの体系が異なっているので注意、とのこと。詳しくは、以下リンクをどうぞです。


ちなみに、筆者のいる会社でも注目しているRPAだったりしてます!

RPAツールとサブルーチン

WinActorだけに関わらず、RPA導入において重要なキーワードのひとつとしてシナリオ作りがあります。
ココで言うシナリオとは、パソコン操作の手順書、という意味。
上にリンクを貼ったサイト様の例:シャワーにおいては、『シャワーを浴びる』ことそのものがメインのシナリオ、ということになりますね。
でもってサブルーチンにあたる部分が、まとめてひとつの指示に書き換えた『流す』という行動です。

これ、別にサブルーチンを使わなくてもシナリオを完遂することは可能だそう。

じゃあなんでわざわざ使うのかというと、処理が整理されてシナリオ全体がわかりやすくなるから。サブルーチンを上手く使うか使わないかで、全然違うみたいなんですよ。こちら。

サブルーチンを使うとシナリオがすっきりする
画像引用:RPAネコの知恵袋

こうやってサブルーチンとして一部のシナリオをまとめておけば、いつでもメインシナリオから呼び出して実行することが出来るようになるんだとか。すると、処理を分別して行いたい時や同じ処理を何回も行う時に便利になりますね。更には、シナリオ全体のファイルサイズを削減したり、メンテナンス性の向上など管理面でも負担軽減に繋がってくれます。
RPA導入は基本的に実際の導入先部署とは別の部署(だいたいシステム関連の部署)が行うことがほとんどだそうなんで、メインシナリオ(つまりは導入を先導するチームの人はあまり深く知らない作業工程)をきちんと組み上げるのも大変だと思われます。そんな中、細かなところを突き詰めてまとめるとなると・・・なんだかアタマが痛くなってきそうです。が、後になって全体を見てみた時に「やっといてよかった」となる工程なのかもですね。


余談。
すぐ上に貼ったサブルーチンの画像の引用元サイト様はRPAツールWinActorの解説をされているのですが・・・コレ見ていてちょっと思いました。

WinActorサブルーチン
WinActorサブルーチンの中にノードを入れていく
画像引用:RPAネコの知恵袋

画像はWinActorのサブルーチンの使い方から引っ張らせてもらってます。注目は、左側のメニューの細かさ。いろんな内容がズラリと並んでるワケなんですけど、コレを見てパッと何だか(素人なりに、なんとなくでも)わかるのは、それが日本語だから。英語だったり他の言語だったりしたらどうなるか・・・語彙が貧弱なんで「ヤベェな・・・」としか言いようがないですorz 

おわりに

今回のサブルーチンは、その単語自体は知らなくても、説明を読めば「あぁ、なるほど」となる言葉でした。機能についても、納得が出来たように思います。その点では、ちょっとはITヒヨコとして成長してきたんでしょうかね。そうだといいなぁ。
今はまだ知識を付けただけなので、いつかは扱いこなすことの出来る技術の方を身に付けたいものです。

以上、家を出たその瞬間から涙目になって杉の木を呪いたくなる、花粉症の佐助のおっかぁがお送りしました!