Last updated on 2021年1月4日
UiPathとPythonで書いたコードを連携させたいなぁ
作ればいいじゃないかにゃ?!
確かに!
というわけで、こんにちはエピックです。
最近Pythonを利用して、画像処理やAモデルの開発を行うことが多いのですが、自動化の延長としてUiPathから呼び出せたら便利だなとふと思いました。
そこで実際に、カスタムアクティビティ開発を行いPythonを実行することができたのでその備忘録となります。
カスタムアクティビティの開発については、下記の記事で書いてますので参考にしてみてください。
今回開発したもの
開発したものですが、Pythonコードを実行しその標準出力を受け取るカスタムアクティビティです。
標準出力と書いてますが、Pythonであれば、print 関数を用いたその出力結果です。
まず、コードを記載します。
上記のコードは、UiPathのカスタムアクティビティ開発の際に、Visual Studioに記述したものをそのまま記載しています。
(実際の利用イメージは、本記事の下のほうに貼っております)
コード上、C#で行っている処理内容ですが、System.DiagnosticsにあるProcessStartInfoクラスを使って起動するプログラム(Python.exe)の設定をし、System.Diagnosticsにある、ProcessクラスのStartメソッドを使い外部プログラムを起動しているのみとなります。
あわせて、標準出力を得るため、Process.StandardOutput よりアプリケーションの標準出力を受け取っています。
引数としては、Python.exeのパス、実行するpythonスクリプトのパス、そして実行結果をうけとる String型の変数を定義しています。
注意点として、実行環境上には、あらかじめ Pythonをセットアップしておく必要があります。
実行してみる
コードではイメージがわかないと思いますので開発したものを実行してみたいと思います。
まず全体イメージです。
中央にある「Connect Python」と青くなっているアクティビティが開発したカスタムアクティビティです。
プロパティには、Python.exeのパスと実行するPythonスクリプトを設定しています。
そして、受け取った結果を【メッセージボックス】を利用し表示するようにしてみます。
ちなみに、今回実行するPythonスクリプトは非常にシンプルで下記となっています。
print("Hello World!! from Epic Life")
では実行してみます。
実行!
しっかり値を受け取ることができました。
終わりに
RPAはすでにガートナーのハイプ・サイクルでは幻滅期を通り過ぎてしまっているようにすでに飽きられつつ有るテクノロジーですが本領発揮はこれからだと思っています。
それは開発の難しさと保守の難しさに課題はありますが、これをほど様々なサービス連携・効率化を実現できるテクノロジーは珍しいからです。
今回このようなアクティビティを作ってみたのも、Pythonであれば簡単に実装できるがVBAやC++ではちょっと。。。という問題を解決しすぐにUiPathとPythonで自動化の検証を行えるようにしたためです。
これですぐに検証に取りかかれます!(o・∇・)o
今回も最後までお読みいただきありがとうございます。
質問などありましたら、コメント・Twiterにお願いします。
では。