UiPath Documentation
uipath-cli
latest
false
Guide de l'utilisateur de UiPath CLI
Important :
Ce contenu a été traduit à l'aide d'une traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

uip est un hook d’activité générateur de connecteurs

Syntaxe et options pour créer, lire et gérer les hooks JavaScript pré/post-requête sur les activités d’un connecteur.

uip is connectors builder activity hook gère les hooks de transformation JavaScript — l'échappement du connecteur pour la logique de demande/réponse qu'un champ ou un paramètre déclaratif ne peut pas exprimer. Il s'agit d'un sous-groupe imbriqué sous activity, divisé sur sa propre page en raison de la quantité de documentation de contexte de runtime dont un auteur de hook a besoin. Voir Générateur de connecteurs pour les concepts partagés (résolution du répertoire des connecteurs, flux de création type) qui s’appliquent ici aussi.

Les fichiers de hook en direct sous app/element/hooks/ dans le répertoire du connecteur. Un hook peut s’attacher à une ressource+ méthode spécifique (un hook de ressource) ou s’exécuter pour chaque requête (un hook global , --global).

Synthèse​

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 est une liste de hook d’activité dans le générateur de connecteurs​

Indiquez les fichiers de hook JavaScript sous app/element/hooks/ et indiquez si chacun est référencé dans element.json.

Options​

LongValeur (Value)Description
--connector-dir <path>Chemin d'accèsRépertoire des connecteurs.

Exemple​

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

Format des données (--sortie 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 }
    ]
  }
}

Un fichier de hook qui existe sur le disque mais qui a registered: false est orphelin - son code s’exécute pour rien jusqu’à ce qu’il soit réenregistré (réexécutez hook create en fonction de ou reliez-le manuellement à element.json).

uip est l'extracteur d'activité du générateur de connecteurs​

Lire la source et le statut d’enregistrement d’un fichier de hook unique.

Arguments​

NomRequisObjectif
<filename>ouiNom du fichier du hook, par exemple resource-account-GET-postRequest.js ou global-preRequest.js.

Options​

LongValeur (Value)Description
--connector-dir <path>Chemin d'accèsRépertoire des connecteurs.

Exemple​

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

Format des données (--sortie 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 est la création de hook d’activité générateur de connecteurs​

Créez un fichier de hook JavaScript et, sauf --no-auto-register, enregistrez sa référence dans element.json.

Options​

LongValeur (Value)RequisDescription
--resource-name <name>stringconditionnellement*Ressource à laquelle le hook se connecte. Pas nécessaire avec --global.
--method <method>stringconditionnellement*Méthode HTTP de la ressource. Pas nécessaire avec --global.
--path <internalPath>stringnonChemin interne de la ressource (le chemin de element.json ressource unique), afin de désambiguiser lorsqu'une ressource de liste et une ressource par ID partagent une même méthode (par exemple /contacts/{id}) — les chemins des fournisseurs ne sont pas uniques, contrairement au chemin interne.
--hook-type <type>preRequest|postRequestouiPhase de hook.
--custom-code <js>stringnon**Le corps du hook, en ligne. Capture mutuellement exclusive avec --custom-code-file.
--custom-code-file <path>Chemin d'accèsnon**Chemin d'accès à un fichier .js dont le contenu devient le corps du hook. Préféré sur --custom-code.
--description <text>stringnonCommentaire placé en haut du fichier.
--context-params <list>stringnonRemplacez la chaîne contextParams sur la référence de hook.
--no-auto-registerDrapeaunonÉcrivez le fichier mais ne l'enregistrez pas dans element.json.
--globalDrapeaunonEnregistrez un hook à l’échelle du connecteur dans le tableau hooks[] de niveau supérieur, au lieu de l’attacher à une ressource + méthode.
--connector-dir <path>Chemin d'accèsnonRépertoire des connecteurs.

* Le contrôleur ne peut pas exprimer « requis sauf si --global» déclarativement — les deux options sont simples (non requiredOption), et le service sous-jacent applique le cas de ressources-hook au moment du runtime, échouant si --resource-name/--method sont manquants sur un hook non global.

** La transmission simultanée de --custom-code et --custom-code-file est une erreur. Vous écrivez vous-même le corps du hook (ou faites en sorte qu'un agent l'écrive): la CLI place et enregistre uniquement le fichier; il ne génère pas de logique de hook.

Contexte du corps du hook​

Un hook va passer par done({...}), jamais un return, et doit appeler done() sur chaque chemin de code. La CLI lie automatiquement les variables référencées par votre corps; remplacer l'ensemble par --context-params (énumérez explicitement multipart_hook_context_items si vous l'utilisez).

preRequest — en lecture seule:

request_method, request_headers, request_path, request_path_variables, request_parameters, request_body, request_body_map ( corps de la demande sélectionné sous forme de carte — lisez les champs directement), request_body_raw, request_vendor_body_map, request_vendor_url, request_expression (CEQL où, en tant que [{attribute,value,operator}]), request_previous_response, request_previous_response_headers, object_name, vendor_object_name, configuration (lecture seule dans cette phase).

preRequest — lecture/écriture (modifier, puis renvoyer uniquement les clés que vous avez modifiées; une barre done() passe tout ce qui passe par non modifié):

request_vendor_method, request_vendor_headers, request_vendor_path, request_vendor_parameters, request_vendor_body (chaîne en lecture; chaîne, liste ou carte en écriture), request_root_key, multipart_hook_context_items.

preRequest — done()clés uniquement: continue (false ignore l'appel du fournisseur mais exécute toujours postRequest), response_status_code / response_body / response_body_raw / response_error_message (raccourcir une réponse sans appeler du tout le fournisseur).

postRequest — en lecture seule:

response_iserror (true sauf si le statut HTTP est compris entre 200 et 207), response_body_map, response_body_raw_map, toutes les variables request_* telles qu'elles sont effectivement envoyées au fournisseur, request_previous_response, request_previous_response_headers.

postRequest — lecture/écriture (modifier et renvoyer les clés modifiées):

response_body, response_body_raw, response_headers, response_status_code, response_root_key, configuration (inscriptible dans cette phase — voir ci-dessous), multipart_hook_context_items.

postRequest — done()clés uniquement: response_error_message (convertit l'appel en une erreur; le statut provient de response_status_code, sinon 400), connection_identity (définit le nom d'affichage de la connexion), metadata_merge / merge_objects (ressources de découverte d'objets uniquement).

Règles clés:

  • configuration est en lecture seule dans preRequest, en lecture/écriture dans postRequest. Pour conserver une valeur par connexion dérivée (par exemple une URL de base calculée à partir d'un jeton), écrivez-la dans un hook postRequest: done({ configuration: { 'base.url': url } }). L'écriture de configuration dans preRequest n'a aucun effet.
  • Un request_vendor_path qui commence par http devient l’URL complète de la demande, en contournant l’URL de base configurée du connecteur.
  • La réussite est strictement définie sur HTTP 200-207. response_iserror est dérivé et en lecture seule - renvoyant une valeur différente car elle ne fait rien.

Moteur: le runtime de hook a pris en charge JavaScript moderne (?., ??, async/await) et require() pour un ensemble de modules fixe: axios (pour les appels HTTP secondaires provenant de l’intérieur d’un hook ), crypto, url, querystring, util, buffer, zlib, lodash, jmespath, moment.

Pour indiquer quand (et quand ne pas atteindre un hook au lieu d'un champ/param déclaratif), la CLI pointe vers le uipath-connector-builder de la compétence references/hooks.md - voir uip skills.

Exemples​

# 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

Format des données (--sortie 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
  }
}

Pour un hook global, Filename suit le modèle global-<hookType>.js (par exemple global-preRequest.js) et ResourceName/Method sont absents.

uip est la suppression du hook d’activité du générateur de connecteurs​

Supprimez un fichier de hook et chaque référence qui lui est associé dans element.json.

Arguments​

NomRequisObjectif
<filename>ouiNom du fichier de hook à supprimer.

Options​

LongValeur (Value)Description
--connector-dir <path>Chemin d'accèsRépertoire des connecteurs.

Il n’y a pas d’options « modifier un hook » dédiées. verbe — supprimer et recréer, ou modifier le fichier directement sur le disque (un fichier de hook est en JavaScript brut, et non un artefact généré).

Exemple​

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

Format des données (--sortie 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
  }
}
  • Activité — la ressource/champ/méthode/paramètre) à laquelle un hook s'attache.
  • Générateur de connecteurs - concepts et les quatre verbes du cycle de vie du locataire.
  • Authentification : configurez le schéma d’authentification du connecteur.
  • Déclencheur et état — déclencheurs d'événements et modifications de fichiers d'éléments de bas niveau.

Voir également​

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour