- Überblick
- Erste Schritte
- Konzepte
- Verwenden der UiPath CLI
- Anleitungen
- CI/CD-Rezepte
- Befehlsreferenz
- Überblick
- Exitcodes
- Globale Optionen
- UIP-codierter Agent
- UIP-Coded
- UIP-Kontextgrundlage
- UIP-Dokumentation
- UIP-Funktion
- UIP-Leitplanken
- uip llm-configuration
- uip llm-gateway
- UIP-Modellhub
- 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-Library-Object-Repository
- Get-Object-Repository
- Get-Versionen
- Beispiel für einen Workflow abrufen
- Anwendung anzeigen
- Anzeigeelement
- Inspektionspaket
- install-data-fabric-entities
- Pakete installieren oder aktualisieren
- list-data-fabric-entities
- Listeninstanzen
- Beispiele für Listenworkflows
- Packen
- Veröffentlichen
- Remote
- restore
- Ausführen, Debuggen & Ausführung enthält
- Ausführungsdatei installieren
- Suchvorlagen
- Studio starten
- Ausführung anhalten
- TM
- UIA
- UIP-Aufgaben
- UIP-Ablaufverfolgungen
- Feedback zu UIP-Ablaufverfolgungen
- Migration
- Referenz und Support
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
| Long | Wert | Beschreibung |
|---|---|---|
--connector-dir <path> | Pfad | Connector-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
| Name | Erforderlich | Zweck |
|---|---|---|
<filename> | ja | Hook-Dateiname, z. B resource-account-GET-postRequest.js oder global-preRequest.js. |
Optionen
| Long | Wert | Beschreibung |
|---|---|---|
--connector-dir <path> | Pfad | Connector-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
| Long | Wert | Erforderlich | Beschreibung |
|---|---|---|---|
--resource-name <name> | string | bedingt* | Ressource, an die der Hook angehängt wird. Nicht erforderlich bei --global. |
--method <method> | string | bedingt* | HTTP-Methode der Ressource. Nicht erforderlich bei --global. |
--path <internalPath> | string | nein | Interner 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|postRequest | ja | Hook-Phase. |
--custom-code <js> | string | Nein** | Der Hook-Text, inline. Sich gegenseitig mit --custom-code-file ausschließen. |
--custom-code-file <path> | Pfad | Nein** | Pfad zu einer .js -Datei, deren Inhalt zum Hook-Text wird. Bevorzugt vor --custom-code. |
--description <text> | string | nein | Kommentar oben in der Datei platziert. |
--context-params <list> | string | nein | Überschreiben Sie die contextParams -Zeichenfolge in der Hook-Referenz. |
--no-auto-register | Markieren | nein | Schreiben Sie die Datei, registrieren Sie sie aber nicht in element.json. |
--global | Markieren | nein | Registrieren Sie einen Connector-weiten Hook im hooks[] -Array der obersten Ebene, anstatt Anhänge an eine Ressource+Methode anzuhängen. |
--connector-dir <path> | Pfad | nein | Connector-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:
configurationist schreibgeschützt inpreRequest, Lese/Schreiben inpostRequest. Um einen abgeleiteten Wert pro Verbindung beizubehalten (z. B. eine Basis-URL, die aus einem Token berechnet wurde), schreiben Sie ihn in einenpostRequest-Hook:done({ configuration: { 'base.url': url } }). Das Schreiben vonconfigurationinpreRequesthat keine Auswirkungen.- Ein
request_vendor_path, der mithttpbeginnt, wird zur vollständigen Anforderungs-URL und umgeht die konfigurierte Basis-URL des Connectors. - Success ist ausschließlich HTTP 200–207.
response_iserrorist 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
| Name | Erforderlich | Zweck |
|---|---|---|
<filename> | ja | Hook-Dateiname, der gelöscht werden soll. |
Optionen
| Long | Wert | Beschreibung |
|---|---|---|
--connector-dir <path> | Pfad | Connector-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
}
}
Zugehörig
- 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
- Zusammenfassung
- UIP ist Hook-Liste der Connectors Builder-Aktivität
- Optionen
- Beispiel
- Datenform (--output json)
- UIP ist Connectors Builder Activity Hook Get
- Argumente
- Optionen
- Beispiel
- Datenform (--output json)
- UIP ist Connectors Builder Activity Hook Create
- Optionen
- Hook-Textkontext
- Beispiele
- Datenform (--output json)
- UIP ist Connectors Builder Activity Hook löschen
- Argumente
- Optionen
- Beispiel
- Datenform (--output json)
- Zugehörig
- Siehe auch