Pesquisa por:
Os problemas ao salvar processos no Fluig

Geralmente acontecem vários problemas ao tentar salvar um processo, geralmente o erro está associado a erros no desenho do BPM ou da definição das atribuições do Fluig.

A forma mais prática de analisar os erros do BPM do fluig é observar a aba Problems, do Eclipse. Entretanto poderá haver casos que o sistema não apresenta o erro, mas o processo fica acusando falha e não permite que seja exportado para o servidor.

Problems – Eclipse Fluig
Erro em processos do Fluig.

O que deve ser feito é verificar todas as atividades e conferir os mecanismos de atribuições de cada atividade e também do processo, principalmente se o processo foi originado da importação de outro servidor.

Após fazer esta verificação, confira também se o formulário está vinculado ao processo e se todas as setas do processo estão conectadas corretamente nas atividades do processo.

Resumo

  • Conferir todas as setas e verificar se as atividades estão bem conectadas.
  • Conferir todas as atividades e seus respectivos mecanismos de atribuição.
  • Conferir o mecanismo de atribuição do processo.
treinamento-fluig
Cursos e treinamentos para o software Fluig

A empresa TOTVS disponibiliza, em seus portais, o acesso a cursos online de diferentes temas, que abordam da instalação até a implantação de novos processos no Fluig que podem ser conferidos neste link: https://fluig.eadbox.com/

O curso gratuito apresentado é bom te apresentará uma visão geral da plataforma, portanto nada melhor que aplicar na prática e usar no dia a dia.

Entre em contato e contrate uma consultoria e treinamentos através de uma consultoria independente.

Participe de nosso grupo de whatsapp para Fluig.

Acessar WebService TOTVS RM pelo JAVA.

Neste tutorial vou demonstrar como acessar os webservices do TOTVS RM utilizando a linguagem de programação Java.

Entre em contato e faça um orçamento.

Após configurar seu ambiente de desenvolvimento crie um novo projeto java.

Em seguida, na pasta do seu projeto clique com o botão direito do mouse e em seguida vá em NEW > Other > Web Service Client.

criar novo > outro
web service client

Nesta janela inclua o endereço do seu webservice. Exemplo: http://localhost:8054/wsConsultaSQL/MEX?wsdl

Caso tenha dificuldades para entendimento desta URL, confira este artigo: Como configurar o webservice pelo RM Host ( Recomendado )

Configurar webservice.

Após o preenchimento clique em Finish.

Erros no Eclipse

Em meu ambiente aconteceram alguns erros, entre eles cito os dois abaixo:

The package javax.xml.namespace is accessible from more than one module: <unnamed>, java.xml

The type javax.xml.rpc.ServiceException cannot be resolved. It is indirectly referenced from required .class files

Para os erros citados acima a solução aplicada no meu ambiente foi remover o arquivo javaxrpc.jar e importar este: Javaxrpc-api-1.1

As etapas para este processo são: Clicar com botão direito do mouse nas propriedades do seu projeto, vá em java build path, remova o javaxrpc.jar e após baixar o arquivo indicado acima vá em add external Jar e importe o arquivo JAR que você baixou do repositório Maven.

wsConsSQL

Para realizar consultas SQL é necessário utilizar o webservice exclusivo para esta finalidade. Ele pode ser encontrado na sua url, conforme exemplo: http://localhost:8054/wsConsultaSQL/MEX?wsdl

Realize a primeira etapa, criando o webservice Client utilizando este endereço.

Em seguida, crie um novo arquivo java, chamado Principal, e inclua o seguinte código.

Atenção para dois itens, a variável endpoint deverá ser adaptada conforme seu ambiente foi configurado e o método realizarConsultaSQL recebe como parâmetro: sqlStub.realizarConsultaSQL(Código da Consulta SQL no RM, Código da Coligada de onde a Consulta foi Criada, Letra do Sistema onde a consulta foi criada, Parâmetros);

package br.eti.willian;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import com.totvs.www.RM_IRMSServerStub;
import com.totvs.www.RM_IwsConsultaSQLStub;

public class Principal {

	public static void main(String[] args) {
		
		String xml="";
		try {
	    	URL endpoint = new URL("http://localhost:8054/wsConsultaSQL/IwsConsultaSQL/");
	    	
	    			
	    	        RM_IRMSServerStub r = new RM_IRMSServerStub();      	        
	    	        
	    	        RM_IwsConsultaSQLStub sqlStub = new RM_IwsConsultaSQLStub(endpoint, r._getService());
	    	       sqlStub.setUsername("usuarioDoRm");
	    	       sqlStub.setPassword("senhaDoRm");
	    	        
			   xml = sqlStub.realizarConsultaSQL("teste", 1, "T", "");
			 
			
		} catch (RemoteException | MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		System.out.println(xml);
		
	}
}

Veja o tópico Conclusão deste artigo.

RMDataServer

Neste tópico será demonstrado como utilizar o RMDataServer implementado no Java.

Para realizar a leitura do DataServer com java é necessário utilizar o webservice exclusivo para esta finalidade. Ele pode ser encontrado na sua url, conforme exemplo: http://localhost:8054/wsDataServer/MEX?wsdl

Ajuste a variável endpoint, conforme seu endereço.

package br.eti.willian;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import com.totvs.www.RM_IRMSServerStub;
import com.totvs.www.RM_IwsDataServerStub;





public class Principal {

	public static void main(String[] args) {
		
		String xml = "";
		URL endpoint;
		try {
			endpoint = new URL("http://localhost:8054/wsDataServer/IwsDataServer");
			RM_IRMSServerStub r = new RM_IRMSServerStub();      	        
	       
			
			RM_IwsDataServerStub dataServerStub = new RM_IwsDataServerStub(endpoint, r._getService());
			dataServerStub.setUsername("usuarioDoRM");
			dataServerStub.setPassword("senhaDoRM");
			
			xml = dataServerStub.readView("MovTmvData", "TTMV.CODCOLIGADA=1", "CODCOLIGADA=1;CODSISTEMA=T");
		
			System.out.println(xml);
			
		} catch (MalformedURLException | RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	
        
       
		
		
		
	}
}

Conclusão

O TOTVS RM tem evoluído nas integrações REST, entretanto não consigo dizer se todos os recursos já são homologados neste método. O objetivo deste documento é demonstrar de forma prática como executar as rotinas de webservices do TOTVS RM através da linguagem de programação java e utilizando os webservices em XML.

Após concluir a integração com o RM você perceberá que o retorno das funções são registros, do tipo string, que contém o conteúdo em XML.

Caberá agora a você buscar meios de Converter este XML em um Objeto java e em seguida continuar com seu projeto.

Obrigado.

Entre em contato e faça um orçamento.

Explorer para Fluig – Pesquisador genérico de dados de processos no Fluig.

Não é novidade que o Fluig é uma ferramenta de bpm poderosa. Nos permite criar diversas soluções em um curto período de tempo.

Entretanto, em alguns momentos a abstração gerada pelo fluig nos coloca muitos desafios, e você com certeza irá se questionar várias coisas, uma delas por exemplo será: Como buscar os dados dos meus processos no Fluig?

Como buscar os dados dos seus processos no Fluig?

Obs: a solução abaixo ainda não realiza pesquisas na widget, porém será resolvido em breve. Também sera adicionados mais recursos ao formulário de configuração para facilitar esta etapa.

Recentemente tive contato com um profissional de processos e conversamos sobre um problema: a dificuldade de buscar as informações que são geradas nos formulários e processos do sistema Fluig.

A partir deste problema foi idealizada uma solução. O que proponho abaixo foi chamado de Pesquisador Fluig.

A ideia é principal é fornecer acesso aos dados que forem inseridos no Fluig de forma mais prática e totalmente configurável e adaptável a qualquer ambiente.

Como instalar o Pesquisador Fluig

Abaixo o passo a passo de como instalar e utilizar o Pesquisador Fluig.

Acesse esta página do GITHUB para ter acesso ao código fonte e seguir o passo a passo abaixo.

O primeiro passo é exportar exportar o formulário

Acessar a pasta forms/ e exportar o formulário ConfiguraPesquisador . Durante a primeira exportação será necessário definir o dataset do formuário com o nome DSConfiguraPesquisador

O segundo passo é exportar o dataset DSConfiguraPesquisadorItem

Acessar a pasta datasets/ e exportar o dataset DSConfiguraPesquisadorItem

Este dataset será o responsável por buscar a lista de itens definidas no Formulário e em seguida carregar de forma dinâmica na Widget.

O terceiro passo é exportar a widget.

Exporte a widget chamada Pesquisador

O quarto passo é configurar o Pesquisador

Para configurar o Pesquisador é necessário abrir o formulário exportado no passo 1, e inserir um novo registro de formulário.

Em nome do dataset informe o nome do dataset que quer configurar para aparecer no Pesquisador e em seguida adicione uma descrição para este dataset ( pode ser o nome do processo )

Depois, no botão ‘Adicionar Filho’ insira novas linhas, estas linhas serão os campos do dataset que deverão aparecer na tabela da widget.

Após inserir estas informações clique em salvar.

O quinto passo é configurar o pesquisador

Após exportar o pesquisador para o fluig , acrescente o widget em uma página de preferência e consulte como será gerado.

Escolha na lista de opções o processo que será consultado, em seguida a datatable será formatada conforme desejado.

Palavras Chave

Como consultar meus processos no fluig
Como pesquisar meus processos no fluig
Como pesquisar meus datasets no fluig

Referências

Como habilitar o campo ZOOM na Widget – https://forum.fluig.com/686-como-criar-um-zoom-e-um-select-em-um-widget

Criando e configurando o recurso filter na widget – https://style.fluig.com/miscellaneous.html#filter

Dataset Pai X Filho – “O código do dataset responsável por listar os dados do ‘pai x filho’ é o código padrão da TOTVS e foi gerado através do acelerador de código disponível no eclipse (Snippets > Dataset > Dataset consulta pai-filho)

Demais consultas nas documentações do Fluig para criar a solução.

Como atualizar o script de processos dentro do Fluig?

O Fluig permite criar processos e criar condicionais e tratativas utilizando scripts.

Em determinados momentos você poderá se deparar com algum processo que por vezes está sendo executados sobre uma versão de script que não está completamente correta – contendo bugs – e inviabilizando a execução correta do processo.

A primeira atitude a ser tomada é realizar o ajuste do script e em seguida atualizar o processo. Esta ação irá gerar uma nova versão de processo, entretanto os processos antigos estarão sendo executados na versão antiga. Será necessário então converter o processo utilizando esta ferramenta para a nova versão.

Não deu certo?

Se por algum motivo você não conseguir realizar a conversão do processo, existe uma outra possibilidade que poderá te auxiliar, que é editar diretamente o script no banco de dados.

Os passos abaixo deverão ser realizados somente em ambiente de testes. O artigo tem propósito didático, as ações decorrentes das alterações são de inteira responsabilidade do usuário.

Neste exemplo de testes, temos um processo simples, apenas um início, uma atividade e um fim.

Para este processo, foi criado um script do tipo beforeStateEntry que verifica se o resultado de 1!==2 . Esta afirmação é verdadeira, portanto o script irá executar uma função apenas por propósitos didáticos, com objetivo de travar o processo.

O resultado desta execução será esta mensagem.

Para contornar este problema pode ser feito um teste alterando o script no campo DSL_EVENT da tabela EVENT_PROCES e observando o resultado.

Antes da alteração.

Após alteração, observe que a linha 3 foi alterada, permitindo a continuação do processo.

Palavras chave

Como alterar o script de uma versão do processo.

Alterar o script do fluig de uma versão do processo.

Possíveis erros na atualização do Fluig 1.7 (Lake)

A atualização do Fluig 1.7 pode trazer alguns erros. Listarei eles abaixo para facilitar na solução do problema.

Deixe / consulte os comentários para erros não listados aqui.

Após atualizar para o 1.7 o Fluig parou de enviar notificações.

O fluig possui 3 serviços, são eles o Fluig, Fluig_realtime, fluig_indexer.

Para o correto funcionamento do Fluig é necessário que estes três serviços esteja funcionando. Durante a instalação pode ser que algum destes serviços não seja recriado.

Em um ambiente de testes simule executar o Fluig com o Fluig_Realtime ou Fluig_Indexer desabilitado e veja o comportamento.

Caso seja necessário recrie estes serviços utilizando esta documentação: https://tdn.totvs.com/pages/releaseview.action?pageId=285662306

Palavras chave

Erro ao atualizar o Fluig para a versão 1.7
O Fluig não gera notificações.

A importância da comunicação na engenharia de software.

Introdução

A comunicação é tão essencial para um projeto que se torna seu fôlego de vida. Sem uma comunicação eficiente um projeto dificilmente será bem sucedido. Acrescente a intangibilidade (do software) e terá um belo desafio. (Intangível é a qualidade de algo que não pode ser tocado).

Felizmente podemos recorrer à literatura e buscar diversas lições aprendidas estruturadas em modelos e técnicas de levantamento de requisitos, que nos ajudarão a aperfeiçoar nossas análises em busca de maior acertividade em nossos projetos.

Abaixo serão abordado alguns temas que considero importante para o sucesso em um projeto de software.

A comunicação

Fonte: pixabay.com

“Alguns autores concluem que a comunicação pode representar até 90% de um projeto”. CHAVES(2006). Podemos perceber nesta citação, do livro Gerenciamento da Comunicação em Projetos – FGV, a sua importância. No meu entendimento é a área de conhecimento do PMBOK(PMI) que é presente em todos os projetos e que seu resultado afeta diretamente todas as demais áreas de conhecimento.

Ainda de acordo com CHAVES (2016, p.18) : “A palavra comunicação tem origem latina (comunicare) que significa partilhar, dividir. É a transmissão e recepção de mensagens, entre um emissor e um receptor, com o uso de sons, signos, símbolos, escritas etc”.

Discutir ideias e convertê-las em um produto de software é um imenso desafio, quase uma arte, por isso precisamos sempre aperfeiçoar nossas habilidades de nos comunicar, para que seja possível extrair o máximo de informações precisas durante os levantamentos de requisitos e no decorrer do ciclo de vida do software.


Técnicas para levantamento de requisitos

As técnicas para levantamentos de requisitos são muito bem abordadas no capítulo 4 do livro livro Engenharia de Software (9. edição). Aqui será abordado apenas uma breve visão de cada tópico.

Entrevista

Segundo SOMMERVILLE(2011): “as entrevistas são parte da maioria dos processos de engenharia de requisitos”. A entrevista tem por objetivo entender a necessidade do cliente.

SOMMERVILLE(2011) ainda indica que os especialistas utilizam terminologias diferentes, ou seja, o vocabulário pode não ser muito bem entendido por ambas as partes. A comunicação se torna importante, pois toda dúvida deve ser sanada, assim como sugere as primeiras páginas do livro UML 2.

A entrevista vem para completar o levantamento de requisitos e muitas vezes é o único recurso que o analista tem, mas esta técnica possui falhas, como por exemplo: se não for bem conduzida a entrevista pode levar a questionamentos e respostas sem valor, também é preciso saber abordar o entrevistado e estimular que ele participe, mas nem sempre terá todas as informações que realmente precisa. As pessoas nem sempre relatam tudo o que fazem.

O ideal é utilizar a entrevista aplicando outras abordagens, como a técnica de prototipação ou construção de cenários por exemplo.

Questionário

Os questionários são utilizados geralmente quando se tem uma barreira geográfica considerável.

Com questionário é possível obter informações de forma estruturada e remota, o que minimiza os custos e tempo.

É importante que o questionário seja bem elaborado e não possua margem para a ambiguidade.

Brainstorming

Consiste em realizar um grupo de discussão de ideias, com objetivo de captar informações relevantes de forma interativa e espontânea.

Neste modelo as ideias podem surgir rapidamente, por isso é importante uma pessoa exclusiva para tomar nota.

Outra possibilidade é permitir que as pessoas anotem suas ideias e as coloquem em um quadro, assim em um momento oportuno todas estas ideias serão analisadas por todos do grupo, uma de cada vez.

Prototipação

Esta técnica geralmente é utilizada no início do projeto, no planejamento.

Consiste em criar uma forte noção da aplicação apenas com modelos de protótipos com ou sem funcionalidades, de forma rápida com objetivo de validar os requisitos. Ideal para quando não ainda não está claro o que será desenvolvido.


Modelos de processos de software.

A escolha de modelos de desenvolvimento de software está muito relacionada à complexidade do sistema a ser desenvolvido e principalmente à variação de mudanças de escopo do projeto.

Conhecer e aplicar os modelos de desenvolvimento de software são fundamentais para o sucesso do projeto, também para atingir os prazos e custos.

Um projeto de software exige uma comunicação eficiente e, sempre que possível, bem documentada, pois é uma ótima forma de validar requisitos e realizar o planejamento.

As principais etapas do desenvolvimento de um software são: Planejamento, execução, implantação e controle / manutenção.

Na fase de Planejamento é que se identifica qual será o melhor modelo a ser seguido. Abaixo apresento os principais modelos e quando usar cada um deles

Modelo Cascata

O modelo clássico. Quando se tem uma definição clara do que será desenvolvido e não houver um movimento significativo de mudanças no escopo do projeto o modelo Cascata se mostra eficiente.

Neste modelo a fase do planejamento é a mais importante, pois exige um esforço entre levantamento e validação dos requisitos, uma vez que todo projeto será executado mediante ao levantamento realizado.

Um ponto negativo é que qualquer alteração no escopo do projeto pode resultar em custos, uma vez que um requisito pode ter sido identificado tarde demais, sendo necessárias grandes mudanças no sistema.

Por isso é sempre estar atento a quaisquer sinais de alteração de escopo e a comunicação no

Modelo Incremental

Esta abordagem permite construir várias partes do sistema ao mesmo tempo, além de ser possível abordar diversas frentes de trabalho e integra-los posteriormente.

Modelo Iterativo

O modelo Iterativo é um modelo semelhante ao modelo Cascata. O que diferencia é que o desenvolvimento é feito em vários ciclos, produzindo uma nova versão em cada etapa.

Modelo Prototipação

Este modelo consiste em entregar protótipos, possibilitando acompanhar a evolução dos requisitos do projeto.

É um ótimo modelo para validar requisitos, principalmente em sistemas complexos. Entretanto os protótipos são produtos com entrega ágil que podem gerar uma alta expectativa no cliente, principalmente em protótipos interativos, uma vez que poderá ficar subentendido que o sistema já está sendo concluído, quando na verdade está ainda sendo planejado.

Conclusão

Os projetos de desenvolvimento de software, complexos ou não, exigem uma comunicação eficiente, de modo que seja possível alcançar o objetivo com maior acertividade, desta forma é possível reduzir custos e atingir prazos.

Abordar a comunicação em projetos de tecnologia – principalmente de software – pode ser um desafio e deve ser tratado com prioridade. A comunicação eficiente fará a diferença em seu projeto.

Devemos também estar bem alinhados quanto aos processos e modelos de desenvolvimento e aperfeiçoamento de software.

Na área de tecnologiaO estudo é constante.

Referências

PMI (2013) PMBOK: Um guia do conhecimento em gerenciamento de projetos. 5 ed.

SOMMERVILLE, Ian. Engenharia de Software 9.ed. Pearson 2012.

CHAVES, Lúcio et. al. Gerenciamento da comunicação em projetos. Rio de Janeiro: Editora FGV, 2006. 


JUNEJA, Prachi. Importance of communication in an Organization. Disponível em: <https://managementstudyguide.com/importance-of-communication.htm>. Acesso em: 06 junho.2018.

Anydesk – Software para acesso remoto.

Acesso Remoto

O Acesso remoto é um recurso, utilizado através de softwares, que permite conectar em outro computador por meio da internet, desta forma é possível dar manutenção em softwares em diferentes localizações geográficas.

Anydesk

O anydesk é um software de acesso remoto, comumente utilizado pelas maiores empresas de suporte a sistemas, como ERPS e profissionais de tecnologia.

Para baixar o AnyDesk acesse o link e baixe: http://anydesk.com/

Como utilizar

Após baixar o AnyDesk abra o arquivo e irá abrir uma janela.

Após abrir o sistema, no lado esquerdo, será gerado um número. Este número deve ser passado para o suporte técnico que irá acessar seu computador.

Após enviar o ID o sistema poderá solicitar uma permissão, que deverá ser aceita, a partir deste momento o operador terá total acesso no seu computador, até que você feche o aplicativo.

Fluig No Code – Desenvolver e gerenciar processos sem a necessidade de programar.
Código HTML.

A nova aposta da TOTVS com o Fluig se chama No Code. No Code é uma expressão que pode ser entendida como “não codificar”, ou “não programar”. Basicamente é permitir que qualquer usuário sem conhecimentos técnicos em programação seja capaz de criar processos e formulários sem a necessidade de codificação.

A ferramenta de Processos do FLUIG é robusta e o construtor de formulários também não deixa a desejar. Entretanto, esta já exigia uma evolução para acompanhar a responsividade, design e outras evoluções de frontend.

Estas evoluções no entanto não é novidade, se comparado com ferramentas alternativas como o KissFlow por exemplo, uma das ferramentas mais utilizadas pelas maiores empresas do mundo.

Vantagens do FLUIG NO Code

A TOTVS então iniciou o movimento e na versão 1.6.5 do FLUIG há uma prévia desta novidade, a versao beta destas evoluções da ferramentas. É simplesmente fantástico. Em meus testes pude perceber que a ferramenta é estável, traz muitas melhorias e cumpre muito bem o que promete.

Agora o construtor de formulários permite a criação de colunas, de forma que os campos fiquem lado a lado, diferentemente dos templates do editor de formulário antigo, que permitia criar apenas uma coluna e os campos ficavam na vertical. Também o visual melhorou consideravelmente, além de componentes mais atualizados.

Além do formulário parece haver um movimento para entregar no Fluig ferramentas de uso mais simplificado, como o tasks, que é semelhante ao trello.

Também tem o flow, que da mesma forma se aplicaria as evoluções do modelador de processos.

A desvantagem do FLUIG No Code

Infelizmente, há um ponto negativo que destaco, que é o custo. O que parecia ser uma evolução se tornou um produto. A partir da versão 1.7 a TOTVS removeu das plataformas, sendo habilitado apenas para aqueles clientes que o adquirirem.

Quando parecia avançar, infelizmente damos outro passo para traz. Assim como o LMS ( no meu ponto de vista um dos principais recursos do FLUIG que agregaria valor) foi descontinuado, as novidades parecem vir para somar, mas somente na mensalidade.

Acesse: https://www.totvs.com/fluig/nocode/

Referências

TOTVS Fluig No-Code

(Minutos 35:00, 44:30 a 46:00)

Atualização 12.1.28 – RM Folha de Pagamento – WebService FopFuncData

A consulta por webservice, na atualização 12.1.28 trouxe uma nova necessidade de estruturação dos cadastros dentro do RM. A não configuração deste recurso poderá trazer o seguinte erro: Usuário precisa estar vinculado com um funcionário ou à um chefe externo para ter acesso à estas informações.

Ao utilizar o SOAPUI, ou FLUIG, era necessário no sistema a criação apenas de um usuário que faria a consulta dos Funcionários e este usuário deveria ter permissão de leitura na tela de Cadastros de Funcionários.

Na versão 12.1.28 as informações do funcionário só poderão ser acessadas via webservice através de um funcionário ou Chefe externo, devendo portanto ser configurado nas seguintes telas: (Lembre-se de fazer em ambiente de testes e verificar como isso impactaria sua estrutura de organograma)

Primeira Opção:

  • Cadastrar um novo Chefe Externo: Ideal para quando você tem um usuário do sistema que não está vinculado a nenhum funcionário.
  • Preencha os dados e informe o usuário, após isso abra a tela chefes e supervisores.
  • Na lista que se abrir escolha a RAIZ que o usuário terá acesso, ou coloque na raiz principal e clique no botão ‘Novo Chefe Externo’
  • Após incluir o novo chefe o sistema irá permitir a consulta por webservice.

Segunda Opção:

  • Abrir o cadastro de Funcionários na aba de Identificação ( a tela padrão do funcionário )
  • Inserir no campo (Código do Usuário) o usuário que é utilizado para integrações.
  • Acessar a Tela Chefes e Supervisores
  • Na lista que se abrir escolha a RAIZ que o usuário terá acesso, ou coloque na raiz principal e clique no botão ‘Novo Chefe’
  • Após incluir o novo chefe o sistema irá permitir a consulta por webservice.