ServiceNow

O conetor do ServiceNow permite-lhe realizar operações de inserção, eliminação, atualização e leitura na base de dados do ServiceNow.

Antes de começar

Antes de usar o conector do ServiceNow, conclua as seguintes tarefas:

  • No seu projeto do Google Cloud:
    • Certifique-se de que a conetividade de rede está configurada. Para obter informações sobre padrões de rede, consulte o artigo Conetividade de rede.
    • Conceda a função IAM roles/connectors.admin ao utilizador que está a configurar o conetor.
    • Conceda as seguintes funções de IAM à conta de serviço que quer usar para o conector:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Uma conta de serviço é um tipo especial de Conta Google destinada a representar um utilizador não humano que precisa de autenticação e autorização para aceder a dados nas APIs Google. Se não tiver uma conta de serviço, tem de criar uma. O conector e a conta de serviço têm de pertencer ao mesmo projeto. Para mais informações, consulte Criar uma conta de serviço.

    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (API Connectors)

      Para saber como ativar serviços, consulte o artigo Ativar serviços.

    Se estes serviços ou autorizações não tiverem sido ativados anteriormente para o seu projeto, é-lhe pedido que os ative quando configurar o conector.

  • Conceda acesso às seguintes tabelas na sua instância do ServiceNow:

    • sys_db_object
    • sys_dictionary
    • sys_glide_object

    Esta autorização é necessária para que o conetor se ligue aos seus dados. Para conceder o acesso, siga estes passos:

    1. Na sua aplicação ServiceNow, aceda a System Security > Access Controls (ACL).
    2. Selecione Novo para criar um objeto de controlo de acesso.
    3. Para Tipo, selecione registo.
    4. Para Operação, selecione ler.
    5. Para Nome, selecione Tabela [sys_db_object] no primeiro menu pendente e --Nenhum-- no segundo menu pendente.
    6. Na secção Função necessária, clique duas vezes na caixa de texto Inserir uma nova linha... e, em seguida, pesquise e selecione a função pretendida.
    7. Clique em Enviar para criar o objeto ACL.
    8. Atribua a função que tem a ACL criada ao utilizador de autenticação. Para o fazer, aceda a Administração de utilizadores > Utilizadores > Selecione o utilizador de autenticação > Funções > Editar... > . Em seguida, adicione a sua função a partir da coleção.
  • Obtenha o URL, o nome de utilizador e a palavra-passe da instância do ServiceNow.

Configure o conetor

Uma associação é específica de uma origem de dados. Isto significa que, se tiver muitas origens de dados, tem de criar uma associação separada para cada origem de dados. Para criar uma associação, faça o seguinte:

  1. Na Cloud Console, aceda à página Integration Connectors > Ligações e, de seguida, selecione ou crie um projeto do Google Cloud.

    Aceda à página Ligações

  2. Clique em + CRIAR NOVO para abrir a página Criar associação.
  3. Na secção Localização, escolha a localização para a ligação.
    1. Região: selecione uma localização na lista pendente.

      Para ver a lista de todas as regiões suportadas, consulte o artigo Localizações.

    2. Clique em SEGUINTE.
  4. Na secção Detalhes da associação, conclua o seguinte:
    1. Conector: selecione Servicenow na lista pendente de conectores disponíveis.
    2. Versão do conetor: selecione a versão do conetor na lista pendente de versões disponíveis.
    3. No campo Nome da ligação, introduza um nome para a instância de ligação.

      Os nomes das associações têm de cumprir os seguintes critérios:

      • Os nomes das associações podem usar letras, números ou hífenes.
      • As letras têm de ser minúsculas.
      • Os nomes das associações têm de começar com uma letra e terminar com uma letra ou um número.
      • Os nomes das associações não podem exceder 49 carateres.
      • Para os conetores que suportam a subscrição de eventos, os nomes das associações não podem começar com o prefixo "goog".
    4. Opcionalmente, introduza uma Descrição para a instância de associação.
    5. Opcionalmente, ative o Registo na nuvem e, em seguida, selecione um nível de registo. Por predefinição, o nível do registo está definido como Error.
    6. Conta de serviço: selecione uma conta de serviço que tenha as funções necessárias.
    7. Para usar a associação para subscrições de eventos, selecione Ativar subscrição de eventos. Se selecionar esta opção, são apresentadas as seguintes opções:
      • Ativar subscrição de eventos com entidade e ações: selecione esta opção para usar a associação para a subscrição de eventos e as operações do conetor (entidades e ações).
      • Ativar apenas subscrição de eventos: selecione esta opção para usar a associação apenas para a subscrição de eventos. Se selecionar esta opção, clique em Seguinte e, de seguida, configure a subscrição de eventos.
    8. Incluir tabelas do sistema: selecione esta opção para obter tabelas do sistema que armazenam dados de segurança e metadados. Apenas os utilizadores com a função de administrador têm acesso a estas tabelas.
    9. Filter Tables: especifique as tabelas como uma lista separada por vírgulas. Use este campo para filtrar as tabelas que quer que a associação obtenha em vez de obter todas as tabelas.
    10. Valor de apresentação: especifique se a associação tem de obter o valor de apresentação, o valor real ou ambos os valores da base de dados.
    11. Nota: se decidir definir esta propriedade de associação como "true", todos os campos devolvidos serão do tipo "String" devido às limitações da API do ServiceNow.

      • VERDADEIRO: devolve os valores de apresentação de todos os campos.
      • FALSO: devolve os valores reais da base de dados.
      • TUDO: devolve os valores reais e de apresentação.
    12. Opcionalmente, configure as definições do nó de associação:

      • Número mínimo de nós: introduza o número mínimo de nós de ligação.
      • Número máximo de nós: introduza o número máximo de nós de ligação.

      Um nó é uma unidade (ou uma réplica) de uma ligação que processa transações. São necessários mais nós para processar mais transações para uma ligação e, inversamente, são necessários menos nós para processar menos transações. Para compreender como os nós afetam os preços dos conectores, consulte o artigo Preços dos nós de ligação. Se não introduzir valores, por predefinição, os nós mínimos são definidos como 2 (para uma melhor disponibilidade) e os nós máximos são definidos como 50.

    13. Opcionalmente, clique em + ADICIONAR ETIQUETA para adicionar uma etiqueta à associação sob a forma de um par chave/valor.
    14. Clique em SEGUINTE.
  5. Na secção Destinos, introduza os detalhes do anfitrião remoto (sistema de back-end) ao qual quer estabelecer ligação.
    1. Tipo de destino: selecione um Tipo de destino.
      • Para especificar o nome de anfitrião ou o endereço IP de destino, selecione Endereço do anfitrião e introduza o endereço no campo Anfitrião 1.
      • Para estabelecer uma ligação privada, selecione Anexo do ponto final e escolha o anexo necessário na lista Anexo do ponto final.

      Se quiser estabelecer uma ligação pública aos seus sistemas de back-end com segurança adicional, pode considerar configurar endereços IP estáticos de saída para as suas ligações e, em seguida, configurar as regras da firewall para permitir apenas os endereços IP estáticos específicos.

      Para introduzir destinos adicionais, clique em +ADICIONAR DESTINO.

    2. Clique em SEGUINTE.
  6. Na secção Autenticação, introduza os detalhes de autenticação.
    1. Selecione um Tipo de autenticação e introduza os detalhes relevantes.

      Os seguintes tipos de autenticação são suportados pela ligação do ServiceNow:

      • Nome de utilizador e palavra-passe
    2. Para saber como configurar estes tipos de autenticação, consulte o artigo Configurar autenticação.

    3. Clique em SEGUINTE.
  7. Se ativou a subscrição de eventos, a secção Detalhes da subscrição de eventos é apresentada na página de criação da associação. Para compreender como configurar os detalhes da subscrição de eventos, consulte o artigo Configure a subscrição de eventos.
  8. Rever: reveja os detalhes da ligação e da autenticação.
  9. Clique em Criar.

Configure a autenticação

Introduza os detalhes com base na autenticação que quer usar.

  • Nome de utilizador e palavra-passe
    • Nome de utilizador: o nome de utilizador do ServiceNow a usar para a ligação.
    • Palavra-passe: segredo do Secret Manager que contém a palavra-passe associada ao nome de utilizador do ServiceNow.

Configure a subscrição de eventos

Se ativou a subscrição de eventos, introduza os seguintes valores na secção Detalhes da subscrição de eventos:

  • Token de autenticação: (opcional) selecione o segredo do Secret Manager do seu token de autenticação e a versão secreta correspondente no menu pendente Versão secreta.
  • Algoritmo HMAC: selecione o algoritmo HMAC para encriptar o payload de resposta.
  • Chave secreta HMAC: se selecionou um algoritmo HMAC, selecione o segredo do Secret Manager da chave HMAC e a versão secreta correspondente no menu pendente Versão secreta.
  • Ativar conetividade privada: selecione esta opção para ouvir eventos de forma segura através de uma ligação privada.
  • Introduza a seguinte configuração de mensagens não entregues:
    • ID do projeto de mensagens não entregues: o ID do projeto do Google Cloud onde configurou o tópico Pub/Sub de mensagens não entregues.
    • Tópico de mensagens não entregues: o tópico do Pub/Sub onde quer escrever os detalhes do evento não processado.

Passos após a criação da associação

Para concluir a configuração da subscrição de eventos, tem de registar o URL do webhook na sua aplicação ServiceNow. Por conseguinte, após a criação da associação ser bem-sucedida, execute os seguintes passos adicionais:

  1. Aceda à página de detalhes da associação recém-criada e copie o URL do webhook para a subscrição de eventos.
  2. Inicie sessão na sua aplicação ServiceNow e faça o seguinte:
    1. Na página Tudo > Regras empresariais > Quando executar, selecione a operação para a qual quer ouvir.
    2. Clique no separador Advanced. Esta ação abre um editor de scripts.
    3. Introduza um JavaScript que envie um pedido para o URL de retorno. O pedido contém o payload que é acionado sempre que ocorre qualquer uma das operações ativadas. Segue-se um exemplo de JavaScript:

      Modelo

      (function executeRule(current, previous /*null when async*/ ) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('WEBHOOK_URL'); // here you must the listener url where you want send the event payload
      
      request.setHttpMethod('POST');
      
      var authToken = "AUTHENTICATION_TOKEN"
      request.setRequestHeader("authorization", authToken);
      request.setRequestHeader("Accept", "application/json");
      request.setRequestHeader('Content-Type', 'application/json');
      
      request.setRequestBody("{\"eventType\":\"" +
      "EVENT_TYPE" + CUSTOM_FIELDS "\"}");
      
      var data = request.getRequestBody();
      var secretKey = "SECRET_KEY";
      
      var signature = SncAuthentication.encode(data, secretKey, "ENCRYPTION_ALGORITHM");
      request.setRequestHeader("hmacauthorization",signature);
      var response = request.execute();
      
      })(current, previous);

      Substitua o seguinte:

      • WEBHOOK_URL: URL do webhook para a subscrição de eventos que obteve na página de detalhes da ligação dos Integration Connectors.
      • AUTHENTICATION_TOKEN: o texto real do token de autenticação que configurou para a associação.
      • EVENT_TYPE: o texto real do tipo de evento que configurou no acionador do ServiceNow.
      • CUSTOM_FIELDS: o corpo do pedido tem de ter sempre o campo eventType. Além deste campo, pode adicionar outros campos com base no seu requisito.
      • SECRET_KEY: o texto real da chave secreta que configurou para a ligação.
      • ENCRYPTION_ALGORITHM: deve ser um dos seguintes valores:
        • HmacSHA224
        • HmacSHA256
        • HmacSHA384
        • HmacSHA512

        O algoritmo deve ser o mesmo que configurou para a ligação.

      Exemplo

      (function executeRule(current, previous /*null when async*/ ) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('https://webhook.site/bb37937e-24ea-19b3-9dcd-84eca77f60eg'); // here you must the listener url where you want send the event payload
      
      request.setHttpMethod('POST');
      
      var authToken = "YWRtaW46ZkVpNypxVzhCL3VY"
      request.setRequestHeader("authorization", authToken);
      request.setRequestHeader("Accept", "application/json");
      request.setRequestHeader('Content-Type', 'application/json');
      
      request.setRequestBody("{\"caller_id\":\"" +
      current.caller_id + "\",\"eventType\":\"" +
      "service_now_event_type_1" + "\",\"company\":\"" +
      current.company + "\",\"number\":\"" +
      current.number + "\",\"description\":\"" +
      current.description + "\",\"FirstName\":\"" +
      current.u_firstname + "\",\"LastName\":\"" +
      current.u_lastname + "\",\"status\":\"" +
      current.u_status + "\",\"Element\":\"" +
      current.getElement() + "\",\"category\":\"" +
      current.category + "\",\"opened_at\":\"" +
      current.opened_at + "\",\"opened_by\":\"" +
      current.opened_by + "\",\"location\":\"" +
      current.location + "\",\"salesforceId\":\"" +
      current.u_salesforceid + "\"}"); //fields you want
      
      var data = request.getRequestBody();
      var secretKey = "YWRtaW46ZkVpNypxVzhCL3VY";
      
      // var MAC_ALG_4 = "HmacSHA384";
      var MAC_ALG_3 = "HmacSHA256";
      // var MAC_ALG_5 = "HmacSHA512";
      // var MAC_ALG_2 = "HmacSHA224";
      
      var signature = SncAuthentication.encode(data, secretKey, MAC_ALG_3);
      request.setRequestHeader("hmacauthorization",signature);
      var response = request.execute();
      
      })(current, previous);

Exemplos de configuração de ligação

Esta secção apresenta os valores de exemplo dos vários campos que configura quando cria a associação.

Tipo de ligação de autenticação básica

Nome do campo Detalhes
Localização us-central1
Conetor Servicenow
Versão do conetor 1
Nome da ligação google-cloud-servicenow-conn
Conta de serviço Your_Project_Number@serviceaccount
Valores de apresentação True
Número mínimo de nós 2
Número máximo de nós 50
Tipo de destino Morada do anfitrião
anfitrião 1 https://Your-domainname.com
Nome de utilizador User_name
Palavra-passe Palavra-passe
Versão do Secret 1

Exemplos de configuração de ligação

Esta secção apresenta os valores de exemplo para os vários campos que configura para criar a ligação ao ServiceNow.

Tipo de ligação Web do ServiceNow

Nome do campo Detalhes
Localização us-central1
Conetor ServiceNow
Versão do conetor 1
Nome da ligação gcp-servicenow-conn
Conta de serviço SERVICE_ACCOUNT_NAME@serviceaccount
Número mínimo de nós 2
Número máximo de nós 50
Tipo de destino Morada do anfitrião
anfitrião 1 https://host_name.com
Nome de utilizador nome de utilizador
Palavra-passe palavra-passe
Versão do Secret 1

Entidades, operações e ações

Todos os conetores de integração oferecem uma camada de abstração para os objetos da aplicação ligada. Só pode aceder aos objetos de uma aplicação através desta abstração. A abstração é exposta como entidades, operações e ações.

  • Entidade: pode considerar uma entidade como um objeto ou uma coleção de propriedades na aplicação ou no serviço associado. A definição de uma entidade difere de um conetor para um conetor. Por exemplo, num conetor de base de dados, as tabelas são as entidades. Num conetor de servidor de ficheiros, as pastas são as entidades. Num conetor de sistema de mensagens, as filas são as entidades.

    No entanto, é possível que um conector não suporte ou não tenha entidades, caso em que a lista Entities estará vazia.

  • Operação: uma operação é a atividade que pode realizar numa entidade. Pode realizar qualquer uma das seguintes operações numa entidade:

    Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para a entidade. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa de conectores. No entanto, se um conector não suportar nenhuma das operações de entidades, essas operações não suportadas não são apresentadas na lista Operations.

  • Ação: uma ação é uma função de primeira classe que é disponibilizada à integração através da interface do conetor. Uma ação permite-lhe fazer alterações a uma ou mais entidades e varia de conetor para conetor. Normalmente, uma ação tem alguns parâmetros de entrada e um parâmetro de saída. No entanto, é possível que um conector não suporte nenhuma ação, caso em que a lista Actions está vazia.

Ações

Esta secção apresenta todas as ações suportadas pela associação do ServiceNow.

Ação UploadAttachment

Esta ação carrega um ficheiro como anexo a um registo especificado.

Parâmetros de entrada da ação UploadAttachment

Nome do parâmetro Tipo de dados Obrigatória Descrição
Conteúdo String Não String Content to upload as file.
ContentBytes String Não Conteúdo de bytes a carregar como ficheiro.
HasBytes Booleano Não Se deve carregar conteúdo como bytes.
TableName String Não Nome da tabela à qual anexar o ficheiro.
TableSysId String Não O sys_id do registo na tabela especificada por TableName ao qual quer anexar o ficheiro.

Parâmetros de saída da ação UploadAttachment

Esta ação devolve o conjunto de parâmetros da entidade carregada

Por exemplo, para saber como configurar a ação UploadAttachment, consulte os exemplos.

Ação DownloadAttachment

Esta ação transfere um ficheiro em anexo de um registo específico.

Introduza os parâmetros da ação DownloadAttachment

Nome do parâmetro Tipo de dados Obrigatória Descrição
SysId String Sim Sys_id do ficheiro do anexo.
HasBytes Booleano Não Se deve transferir o conteúdo como bytes.

Parâmetros de saída da ação DownloadAttachment

Esta ação devolve se a transferência é verdadeira ou falsa através do parâmetro de êxito e, se for verdadeira, produz o conteúdo de DownloadAttachment

Por exemplo, para saber como configurar a ação DownloadAttachment, consulte os exemplos.

Exemplos

Esta secção descreve como realizar algumas das operações e ações de entidades neste conector.

Exemplo: carregue um anexo para um incidente

  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação UploadAttachment e, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
      "Content": "File is uploaded",
      "TableName": "Incident",
      "TableSysId": "018f4057473ae5104593a6b5316d4357"
    }
  4. Este exemplo carrega o valor do conteúdo do payload como anexo e devolve o conjunto de parâmetros da entidade carregada . Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:UploadAttachmentconnectorOutputPayload

    {
    "SysId": "a667f5d1939be110ff87352d6cba10fc",
    "FileName": "7043426257788756581.connector.txt",
    "TableSysId": "018f4057473ae5104593a6b5316d4357",
    "TableName": "Incident",
    "DownloadLink": "https://gcp.service-now.com/api/now/v1/attachment/a667f5d1939be110ff87352d6cba10fc/file",
    "ContentType": "text/plain",
    "SizeBytes": "16",
    "ChunkSizeBytes": "700000",
    "Compressed": "true",
    "SizeCompressed": "36",
    "SysTags": "",
    "ImageHeight": "",
    "ImageWidth": "",
    "AverageImageColor": "",
    "SysModCount": "0",
    "Hash": "807e96c2942c41ad699d004a9d6a74595c84fab09111d479b6bbe013d5debff6",
    "State": "pending",
    "SysUpdatedBy": "gcp2",
    "SysUpdatedOn": "2023-06-07 07:23:34",
    "SysCreatedBy": "gcp2",
    "SysCreatedOn": "2023-06-07 07:23:34",
    "encryption_context": ""
    }

Exemplo: transferir um anexo de um incidente

  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação DownloadAttachment e, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
      "SysId": "440c3995471fe1104593a6b5316d4384"
    }
  4. Este exemplo devolve se o download é verdadeiro ou falso através do parâmetro de êxito e, se for verdadeiro, produz o conteúdo de DownloadAttachment. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:DownloadAttachmentconnectorOutputPayload

    [{
    "Success": "True"
    },
    {
    "Content": " A Simple Text File \r\n\r\n\r\n This is a small demonstration .txt file - \r\n just for use in the Virtual Mechanics tutorials. More text. And more \r\n text. And more text. And more text. And more text. \r\n And more text. And more text. And more text. And more text. And more \r\n text. And more text. Boring, zzzzz. And more text. And more text. And \r\n more text. And more text. And more text. And more text. And more text. \r\n And more text. And more text. \r\n And more text. And more text. And more text. And more text. And more \r\n text. And more text. And more text. Even more. Continued on page 2 ...\r\n Simple PDF File 2 \r\n ...continued from page 1. Yet more text. And more text. And more text. \r\n And more text. And more text. And more text. And more text. And more \r\n text. Oh, how boring typing this stuff. But not as boring as watching \r\n paint dry. And more text. And more text. And more text. And more text. \r\n Boring. More, a little more text. The end, and just as well. "
    }]

Exemplos de operações de entidades

Esta secção mostra como realizar algumas das operações de entidades neste conector.

Exemplo: GET de um único registo para a entidade "Incidente"

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Incidente na lista Entity.
  3. Selecione a operação GET e, de seguida, clique em Concluído.
  4. Defina o ID da entidade como "0c5f3cece1b12010f877971dea0b1449", que é a chave a ser transmitida. Para definir o ID da entidade, na secção Mapeador de dados do Mapeamento de dados, clique em Abrir editor de mapeamento de dados e, em seguida, introduza "0c5f3cece1b12010f877971dea0b1449" no campo Valor de entrada e escolha EntityId como variável local.

Limitações do sistema

O conetor do ServiceNow pode processar um máximo de 10 transações por segundo, por , e limita todas as transações que excedam este limite. Por predefinição, os Integration Connectors atribuem 2 nós (para uma melhor disponibilidade) a uma ligação.

Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.

Crie ligações com o Terraform

Pode usar o recurso do Terraform para criar uma nova associação.

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Para ver um modelo do Terraform de exemplo para a criação de ligações, consulte o modelo de exemplo.

Quando criar esta associação através do Terraform, tem de definir as seguintes variáveis no ficheiro de configuração do Terraform:

Nome do parâmetro Tipo de dados Obrigatória Descrição
proxy_enabled BOOLEAN Falso Selecione esta caixa de verificação para configurar um servidor proxy para a ligação.
proxy_auth_scheme ENUM Falso O tipo de autenticação a usar para autenticar no proxy ProxyServer. Os valores suportados são: BASIC, DIGEST, NONE
proxy_user STRING Falso Um nome de utilizador a ser usado para autenticar no proxy ProxyServer.
proxy_password SECRET Falso Uma palavra-passe a usar para autenticar no proxy ProxyServer.
proxy_ssltype ENUM Falso O tipo de SSL a usar quando se liga ao proxy ProxyServer. Os valores suportados são: AUTO, ALWAYS, NEVER, TUNNEL
include_system_tables BOOLEAN Falso Controla se as tabelas do sistema devem ser expostas ou não.
filter_tables STRING Falso Especifique as tabelas que quer numa lista separada por vírgulas.

Use a ligação do ServiceNow numa integração

Depois de criar a ligação, esta fica disponível no Apigee Integration e no Application Integration. Pode usar a ligação numa integração através da tarefa Conectores.

  • Para compreender como criar e usar a tarefa Connectors no Apigee Integration, consulte o artigo Tarefa Connectors.
  • Para compreender como criar e usar a tarefa Connectors na integração de aplicações, consulte o artigo Tarefa Connectors.

Obtenha ajuda da comunidade do Google Cloud

Pode publicar as suas perguntas e discutir este conector na comunidade do Google Cloud nos Fóruns do Cloud.

O que se segue?