UiPath Documentation
uipath-cli
latest
false
Guia do usuário da UiPath CLI
Importante :
Este conteúdo foi traduzido com auxílio de tradução automática. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

uip é hook de atividade do construtor de conectores

Sintaxe e opções para criar, ler e gerenciar ganchos pré/pós-solicitação do JavaScript nas atividades de um conector.

uip is connectors builder activity hook gerencia ganchos de transformação JavaScript — a portal de escape do conector para lógica de solicitação/resposta que um campo ou parâmetro declarativo não pode expressa. É um subgrupo aninhado em activity, dividido em sua própria página por causa da quantidade de documentação do contexto de runtime de que um autor de hook precisa. Consulte Construtor de conectores para obter os conceitos compartilhados (resolução do diretório do conector, o fluxo de criação típico) que também se aplicam aqui.

Os arquivos do hook estão em app/element/hooks/ no diretório do conector. Um hook pode anexar a um recurso+método específico (um hook de recurso) ou ser executado para cada solicitação (um hook global , --global).

Resumo​

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 é a lista de hooks da atividade do conector builder​

Liste os arquivos do hook do JavaScript em app/element/hooks/ e se cada um for referenciado em element.json.

Opções​

LongValorDescription
--connector-dir <path>PathDiretório do conector.

Exemplo​

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

Formato dos dados (--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 }
    ]
  }
}

Um arquivo de hook que existe no disco, mas tem registered: false é órfão — seu código é executado gratuitamente até que seja registrado novamente (execute hook create novamente nele ou conecte-o manualmente a element.json).

uip é connectors builder activity hook get​

Leia a origem e o status de registro de um único arquivo de hook.

Argumentos​

NameRequiredFinalidade
<filename>simNome do arquivo do hook, por exemplo resource-account-GET-postRequest.js ou.global-preRequest.js

Opções​

LongValorDescription
--connector-dir <path>PathDiretório do conector.

Exemplo​

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

Formato dos dados (--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 é connectors builder activity hook escolher​

Crie um arquivo de hook do JavaScript e — a menos que --no-auto-register — registre sua referência em element.json.

Opções​

LongValorRequiredDescription
--resource-name <name>StringCondicional*Recurso ao qual o gancho se conecta. Não necessário com --global.
--method <method>StringCondicional*Método HTTP do recurso. Não necessário com --global.
--path <internalPath>StringnãoCaminho interno do recurso (o element.json caminho exclusivo do recurso), para desambiguar quando um recurso de lista e um recurso by-id compartilham um método (por exemplo /contacts/{id}) — os caminhos do fornecedor não são exclusivos, o caminho interno é.
--hook-type <type>preRequest|postRequestsimFase de gancho.
--custom-code <js>Stringnão**O corpo do hook, em linha. mutuamente exclusivo com --custom-code-file.
--custom-code-file <path>Pathnão**Caminho para um arquivo .js cujo conteúdo se torna o corpo do hook. Preferido sobre --custom-code.
--description <text>StringnãoComentário colocado na parte superior do arquivo.
--context-params <list>StringnãoSubstitua a contextParams string na referência do hook.
--no-auto-registerBandeiranãoGrave o element.json arquivo, mas não o registre em.
--globalBandeiranãoRegistre um hook em todo o conector na array hooks[] de nível superior, em vez de anexar a um recurso+método.
--connector-dir <path>PathnãoDiretório do conector.

* O Comando não pode expressar "obrigatório a menos que --global" declarativamente — ambas as opções são simples (não requiredOption), e o serviço subjacente impõe o caso de hook de recurso no runtime, falhando se --resource-name/--method estiverem ausentes em um hook não global.

** Passar --custom-code e --custom-code-file é um erro. Você escreve o corpo do hook por conta própria (ou pede que um agente o escreva) — a CLI apenas coloca e registra o arquivo; não gera lógica de hook.

Contexto do corpo do gancho​

Um gancho retorna por meio de done({...}), nunca um simples return, e deve chamar done() em todos os caminhos de código. A CLI vincula automaticamente exatamente as variáveis referenciadas pelo seu corpo; substitua o conjunto por --context-params (liste multipart_hook_context_items explicitamente se você o usar).

preRequest — somente leitura:

request_method, request_headers, request_path, request_path_variables, request_parameters, request_body, request_body_map (corpo da solicitação selecionado como um mapa — leia os campos diretamente), request_body_raw, request_vendor_body_map, request_vendor_url, request_expression (CEQL onde, como [{attribute,value,operator}]), request_previous_response, request_previous_response_headers, object_name, vendor_object_name, configuration (somente leitura nesta fase).

preRequest leitura/gravação (edite, em seguida, retorne apenas as chaves que você alterou; um done() vazio passa tudo por ele não modificado):

request_vendor_method, request_vendor_headers, request_vendor_path, request_vendor_parameters, request_vendor_body (uma string na leitura; string, lista ou mapa na gravação), request_root_key, multipart_hook_context_items.

preRequest — done()apenas teclas: continue (false pula a chamada do fornecedor, mas ainda executa postRequest), response_status_code / response_body / response_body_raw / response_error_message (curto circuito um resposta sem chamar o fornecedor).

postRequest — somente leitura:

response_iserror (true a menos que o status HTTP seja 200-207), response_body_map, response_body_raw_map, cada variável request_* como realmente enviada para o fornecedor, request_previous_response, request_previous_response_headers.

postRequest ler/gravar (editar e retornar as chaves alteradas):

response_body (mapa), response_body_raw (string), response_headers, response_status_code, response_root_key, configuration (gravável nesta fase — veja abaixo), multipart_hook_context_items.

postRequest — done()apenas teclas: response_error_message (converte a chamada em um erro; o status vem de response_status_code, do contrário, 400), connection_identity (definir o nome de exibição da conexão), metadata_merge / merge_objects (apenas recursos de descoberta de objetos).

Regras principais:

  • configuration é somente leitura em preRequest, leitura/gravação em postRequest. Para persistir um valor derivados por conexão (por exemplo, um URL base computado a partir de um token), escreva-o em um gancho postRequest: done({ configuration: { 'base.url': url } }). Escrever configuration em preRequest não tem efeito.
  • Um request_vendor_path que começa com http se torna a URL da solicitação completa, ignorando a URL base configurada do conector.
  • Sucesso é estritamente HTTP 200–207. response_iserror é derivados e somente leitura — retornar um valor diferente não faz nada.

Mecanismo: o runtime do hook (Denali) é compatível com JavaScript moderno (?., ??, async/await) e require() para um conjunto de módulos fixos: axios (para chamadas HTTP secundárias de dentro de um hook ), crypto, url, querystring, util, buffer, zlib, lodash, jmespath, moment.

Para obter orientação sobre quando (e quando não) alcançar um hook em vez de um campo/parâmetro declarativo, a CLI aponta para o uipath-connector-builder da habilidade references/hooks.md — consulte uip skills.

Exemplos​

# 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

Formato dos dados (--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
  }
}

Para um hook global, Filename segue o global-<hookType>.js padrão (por exemplo global-preRequest.js) e ResourceName/Method estão ausentes.

uip é connectors builder atividade hook Delete​

Exclua um arquivo de hook e remova cada referência a element.json ele.

Argumentos​

NameRequiredFinalidade
<filename>simNome do arquivo do gancho a ser excluído.

Opções​

LongValorDescription
--connector-dir <path>PathDiretório do conector.

Não há nenhuma diretriz dedicada “editar um hook” dedicada verbo — exclua e recrie ou edite o arquivo no disco diretamente (um arquivo de hook é JavaScript simples, não um artefato gerado).

Exemplo​

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

Formato dos dados (--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
  }
}
  • Atividade — os comandos de recurso/campo/método/param aos quais um hook se conecta.
  • Construtor de conectores — conceitos e os quatro verbos do ciclo de vida do tenant.
  • Autenticação — configure o esquema de autenticação do conector.
  • Gatilho e estado — gatilhos de eventos e edições de arquivo de elementos de baixo nível.

Veja também​

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades