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.
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 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.
Campo | Descrição | Valores possíveis |
---|---|---|
TIPO_CONEXAO | Classifica a forma de conexão da integração. |
|
NOME_CONEXAO | Informa 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. |
Campo | Descrição | Valores 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_ID | Empresa 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. |
TABELA | Tabela onde será executada a integração. | |
CONSULTA | Texto JSON que deve representar a consulta dos dados feita no sistema CRM. | JSON-SQL: dentro da chave "consulta" pode ser escrito um texto SQL completo que será executado para busca. |
CONEXAO_INTEGRACAO_ID | Identificador 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_RETORNO | Sã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_CONSULTA | Campo não utilizado na integração SET. | |
SQL_INSERT | Campo não utilizado na integração SET. | |
SQL_UPDATE |
SQL que será responsável por atualizar um registro no 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 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 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# |
|
DEPENDENTE | Informa 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_OBRIGATORIOS | Informa 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. |
- 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
Campo | Descrição | Valores possíveis |
---|---|---|
INTEGRACAO_ID | Identificador que referência a informação da tabela INTEGRACOES. | |
CAMPO_CRM |
Representação do campo interno do 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:
|
CAMPO_ERP |
Representação do campo externo do 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_ID | Identificador que referência a informação da tabela REGRAS. | |
VALOR_GLOBAL | Booleano 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_INSERT | Campo não utilizado na integração SET. | |
USE_UPDATE | Campo 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. |
- 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
Campo | Descrição | Valores possíveis |
---|---|---|
INTEGRACAO_ID | Identificador 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_BUSCAR | Nome 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_DEFAULT | Valor 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_ID | Identificador 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. |
- 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
Campo | Descrição | Valores possíveis |
---|---|---|
NOME | Informa um descritivo da regra, o nome para identificar a regra. | |
TIPO_METODO | Responsá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. |
- Campo id: 26
- Campo nome: Carregar/Preparar Componente
- Campo tipo_metodo: 4
- Campo metodo: null