UiPath Documentation
uipath-cli
latest
false
UiPath-CLI-Benutzerhandbuch
Wichtig :
Dieser Inhalt wurde maschinell übersetzt. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

So: Verwalten Sie Orchestrator-Ressourcen

Tägliche Aufgaben zum Verwalten von Orchestrator-Runtime-Ressourcen mit „uip or“, die Assets, Buckets, Bibliotheken, Warteschlangen, Trigger und Webhooks abdecken.

uip or 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 – neben den Befehlen für Aufträge, Prozesse und Ordner, die an anderer Stelle in dokumentiert sind dieses Handbuch. 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 or -Referenzseite und den Seiten pro Ressource. Diese Seite behandelt die gängigen Nutzungsmuster.

Hinweis:

uip or (diese Seite) unterscheidet sich von uip solution resource. uip or ruft Orchestrator immer auf einem Live-Mandanten auf. uip solution resource liest immer nur lokale Ressourcendeklarationen innerhalb einer .uipx -Lösung auf dem Datenträger. Wenn Sie sich unsicher sind, sehen Sie sich das Präfix an.

Konventionen, die Sie zuerst kennen müssen​

Bevor ein Snippet funktioniert:

  • Authentifizierung. Jedes uip or Verb ruft Orchestrator auf. Führen Sie zuerst uip login aus. Führen Sie uip login tenant set <name> aus, um den aktiven Mandanten zu wechseln, bevor ein Aufruf auf einen anderen ausgerichtet ist.
  • Ordner-Scoping. Assets, Buckets, Warteschlangen, Warteschlangenelemente und Zeit-/Warteschlangentrigger haben einen Ordner-Scope – übergeben Sie --folder-path (z. B Shared) oder --folder-key (GUID) oder --all-folders, bei denen dieses Flag unterstützt wird. 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 an get, update und delete. Numerische id -Felder sind intern; Übergeben Sie sie nicht an Befehle.
  • Destruktive Vorgänge erfordern -y, --yes. Jedes delete -Verb in diesen Ressourcen kann ohne es ausgeführt werden – die CLI fordert nie interaktiv auf.
  • 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 or 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 or 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 or 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 create oder update pro Zeile:

    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip or assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip or assets update "$existing" "$value"
      else
        uip or assets create "$name" "$value" --folder-path "$folder" --type "$type"
      fi
    done
    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip or assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip or assets update "$existing" "$value"
      else
        uip or 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 or 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 or 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 or assets list --folder-path Shared --name ApiEndpoint \
  --output-filter "Data[0].key" --output plain)

for folder in Production Staging Development; do
  uip or assets share "$ASSET_KEY" --folder-path "$folder"
done
ASSET_KEY=$(uip or assets list --folder-path Shared --name ApiEndpoint \
  --output-filter "Data[0].key" --output plain)

for folder in Production Staging Development; do
  uip or 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 or buckets list --folder-path Shared \
  --output-filter "Data[?name=='invoices'] | [0].key" --output plain)

uip or bucket-files upload "$BUCKET_KEY" "inbox/invoice-001.pdf" \
  --folder-path Shared \
  --file ./invoice-001.pdf
BUCKET_KEY=$(uip or buckets list --folder-path Shared \
  --output-filter "Data[?name=='invoices'] | [0].key" --output plain)

uip or bucket-files upload "$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 upload; --file ist der lokale Pfad zum Hochladen. Inhaltstyp wird automatisch erkannt; Übergeben Sie --content-type zum Überschreiben.

Laden Sie eine Datei herunter​

uip or bucket-files download "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared \
  --destination ./summary.csv
uip or bucket-files download "$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 or bucket-files list "$BUCKET_KEY" --folder-path Shared

# The response carries a continuationToken — pass it back to fetch the next page
uip or bucket-files list "$BUCKET_KEY" --folder-path Shared \
  --continuation-token "<token-from-previous-response>"
# First page
uip or bucket-files list "$BUCKET_KEY" --folder-path Shared

# The response carries a continuationToken — pass it back to fetch the next page
uip or 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 or bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
  --folder-path Shared --expiry-in-minutes 30

uip or bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared --expiry-in-minutes 30
uip or bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
  --folder-path Shared --expiry-in-minutes 30

uip or 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 or queues create InvoiceQueue \
  --folder-path Shared \
  --max-retries 3 \
  --retention-period 90
uip or 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 or queue-items add InvoiceQueue \
  --folder-path Shared \
  --specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
  --priority High
uip or 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'
[
  {"specificContent": {"InvoiceId":"INV-001"}, "priority": "Normal"},
  {"specificContent": {"InvoiceId":"INV-002"}, "priority": "Normal"}
]
EOF

ITEMS=$(jq -c . ./items.json)
uip or queue-items bulk-add InvoiceQueue \
  --folder-path Shared \
  --queue-items "$ITEMS" \
  --commit-type StopOnFirstFailure
cat > ./items.json <<'EOF'
[
  {"specificContent": {"InvoiceId":"INV-001"}, "priority": "Normal"},
  {"specificContent": {"InvoiceId":"INV-002"}, "priority": "Normal"}
]
EOF

ITEMS=$(jq -c . ./items.json)
uip or queue-items bulk-add InvoiceQueue \
  --folder-path Shared \
  --queue-items "$ITEMS" \
  --commit-type StopOnFirstFailure

Jedes Element akzeptiert specificContent, priority, reference, deferDate, dueDate – es gibt keinen Warteschlangennamen pro Element; ist die Warteschlange das einzelne Positionsargument (InvoiceQueue oben), das vom gesamten Batch gemeinsam genutzt wird.

--commit-type steuert, was passiert, wenn die Validierung einer Zeile fehlschlägt: ProcessAllIndependently (Standard), StopOnFirstFailure oder AllOrNothing.

Überprüfen Sie fehlgeschlagene Elemente​

uip or queue-items list --folder-path Shared \
  --queue-name InvoiceQueue \
  --status Failed \
  --output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"
uip or 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 or queue-items set-review-status Retried \
  "<queue-item-key-1>" "<queue-item-key-2>"
uip or 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 or triggers list --type time --folder-path Shared --enabled \
  --output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"
uip or 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 or 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 or 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​

Es gibt keinen dedizierten enable/disable -Befehl – schalten Sie einen Trigger über update um:

uip or triggers update <trigger-key> --type time --folder-path Shared --disabled
uip or triggers update <trigger-key> --type time --folder-path Shared --enabled
uip or triggers update <trigger-key> --type time --folder-path Shared --disabled
uip or triggers update <trigger-key> --type time --folder-path Shared --enabled

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 or webhooks create JobAlerts \
  --url https://hooks.example.com/uipath \
  --events "job.completed,job.faulted" \
  --secret "$WEBHOOK_SECRET"
uip or webhooks create 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 or webhooks event-types
uip or webhooks event-types

Testbereitstellung ohne Warten auf ein echtes Ereignis:

uip or webhooks ping <webhook-key>
uip or 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 or libraries upload --file ./MyLib.1.0.0.nupkg

# See all versions of a package
uip or libraries versions MyLib

# Download a specific version
uip or libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg
# Upload a new version
uip or libraries upload --file ./MyLib.1.0.0.nupkg

# See all versions of a package
uip or libraries versions MyLib

# Download a specific version
uip or 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-filter wenn Sie einen einzelnen Wert in eine Variable einfügen. Es vermeidet zerbrechliche jq -Aufrufe und validiert zur CLI-Parse-Zeit – siehe Skriptingmuster.
  • Listenverbesserungen geben paginierte Ergebnisse zurück – --limit / --offset in den meisten, --continuation-token in Bucket-Dateien. Leere Ergebnisse (null Zeilen in Data) beenden 0 immer 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 or gibt dies explizit an („Ordnerübergreifend“). Nur create und die Liste benötigen den Ordner-Scope auf diesen Ressourcen.

Siehe auch​

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben