Pesquisa por:
Tudo sobre formulários do Fluig.

Este artigo é recomendado à comunidade de desenvolvedores e analistas.

Disclaimer

Este é um estudo realizado em ambiente de testes, portanto serve de apoio ao entendimento dos recursos que a plataforma fluig disponibiliza.

As ações executadas são de responsabilidades do usuário.

Este artigo é independente, não tendo qualquer relação com a empresa que provê o sistema Fluig.

Os testes foram executados na versão 1.7.1.

Participe de nossa comunidade no WhatsApp. Em caso de dúvidas, ou se encontrar erros neste artigo, entre em contato comigo.

O que são formulários no Fluig?

O que são formulários no fluig? De forma simples um formulário é uma tela em HTML, composta por componentes básicos de input, como caixas de texto, checklist, radio, botões entre outros.

Além dos componentes HTML padrão, podemos definir também uma Tabela que é um componente avançado, que é chamado de PAI X FILHO.

Um PAI X FILHO no Fluig é uma tabela HTML com algumas propriedades específicas nas tags <table>, que se assemelham a um relacionamento 1 para N, isto significa que você tem uma estrutura principal que armazena um registro único, já na estrutura da tabela PAI X FILHO você permite que a estrutura de dados se repita.

Um exemplo de uso de pai x filho é: imagine que você possui um formulário com os dados de um compra. Na estrutura principal você registrará dados únicos como: nome do cliente, data de compra, endereço de entrega e etc. A tabela pai x filho , por sua vez, é o recurso que você irá precisar para registrar os itens daquela compra, ou seja, nele serão armazenados um conjunto de registros que por necessidade irão repetir os seus tipos de dados, que podem ser: nome do produto, quantidade e preço unitário.

Veja mais detalhes da implementação do pai x filho na documentação oficial da TOTVS.

Em caso de dúvidas você pode também fazer parte da nossa comunidade pelo WhatsApp.

Os tipos de formulários do fluig.

A primeira coisa que precisaremos separar aqui é o FORMULÁRIO DESENVOLVIDO e o FORMULÁRIO UTILIZADO. Lembrando que este não é um conceito oficial e sim uma separação que eu fiz aqui para explicar que desenvolvemos uma estrutura de formulários em HTML, e em seguidas utilizamos esta mesma estrutura para armazenar dados.

Formulário Desenvolvido.

Conforme dito anteriormente, ao criar um formulário no fluig (dentro da plataforma, ou nos ambientes de desenvolvimento avançado) o sistema fluig irá interpretar estes campos e salva-los no banco de dados, especificando corretamente os campos do tipo INPUT que desenvolvemos e seus respectivos nomes.

Por que salvar os dados em estruturas, em vez de simplesmente salvar somente o HTML? Porque ao gerar um formulário o fluig cria datasets internos, portanto o dataset precisa saber os dados que irá responder.

As tabelas do banco de dados utilizadas para armazenar são: FICHEIRO, e FICHEIRO_CAMPO, onde FICHEIRO é a tabela que lista os componentes do tipo PAI X FILHO.

Já a tabela FICHEIRO_CAMPO especifica, tanto na estrutura principal, quanto na estrutura de PAI X FILHO, a estrutura de armazenamento, que são todos os campos de HTML do tipo INPUT.

Também é utilizada a tabela chamada DOCUMENTO, que salva o documento de fato, é como se fosse uma representação de um documento físico.

Quando criamos um formulário o sistema armazena a sua estrutura mantendo os nomes que inserimos na TAG NAME do HTML do formulário, porém se porventura removermos este campo e enviar uma versão mais atualizada, o sistema fluig irá mantê-lo em seus registros das tabelas citadas acima,, pois aquele campo já existiu em uma versão antiga daquele formulário. Desta forma é possível acessar informações deste campo, mesmo que ele já não esteja mais disponível para uso.

Formulário Utilizado.

Vamos entender como formulário utilizado aquele formulário que já está disponível na plataforma, seja na tela GED ( Documentos ) , ou o formulário utilizado em um determinado processo.

Ao preencher dados em um formulário já desenvolvido no fluig os registros serão armazenados em uma tabela chamada DOCUMENTO.

Alterando a versão de um formulário no fluig.

Verifique o disclaimer.

A plataforma não tem uma função nativa para ajustar formulários, portanto o recomendado é testar bastante antes de enviar a versão para o servidor de produção.

Quando identificamos falha em um formulário do fluig, podemos avaliar se é falha na estrutura dos campos inputs, ou se são falhas de layout / javascript ou css.

É possível enviar um ajuste de formulário para o fluig mantendo a versão atual, porém o sistema fluig compara a versão que está sendo enviada para o sistema com a versão vigente da plataforma para aquele formulário, caso haja alguma diferença nos campos inputs (nome de inputs alterados ou inclusos) o sistema rejeita o envio do formulário mantendo a mesma versão, sendo possível então enviar apenas criando uma nova versão.

Quando os registros são salvos em formulários (também se aplica a processos), ele salva em modelo de histórico, o que significa que cada alteração ou inclusão de dados possui uma versão específica e esta versão é exibida em tela, ou seja, mesmo que você envia uma versão de um formulário novo ele não se aplicará aos formulários já registrados.

Sabendo de tudo isso podemos entender que cada formulário utilizado no fluig utiliza uma estrutura de dados previamente registradas e controladas por uma versão.

Havendo a necessidade de ajustar um formulário você pode realizar o procedimento indicado abaixo. Lembre-se analise em seu ambiente de testes.

A primeira ação a ser feita é ajustar o formulário e enviar a versão corrigida. Após realizar este procedimento você irá localizar os documentos que você precisa ajustar, para isso identifique o código do formulário em seu sistema.

Agora precisamos localizar o ID do formulário que desenvolvemos e enviamos para o ambiente fluig, a forma mais fácil é acessar a pasta que enviamos o formulário e localizar o ID do mesmo.

Para localizar, pode ser feito nas propriedades do formulário disponíveis na aba DOCUMENTO e conferir o ID do formulário, ou pode buscar também pela consulta SQL Abaixo.

SELECT DS_PRINCIPAL_DOCUMENTO, COD_EMPRESA, NR_DOCUMENTO, *
FROM DOCUMENTO
WHERE
         DOCUMENTO.COD_EMPRESA=1
     AND DOCUMENTO.DS_PRINCIPAL_DOCUMENTO LIKE '%Teste%'
     AND TP_DOCUMENTO=4

Após localizar o código do documento você pode conferir na tabela FICHARIO qual é a última versão deste documento que está estruturada.

SELECT * 
FROM FICHARIO 
WHERE 
           COD_EMPRESA = 1 
  AND NRO_DOCUMENTO='60'
ORDER BY NRO_VERSAO DESC

A consulta SQL acima irá listar a estrutura principal do formulário, com o resultado localizamos todas as versões existentes do formulário, iremos obter aquela que desejamos ajustar, geralmente a última versão.

Imagina que temos um formulário na versão 1 e queremos ajustar ele para a versão 2, uma das formas é ajustando o campo NUM_VERS_PROPRIED , da tabela DOCUMENTO ajustando para a versão desejada.

No exemplo abaixo estamos ajustando um registro de FORMULÁRIO_UTILIZADO de código 1234, onde o FORMULARIO_DESENVOLVIDO tem o código 60.

   SELECT    * 
FROM DOCUMENTO 
WHERE 
   NR_DOCUMENTO = '1234'
AND NUM_DOCTO_PROPRIED=60
AND VERSAO_ATIVA=1

Referencias

TOTVS FLUIG. Tabelas Pai x Filho. Disponível em: < https://tdn.totvs.com/pages/viewpage.action?pageId=75270483 > : Acessado em 23 Nov. 2021.

Palavras Chave

Como funciona um formulário no fluig

Quais as tabelas de formulário do fluig

Como modificar uma versão de formulário no fluig.

Capturar erros em webservices de Fórmulas Visuais.

Ao criar datasets é comum que gerem erros, pois podem acontecer situações de gerar exceções como por exemplo falhas de comunicação com o webservice, autenticação, entre outros.

Quando há a comunicação com fórmulas visuais o erro pode ser customizado, que é no momento onde geramos uma atividade de excessão.

Após diversos testes identifiquei que o código abaixo retorna a estrutura da Tag DataSetXML

   var result = authService.execute(codcoligada, idformulavisual, contexto, '',  xml, '');    		

Quando gera-se uma exceção em fórmula visual o conteúdo da mensagem é explícito na tag ErrorMessage

Para entender o funcionamento foi feita a seguinte análise, veja o código abaixo.

 

var servico = ServiceManager.getServiceInstance(NOME_SERVICO);
		            var serviceHelper = servico.getBean();
		            var instancia = servico.instantiate(CAMINHO_SERVICO);
		            var ws = instancia.getRMIwsFormulaVisual();
		            var instanciaError = instancia.getRMIwsFormulaVisual();
		            
		            
		            var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsFormulaVisual", 'mestre', 'senha');
		            
		            var xml = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/"> ' +
		            '<soapenv:Header/> ' +
		            '<soapenv:Body> ' +
		            '   <tot:Execute> ' +
		            '      <!--Optional:--> ' +
		            '      <tot:codColigada>1</tot:codColigada> ' +
		            '      <!--Optional:--> ' +
		            '      <tot:idFormula>9</tot:idFormula> ' +
		            '      <!--Optional:--> ' +
		            '      <tot:context>codusuario="mestre";codcoligada=1</tot:context> ' +
		            '   </tot:Execute> ' +
		           ' </soapenv:Body>' +
		         ' </soapenv:Envelope> ' ;
		            
		            
		            
		            var contexto = 'CODCOILIGADA=1;CODFILIAL=1;CODUSUARIO=Usuario;CODSISTEMA=G';
		            var result = authService.execute(codcoligada, idformulavisual, contexto, '',  xml, '');    	

Instanciamos uma variável chamada authService, nesta variável definimos qual objeto iremos acessar, neste caso é o ‘com.totvs.IwsFormulaVisual’.

 var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsFormulaVisual", 'mestre', 'senha');

Após isso, foi observado dentro do Eclipse todos os métodos que compõem esta Interface.

Logo em seguida chamamos o método result = authService.execute , este método retorna um objeto do tipo ConWSFormulaVisualResult .

Ao analisar a classe ConWSFormulaVisualResult verifiquei que existe um método do tipo getErrorType() e getErrorMessage() , ambas retornam objeto do tipo java.xml.bind.JAXBElement<String>

Por fim, em um contexto que a fórmula visual gera uma exceção, podemos perceber os valores destas duas tags abaixo: 

O método getValue é o gerado pela classe JAXBElement, que pode ser visto neste link.

log.info('getErrorMessage() ' + result.getErrorMessage().getValue());
//Gera o resultado 
//ERRO - Fórmula Visual: 'TESTE FORMULA VISUAL'.



log.info('getErrorMessage() ' + result.getErrorType().getValue());
//RM.Lib.Workflow.RMSWorkflowException




Referências

https://docs.oracle.com/javaee/7/api/javax/xml/bind/JAXBElement.html

Validar data no fluig em datasets e eventos de processos e formulários.

Uma forma básica para validar se uma variável é do tipo DATA é tentar converter esta variável utilizando o DateTimeFormatter e LocalDate do Java.

Segue abaixo um exemplo de erro ao tentar converter data no fluig e em seguida um exemplo de sucesso na verificação da data.

Exemplo – Erro.
Exemplo – sucesso.

/**
*  Exemplo de uso
*  if(isValidDate("dd/MM/yyyy", "Data Nascimento", "18/12/1991"))
*
**/
function isValidDate(date_format, field_name, date){	
	try{
	  var df = java.time.format.DateTimeFormatter.ofPattern(date_format);
	  var convert = java.time.LocalDate.parse(date, df);
	}catch(e){
		throw "erro ao validar o campo " + field_name + ". Detalhes - " + e;
	}
	return true;
}
Enviando e-mail pelo Fluig.

Objetivo

Iremos construir um template que seja possível enviar lista de dados para melhor otimizar nosso template e código.

O artigo oficial de envio de e-mail pelo Fluig está disponível neste link, portanto o que irei destacar abaixo foram resultados de observações e estudos.

O objetivo deste estudo é entender quais tecnologias o Fluig utiliza para entregar a solução de E-mail e do Template de E-MAIL e estudar uma forma mais limpa de construir os templates.

Utilize estas informações para agregar em seus estudos, porém sempre que houver dúvidas consulte o suporte e documentação oficial do Fluig.

Disclaimer: as ações são responsabilidades dos usuários.

Caso seu fluig não dispare os e-mails consulte a documentação: fluig não dispara e-mail.

Freemarker

O freemarker é uma tecnologia em java para construção de templates, é bem utilizado nas construções de widgets.

Fazer um bom uso do FreeMarker com certeza gera ganhos em produtividade e manutenção de códigos.

Recomendo a leitura neste link: https://freemarker.apache.org/docs/ref_directive_list.html

Enviar o E-mail pelo Fluig

Para enviar o E-mail pelo Fluig é necessário utilizar o recurso onNotify, confira de forma detalhada neste link: https://tdn.totvs.com/display/public/fluig/Templates+de+e-mail+personalizado

Resultado Final

Ao executar o passo a passo abaixo você deverá ter um resultado semelhante a este:


Passo a Passo

Evento de Processo

Crie um processo e acrescente o código abaixo em um evento de processo, como por exemplo: o BeforeStateEntry

Veja abaixo que estamos utilizando a variável UFS e a variável CarrosList, desta forma enviamos a lista de objetos que será lida pelo FreeMarker.

try{
	    //Monta mapa com parâmetros do template
	    var parametros = new java.util.HashMap();
	    
	  
	    
	    //Veja mais detalhes em: 
	    parametros.put("NOME_USUARIO", "UsuarioFluig");
	    parametros.put("CODIGO_USUARIO", "UsuarioFluig");
	    parametros.put("calculo", 1+1);
	    parametros.put("SERVER_URL",    fluigAPI.getPageService().getServerURL()  ) ;
	    
//E-mail
	    parametros.put("subject", "Assunto do E-mail");
	     
	     var ufs = new java.util.ArrayList();
	     ufs.add("GO");
	     ufs.add("SP");
	     ufs.add("AC");
	     
	     
	     var carrosList = new java.util.ArrayList();
	     
	     var carro = new java.util.HashMap();
		   
	     carro.put("modelo", "GOL");
	     carro.put("cor", "BRANCO");
	     carro.put("motor", "1.0");
	     
	     carrosList.add(carro);
	     
	     var carro = new java.util.HashMap();
	     
	     carro.put("modelo", "Civic");
	     carro.put("cor", "cinza");
	     carro.put("motor", "5.0");
	     
	     carrosList.add(carro);
	     
	     var carro = new java.util.HashMap();
	     
	     carro.put("modelo", "PALIO");
	     carro.put("cor", "verde");
	     carro.put("motor", "1.5");
	     
	     carrosList.add(carro);
	     
	     var carro = new java.util.HashMap();
	     
	      
	    
	    parametros.put("estados", ufs);
	    parametros.put("carros", carrosList);
	 
	    //Monta lista de destinatários
	   
	    
	    var destinatarios = new java.util.ArrayList();
	    
	    
	    destinatarios.add("[email protected]");
	    
	    	//Envia e-mail
	    	notifier.notify("UsuarioFluig", "template_teste", parametros, destinatarios, "text/html");
	    
	     
	} catch(e){
		throw e;
	    log.info(e);
	}

Após criar o processo crie um novo arquivo html chamado template_teste.html e salve ele em seu computador, em seguida acesse o fluig > Painel de Controle > Templates de E-mail e crie um template importando este arquivo html.

HTML – Template de E-mail Fluig

Veja que as variáveis são passadas dentro deste bloco ${estado} , onde neste exemplo o estado é o nome do meu objeto no evento de processo, que foi recebido na variável de parametros.

Eu recomendo que teste utilizar da seguinte forma, ${estado!”}, pois assim a variável estado se não existir irá imprimir um valor em branco.

Este tipo de situação acontece, onde a variável pode não ter sido gerada corretamente, principalmente em elementos do tipo lista e geração dinâmica.

Utilizar este modelo onde substitui a inexistência da variável por um valor em branco pode suprimir erros, pois no primeiro exemplo, caso a variável estado não exista poderá haver erros na geração e disparo do e-mail.



Este é um exemplo de envio de e-mail  <br/> <br/>

A soma de 1 + 1 é ${calculo}  <br/> <br/>

A url do fluig é: <a href="${SERVER_URL!''}"  <br/> <br/>



<html>
	<#if estados??> 
	<tr>
		<td>UF ( Estado )</td>
	</tr>

	<#list estados as estado>
	<tr>		
       <td>
		  ${estado!''}
	    <td>
	</tr>
		</#list>
	</#if>
</html>

-------------------------------------------

LISTA DE CARROS

-------------------------------------------

<#if carros??> 
<html>
	<tr>
		<td>Marca</td>
		<td>Cor</td>
		<td>Motor</td>
	</tr>
	<#list carros as carro>
	<tr>
		<td>${carro.modelo!''}</td>
		<td>${carro.cor!''}</td>
		<td>${carro.motor!''}</td>
	</tr>
	</#list>
	</tr>
</html>
</#if>

Referências

Acessos em: 10 de ago. 2021.

https://freemarker.apache.org/docs/ref_directive_list.html
https://api.fluig.com/old/sdk/com/fluig/sdk/service/PageService.html
https://fluiggers.com.br/t/como-pegar-url-do-ambiente-fluig-que-estou/157/7

Pai x Filho Fluig – Dicas de Uso.

Como somar números dentro do pai x filho do fluig

Exemplo de como somar itens dentro da tabela pai x filho do fluig.


/**
 * 
 * Criar três campos do tipo input chamados n1, n2 e total em uma tabela pai x filho
 * Opção 01 - Criar um botão para calcular e chamar o evento onclick='calcular(this);'
 * Opção 02 - Nos campos n1 e n2 adicionar um evento onchange='calcular(this);'
 */



function calcular(obj){
    var util = new Util();
    var i = util.IndicePaiFilho(obj);

    var n1 = util.ItensPaiFilho("input","n1", i).val();
    var n2 = util.ItensPaiFilho("input","n2", i).val();

    util.ItensPaiFilho("input","total", i).val(n1 + n2);


}



//Classe Utilidade
class Util {


     // Obter os campos pai x filho do formulário.
     ItensFormulario(field_type,field_name){
        return $(`${field_type}[name='${field_name}']`) ;
      }

    //Envia o campo e ele retorna o indice do campo.
    IndicePaiFilho(obj){
     return  $(obj).attr('name').split("___")[1] ;
    
    }
    
    // Obter os campos pai x filho do formulário.
    ItensPaiFilho(field_type,field_name,field_index){
      return $(`${field_type}[name='${field_name}___${field_index}']`) ;
    }
    
    
    
    }

Como manipular um elemento do tipo select dentro do pai x filho do fluig com javascript?



 window.onload = function(){
 
 
    //varrer todo campo com o ID abaixo
   select=$("select[id*='sel_campo___'] ");

   //Quebrar todos os campos em um array.
   select.toArray().forEach((k,v)=>{
       
     //imprimir o objeto K
    console.log(k);

    //analisar o valor do campo.
    if(k.value=='sim'){  
       //para cada campo analisar a opção do campo select.   
       for(i=0;i<k.options.length;i++){
        
       //imprimir o objeto K que é o principal
       console.log(k[i]); 

       // obter o Index da tabela pai x filho daquele elemento
       var i = $(k).attr('id').split("___")[1];
       
       // acessar outro campo qualquer do campo pai x filho
       console.log($("input[name="campoQualquer___" + i).val() ); 

       
        if(k[i].value!='conforme'){
         k[i].disabled='disabled';
    }
   }
     }else if(k.value=='nap'){     
   for(i=0;i<k.options.length;i++){
      console.log(k[i]); 
      if(k[i].value!='tratado'){
         k[i].disabled='disabled'       
     }
   }
 }
 

 });
 }
 }
Campo Pai X Filho do fluig não carrega os valores nos itens.

Ao tentar carregar na tela os resultados do valor de um campo pai x filho de alguma forma os campos não são preenchidos. Isso pode ser algum erro na estrutura do seu HTML.

O erro acontece quando você salva o formulário e tenta abri-lo, o sistema não preenche todos os campos INPUTS para a apresentação.

Internamente o fluig armazena as informações, mas durante o carregamento da tela ele não gera os IDS dos campos, por isso ele não acha as referências para gerar a informação na tela, resultando assim em um campo vazio.

Este erro impacta na geração do atributo ID dos campos subsequentes, ocasionando em falhas para acesso do atributo do objeto tanto em codificações javascript ou codificações nos eventos de processo e formulário.

Para corrigir basta conferir todos os campos se eles tem a tag de fechamento.

Em meus testes, outro campo que foi fator para ocasionar inconsistências no carregamento do pai x filho foi o uso de aspas simples no atributo name do campo html.

Ao utilizar aspas simples no HTML gerou um erro ao carregar os dados no formulário, ao alterar para aspas duplas deu certo.

Não consegui localizar o fator, portanto não sei dizer se é um erro do meu arquivo HTML ou se é da plataforma, de todo caso vale a análise.

<input type="text" name="campo1" class="form-control"
 readonly="readonly" >

<input type="text" name="campo1" class="form-control"
 readonly="readonly" >

<textarea name='campo3'></textarea>

antes
<input name='campo' >

depois
<input name="campo" />

Palavras Chave

O campo fluig não carrega as telas do formulário

Os itens do pai x filho não carregam os dados do item

Consultar id do formulário na tela do ECM ou na tela de Processos por javascript.

Consulta

O objetivo deste documento é auxiliar na manipulação dos elementos da página do fluig para buscar informações do HTML e reforçar o estudo de HTML e javascript.

Para obter os dados do formulário que estão associados em um formulário do ECM, ou em um formulário da tela de processos basta usar o código abaixo.

O teste pode ser realizado copiando o código abaixo e na barra do navegador escrever javascript: e em seguida colar o código, ou colando o código no console do navegador.

Obs: o processo não pode estar na atividade início, no ged o formulário deve estar aberto.

var dados="";
 ecm = 'ecm-documentview-docframe';
 wcm = 'workflowView-cardViewer';
 el = (e)=>document.getElementById(e);
 (el(ecm)==null ?  el(wcm):  el(ecm)).src
 .split("?")[1]
 .split("&")
 .forEach((k,v)=>{
   dados+= k + "\n" 
 }); 
 alert(dados);
Alterar texto de complemento de atividade de decisão

Ao utilizar uma atividade de decisão, o fluig gera um complemento.

O Complemento gerado é baseado em uma nomenclatura específica da tarefa, que pode ser por exemplo: Tarefa automática: Decisão tomada conforme condições 1 Atividade Detino: Aprovação do Diretor.

A numeração da condição vai depender de qual foi o fluxo escolhido e não fica amigável.

Uma alternativa é utilizar o hAPI.setTaskComments para criar um comentário customizado na tarefa, logo após a execução da atividade de decisão.

Veja no exemplo abaixo, temos o seguinte fluxo:

fluxo – software: eclipse / fluig

Neste exemplo vemos uma atividade de decisão que direciona o fluxo para duas possíveis atividades.

Vamos criar um evento de processo chamado afterTaskComplete ( veja o fluxograma dos eventos de processo ) e em seguida executar o código toda vez que uma tarefa é completada.

No código iremos validar qual é o ID da próxima atividade. Se considerarmos o fluxo de exemplo a atividade “Aprovação do Diretor” tem código 9, enquanto que a atividade “Aprovação do Gestor” tem código 15.

O teste gerou o resultado abaixo:

software : eclipse / fluig
function afterTaskComplete(colleagueId,nextSequenceId,userList){
 
 
 /*
  * 
  * Variáveis principais
  * 
  * */
 
 var num_processo = getValue ("WKNumProces");     
     var usuario = getValue ("WKUser");     
     //var sequenceId = getValue("WKNumState");
     
     
   
     
     //  Atividade Aprovado pela diretoria
 if(nextSequenceId==9){     
 hAPI.setTaskComments(usuario, num_processo, 0, "Aguardando aprovação do diretor."); 
 } 
 
 
 
 //  Atividade Aprovado pela diretoria
 if(nextSequenceId==15){     
 hAPI.setTaskComments(usuario, processId, 0, "Aguardando aprovação do gerente."); 
 }
 
 
 
 }

Referências

https://tdn.totvs.com/display/public/fluig/hAPI

O Fluig não está disparando e-mails.

Um dos recursos mais importantes na plataforma é a gestão da comunicação, seja as notificações, complementos dos processos ou até mesmo os envios de e-mails.

Poderá haver situações em que o seu fluig não esteja enviando e-mails, isso pode ser um erro de configuração no seu sistema, vou deixar abaixo uma lista de possibilidades para você conferir.

Aproveite e participe de nosso grupo de WhatsApp, desta forma você poderá tirar dúvidas e compartilhar experiências em tempo real. Deixe seu e-mail e receba notificações a cada momento que eu postar um conteúdo novo.

Configurações principais.

Os primeiros passos é conferir as configurações principais. Veja dentro do seu painel do WCMADMIN se as opções estão ativas.

Para acessar o WCMADMIN ( Painel de configurações da plataforma) é preciso entrar pelo link: www.meufluig.com/wcmadmin e entrar com o usuário wcmadmin e a senha informada no momento da instalação da plataforma.

O caminho pode mudar, de acordo com sua versão, mas nas versões mais atualizadas são:

  • WCMADMIN > Configurações do Sistema > Parâmetros da Plataforma > Configurações de E-mail.
  • WCMADMIN > Empresas > Email > Habilitar Envio de E-mail.

Durante a configuração é importante realizar os devidos testes. É preciso ter certeza que você inseriu o usuário e senha corretamente, para isso conecte em seu provedor de e-mail e busque no suporte técnico quais as configurações, para que você efetue o registro com seu e-mail corporativo.

Configurações de SMTP do Gmail.

Este é um exemplo das configurações para envio de e-mail utilizando o gmail. Veja mais neste link.

No geral, as configurações são bem parecidas, mas é bem importante estar atento, pois qualquer diferença das configurações do seu provedor com o que for informado no fluig poderá acarretar em um problema e seu fluig deixar de enviar e-mail.

Uma observação é que alguns provedores de e-mail ( O Gmail se inclui nesta lista ) possuem configurações específicas que devem ser realizadas antes de utilizar este recurso. Você precisa verificar dentro do seu provedor de e-mail como ativar o envio de SMTP da sua caixa de e-mail.

No caso do GMAIL em específico eu recomendo a leitura destes dois artigos: Desabilitar apps menos seguros e ler mensagens em outros clientes de e-mail utilizando o pop. Este segundo artigo é somente para entendimento.

Servidor de envio de e-mails (SMTP)smtp.gmail.com
Requer SSL: Sim
Requer TLS: Sim (se disponível)
Requer autenticação: Sim
Porta para SSL: 465
Porta para TLS/STARTTLS: 587
Nome completo ou Nome de exibiçãoSeu nome
Nome da conta, Nome do usuário ou Endereço de e-mailSeu endereço de e-mail completo
SenhaSua senha do Gmail
Tabela de configurações SMTP disponível em suporte.google.com

Verifique o porquê o seu fluig não dispara os e-mails através dos logs do fluig.

Mesmo se após toda configuração do fluig e sua plataforma não dispara e-mails, é recomendado que analise os logs, pois lá será a melhor fonte de informação das parametrizações incompletas.

Os erros gerados na plataforma são registrados no arquivos de log. Recomendo a leitura do post abaixo.

Um exemplo de erro é quando a senha está inválida, o fluig consegue autenticar no provedor de e-mail, mas tem o retorno de senha inválido. Neste caso o erro fica explicito no arquivo de log.

como ler logs no fluig

Conclusão.

Neste post você viu alguns possíveis problemas para envios de e-mail no fluig. Caso tenha dúvidas participe de nossa comunidade no WhatsApp, ou deixe nos comentários desta página.

Kit Fluig – Um guia para desenvolvimento na plataforma fluig.

Seja bem vindo à página Kit Fluig, nesta página irei documentar os principais assuntos para te auxiliar no desenvolvimento de soluções na plataforma fluig, direcionando a páginas deste blog, ou da comunidade como uma forma alternativa à documentação oficial.

Introdução

Este é um guia, que será atualizado constantemente com as principais documentações / recursos para a plataforma fluig.

Veja aqui uma sugestão de boas práticas, para aplicar na nomenclatura dos processos, formulários e datasets.

Repositórios GIT da Comunidade

Verifique nesta seção os repositórios da comunidade.

https://github.com/willianmascimiano/fluig

https://github.com/tiagotsukahara/fluig-docsp

Primeiros passos

Datasets

Processos

WCM e Widgets

Formulários