Integração GET e INFO

A integração de GET e INFO são apresentadas ao mesmo tempo, pois são semelhantes uma a outra na configuração da integração. Somente em processos internos, execução de algumas regras e no retorno das informações é que existem algumas diferenças:

GET

Retorna para o usuário somente uma mensagem de sucesso ou erro e a natureza do erro ocorrido, especificando com mais detalhes nos logs, e um retorno quantitativo de quantos registros foram inseridos e atualizados na execução. Durante a execução as informações são transformadas em query, conforme parametrização, para execução no banco de dados do Gestão de Relacionamento | CRM, inserindo e/ou atualizando os dados.

Imagem

INFO

Retorna para o usuário todos os dados processados durante a execução da integração em formato JSON, além da mensagem de sucesso ou erro, e nesse caso, a natureza do erro, apresentando mais detalhes nos logs.

Imagem

Dicas de usabilidade

Ordenação para a criação da integração

Sugestão de ordenação para a criação da integração, cadastrando informações entre as tabelas conforme necessidade, para facilitar a compreensão e organização dos dados. Dessa forma há um loop entre as tabelas CAMPOS_INTEGRACAO, DEPENDENCIAS e REGRAS, para que a cada informação registrada em CAMPOS_INTEGRACAO seja verificado se há a necessidade de criar registros nas demais tabelas.

Valores das variáveis

Todos os valores variáveis são escritos na linguagem do Integrador, utilizando do símbolo #, no início e final do nome da variável. E, ao configurar os SQLs de consulta, inserção e atualização, o Integrador compila o texto exatamente como se fosse código. Desta forma, o valor pode estar dentro do texto contendo ou não aspas duplas ou simples. Por exemplo, SELECT * FROM contas WHERE id = ‘#id#’.

Ordem das integrações

Ordem que são dispostas as integrações na tabela INTEGRACOES faz diferença, então devem ser colocadas em uma ordem lógica, conforme estrutura do Gestão de Relacionamento | CRM.

Ordem dos índices

Ordem dos índices da string JSON no campo CAMPO_CRM da tabela CAMPOS_INTEGRACAO não faz diferença, porém deve-se manter a estrutura lógica.

Cadastro de integrações

Nível de customização no cadastro das integrações é grande, os SQLs presentes na tabela INTEGRACOES colunas CONSULTA, SQL_CONSULTA, SQL_INSERT e SQL_UPDATE podem ser complexos e mais de um, se necessário.

Nota

É possível executar integrações de diferentes tipos em dependência (GET + SET), porém é recomendado executar em dependência apenas integrações do mesmo tipo. Primeiramente é preciso configurar a conexão com o sistema a ser integrado, e em seguida configurar os módulos e os campos.

Tabelas

O Integrador possui uma estrutura de tabelas em banco de dados onde será possível cadastrar e configuraras integrações.

CONEXAO_INTEGRACAO
CampoDescriçãoValores possíveis
TIPO_CONEXAOClassifica a forma de conexão da integração.
  1. Conexão via web service;
  2. Conexão via banco de dados;
  3. Conexão via API.
NOME_CONEXAOInforma o nome da conexão salva no arquivo de conexões do cliente dentro dos arquivos do Integrador. Cada tipo de conexão tem um layout específico para configurar a conexão no arquivo.
INTEGRACAO
CampoDescriçãoValores possíveis
NOMEDescrição da integração. Informação importante no caso da integração INFO, pois é o índice de retorno para se chegar nas informações integradas.
  • GET: Consulta dos valores
  • INFO: Retorno dos valores
TIPO_SERVICO

String que representa o tipo da integração a ser executada.

EMPRESA_ID/ EMPRESA_FILIAL_IDEmpresa a qual a integração está disponível.
LINK

String que informa endereço para conexão da integração, o complemento para se chegar a um determinado serviço, e pode ser NULO em alguns casos.

  • NULL: somente em casos em que a integração é via banco de dados;
  • LINK WEB: complemento do endereço da conexão para um determinado serviço;
  • SQL: consulta de determinados valores através de uma string SQL;
  • PALAVRA CHAVE: sendo atualmente ‘:componente’ a palavra chave disponível, e ela informa que a integração é um componente ou um campo de uma outra integração.
TABELATabela onde será executada a integração.
CONSULTATexto JSON que representa a consulta dos dados feita no sistema terceiro, o texto precisa conter uma chave ‘consulta’ para que o Integrador encontre a busca e o valor pode ser NULO em alguns casos.
  • NULL: somente em casos em que a integração é de um componente ou via API quando não há valores a serem enviados no header da requisição;
  • JSON-COMPOSTO: quando for necessário dentro da chave “consulta” pode ser configurado outro JSON como se fosse um array, que conterá todos os parâmetros de busca;
  • JSON-SQL: dentro da chave “consulta” pode ser escrito um texto sql completo que será executado para busca.
CONEXAO_INTEGRACAO_IDIdentificador que referencia a informação da tabela CONEXAO_INTEGRACAO.
PORTA_WS

Refere-se à porta para execução de um determinado serviço. Utilizado somente em integrações via web service. Essa informação pode ser encontrada na documentação do WSDL do sistema a ser integrado.

INDICE_ARRAY_RETORNO

Representa a chave do array de retorno onde estão os dados da pesquisa de valores a serem integrados. No caso da integração via web service esse valor consta na documentação, já via banco de dados, o valor informado será adicionado como primeiro índice do array retornado da consulta. Caso a requisição seja via Web Service ou API e não tenha um índice padrão para o retorno de valores, pode-se usar a palavra reservada ‘parameters’ como indice_array_retorno.

INDICE_VALOR_RETORNO

Índice que será pesquisado no array de retorno do envio de valor para o sistema terceiro (integração SET), para realizar ações após sucesso na integração. Valor não utilizado na integração GET ou INFO, seu valor deve ser NULL.

INDICE_ERRO_RETORNOSão os índices que serão buscados os erros no array de retorno das buscas executadas pelo Integrador, ou seja, se esses índices forem encontrados com valor, o Integrador interpretará a busca como ‘com erro’. O campo pode conter vários índices separados por virgula (não pode haver espaçamento entre os índices e a vírgula). Somente o primeiro índice da lista será utilizado como validador geral, ou seja, se o primeiro índice não apresentar erros, os demais não serão contabilizados.
SQL_CONSULTA

SQL que será responsável por buscar o registro no Gestão de Relacionamento | CRM, no caso da integração INFO, ou validar se o mesmo existe, para o Integrador saber qual será o próximo passo, inserir ou atualizar o registro, no caso da integração GET. Para esse campo lembre-se da dica 2. Há duas variáveis que podem ser utilizadas #empresa_id# ou #empresa_filial_id#, quando o Gestão de Relacionamento | CRM do cliente é para múltiplas empresas, além das variáveis do Integrador, que contém todos os campos mapeados no DE-PARA dos campos do Gestão de Relacionamento | CRM e sistema terceiro, e está disposto da seguinte forma: #nome#

SQL_INSERT

SQL que será responsável por inserir um novo registro no Gestão de Relacionamento | CRM caso a busca feita pela coluna SQL_CONSULTA retorne false. Não esqueça da dica 2. Para montar a query de inserção, é habilitado a injeção de valores, então há duas variáveis que podem ser utilizadas #empresa_id# ou #empresa_filial_id#, quando o Gestão de Relacionamento | CRM do cliente é para múltiplas empresas, além das variáveis do Integrador, que contém todos os campos mapeados no DE-PARA dos campos do Gestão de Relacionamento | CRM e sistema terceiro, desde que estejam com o valor true (1) na coluna VALOR_GLOBAL da tabela CAMPOS_INTEGRACAO, além dos valores mapeados no DE-PARA formatados para o INSERT, sendo:

#indices#: representa as colunas;

#valores#: são os valores a serem inseridos;

Ex.: (#indices#) VALUES (#valores#)

SQL_UPDATE

SQL que será responsável por atualizar um registro no Gestão de Relacionamento | CRM caso a busca feita pela coluna SQL_CONSULTA retorne true. Não esqueça da dica 2. Para montar a query de atualização, é habilitado a injeção de valores, então há duas variáveis que podem ser utilizadas #empresa_id# ou #empresa_filial_id#, quando o Gestão de Relacionamento | CRM do cliente é para múltiplas empresas, além das variáveis do Integrador, que contém todos os campos mapeados no DE-PARA dos campos do Gestão de Relacionamento | CRM e sistema terceiro, desde que estejam com o valor true (1) na coluna VALOR_GLOBAL da tabela CAMPOS_INTEGRACAO, além dos valores mapeados no DE-PARA formatados para o UPDATE, sendo:

#valores#: representa as colunas igualada aos valores;

#id#: retorna o valor consultado na coluna SQL_CONSULTA;

Ex.: #valores# WHERE id = #id#

DEPENDENTEInforma que a integração atual depende da integração com o identificador informado e a mesma será executada antes. O valor informado é o identificador da tabela INTEGRACOES. Pode conter valores NULOS.
DEPENDE_DE Informa que o valor cadastrado é uma integração que depende da integração atual e a mesma será executada depois. O valor informado é o identificador da tabela INTEGRACOES. Pode conter valores NULOS.
PARAMETROS_OBRIGATORIOSInforma quais são os valores devem, obrigatoriamente, estar na URL da requisição da integração. Os parâmetros devem ser separados por vírgula e devem ser exatamente iguais aos parâmetros que serão passados pela URL. Pode conter valores NULOS.
Exemplo:
  • Campo id: 1

  • Campo nome: GET-WS-CONTAS

  • Campo tipo_servico: GET

  • Campo empresa_id/empresa_filial_id: 1

  • Campo link: /g5-senior-services/sapiens_Synccom_senior_g5_co_cad_clientes?wsdl

  • Campo tabela: contas

  • Campo consulta: {“consulta”:{“user”:“senior”,“password”:“senior”,“encryption”:0,“parameters”:{“codEmp”:“1”,“codFil”:“1”,“identificadorSistema”:“CRM”,“quantidadeRegistros”:“500”,“tipoIntegracao”:“#tipoIntegracao#”}}}

  • Campo conexao_integracao_id: 3

  • Campo porta_ws: Exportar

  • Campo indice_array_retorno: cliente - em integrações via web service o valor dessa coluna precisa ser identico ao valor do web service

  • Campo indice_valor_retorno: não utilizado

  • Campo indice_erro_retorno: erro,mensagemErro,erroExecucao

  • Campo sql_consulta: SELECT id FROM contas WHERE id_erp = ‘#id_erp#’ INSERT INTO contas (empresa_id, #indices#) VALUES (1, #valores#)

  • Campo sql_insert: INSERT INTO contas (empresa_id, #indices#) VALUES (1, #valores#) - essa coluna não é usada em integrações INF

  • Campo sql_update: UPDATE contas SET #valores# WHERE id = ‘#id#’ - essa coluna não é usada em integrações INF

  • Campo dependente:1 - a coluna “dependente” precisa ser o id de uma integração válida, ou seja, o id de um registro válido da tabela INTEGRACOES

  • Campo depende_de: 1 - a coluna “depende_de” precisa ser o id de uma integração válida, ou seja, o id de um registro válido da tabela INTEGRACOES

  • Campo parametros_obrigatorios: codEmp,codFil,tipoIntegracao - em caso de multiplos parâmetros eles devem ser separados por virgula sem espaçamento

CAMPOS_INTEGRACAO
CampoDescriçãoValores possíveis
INTEGRACAO_IDIdentificador que referência a informação da tabela INTEGRACOES.
CAMPO_CRM

Representação do campo interno do Gestão de Relacionamento | CRM, pode somente ser preenchido no formato JSON, nele deve conter a referência a tabela (INDICE) e a coluna (ATRIBUTO) nesses casos diz que há somente um nível de profundidade, ex.: ‘{“indice”:”contas”,”atributo”:”razao_social”}’. Também há casos onde é necessário mais níveis para se chegar a um determinado valor, apresenta junções de tabelas (JOIN), onde o valor é originado em outra tabela, referência a tabela (INDICE) e a coluna (ALIAS) onde se busca a informação, e a tabela (INDICE) e coluna (ATRIBUTO) originais, e pode conter N níveis, ex.: ‘{“indice”:”contas”,”atributo”:{ ”alias”:”prazo_pagamento_id”,“indice”:”prazo_pagamento”,”atributo”:”id”}}’. Em casos como esse, onde há dois níveis, entende-se que há uma dependência a ser informada, ou seja, é preciso vincular a regra CONSULTAR DEPENDENCIA na coluna REGRA_ID e cadastra uma dependência na tabela DEPENDENCIA. Nos casos em que há somente um nível pode-se cadastrar registros onde o ATRIBUTO é uma palavra-chave ou variáveis de palavras reservadas ou das informações gravadas como valores globais na coluna VALOR_GLOBAL da tabela CAMPOS_INTEGRACAO, sendo:

IGNORE: ignora esse campo ao executar a ação de salvar ou exportar;

COMPONENTE: carrega um componente de integração, desde que tenha o mesmo no usado na coluna NOME_COMPONENTE;

Ex1.: {“indice”:”conta”,”atributo”:”ignore:razao_social”};

Ex2.: {“indice”:”conta”,”atributo”:”componente:definicoes_conta”};

CAMPO_ERP

Representação do campo externo do Gestão de Relacionamento | CRM (sistema terceiro), pode somente ser preenchido no formato JSON nele deve conter a referência a tabela (INDICE) e a coluna (ATRIBUTO) nesses casos diz que há somente um nível de profundidade, ex.: ‘{“indice”:”cliente”,”atributo”:”nomCli”}’. Também há casos onde é necessário mais níveis para se chegar a um determinado valor, apresenta junções de tabelas/informações (JOIN), onde o valor é originado em outra tabela/nível do array, referência a tabela/índice (INDICE) e o outro nível do array (INDICE) e o valor procurado (ATRIBUTO), e pode conter N níveis, ex.: ‘{“indice”:”contas”,”atributo”:{“indice”:”historico”,”atributo”:”codCpg”}}’. Nos casos em que há somente um nível pode-se cadastrar registros onde o ATRIBUTO é uma palavra-chave ou variáveis de palavras reservadas ou das informações gravadas como valores globais na coluna VALOR_GLOBAL da tabela CAMPOS_INTEGRACAO, sendo:

VALOR: informa que a string a seguir é um valor fixo. Nesse caso é necessário informar a regra ADICIONAR VALOR FIXO na coluna REGRA_ID. No caso da adição de valor fixo é possível adicionar variáveis para serem substituídas por seus respectivos valores durante o processamento do campo. Estão disponíveis palavras reservadas (dataAtual, dataHoraAtual, etc) e valores da integração que estiverem informados como valores globais, para isso a variável deve estar entre # (#dataAtual#, #dataHoraAtual#, #etc#).

Ex.: {“indice”:“cliente”,“atributo”:“valor:oportunidade gerada em #dataHoraAtual#“}

REGRA_ID Identificador que referência a informação da tabela REGRAS.
VALOR_GLOBALBooleano que permite o campo, se informado como true/1¸ salvar o valor e o nome do campo em um escopo global para que o mesmo possa ser acessado de qualquer outra integração, campo ou regra.
USE_INSERTBooleano que permite ao campo, se informado como true/1, ser usado em uma operação de inserção no banco de dados do Gestão de Relacionamento | CRM. O campo somente é utilizado na integração GET.
USE_UPDATEBooleano que permite ao campo, se informado como true/1, ser usado em uma operação de atualização no banco de dados do Gestão de Relacionamento | CRM. O campo somente é utilizado na integração GET.
PARAMETROS_ADICIONAIS

Usado para passar diversos parâmetros para uma determinada regra durante o processamento do campo. Deve ser cadastrado somente strings no formato JSON. Pode conter valores NULOS.

Ex.: {“data_format_erp”:“Y-m-d”};

Exemplo:
  • Campo id: 897
  • Campo integracao_id: 10
  • Campo campo_crm: {“indice”:“definicoes_conta”,“atributo”:{“indice”:“prazo_pagamento”,“alias”:‘prazo_pagamento_id”,“atributo”:“id”}}
  • Campo campo_erp: {“indice”:“cliente”,“atributo”:{“indice”:“historico”,“atributo”:“codCpg”}}
  • Campo regra_id: 5
  • Campo valor_global: 0
  • Campo use_insert: 1
  • Campo use_update: 1
  • Campo parametros_adicionais: null
DEPENDENCIAS
CampoDescriçãoValores possíveis
INTEGRACAO_IDIdentificador que referência a informação da tabela INTEGRACOES.
TABELA Tabela/view onde será buscada as informações para que os registros sejam comparados ao consultar as dependências durante o processamento dos campos.
COLUNAS_BUSCARNome da coluna da tabela informada anteriormente que contém o valor desejado. Pode ser informado mais de um campo, basta serem separados por vírgula.
COLUNA_COMPARARColuna que contém o valor que será comparado com o retorno da consulta ao sistema terceiro. Tem seu funcionamento parecido com a clausula ON presente no JOIN de uma query.
VALOR_DEFAULTValor que é informado, para em casos não seja encontrado um registro com o valor informado na coluna COLUNA_COMPARAR, ele é inserido, para que o campo não seja vazio. O valor informado necessariamente tem que ser um identificador válido na tabela informada na coluna TABELA. Pode conter valores NULOS.
EMPRESA_FILIAL_IDIdentificador que referência a informação da tabela EMPRESA_FILIAL. Separa as dependências por empresa e filial permitindo valores diferentes conforme necessidade da filial. Essa informação é somente utilizada quando a base do cliente for para múltiplas empresas.
Exemplo:
  • Campo id: 75
  • Campo integracao_id: 8
  • Campo tabela: usuarios
  • Campo colunas_buscar: usuario_id,nome
  • Campo coluna_comparar: usuario_id_erp
  • Campo valor_defaut: 383
  • Campo empresa_filial_id: 1
REGRAS
CampoDescriçãoValores possíveis
NOME Informa um descritivo da regra, o nome para identificar a regra.
TIPO_METODOResponsável por informar ao Integrador como a regra é executada.

0: executa uma função, somente chama o método passado por parâmetro na coluna METODO;

1: realiza a consulta de uma dependência, o método fixo, retornando o valor conforme configurado para. Caso tenha sido informado um método na coluna METODO, o mesmo é executado após a consulta da dependência;

2: adiciona um valor fixo, a regra interpreta o valor informado da coluna CAMPO_ERP, da tabela CAMPOS_INTEGRACAO, como sendo um valor de fato, não como uma chave da consulta. Caso tenha sido informado um método na coluna METODO, o mesmo é executado após o retorno do valor fixo;

4: carrega um componente, adiciona os valores a uma variável interna do Integrador para que o Integrador interprete o componente como uma integração, com suas particularidades, e quando o componente terminar sua execução, retorna os valores formatados para a integração principal;

METODOMétodo ou função que será executada quando ocorrer uma chamada à regra.

SQL: uma consulta com alguma condição que retorna o valor desejado;

ASSINATURA DE MÉTODO: uma chave que represente um método presente nos arquivos de regras do Integrador, regras gerais ou especifica de um cliente;

NULL: pode conter valores NULOS.

Exemplo:
  • Campo id: 26
  • Campo nome: Carregar/Preparar Componente
  • Campo tipo_metodo: 4
  • Campo metodo: null

Este artigo ajudou você?