- 概要
- はじめに
- 概念
- UiPath CLI を使用する
- UiPath for Coding Agents
- 使用ガイド
- CI/CD レシピ
- コマンド リファレンス
- 概要
- 終了コード
- グローバル オプション
- uip codedagent
- uip docsai
- add-test-data-entity
- テスト データのキューを追加
- 追加-テスト-データ-バリエーション
- 分析
- 開発
- プロジェクトを作成
- 差分
- アクティビティを検索
- GET-ANALYZER-RULES
- get-default-activity-xaml
- エラーを取得
- 手動テスト用のテスト ケースを取得
- 手動テストステップを取得
- get-versions
- Get-workflow-example
- indicate-application
- 要素を示す
- inspect-package
- install-data-fabric-entities
- パッケージのインストールまたは更新
- list-data-fabric-entities
- list-workflow-examples
- パッケージ化
- 元に戻す
- ファイル名を実行
- 検索テンプレート
- スタートスタジオ
- 実行を停止
- UIA
- UIP トレース
- 移行
- 参照とサポート
UiPath CLI ユーザー ガイド
すべての uip 呼び出しは、数字の終了コードで終わります。スクリプトと CI パイプラインは、これらのコードに基づいて分岐し、成功、再試行する価値のある一時的なエラー、人間の注意が必要な資格情報の問題、およびコマンド ラインの誤用を区別します。
コントラクト
終了コードは、コマンドの出力エンベロープの Result フィールドによって決まります。ホストは、各 Result 値を 1 つの終了コードにマッピングします。
| 終了コード | Result 値 | 意味 |
|---|---|---|
| 0 | Success | 命令は完了し、その意図は達成された。 |
| 1 | Failure, ConfigError | 一般的な障害またはCLIがサーバーに到達する前に検出できる設定の問題(テナントの欠落、ディスク上のファイルの欠落など)。 |
| 2 | AuthenticationError | セッションが認証されていないか、トークンの有効期限が切れているか、Orchestrator が資格情報を拒否しました (401/403)。 |
| 3 | ValidationError | コマンドが無効な入力 (不明なフラグ、間違った値を持つフラグ、相互に排他的なフラグ、不正な形式の --output-filterなど) で呼び出されました。 |
| 4 | TimeoutError | 実行時間の長い操作が期限を超過しました。将来の使用のために予約されています — 現在、これを出力するコマンドはありませんが、コントラクトは安定しているため、コントラクトに対して書かれたスクリプトは機能し続けます。 |
さらに、以下が追加されました。
| 終了コード | ソース | 意味 |
|---|---|---|
| 130 | シェル規則 (128 + SIGINT) | ユーザーが対話型プロンプトをキャンセルしました ( uip login中に Ctrl+C、 uip skills install、 uip completionなど)。 |
UiPath CLI によって他の終了コードは出力されません。この表以外の値は、異常終了 (キャッチされないクラッシュ、暴走した子プロセス、またはシグナルを報告するシェル) を示しており、パターン マッチングではなく、調査する必要があります。
安定 性
0、1、2、3はメジャーリリース内で安定版です。特定の入力の3(検証)で終了するコマンドは、MINORおよびPATCHバンプ全体で3で終了し続けます。4は予約済みです。将来の MINOR リリースでは、長期実行コマンドからの出力が開始される可能性があります。すでに4を「タイムアウト」として処理しているスクリプトは、引き続き機能します。- 新しいコードは、リリース ノートに事前の通知とともに、メジャー リリースで追加される場合があります。現在のセットは、UiPath CLI 1.x で必要なすべての障害モードをカバーしています。
より広範な semver コントラクトについては、「 バージョン管理と安定性 」を参照してください。
スクリプトで終了コードを読み取る
bash / sh / zsh
uip or folders list
case $? in
0) echo "ok" ;;
1) echo "command failed" ;;
2) echo "not authenticated — run uip login" ;;
3) echo "bad input — check flags" ;;
4) echo "timed out" ;;
130) echo "cancelled by user" ;;
*) echo "unexpected exit: $?" ;;
esac
uip or folders list
case $? in
0) echo "ok" ;;
1) echo "command failed" ;;
2) echo "not authenticated — run uip login" ;;
3) echo "bad input — check flags" ;;
4) echo "timed out" ;;
130) echo "cancelled by user" ;;
*) echo "unexpected exit: $?" ;;
esac
set -e (または set -o errexit) は、0 以外の終了時にスクリプトを中止します。これは CI の一般的なデフォルトです。コードを区別する必要がある場合は、 trap またはコマンドごとの処理と組み合わせてください。
set -euo pipefail
if ! uip or folders list --output json > folders.json; then
case $? in
2) uip login ; uip or folders list --output json > folders.json ;;
*) exit $? ;;
esac
fi
set -euo pipefail
if ! uip or folders list --output json > folders.json; then
case $? in
2) uip login ; uip or folders list --output json > folders.json ;;
*) exit $? ;;
esac
fi
PowerShell
uip or folders list
switch ($LASTEXITCODE) {
0 { Write-Host "ok" }
1 { Write-Host "command failed" }
2 { Write-Host "not authenticated" }
3 { Write-Host "bad input" }
4 { Write-Host "timed out" }
130 { Write-Host "cancelled" }
default { Write-Host "unexpected exit: $LASTEXITCODE" }
}
uip or folders list
switch ($LASTEXITCODE) {
0 { Write-Host "ok" }
1 { Write-Host "command failed" }
2 { Write-Host "not authenticated" }
3 { Write-Host "bad input" }
4 { Write-Host "timed out" }
130 { Write-Host "cancelled" }
default { Write-Host "unexpected exit: $LASTEXITCODE" }
}
GitHub Actions
run:ステップで 0 以外の終了を行うと、ジョブは既定で失敗します。特定のコードで分岐するには、コードを明示的にキャプチャします。
- name: Query Orchestrator
id: folders
run: |
uip or folders list --output json > folders.json
echo "exit_code=$?" >> "$GITHUB_OUTPUT"
continue-on-error: true
- name: Re-authenticate if expired
if: steps.folders.outputs.exit_code == '2'
run: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET --tenant "$TENANT"
env:
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
TENANT: ${{ vars.UIPATH_TENANT }}
- name: Query Orchestrator
id: folders
run: |
uip or folders list --output json > folders.json
echo "exit_code=$?" >> "$GITHUB_OUTPUT"
continue-on-error: true
- name: Re-authenticate if expired
if: steps.folders.outputs.exit_code == '2'
run: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET --tenant "$TENANT"
env:
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
TENANT: ${{ vars.UIPATH_TENANT }}
終了コードを JSON エンベロープに一致させる
--output jsonが有効(デフォルト)の場合、エンベロープには終了コードと同じ情報に加えて、人間が判読できるメッセージが表示されます。
{
"Result": "ValidationError",
"Message": "Unknown option '--folder-pth'. Did you mean '--folder-path'?",
"Instructions": "Run 'uip or folders list --help' to see valid options."
}
{
"Result": "ValidationError",
"Message": "Unknown option '--folder-pth'. Did you mean '--folder-path'?",
"Instructions": "Run 'uip or folders list --help' to see valid options."
}
パイプラインは、迅速な意思決定 (2 でリトライ、3 で中止) のために $? で分岐し、エンベロープを解析してエラーの全体像を把握できます (Slack Webhook で Message を表示する、失敗したステップと一緒に Instructions にチケットを発券するなど)。
コマンド固有のセマンティクス
終了コードは ステータス コードであり、成功コードではありません。「結果が見つかりません」を示すDataペイロードを含むSuccessを報告するコマンドは、引き続き0終了します。たとえば、uip or folders list --all --name DoesNotExist{"Data": [], …}を返し、リストクエリが成功したため、0終了します。一致がないことは、失敗ではなく、正当な結果です。
コマンドが「操作が成功しました」と「ドメインの結果が肯定的である」を区別する必要がある場合、そのリファレンスページでそのように述べています。
uip tm testsets run— Orchestrator がテスト実行要求を受け入れてExecutionIdを返すと、常に0終了します。合格/不合格の判定は、別のuip tm wait+uip tm report getチェーンから取得されます。レポート出力のData.Failedで分岐します。uip tm waitタイムアウト時に終了コード2を出力します( uip tm wait および uip tmの実行に記載された認証エラースロットのドメイン固有の再利用)。uip or jobs start --wait-for-completion— ジョブがターミナルFaultedまたはStopped状態に達すると、0 以外の状態を終了します。--wait-for-completionを使用しない場合、コマンドは Orchestrator が要求を受け入れるとすぐに0終了します。これは、その後のジョブの結果に関係なく関係ありません。
「成功」の意味が曖昧なコマンドについては、リファレンス ページを確認してください。
参照
- グローバル オプション —
--output、--output-filter、--log-level、--log-fileフラグです。 - スクリプト パターン — リトライ、ポーリング、べき等パイプライン。
- 出力フォーマット — 終了コードを反映するエンベロープ形状。
- バージョニングと安定性 — 出口コードコントラクトがセンバーバンプ間でどのように進化するか。