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.

uip ist der Connector Builder-Aktivitätshook

Syntax und Optionen zum Erstellen, Lesen und Verwalten von JavaScript-Hooks vor/nach der Anforderung für die Aktivitäten eines Connectors.

uip is connectors builder activity hook verwaltet JavaScript-Transformationshooks – die Escape- beim Connector für Anforderungs-/Antwortlogik, die ein deklaratives Feld oder ein Parameter nicht ausdrücken kann. Es handelt sich um eine geschachtelte Untergruppe unter activity, die aufgrund des Umfangs der Dokumentation zum Runtime-Kontext, die ein Hook-Autor benötigt, auf eine eigene Seite aufgeteilt ist. Die gemeinsamen Konzepte (Connector-Verzeichnis-Auflösung, der typische Erstellungsablauf), die auch hier gelten, finden Sie unter Connector-Generator .

Hook-Dateien live unter app/element/hooks/ im Connectorverzeichnis. Ein Hook kann an eine bestimmte Ressource + Methode angehängt werden (ein Ressourcen-Hook) oder für jede Anforderung ausgeführt werden (ein globaler Hook, --global).

Zusammenfassung​

uip is connectors builder activity hook list [--connector-dir <path>]
uip is connectors builder activity hook get <filename> [--connector-dir <path>]
uip is connectors builder activity hook create --hook-type <preRequest|postRequest> [options...] [--connector-dir <path>]
uip is connectors builder activity hook delete <filename> [--connector-dir <path>]
uip is connectors builder activity hook list [--connector-dir <path>]
uip is connectors builder activity hook get <filename> [--connector-dir <path>]
uip is connectors builder activity hook create --hook-type <preRequest|postRequest> [options...] [--connector-dir <path>]
uip is connectors builder activity hook delete <filename> [--connector-dir <path>]

UIP ist Hook-Liste der Connectors Builder-Aktivität​

Listen Sie die JavaScript-Hook-Dateien unter app/element/hooks/ auf und ob sie in element.json jeweils referenziert werden.

Optionen​

LongWertBeschreibung
--connector-dir <path>PfadConnector-Verzeichnis.

Beispiel​

uip is connectors builder activity hook list
uip is connectors builder activity hook list

Datenform (--output json)​

{
  "Code": "HookList",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Hooks": [
      { "filename": "resource-account-GET-postRequest.js", "registered": true }
    ]
  }
}
{
  "Code": "HookList",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Hooks": [
      { "filename": "resource-account-GET-postRequest.js", "registered": true }
    ]
  }
}

Eine Hook-Datei, die auf der Festplatte vorhanden ist, aber registered: false hat, ist verwaist – ihr Code wird für nichts ausgeführt, bis sie neu registriert wird (hook create erneut ausführen oder manuell mit element.json verknüpfen).

UIP ist Connectors Builder Activity Hook Get​

Lesen Sie die Quelle und den Registrierungsstatus einer einzelnen Hook-Datei.

Argumente​

NameErforderlichZweck
<filename>jaHook-Dateiname, z. B resource-account-GET-postRequest.js oder global-preRequest.js.

Optionen​

LongWertBeschreibung
--connector-dir <path>PfadConnector-Verzeichnis.

Beispiel​

uip is connectors builder activity hook get resource-account-GET-postRequest.js
uip is connectors builder activity hook get resource-account-GET-postRequest.js

Datenform (--output json)​

{
  "Code": "Hook",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Filename": "resource-account-GET-postRequest.js",
    "Registered": true,
    "Code": "done({ response_body });"
  }
}
{
  "Code": "Hook",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Filename": "resource-account-GET-postRequest.js",
    "Registered": true,
    "Code": "done({ response_body });"
  }
}

UIP ist Connectors Builder Activity Hook Create​

Erstellen Sie eine JavaScript-Hook-Datei und registrieren Sie – außer --no-auto-register – ihre Referenz in element.json.

Optionen​

LongWertErforderlichBeschreibung
--resource-name <name>stringbedingt*Ressource, an die der Hook angehängt wird. Nicht erforderlich bei --global.
--method <method>stringbedingt*HTTP-Methode der Ressource. Nicht erforderlich bei --global.
--path <internalPath>stringneinInterner Ressourcenpfad (der eindeutige element.json -Ressourcenpfad), zur Mehrdeutigkeit, wenn eine Listenressource und eine ID-Ressource eine gemeinsame Methode verwenden (z. B. /contacts/{id}) – Anbieterpfade sind nicht eindeutig, der interne Pfad bereits.
--hook-type <type>preRequest|postRequestjaHook-Phase.
--custom-code <js>stringNein**Der Hook-Text, inline. Sich gegenseitig mit --custom-code-file ausschließen.
--custom-code-file <path>PfadNein**Pfad zu einer .js -Datei, deren Inhalt zum Hook-Text wird. Bevorzugt vor --custom-code.
--description <text>stringneinKommentar oben in der Datei platziert.
--context-params <list>stringneinÜberschreiben Sie die contextParams -Zeichenfolge in der Hook-Referenz.
--no-auto-registerMarkierenneinSchreiben Sie die Datei, registrieren Sie sie aber nicht in element.json.
--globalMarkierenneinRegistrieren Sie einen Connector-weiten Hook im hooks[] -Array der obersten Ebene, anstatt Anhänge an eine Ressource+Methode anzuhängen.
--connector-dir <path>PfadneinConnector-Verzeichnis.

* Der Befehl "erforderlich ist nicht erforderlich, es sei denn, --global" kann deklarativ – beide Optionen sind einfach (nicht requiredOption), und der zugrunde liegende Dienst erzwingt den Ressourcen-Hook-Fall zur Laufzeit und schlägt fehl, wenn --resource-name/--method auf einem nicht globalen Hook fehlen.

** Das Übergeben sowohl von --custom-code als auch von --custom-code-file ist ein Fehler. Sie schreiben den Hook-Text selbst (oder lassen ihn von einem Agent schreiben) – die CLI platziert und registriert die Datei nur; es wird keine Hook-Logik generiert.

Hook-Textkontext​

Ein Hook wird durch done({...}) zurückgegeben, niemals durch ein leeres return, und muss done() für jeden Codepfad aufrufen. Die CLI bindet automatisch genau die Variablen, auf die Ihr Textkörper verweist; überschreiben Sie den Satz mit --context-params (listen Sie multipart_hook_context_items explizit auf, wenn Sie ihn verwenden).

preRequest – Schreibgeschützt:

request_method, request_headers, request_path, request_path_variables, request_parameters, request_body, request_body_map (kuratierter Anforderungstext als Karte – Felder direkt lesen), request_body_raw, request_vendor_body_map, request_vendor_url, request_expression (CEQL, wobei als [{attribute,value,operator}]), request_previous_response, request_previous_response_headers, object_name, vendor_object_name, configuration (schreibgeschützt in dieser Phase).

preRequest – lesen/schreiben (bearbeiten, dann nur die Schlüssel zurückgeben, die Sie geändert haben; ein leeres done() lässt alles unverändert durch):

request_vendor_method, request_vendor_headers, request_vendor_path, request_vendor_parameters, request_vendor_body (ein String beim Lesen; String, Liste oder Zuordnung beim Schreiben), request_root_key, multipart_hook_context_items.

preRequest – done()-nur Schlüssel: continue (false überspringt den Anbieteraufruf, führt aber trotzdem postRequest aus), response_status_code / response_body / response_body_raw / response_error_message (Kurzschluss a ohne den Anbieter anzurufen).

postRequest – Schreibgeschützt:

response_iserror (true, es sei denn, der HTTP-Status ist 200–207), response_body_map, response_body_raw_map, jede request_* -Variable wie tatsächlich an den Anbieter gesendet, request_previous_response, request_previous_response_headers.

postRequest – Lesen/Schreiben (Bearbeiten und Zurückgeben der geänderten Schlüssel):

response_body (Zuordnung), response_body_raw (String), response_headers, response_status_code, response_root_key, configuration (in dieser Phase beschreibbar – siehe unten), multipart_hook_context_items.

postRequest – done()Nur Schlüssel: response_error_message (wandelt den Aufruf in einen Fehler um; Status kommt von response_status_code, sonst 400), connection_identity (Den Anzeigenamen der Verbindung festlegen), metadata_merge / merge_objects (nur Objekterkennungsressourcen).

Wichtige Regeln:

  • configuration ist schreibgeschützt in preRequest, Lese/Schreiben in postRequest. Um einen abgeleiteten Wert pro Verbindung beizubehalten (z. B. eine Basis-URL, die aus einem Token berechnet wurde), schreiben Sie ihn in einen postRequest -Hook: done({ configuration: { 'base.url': url } }). Das Schreiben von configuration in preRequest hat keine Auswirkungen.
  • Ein request_vendor_path, der mit http beginnt, wird zur vollständigen Anforderungs-URL und umgeht die konfigurierte Basis-URL des Connectors.
  • Success ist ausschließlich HTTP 200–207. response_iserror ist abgeleitet und schreibgeschützt – das Zurückgeben eines anderen Werts dafür hat nichts bewirkt.

Engine: Die Hook-Laufzeit (DenALI) unterstützt modernes JavaScript (?., ??, async/await) und require() für einen festen Modulsatz: axios (für sekundäre HTTP-Aufrufe aus einem Hook ), crypto, url, querystring, util, buffer, zlib, lodash, jmespath, moment.

Eine Anleitung dazu, wann (und wann nicht) nach einem Hook anstelle eines deklarativen Felds/Params greifen soll, verweist die CLI auf das uipath-connector-builder der Fähigkeit references/hooks.md – siehe uip skills.

Beispiele​

# Post-request hook for a resource, from an agent-written JS file
uip is connectors builder activity hook create \
  --resource-name Account --method GET --hook-type postRequest \
  --custom-code-file ./account-postRequest.js

# Global pre-request hook
uip is connectors builder activity hook create \
  --hook-type preRequest --global --custom-code-file ./my-hook.js
# Post-request hook for a resource, from an agent-written JS file
uip is connectors builder activity hook create \
  --resource-name Account --method GET --hook-type postRequest \
  --custom-code-file ./account-postRequest.js

# Global pre-request hook
uip is connectors builder activity hook create \
  --hook-type preRequest --global --custom-code-file ./my-hook.js

Datenform (--output json)​

{
  "Code": "HookCreated",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Filename": "resource-Account-GET-postRequest.js",
    "HookType": "postRequest",
    "Method": "GET",
    "ResourceName": "Account",
    "FilePath": "app/element/hooks/resource-Account-GET-postRequest.js",
    "HookReference": {},
    "RegisteredInElement": true
  }
}
{
  "Code": "HookCreated",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Filename": "resource-Account-GET-postRequest.js",
    "HookType": "postRequest",
    "Method": "GET",
    "ResourceName": "Account",
    "FilePath": "app/element/hooks/resource-Account-GET-postRequest.js",
    "HookReference": {},
    "RegisteredInElement": true
  }
}

Für einen globalen Hook folgt Filename dem Muster global-<hookType>.js (z. B. global-preRequest.js) und ResourceName/Method fehlen.

UIP ist Connectors Builder Activity Hook löschen​

Löschen Sie eine Hook-Datei und entfernen Sie jeden Verweis darauf aus element.json.

Argumente​

NameErforderlichZweck
<filename>jaHook-Dateiname, der gelöscht werden soll.

Optionen​

LongWertBeschreibung
--connector-dir <path>PfadConnector-Verzeichnis.

Es gibt kein dediziertes „Hook bearbeiten“- Verb – Löschen und neu erstellen oder direkt auf der Festplatte bearbeiten (eine Hook-Datei ist einfaches JavaScript, kein generiertes Artefakt).

Beispiel​

uip is connectors builder activity hook delete resource-account-GET-postRequest.js
uip is connectors builder activity hook delete resource-account-GET-postRequest.js

Datenform (--output json)​

{
  "Code": "HookRemoved",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Filename": "resource-account-GET-postRequest.js",
    "FileDeleted": true,
    "ReferenceRemoved": true
  }
}
{
  "Code": "HookRemoved",
  "Data": {
    "ConnectorRoot": "/work/periodic-design-acme",
    "Filename": "resource-account-GET-postRequest.js",
    "FileDeleted": true,
    "ReferenceRemoved": true
  }
}
  • Aktivität – Die Befehle Ressource/Feld/Methode/Param, an die ein Hook angehängt wird.
  • Connectors Builder – Die Konzepte und die vier Verben für den Mandantenlebenszyklus.
  • Auth – konfigurieren Sie das Authentifizierungsschema des Connectors.
  • Trigger und Status – Ereignistrigger und Bearbeitungen von Elementdateien auf niedriger Ebene.

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