UiPathでフローをつくっててUiPathアクティビティだけでは自動化しづらいことありますよね?
また、機械学習のプログラムをUiPathでつくれたらなぁと思うときもありますよね?
UiPathでPythonが使えれば小回りの効くワークフローが組めます。
また、機械学習のプログラムと連携したりと拡張性の高い自動化ができます!
そこで今回は「UiPathでPythonを実行するワークフローの作り方」について詳しく解説します。
UiPathでPythonアクティビティをインストール
まずはPythonファイル実行のために必要なパッケージをインストールしていきます!
UiPathにPythonアクティビティが入っていない方はデザイン>パッケージを管理をクリックしてインストールします↓
![](https://automate-lab.com/wp-content/uploads/2022/02/c1ca44537a5e45dfa421b5de3d160077-1024x215.png)
オフィシャルを選択し、pythonと検索し、インストールをクリックしてください↓
(UiPath.Python.ActivitiesとなっていればOKです)
![](https://automate-lab.com/wp-content/uploads/2022/02/795316b92fc766b0181f6fef074f03fa-1024x380.png)
次にインストールが完了したかを確認します。
ワークフロー画面のアクティビティパネルでpythonと検索してみましょう!
Pythonに関するアクティビティがこのように表示されたらOKです↓
![](https://automate-lab.com/wp-content/uploads/2022/02/2b530e80c7d0de90885e285c5d798063-1.png)
Pythonアクティビティの使い方
Pythonパッケージのインストールが完了しました!。
ここではアクティビティの使い方を説明をします。
今回はPythonで「Hello!」と表示するプログラムを作ったので、UiPathで実行させます。
Pythonアクティビティは「Pythonスコープ内」で動きます。
なのでPythonスコープをシーケンスへ入れます。
![](https://automate-lab.com/wp-content/uploads/2022/02/795316b92fc766b0181f6fef074f03fa-1-1024x397.png)
次にターゲットの設定を行います。
使用しているPCスペックに応じて設定を変えてください。
「32bitであればx86」を「64bitであればx64」を選択してください。
間違えるとエラーが出ます!
次にパスの設定を行います。
パスにPython.exeが入っているフォルダを入力してください。
Anaconda3の入っているフォルダ名であれば問題ないです!
また、作業フォルダに指定があればフォルダパスを入力してください。
なければ空で問題ありません。
次にPythonスコープの中にPythonスクリプトを読み込みを入れます。
![](https://automate-lab.com/wp-content/uploads/2022/02/2b530e80c7d0de90885e285c5d798063-2-1024x416.jpg)
まずは入力>ファイル欄にpythonファイルのパスを入力してください。(拡張子.pyです)
次に出力>結果に変数を新たに定義します。
変数を作る場合は「Ctr+K」で作成してください。
変数名はわかりやすければ何でもOKです。
今回はPyLoadとしました。
次に作成した関数を呼び出します。以下は今回作った関数です↓
![](https://automate-lab.com/wp-content/uploads/2022/02/Hello.png)
Helloという関数を実行すると”Hello”を戻り値で返します。
Pythonスコープの中にPythonメソッドを呼び出しを入れます↓
![](https://automate-lab.com/wp-content/uploads/2022/02/c8856789ec11ab8b1013037cef6929f9-1-1024x408.png)
まず入力>インスタンスで先程の「Pythonスクリプトを読み込み」つくった変数を入力します。
(今回はPyLoad)
入力>名前に使用するPythonの関数名を入力してください。今回Hello関数なので”Hello”です。
ダブルクォーテーションで囲うのを忘れないでください。
出力>結果で変数を新たに定義します。
変数を作る場合は「Ctr+K」で作成してください。
変数名はわかりやすければ何でもOKです。
今回はPyMethodとしました。
次にPythonの実行結果をUiPathで読み取れるよう変換します。
Pythonスコープの中にPythonオブジェクトを取得を入れます↓
![](https://automate-lab.com/wp-content/uploads/2022/02/3a4f695a458cb0ac0aceaa2eb13ac2dd-1-1024x410.png)
入力>Pythonオブジェクトに先程の「Pythonメソッドで呼び出し」つくった変数を入力します(今回はPyMethod)
その他>TypeArgumentに出力する型を指定します。
今回の場合だと文字列なので”String型”です。
結果で変数を新たに定義します。
変数を作る場合は「Ctr+K」で作成してください。
変数名はわかりやすければ何でもOKです。
今回はPyResultとしました。この変数が出力結果になりますよ!
最後にメッセージログを追加してプログラムが正しく動いているか確認します。
Pythonスコープにメッセージをログを追加しましょう↓
![](https://automate-lab.com/wp-content/uploads/2022/02/94ed160662be198949535a112047e9b4-1-1024x904.png)
結果を見るとHelloがログに出ていますね↓
大成功です!
![](https://automate-lab.com/wp-content/uploads/2022/02/f96d9b4281f6d16b3c7589aed5a17be5-2-1024x313.png)
引数をUiPathからPythonに入れる
PythonプログラムがUiPath上で簡単なプログラムが動きました。
しかし、実際は引数を使ったプログラムを書くこともありますよね?
そこで、引数を使って文字を表示するプログラムをUiPathで実行させます。
![](https://automate-lab.com/wp-content/uploads/2022/02/29d3bc99193cb0b837fb8cc53f050ae5-1024x421.png)
今回Pythonでつくった関数です。
HelloTimesという関数に文字列(word)と回数(times)を入れて文字列を回数分だけ表示します。
基本的に引数がないときのフローと同じですが、パラメータを変えなければいけません。
Pythonメソッドで呼び出しが先程のHello関数でつくったときと2点異なります↓
![](https://automate-lab.com/wp-content/uploads/2022/02/f36fc0458607842cbf0775516687491b-1024x381.png)
入力>入力パラメータ:ここに引数を{}の中に入れていきます。
今回は引数が1つ目の引数が文字列、2つ目を数値としたいので{“Hello!”, 2}としています。
Helloが2回表示されれば成功ですね。
入力>名前:今回Hello Times関数なので”Hello Times”とします。
ダブルクォーテーションで囲うのを忘れないでください。
プログラムが正しく動いているかメッセージログで確認します↓
![](https://automate-lab.com/wp-content/uploads/2022/02/e99cc3808964d9e08ec8fb27d43842de-1024x911.png)
Hello! Hello!となっています。
Helloが2回ログに出ていますね!大成功!
Pythonで複数の戻り値がある場合
引数のあるPythonプログラムがUiPath上で動きました。
しかし、戻り値が複数あるプログラムを書くこともありますよね?
そこで、戻り値が複数あるようなプログラムをUiPathで実行させます。
![](https://automate-lab.com/wp-content/uploads/2022/02/cbf5b9f60da99bf791c0aa12a770f429-1024x713.png)
今回Pythonでつくった関数です。
HelloTimes2という関数に文字列(word)と回数(times)を入れて
1つ目の戻り値:文字列を回数分だけ表示
2つ目の戻り値:文字列を(回数+2回)分だけ表示させます。
基本的にフローは今まで紹介した内容と同じですが、パラメータを変えなければいけません。
Pytonオブジェクトを取得が先程のHelloTimes関数でつくったときと異なる点があります↓
![](https://automate-lab.com/wp-content/uploads/2022/02/795316b92fc766b0181f6fef074f03fa-2-1024x423.png)
その他>TypeArgument:今回は戻り値が複数あるので、Array型に変更します。
(System.String[] となっていればOK)
出力>結果:出力した際の変数の型もArray型に変更しましょう。
今回は変数をPyArrayとしました。
プログラムが正しく動いているかメッセージログで確認します↓
![](https://automate-lab.com/wp-content/uploads/2022/02/2b530e80c7d0de90885e285c5d798063-2-1024x364.png)
出力結果をPyArrayという変数に保存しました。
なので1番目の戻り値はPyArray(0)、2番目の戻り値はPyArray(1)になります。
ちなみにEnvironment.NewLineとすると改行されます。
今回は入力パラメータに「児島だよ!」という文字列を3回表示するようにしました↓
![](https://automate-lab.com/wp-content/uploads/2022/02/c8856789ec11ab8b1013037cef6929f9-2-1024x1000.png)
1つ目の戻り値は3回表示されています。
2つ目の戻り値は5回表示されていますね!大成功!
![](http://image.moshimo.com/af-img/0866/000000029835.jpg)
まとめ
今回は「UiPathからPythonファイルを実行する方法を徹底解説」を説明しました。
- Pythonパッケージをインストール
- UiPathから引数を与えて実行できる
- 複数の戻り値があっても実行できる
パッケージをインストールすればUiPathでPythonプログラムを実行することができます!
引数が必要なプログラムはUiPathから情報を与えることで実行できます。
最後に複数の戻り値があっても実行ができます。変数の型がArray(配列型)にすることで取り出せるので型指定の際は注意をしてください!。
UiPathでPythonが使えれば、機械学習プログラムを実行したり、UiPathのアクティビティでは実現しづらいことも自動化ができます!
Pythonを取り入れてさらに拡張性の高い自動化に挑戦しましょう!
![こたろー](https://automate-lab.com/wp-content/uploads/2022/08/029e819ed9e509be92133288e874e0b6.png)
以上、こたろーでした。