先日、UiPathをアップグレードしたら、動作しなくなったので対処します。UiPathで作成したプロジェクトではなく、それを呼び出す手順に変更がありました。これに対処します。
まずは、空白のプロジェクトを新規で作成します。アプリ/Webレコーダーをクリックして目的のアプリを選択します。
kabuステーションを例に説明します。IDは保存できるので、パスワードをロボットに入力してもらいます。パスワードを入力する項目をクリックする動作を追加します。これをしないとIDの項目に入力される可能性があります。一連の流れが小ウインドウに追加されていきます。パスワードを入力しますが、後からでも変更が可能です。
ログインボタンをクリックする動作も記録します。最後に「保存してstudioに戻る」ボタンをクリックします。
作成したプロジェクトを上書き保存して、正常に動作するか確認します。
ここからが重要です。UiPathのアップグレードで動作しなくなった挙動を修正します。先に作成したプロジェクトは、下記のフォルダに保存されています。
ドキュメント→UiPath→プロジェクト名
他に重要なフォルダを下記のようになります。
kabuステーション
C:\Users\minok\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\kabu.com\kabuステーション.appref-ms
UiRobot.exe
C:\Users\minok\AppData\Local\Programs\UiPath\Studio
「UiRobot.exe」はロボットをコマンドで実行することが可能なプログラムです。また、ロボットの場所が、以前はUiPathにバージョンのついたフォルダ名だったのですが今回はこのようになりました。これでUiPathをアップデートしても問題はなくなるかもしれません。
プロジェクト関連のファイル→ドキュメント→UiPath→プロジェクト名のフォルダ
ファイルの場所が一通り判明したので、メモ帳などに次の内容を記述します。
@echo off
cd C:\Users\minok\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\kabu.com
start kabuステーション.appref-ms
timeout /nobreak 5
cd C:\Users\minok\AppData\Local\Programs\UiPath\Studio
start UiRobot.exe execute --file "C:\Users\minok\Documents\UiPath\kabustation\Main.xaml"
2行目 Windwosアプリ(kabuステーション)の場所に切り替えます。
3行目 Windwosアプリを起動します。
4行目 5秒待機します。
5行目 ロボットのプログラムがあるフォルダに切り替えます。
6行目 ロボットのプログラムを使用して、ログインするプロジェクトを呼び出します。
この内容を保存します。拡張子は.batにして保存します。
保存したらダブルクリックして動作確認します。想定ではWindwosアプリが起動して自動でログインしてくれるはずです。
ダブルクリックするとエラーが発生しました。文字化けしています。
この問題は、文字コードをANSIにすることで解決出来ました。気を取り直してもう一度バッチファイルを実行します。Windwosアプリが起動するところまでしか進みません。パスワードの項目に文字を入力して、ログインしてくれません。
コマンドプロンプトで、この部分(6行目)を入力して確認すると次のメッセージが表示されました。
UiRobot コマンド ラインから実行できるのは、.NET 6 の .nupkg ファイルまたはパブリッシュされたプロセスのみです。
パブリッシュとは実行可能な形式に出力することで、PowerPointでも同じような機能がありました。PowerPointをインストールしていないユーザーにも観覧できるように、プログラム付きで出力したことを覚えています。Studioにパブリッシュがあるので確認します。しかし、パブリッシュ先を変更できないので、別の方法を試すことにします。公式サイトの説明を参考に進めていきます。
コマンドプロンプトでプロジェクトを、拡張子が.nupkgのファイルに出力するというものです。このプログラムは「UiRobot.exe」と同じUiPathのインストールフォルダにあります。
UiPath.Studio.CommandLine.exe publish -p "プロジェクトのフォルダ+project.json" -f "出力先フォルダ"
UiPath.Studio.CommandLine.exe publish -p "C:\Users\minok\Documents\UiPath\kabustation\project.json" -f "C:\Users\minok\Documents\UiPath\kabustation"
もしくは下記のコマンドを入力します。
UiRobot.exe pack "C:\Users\minok\Documents\UiPath\kabustation\project.json" --output "C:\Users\minok\Documents\UiPath\kabustation"
指定したフォルダに、.nupkgファイルが作成されました。
これを元にバッチファイルを修正します。
@echo off
cd C:\Users\minok\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\kabu.com
start kabuステーション.appref-ms
timeout /nobreak 5
cd C:\Users\minok\AppData\Local\Programs\UiPath\Studio
UiRobot.exe execute --file "C:\Users\minok\Documents\UiPath\kabustation\kabustation.1.0.1.nupkg"
.NET6をインストールする必要はありませんでした。
これで指定時刻にアプリを起動して、ログインする、一連の流れを自動化する準備が整いました。このバッチファイルをタスクスケジューラに登録します。
またひとつ、毎日の単純作業を減らすことができ、時間の節約をすることができました。