Integração SET

A integração SET tem a responsabilidade de enviar as informações presentes no Gestão de Relacionamento | CRM para outro sistema (receptor). O envio de informações através do Integrador tem suas particularidades e são configuradas de forma diferente das outras integrações, pois como os campos tem funções diferentes, eles também recebem valores diferentes.

Quando a integração finalizar com sucesso, o Integrador set vai retornar uma mensagem de sucesso. Caso o web service tenha algum tipo de retorno para quem foi configurado o envio, será exibido o retorno e a mensagem. No caso de erro, o Integrador só vai apresentar o erro, cujos detalhes serão exibidos no log.

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 a string exatamente como uma string PHP, então, o valor pode estar dentro da string 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

O nível de customização no cadastro das integrações é grande e 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, porém não é recomendado usar mais de um SQL no mesmo campo.

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
NOME

Descriçã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.

TIPO_SERVICO

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

SET: envio dos valores para sistema terceiro.
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.

LINK WEB: complemento do endereço da conexão para um determinado serviço;

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 deve representar a consulta dos dados feita no sistema Gestão de Relacionamento | CRM.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.

Pode conter valores NULOS.
INDICE_ARRAY_RETORNO

Representa a chave do array de retorno onde estão os dados de feedback da integração realizada. Esse valor deve constar na documentação do serviço. 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;

Pode conter valores NULOS.
INDICE_VALOR_RETORNO

Índice que será pesquisado no array de retorno do envio de valor para o sistema terceiro, para realizar ações após sucesso na integração. Podem ser inseridos mais de um índice, basta que sejam separados por vírgula.

Pode conter valores NULOS.
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 vírgula (não pode haver espaçamento entre os índices e a virgula). 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_CONSULTACampo não utilizado na integração SET.
SQL_INSERTCampo não utilizado na integração SET.
SQL_UPDATE

SQL que será responsável por atualizar um registro no Gestão de Relacionamento | CRM quando o retorno da integração SET for positiva e trazer a informação do identificador do cadastro realizado no sistema terceiro. Não esqueça da dica 2. Para montar a query de atualização, é habilitado a injeção de valores, que contém todos os valores mapeados, da tabela CAMPOS_INTEGRACAO, do Gestão de Relacionamento | CRM, coluna CAMPO_CRM e o resultado da integração, ou seja os valores retornados da inserção do registro, que são informados na coluna INDICE_VALOR_RETORNO, que podem ser acessados conforme:

#conta_id#: representa as colunas disponíveis na integração, campos do Gestão de Relacionamento | CRM consultados e que estão listados para a integração em execução;

#codCli#: representa os valores cadastrados na coluna INDICE_VALOR_RETORNO que são os índices retornados da inserção do registro do sistema terceiro.

Ex.: UPDATE oportunidades SET numero_pedido = #numPed# 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: 19

  • Campo nome: SET-WS-CONTAS

  • Campo tempo_servico: SET

  • Campo empresa_id/empresa_filial_id: 1

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

  • Campo tabela: contas

  • Campo consulta: {“consulta”:“SELECT c.id_erp, c.fax, c.email_geral, c.email_financeiro, c.cadastro_timestamp, c.cliente_desde, c.status, c.representante_id, c.id, c.tipo_conta, c.tipo_pessoa, c.cidade_id, c.celular, c.telefone, c.telefone2, c.telefone3, c.nome, c.fantasia, c.cnpj, c.cpf, c.ramo_atividade_id, c.inscricao, c.inscricao_municipal, c.endereco, c.complemento, c.numero, c.cep, c.bairro FROM contas AS c WHERE c.id = #contaId#”}

  • Campo conexao_integracao_id: 3

  • Campo porta_ws: GravarClientes

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

  • Campo indice_valor_retorno: codCli - essa coluna só é usada em integrações SET

  • Campo indice_erro_retorno: erro,mensagemErro,erroExecucao

  • Campo sql_consulta: não utilizado

  • Campo sql_insert: não utilizado

  • Campo sql_update: UPDATE contas SET id_erp = #codCli# WHERE id = #contaId#

  • 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: empresaIdErp,filialIdErp,contaId - 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;

VALOR FIXO: 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#).

Exemplos:

  1. {“indice”: “oportunidades”, “atributo”: “#empresaIdErp#”}
  2. {“indice”: “oportunidades”, “atributo”: “01”}
  3. {“indice”:”conta”,”atributo”:”ignore:razao_social”};
  4. {“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”}}’.

REGRA_IDIdentificador 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_INSERTCampo não utilizado na integração SET.
USE_UPDATECampo não utilizado na integração SET.
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.

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

Pode conter valores NULOS.
Exemplo:
  • Campo id: 1.149
  • Campo integracao_id: 19
  • Campo campo_crm: {“indice”:“contas”,“atributo”:{“indice”:“prazo_pagamento”,“alias”:‘prazo_pagamento_id”,“atributo”:“id_erp”}}
  • Campo campo_erp: {“indice”:“dadosGeraisCliente”,“atributo”:{“indice”:“definicoesCliente”,“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.
TABELATabela/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_COMPARAR

Coluna 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
NOMEInforma 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;

METODO

Método ou função que será executada quando ocorrer uma chamada à regra. O método pode ser:

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ê?