- Überblick
- Erste Schritte
- Konzepte
- Verwenden der UiPath CLI
- UiPath für Codierungs-Agents
- Anleitungen
- Überblick
- Verpacken und Veröffentlichen einer Lösung
- Bereitstellung von CI für Orchestrator
- Ausführen von Tests in einer Pipeline
- Einen Agent bereitstellen
- Verwalten Sie Orchestrator-Assets und Warteschlangen
- CI/CD-Rezepte
- Befehlsreferenz
- Überblick
- Exitcodes
- Globale Optionen
- UIP-codierter Agent
- UIP-Dokumentation
- Add-Test-Data-Entität
- Add-Test-Data-Queue
- Add-Test-Data-Variation
- Analysieren
- Erstellen
- Ein Projekt erstellen
- Diff
- Suchaktivitäten
- Get-Analyse-Regeln
- get-standard-aktivität-xaml
- Fehler abrufen
- Manuelle-Testfälle erhalten
- Manuelle-Testschritte erhalten
- Get-Versionen
- Beispiel für einen Workflow abrufen
- Anwendung anzeigen
- Anzeigeelement
- Inspektionspaket
- install-data-fabric-entities
- Pakete installieren oder aktualisieren
- list-data-fabric-entities
- Beispiele für Listenworkflows
- Packen
- restore
- Ausführungsdatei installieren
- Suchvorlagen
- Studio starten
- Ausführung anhalten
- UIA
- UIP-Ablaufverfolgungen
- Migration
- Referenz und Support
UiPath-CLI-Benutzerhandbuch
Das uip resource -Tool ist die allgemeine CRUD-Oberfläche über die Runtime-Ressourcen des Orchestrator: Assets, Buckets (und darin enthaltene Dateien), Bibliotheken, Warteschlangen (und Elemente), Trigger und Webhooks. Auf dieser Seite werden die täglich anfallenden Aufgaben – Massenerstellung von Assets, Verschieben von Dateien in und aus Buckets, Verteilen von Warteschlangenarbeit, Überprüfen von Triggern – als kopiert-einfügefähige Snippets gesammelt.
Die vollständige Flag-Liste für jeden Unterbefehl befindet sich auf der uip resource -Referenzseite. Diese Seite behandelt die gängigen Nutzungsmuster.
uip resource unterscheidet sich von uip solution resource. Erstere ist die CRUD-Oberfläche auf Orchestrator (diese Seite). Letztere überprüft lokale Ressourcendeklarationen innerhalb einer .uipx -Lösung. Wenn Sie sich unsicher sind, sehen Sie sich das Präfix an: uip solution resource … liest nur Ihre Festplatte; uip resource … ruft immer den Orchestrator auf.
Konventionen, die Sie zuerst kennen müssen
Bevor ein Snippet funktioniert:
- Authentifizierung. Jedes
uip resourceVerb ruft Orchestrator auf. Führen Sie zuerstuip loginaus. Übergeben Sie--tenant <name>(kurze-t) bei einem beliebigen Verb, um den Sitzungsmandanten für einen einzelnen Aufruf zu überschreiben. - Ordner-Scoping. Assets, Buckets, Warteschlangen, Warteschlangenelemente und Zeit-/Warteschlangentrigger haben einen Ordner-Scope – übergeben Sie
--folder-path(z. BShared) oder--folder-key(GUID). Bibliotheken, API-Trigger und Webhooks haben einen Mandanten-Scope und lehnen die Ordner-Flags ab. - Schlüssel. Listenverben geben GUIDs zurück (
key,identifier,uniqueKey). Übergeben Sie diese anget,updateunddelete. Numerischeid-Felder sind intern; Übergeben Sie sie nicht an Befehle. - JSON ist die Standardausgabe. Jedes folgende Snippet basiert darauf; siehe Ausgabeformate.
Assets
Bereitstellung von Assets aus einer CSV-Datei massenweise
Dies ist die gängigste Aufgabe „Meine geheimen Schlüssel und Konfiguration verwalten“. Bei einer CSV-Datei wie:
name,value,type,folderPath
ApiEndpoint,https://api.example.com,Text,Shared
MaxRetries,3,Integer,Shared
Debug,false,Bool,Shared
name,value,type,folderPath
ApiEndpoint,https://api.example.com,Text,Shared
MaxRetries,3,Integer,Shared
Debug,false,Bool,Shared
Mit Bash + uip resource assets create durchlaufen:
#!/usr/bin/env bash
set -euo pipefail
# Skip the header row
tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
uip resource assets create "$name" "$value" \
--folder-path "$folder" \
--type "$type"
done
#!/usr/bin/env bash
set -euo pipefail
# Skip the header row
tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
uip resource assets create "$name" "$value" \
--folder-path "$folder" \
--type "$type"
done
Das erneute Ausführen für denselben Ordner schlägt bei Duplikaten fehl. Zwei Möglichkeiten, dies zu handhaben:
-
Upsert-Muster. Zuerst auflisten, dann
createoderupdatepro Zeile:tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do existing=$(uip resource assets list --folder-path "$folder" --name "$name" \ --output-filter "Data[?name=='$name'] | [0].key" --output plain) if [ -n "$existing" ] && [ "$existing" != "null" ]; then uip resource assets update "$existing" "$value" else uip resource assets create "$name" "$value" --folder-path "$folder" --type "$type" fi donetail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do existing=$(uip resource assets list --folder-path "$folder" --name "$name" \ --output-filter "Data[?name=='$name'] | [0].key" --output plain) if [ -n "$existing" ] && [ "$existing" != "null" ]; then uip resource assets update "$existing" "$value" else uip resource assets create "$name" "$value" --folder-path "$folder" --type "$type" fi done -
Muster für die Lösungsbereitstellung. Deklarieren Sie Asset-Sets, die zusammen mit einem Paket ausgeliefert werden, im Lösungsmanifest und verwenden Sie
uip solution deploy run --config-file– dieser Pfad ist von Natur aus idempotent. Siehe Anleitung: Packen und Veröffentlichen einer Lösung.
Assets des Typs Zugangsdaten
Zugangsdaten und geheime Assets benötigen einen Schlüssel für den Zugangsdatenspeicher:
# Find the credential store
STORE_KEY=$(uip or credential-stores list \
--output-filter "Data[?name=='MyStore'] | [0].key" --output plain)
# Create the credential asset (value format: username:password)
uip resource assets create ApiLogin "alice:s3cr3t" \
--folder-path Shared \
--type Credential \
--credential-store-key "$STORE_KEY"
# Find the credential store
STORE_KEY=$(uip or credential-stores list \
--output-filter "Data[?name=='MyStore'] | [0].key" --output plain)
# Create the credential asset (value format: username:password)
uip resource assets create ApiLogin "alice:s3cr3t" \
--folder-path Shared \
--type Credential \
--credential-store-key "$STORE_KEY"
Anmeldeinformations- und Geheimniswerte werden nie von list oder get zurückgegeben; Verwenden Sie assets get-asset-value (das noch einen Ordner-Scope benötigt), um den Live-Wert zu lesen, oder rufen Sie den Roboter auf.
Freigeben von Assets über Ordner hinweg
Einmal in Shared erstellen und dann für jeden Ordner freigeben, der es benötigt:
ASSET_KEY=$(uip resource assets list --folder-path Shared --name ApiEndpoint \
--output-filter "Data[0].key" --output plain)
for folder in Production Staging Development; do
uip resource assets share "$ASSET_KEY" --folder-path "$folder"
done
ASSET_KEY=$(uip resource assets list --folder-path Shared --name ApiEndpoint \
--output-filter "Data[0].key" --output plain)
for folder in Production Staging Development; do
uip resource assets share "$ASSET_KEY" --folder-path "$folder"
done
Mit unshare widerrufen. Die vollständige Verbliste finden Sie unter Assets .
Buckets und Bucket-Dateien
Laden Sie eine lokale Datei hoch
BUCKET_KEY=$(uip resource buckets list --folder-path Shared \
--output-filter "Data[?name=='invoices'] | [0].key" --output plain)
uip resource bucket-files write "$BUCKET_KEY" "inbox/invoice-001.pdf" \
--folder-path Shared \
--file ./invoice-001.pdf
BUCKET_KEY=$(uip resource buckets list --folder-path Shared \
--output-filter "Data[?name=='invoices'] | [0].key" --output plain)
uip resource bucket-files write "$BUCKET_KEY" "inbox/invoice-001.pdf" \
--folder-path Shared \
--file ./invoice-001.pdf
Der Pfad innerhalb des Buckets (inbox/invoice-001.pdf) ist das zweite Argument für write; --file ist der lokale Pfad zum Hochladen. Inhaltstyp wird automatisch erkannt; Übergeben Sie --content-type zum Überschreiben.
Laden Sie eine Datei herunter
uip resource bucket-files read "$BUCKET_KEY" "reports/summary.csv" \
--folder-path Shared \
--destination ./summary.csv
uip resource bucket-files read "$BUCKET_KEY" "reports/summary.csv" \
--folder-path Shared \
--destination ./summary.csv
Ohne --destination wird der Inhalt nach Standardwert gestreamt – nützlich für das Piping an einen Prozessor.
Auflisten und paginieren
# First page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared
# The response carries a continuationToken — pass it back to fetch the next page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared \
--continuation-token "<token-from-previous-response>"
# First page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared
# The response carries a continuationToken — pass it back to fetch the next page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared \
--continuation-token "<token-from-previous-response>"
Bucket-Datei-Auflistungen sind die einzige Ressource in der CLI, die ein Fortsetzungstoken anstelle einer Offset-Paginierung verwendet – die anderen Listenverben verwenden --limit / --offset.
Vorsignierte URLs
Wenn ein Roboter oder externer Dienst direkten Blobzugriff benötigt, ohne die CLI zu verwenden:
uip resource bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
--folder-path Shared --expiry-in-minutes 30
uip resource bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
--folder-path Shared --expiry-in-minutes 30
uip resource bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
--folder-path Shared --expiry-in-minutes 30
uip resource bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
--folder-path Shared --expiry-in-minutes 30
Beide geben eine zeitbegrenzte URL zurück, die auf den einzelnen Dateipfad beschränkt ist.
Warteschlangen und Warteschlangenelemente
Warteschlange erstellen
uip resource queues create InvoiceQueue \
--folder-path Shared \
--max-retries 3 \
--retention-period 90
uip resource queues create InvoiceQueue \
--folder-path Shared \
--max-retries 3 \
--retention-period 90
Vollständige Flag-Liste – --auto-retry, --enforce-unique-reference, --encrypted, Aufbewahrungseinstellungen – für die Warteschlangenreferenz.
Fügen Sie ein einzelnes Arbeitselement hinzu
uip resource queue-items add InvoiceQueue \
--folder-path Shared \
--specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
--priority High
uip resource queue-items add InvoiceQueue \
--folder-path Shared \
--specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
--priority High
--specific-content ist die JSON-Nutzlast, die der Roboter liest.
Massenhinzufügen aus einer Datei
cat > ./items.json <<'EOF'
[
{"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-001"}},
{"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-002"}}
]
EOF
ITEMS=$(jq -c . ./items.json)
uip resource queue-items bulk-add InvoiceQueue \
--folder-path Shared \
--queue-items "$ITEMS" \
--commit-type StopOnFirstFailure
cat > ./items.json <<'EOF'
[
{"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-001"}},
{"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-002"}}
]
EOF
ITEMS=$(jq -c . ./items.json)
uip resource queue-items bulk-add InvoiceQueue \
--folder-path Shared \
--queue-items "$ITEMS" \
--commit-type StopOnFirstFailure
--commit-type steuert, was passiert, wenn die Validierung einer Zeile fehlschlägt: ProcessAllIndependently (Standard), StopOnFirstFailure oder AllOrNothing.
Überprüfen Sie fehlgeschlagene Elemente
uip resource queue-items list --folder-path Shared \
--queue-name InvoiceQueue \
--status Failed \
--output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"
uip resource queue-items list --folder-path Shared \
--queue-name InvoiceQueue \
--status Failed \
--output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"
Verwenden Sie queue-items get-history für ein einzelnes uniqueKey , um den vollständigen Statusübergangsverlauf anzuzeigen – nützlich für die Diagnose von Wiederholungsschleifen.
Fehlgeschlagene Elemente zur Wiederholung markieren
uip resource queue-items set-review-status Retried \
"<queue-item-key-1>" "<queue-item-key-2>"
uip resource queue-items set-review-status Retried \
"<queue-item-key-1>" "<queue-item-key-2>"
set-review-status nimmt eine von Retried, Abandoned, Deleted.
Auslöser
Listen Sie Trigger in einem Ordner auf
uip resource triggers list --type time --folder-path Shared --enabled \
--output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"
uip resource triggers list --type time --folder-path Shared --enabled \
--output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"
Drei Triggertypen: time, queue und api. Übergeben Sie --type bei jedem Verb (standardmäßig time). API-Trigger haben einen Mandanten-Scope – lassen Sie --folder-path weg.
Erstellen Sie einen Zeittrigger
RELEASE_KEY=$(uip or processes list --folder-path Shared --name InvoiceProcessing \
--output-filter "Data[0].Key" --output plain)
uip resource triggers create --type time \
--name NightlyInvoices \
--release-key "$RELEASE_KEY" \
--runtime-type Unattended \
--job-priority Normal \
--folder-path Shared \
--cron "0 0 2 * * ?" \
--time-zone UTC
RELEASE_KEY=$(uip or processes list --folder-path Shared --name InvoiceProcessing \
--output-filter "Data[0].Key" --output plain)
uip resource triggers create --type time \
--name NightlyInvoices \
--release-key "$RELEASE_KEY" \
--runtime-type Unattended \
--job-priority Normal \
--folder-path Shared \
--cron "0 0 2 * * ?" \
--time-zone UTC
Der Wert --cron verwendet das 6-Feld-Format (sec min hour dayOfMonth month dayOfWeek) von Quartz, nicht das Standard-CRON. "0 0 2 * * ?" ist „jeden Tag um 02:00“.
Aktivieren oder deaktivieren Sie einen Trigger
uip resource triggers enable <trigger-key> --type time --folder-path Shared
uip resource triggers disable <trigger-key> --type time --folder-path Shared
uip resource triggers enable <trigger-key> --type time --folder-path Shared
uip resource triggers disable <trigger-key> --type time --folder-path Shared
Verwenden Sie triggers history , um einen Trigger zu diagnostizieren, der nicht ausgelöst wird – das Firewall-Protokoll zeigt fehlende Lizenzen, nicht verfügbare Maschinen und andere Upstream-Blöcke an.
Webhooks
Webhooks haben einen Mandanten-Scope. Einmal erstellen und der Webhook wird bei jedem übereinstimmenden Ereignis im Mandanten ausgelöst:
uip resource webhooks create --name JobAlerts \
--url https://hooks.example.com/uipath \
--events "job.completed,job.faulted" \
--secret "$WEBHOOK_SECRET"
uip resource webhooks create --name JobAlerts \
--url https://hooks.example.com/uipath \
--events "job.completed,job.faulted" \
--secret "$WEBHOOK_SECRET"
Listen Sie verfügbare Ereignistypen für einen Mandanten auf:
uip resource webhooks event-types
uip resource webhooks event-types
Testbereitstellung ohne Warten auf ein echtes Ereignis:
uip resource webhooks ping <webhook-key>
uip resource webhooks ping <webhook-key>
Bibliotheken
Bibliotheken haben einen Mandanten-Scope (nicht einen Ordner-Scope) – sie befinden sich im Mandantenfeed und werden von Paket-IDs wie MyLib:1.0.0 referenziert:
# Upload a new version
uip resource libraries upload --file ./MyLib.1.0.0.nupkg
# See all versions of a package
uip resource libraries versions MyLib
# Download a specific version
uip resource libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg
# Upload a new version
uip resource libraries upload --file ./MyLib.1.0.0.nupkg
# See all versions of a package
uip resource libraries versions MyLib
# Download a specific version
uip resource libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg
Schlüssel haben das Format PackageId:Version – keine GUID.
Tipps zum Skripting
- Übergeben Sie immer
--output-filterwenn Sie einen einzelnen Wert in eine Variable einfügen. Es vermeidet zerbrechlichejq-Aufrufe und validiert zur CLI-Parse-Zeit – siehe Skriptingmuster. - Listenverbesserungen geben paginierte Ergebnisse zurück –
--limit/--offsetin den meisten,--continuation-tokenin Bucket-Dateien. Leere Ergebnisse (null Zeilen inData) beenden0immer noch – die Listenabfrage erfolgreich; nichts übereinstimmte. - Die meisten Verben zum Aktualisieren/Löschen sind ordnerübergreifend – die Flag-Tabelle im Abschnitt jedes Verbs von
uip resourcegibt dies explizit an („Ordnerübergreifend“). Nurcreateund die Liste benötigen den Ordner-Scope auf diesen Ressourcen.
Siehe auch
uip resourceReferenz – die autoritative Verb-für-Verb-Flag-Liste. Jedes Snippet auf dieser Seite ist zurück zum entsprechenden Abschnitt.uip solution deploy config link– Binden Sie die deklarierte Ressource einer Lösung an eine, die Sie mituip resourceerstellt haben.- Skriptingmuster – Abruf, Wiederholung beim Beenden
2, idempotente Pipelines. - So: Packen und Veröffentlichen einer Lösung – der alternative Pfad für Ressourcen, die mit einem Paket ausgeliefert werden.
- Konventionen, die Sie zuerst kennen müssen
- Assets
- Bereitstellung von Assets aus einer CSV-Datei massenweise
- Assets des Typs Zugangsdaten
- Freigeben von Assets über Ordner hinweg
- Buckets und Bucket-Dateien
- Laden Sie eine lokale Datei hoch
- Laden Sie eine Datei herunter
- Auflisten und paginieren
- Vorsignierte URLs
- Warteschlangen und Warteschlangenelemente
- Warteschlange erstellen
- Fügen Sie ein einzelnes Arbeitselement hinzu
- Massenhinzufügen aus einer Datei
- Überprüfen Sie fehlgeschlagene Elemente
- Fehlgeschlagene Elemente zur Wiederholung markieren
- Auslöser
- Listen Sie Trigger in einem Ordner auf
- Erstellen Sie einen Zeittrigger
- Aktivieren oder deaktivieren Sie einen Trigger
- Webhooks
- Bibliotheken
- Tipps zum Skripting
- Siehe auch