UiPath Documentation
uipath-cli
latest
false
Guía del usuario de UiPath CLI
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

uip es el gancho de actividad del creador de conectores

Sintaxis y opciones para crear, leer y gestionar enlaces JavaScript previos/posteriores a la solicitud en las actividades de un conector.

uip is connectors builder activity hook gestiona los ganchos de transformación de JavaScript: la escotilla de escape del conector para la lógica de solicitud/respuesta que un campo o parámetro declarativo no puede expresar. Es un subgrupo anidado en activity, dividido en su propia página debido a la cantidad de documentación de contexto de runtime que necesita un autor de hook. Consulta Creador de conectores para conocer los conceptos compartidos (resolución de conector-directorio, el flujo de creación típico) que también se aplican aquí.

Los archivos de enlace se encuentran en app/element/hooks/ en el directorio del conector. Un enlace puede adjuntarse a un recurso+método específico (un enlace de recursos) o ejecutarse para cada solicitud (un enlace global , --global).

Sinopsis​

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 es la lista de ganchos de actividad del creador de conectores​

Enumere los archivos de enlace JavaScript en app/element/hooks/ y si se hace referencia a cada uno en element.json.

Opciones​

LargoValorDescripción
--connector-dir <path>RutaDirectorio del conector.

Ejemplo​

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

Forma de datos (--json de salida)​

{
  "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 archivo de enlace que existe en el disco pero tiene registered: false está huérfano: su código se ejecuta de forma gratuita hasta que se vuelva a registrar (volver a ejecutar hook create en él o conectarlo manualmente a element.json).

uip es el gancho de actividad del creador de conectores get​

Leer el origen y el estado de registro de un solo archivo de enlace.

Argumentos​

NombreObligatorioPropósito
<filename>SíNombre de archivo de enlace, por ejemplo resource-account-GET-postRequest.js o global-preRequest.js.

Opciones​

LargoValorDescripción
--connector-dir <path>RutaDirectorio del conector.

Ejemplo​

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

Forma de datos (--json de salida)​

{
  "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 es creación de gancho de actividad del creador de conectores​

Crea un archivo de enlace JavaScript y, a menos que --no-auto-register, registre su referencia en element.json.

Opciones​

LargoValorObligatorioDescripción
--resource-name <name>Stringcondicionalmente*Recurso al que se adjunta el hook. No es necesario con --global.
--method <method>Stringcondicionalmente*Método HTTP del recurso. No es necesario con --global.
--path <internalPath>StringNoRuta interna del recurso (la ruta única del recurso element.json), para eliminar la ambigüedad cuando un recurso de lista y un recurso por ID comparten un método (por ejemplo /contacts/{id}): las rutas de los proveedores no son únicas, la ruta interna sí lo es.
--hook-type <type>preRequest|postRequestSíFase de enlace.
--custom-code <js>StringNo**El cuerpo del gancho, en línea. Mutuamente exclusivo con --custom-code-file.
--custom-code-file <path>RutaNo**Ruta a un archivo .js cuyo contenido se convierte en el cuerpo del gancho. Preferido a --custom-code.
--description <text>StringNoComentario colocado en la parte superior del archivo.
--context-params <list>StringNoAnula la cadena contextParams en la referencia del gancho.
--no-auto-registerMarcaNoEscribe el archivo, pero no lo registras en element.json.
--globalMarcaNoRegistra un enlace para todo el conector en la matriz hooks[] de nivel superior, en lugar de adjuntarlo a un recurso+método.
--connector-dir <path>RutaNoDirectorio del conector.

* Commander no puede expresar "obligatorio a menos que --global" de forma declarativa: ambas opciones son simples (no requiredOption), y el servicio subyacente aplica el caso de gancho de recursos en tiempo de ejecución, fallando si faltan --resource-name/--method en un gancho no global.

** Pasar tanto --custom-code como --custom-code-file es un error. El cuerpo del hook lo escribes tú mismo (o pides a un agente que lo escriba): la CLI solo coloca y registra el archivo; no genera lógica de enlace.

Contexto del cuerpo del enlace​

Un hook devuelve a través de done({...}), nunca un simple return, y debe llamar a done() en cada ruta de código. La CLI vincula automáticamente exactamente las variables a las que hace referencia tu cuerpo; anula el conjunto con --context-params (enumera multipart_hook_context_items explícitamente si lo usas).

preRequest — solo lectura:

request_method,,,,,, request_headers request_pathrequest_path_variablesrequest_parametersrequest_bodyrequest_body_map (cuerpo de solicitud seleccionado como mapa: leer campos directamente),,,, request_body_raw request_vendor_body_maprequest_vendor_urlrequest_expression (CEQL donde, como),,,,,[{attribute,value,operator}] request_previous_responserequest_previous_response_headersobject_namevendor_object_nameconfiguration (solo lectura en esta fase).

preRequest — lectura/escritura (edita y luego devuelve solo las claves que cambiaste; un simple done() pasa todo sin modificar):

request_vendor_method, request_vendor_headers, request_vendor_path, request_vendor_parameters, request_vendor_body (una cadena en lectura; cadena, lista o mapa en escritura), request_root_key, multipart_hook_context_items.

preRequest — Solo teclas done() : continue (false omite la llamada del proveedor pero aún ejecuta postRequest), response_status_code / response_body / response_body_raw / response_error_message (cortocircuitar un respuesta sin llamar al proveedor).

postRequest — solo lectura:

response_iserror (true a menos que el estado HTTP sea 200–207), response_body_map, response_body_raw_map, cada variable request_* tal como se envió realmente al proveedor, request_previous_response, request_previous_response_headers.

postRequest — leer/escribir (editar y devolver las claves modificadas):

response_body (mapa), response_body_raw (cadena), response_headers, response_status_code, response_root_key, configuration (escribible en esta fase — ver más abajo), multipart_hook_context_items.

postRequest — done()solo teclas: response_error_message (convierte la llamada en un error; el estado proviene de response_status_code, de lo contrario 400), connection_identity (establece el nombre para mostrar de la conexión), metadata_merge / merge_objects (solo recursos de detección de objetos).

Reglas clave:

  • configuration es de solo lectura en preRequest, lectura/escritura en postRequest. Para persistir un valor derivado por conexión (por ejemplo, una URL base calculada a partir de un token), escríbelo en un gancho postRequest: done({ configuration: { 'base.url': url } }). Escribir configuration en preRequest no tiene ningún efecto.
  • Un request_vendor_path que comienza con http se convierte en la URL de solicitud completa, omitiendo la URL base configurada del conector.
  • El éxito es estrictamente HTTP 200–207. response_iserror es derivado y de solo lectura: devuelve un valor diferente porque no hace nada.

Motor: el tiempo de ejecución de hook (Denali) admite JavaScript moderno (?., ??, async/await) y require() para un conjunto de módulos fijos: axios (para llamadas HTTP secundarias desde dentro de un hook ), crypto, url, querystring, util, buffer, zlib, lodash, jmespath, moment.

Para obtener orientación sobre cuándo (y cuándo no) buscar un gancho en lugar de un campo/parámetro declarativo, la CLI apunta a la uipath-connector-builder habilidad references/hooks.md — consulta uip skills.

Ejemplos​

# 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

Forma de datos (--json de salida)​

{
  "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
  }
}

Para un enlace global, Filename sigue el patrón global-<hookType>.js (por ejemplo global-preRequest.js) y ResourceName/Method están ausentes.

uip es eliminación de gancho de actividad del creador de conectores​

Elimina un archivo de enlace y elimina todas las referencias a él desde element.json.

Argumentos​

NombreObligatorioPropósito
<filename>SíNombre de archivo de enlace para eliminar.

Opciones​

LargoValorDescripción
--connector-dir <path>RutaDirectorio del conector.

No hay una opción "editar un enlace" verbo: eliminar y volver a crear, o editar el archivo en el disco directamente (un archivo de enlace es JavaScript simple, no un artefacto generado).

Ejemplo​

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

Forma de datos (--json de salida)​

{
  "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
  }
}
  • Actividad : los comandos de recurso/campo/método/parámetro a los que se adjunta un enlace.
  • Creador de conectores : conceptos y los cuatro verbos del ciclo de vida del tenant.
  • Auth : configura el esquema de autenticación del conector.
  • Desencadenador y estado : desencadenadores de eventos y ediciones de archivos de elementos de bajo nivel.

Ver también​

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado