コマンドラインインターフェイス(UiRobot.exe execute -p...)で異なるプロセスが実行される

:white_question_mark: Question

同一のパッケージを異なる表示名で複数のプロセスに追加している場合、コマンドラインインターフェイスで UiRobot.exe execute -p を実行すると、指定したプロセスと異なるプロセスが実行される場合があります。

実行コマンド:

UiRobot.exe execute -p "processname" --folder "folderpath"

例:

  • パブリッシュされたパッケージ:UiPathDemoProcess (v1.0.1, v1.0.2)

  • プロセス名:

    • UiPathDemoProcess (v1.0.1)

    • Dev_UiPathDemoProcess (v1.0.2)

UiPathDemoProcess を指定して実行した場合:

UiRobot.exe execute -p UiPathDemoProcess --folder "folderpath"

結果:

Dev_UiPathDemoProcess が実行されます。

Dev_UiPathDemoProcess を指定して実行した場合:

UiRobot.exe execute -p Dev_UiPathDemoProcess --folder "folderpath"

結果:

フォルダー内に Dev_UiPathDemoProcess という名前のプロセスが見つからない旨のエラーが発生します。

:light_bulb: Answer

原因

UiRobot.exe execute コマンドの -p / --package-id オプションは、Orchestrator で設定されるプロセスの表示名ではなく、パッケージ ID を参照する仕様です。

そのため、同一パッケージを異なる表示名で複数のプロセスに追加している環境では、-p にプロセスの表示名を指定しても意図したプロセス表示名として解釈されません。

UiRobot.exe execute --help では、関連オプションは以下のように説明されています。

-p, --package-id
Package Id of the process to execute (available version will be used).

-r, --process-name
Name of the process to execute.

-f, --file
Nupkg or legacy project/workflow file to execute.

解決策

プロセスの表示名を指定して実行する場合は、-p / --package-id ではなく、-r / --process-name を使用します。

UiRobot.exe execute -r "processname" --folder "folderpath"

例:

UiRobot.exe execute -r "Dev_UiPathDemoProcess" --folder "folderpath"

パッケージ ID を指定して実行する場合は、-p / --package-id にプロセス表示名ではなくパッケージ ID を指定してください。

UiRobot.exe execute -p "packageid" --folder "folderpath"

同一パッケージを異なる表示名で複数のプロセスに追加している運用では、コマンドラインから特定のプロセス表示名を指定する際に -r / --process-name を使用することで、意図しないプロセスが実行される事象を回避できます。

参考:

「Robot Command Line Interface」

公式ドキュメントでは、execute コマンドの --process / -p 引数は <Package_ID> を指定する引数として説明されています。