Eventos
Eventos do sistema
- JEX - Executar função
- Comunicação
- Social
- Registro banco dados
- Variáveis
- Sincronização
- NF-e
- PEX - Executar função
- Arquivos
- Agendamento / Temporizador
- Exceção
- Processo
- Estrutura condicional
- Estrutura de repetição
- Arquivo XML
- Arquivo JSON
- Senhas
- Eventos do sistema
- GED
- Web Service
- Marcadores
- Momento da execução
JEX - Executar função
Evento de sistema utilizado para que em determinado momento (configurado ao entrar ou sair do evento) o procedimento BPM execute uma função JEX criada no sistema.
Abaixo mais detalhes do evento:
- Descrição: Campo traz por padrão a 'descrição do tipo do evento', mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado (Ao entrar ou Ao sair).
- Função: Ao utilizar o assistente, traz a lista de todas as funções JEX criadas no sistema (Módulo de processos > JEX - Funções).
Assim que selecionada uma função, todo o script dessa função aparecerá no campo abaixo 'Chamada da função' como Somente Leitura para que o usuário verifique o seu código.
Exemplo de utilização simples
- Módulo Processos > JEX - Funções
- Clicar em 'Novo[F2]'
- Descrição 'Somar'
- E inserir na tela de código:
function somar(valor1, valor2){
return valor1 + valor2;}
Em seguida acessar o cadastro de BPM e criar um processo com duas atividades
- Atividade 1
- Atividade 2
Na atividade 1, criar dois formulários do tipo dissertativos que recebam valores inteiros:
- Campo A
- Campo B
Em seguida, na aba 'Eventos', acessar o agrupador 'JEX' e criar o evento 'Executar função'
- Descrição: JEX - Executar função
- Momento da execução: Ao sair da atividade
- Origem
- Função: Função que criamos mais cedo, 'Somar'
- Chamada da função: somar( /*CAMPO_A*/, /*CAMPO_B*/)
- Retorno
- Armazenar em: /*RESULTADO*/
Salvar o procedimento e executar o processo
Comunicação
Comunicação - Mensagem
Este evento é responsável por enviar uma notificação tanto em Estúdio quando em Portal DOX. Pode-se ser utilizado juntamente com validações do processo BPM. Abaixo mostraremos os campos do evento e em seguida um pequeno exemplo de como utilizá-lo.
Acesse a aba "Eventos", no agrupador "Comunicação".
Campos do evento:
- Descrição: campo traz por padrão a 'descrição do tipo do evento', mas permite edição.
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar na atividade; Ao sair da atividade.
- Este evento não funciona 'ao anexar'.
- Destino: define quem são os destinatários que irão receber a mensagem. Necessário configurar o USERNAME dos destinatários
- Conector: quando é mais de um destinatário, eles podem ser carregados através de um conector do tipo 'SQL' ou 'lista personalizada';
- Variável: quando o destinatário é único e está armazenado em uma variável.
- Assunto: assunto da mensagem, permite texto e/ou variável.
- Texto: conteúdo da mensagem, permite texto e variáveis.
- Origem: define se a mensagem está relacionada a um 'processo', 'tarefa', 'pedido' ou 'ideia'.
- Código da Origem: define a qual 'processo', 'tarefa', 'pedido' ou 'ideia' a mensagem será vinculada. Caso não informado, automaticamente usa o código do processo atual.
- Caso de uso: eventos do tipo Mensagem DOX podem ser utilizados em casos onde um usuário do DOX precisa ser comunicado de determinada ação da qual ele está envolvido. Por exemplo, em um processo de solicitação de compra, o usuário precisa ser comunicado caso a compra seja aprovada, quando será comprada ou então se a compra foi reprovada.
Veja o exemplo abaixo:
Faremos um processo simples, onde o usuário irá apenas informar a justificativa da mensagem e ela será enviada para um grupo de pessoas definidas em um conector do tipo "Lista personalizada".
Em conectores (Módulo Processos > Conectores), ao criar um novo, coloque o tipo como “Lista personalizada” e informe na descrição o USERNAME dos usuários para quem a mensagem será enviada. É importante que seja o username, pois este evento não envia para ID de usuário.
Em seguida crie um processo com apenas uma atividade com um formulário dissertativo para informar a justificativa/descrição da mensagem com uma variável do tipo texto vinculada.
Agora, vamos criar o evento.
No agrupador Comunicação - Mensagem, crie um novo evento ao sair.
- No campo "Destino", coloque o tipo “conector” e vincule a lista personalizada que criamos mais cedo.
- No “Assunto” coloque um assunto padrão para a mensagem.
- No “Texto”, vamos utilizar as variáveis do sistema para deixar nossa mensagem mais personalizada.
No assistente de variáveis ao lado do campo, selecione a aba “sistema”, lá estarão as variáveis do sistema, o que cada uma faz e seu valor padrão.
Utilize essas variáveis à vontade no texto da sua mensagem, assim como as variáveis que você mesmo criou no seu processo.
Basta clicar em cima duas vezes ou clicar em “OK” e eles estarão no texto.
Processo no portal:
Mensagem recebida no Dox Portal:
Mensagem recebida no DOX Estúdio:
Comunicação - SMS
Agora falaremos um pouco sobre o evento "Comunicação - SMS", para envio de mensagens para um dispositivo móvel.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar na atividade; Ao sair da atividade; Ao anexar.
- Conector - origem: conector do tipo ‘SMS’ que contém as configurações do “meio” que irá enviar as mensagens. Clique aqui para saber como configurar o conector de SMS.
- Destino: define quem são os destinatários que irão receber a mensagem em um dispositivo móvel:
- Conector: quando é mais de um destinatário, eles podem ser carregados através de um conector do tipo ‘SQL’ ou ‘lista personalizada’;
- Variável: quando o destinatário é único e está armazenado em uma variável.
- Mensagem: conteúdo da mensagem, podendo ser digitado um texto e utilizado variáveis.
- Caso de uso: eventos do tipo SMS podem ser utilizados em casos onde qualquer pessoa, seja um usuário DOX ou não, precisa ser comunicada de determinada ação da qual está envolvida.
Comunicação - E-mail
Os eventos do tipo e-mail podem ser utilizados em casos onde qualquer pessoa precisa ser comunicada de determinada ação da qual está envolvida. Ele enviará no e-mail do usuário (previamente configurado tanto remetente quanto destinatário) as informações configuradas no processo BPM, descrições, anexos, modelo de correspondência, e até destinatário de cópia.
Exemplo: Depois de uma aprovação de uma compra acima de 500, o setor do financeiro deve receber um e-mail com as informações da compra, usuário que está solicitando, valor, etc. Pensando na forma técnica de criar o BPM, depois da atividade onde é aprovado, ao sair seriam utilizados os eventos de condicional. Se a variável /*APROVACAO*/ for SIM, então o e-mail é enviado.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar na atividade; Ao sair da atividade; Ao anexar.
- Conta de Envio: conector do tipo ‘E-mail’ que contém as configurações do e-mail que irá enviar as mensagens.
- Conector: Utilizar um conector para selecionar a conta de e-mail de origem da mensagem. Ou seja, será o remetente, a conta de envio.
- Conector na variável: Utilizar um conector informado em uma variável do processo para selecionar a conta de e-mail de origem da mensagem.
- Usuário atual: Utiliza configuração de e-mail configurado no cadastro do usuário que está colaborando com o processo no momento da execução do evento.
- Filial do usuário atual: Utiliza configuração de e-mail configurado no cadastro da filial em que o usuário que está colaborando no momento da execução do evento está vinculado.
- Destino: define quem são os destinatários que irão receber as mensagens por e-mail, através de:
- Conector: quando são vários destinatários, eles podem ser carregados através de um conector do tipo ‘SQL’ ou ‘lista personalizada’;
-
- Variável: quando o destinatário é único e está armazenado em uma variável.
- CC e CCO: Pessoas que receberão o e-mail em cópia. Pode-se utilizar um conector ou variável, assim como no campo "Destino".
- Modelo de e-mail: permite utilizar um modelo de e-mail pré cadastrado/variável. Confira algumas postagens com dicas na utilização de modelos de correspondência:
- Chamar variáveis no Modelo de Correspondência
- Utilizando bloco de correspondência
- Gerando link para colaborar por e-mail
- Assunto: assunto do e-mail, permite texto e/ou variável;
- Texto: conteúdo do e-mail, permite texto e variáveis;
- Anexar: define se o e-mail irá conter anexos:
- Sem anexos: nenhum anexo será anexado;
- Todos os anexos: todos os anexos vinculados ao processo serão enviados;
- Anexos selecionados: Usado quando os anexos selecionados através de um formulário do tipo Seleção de Anexo com a variável de tipo Texto (obrigatório), são escolhidas para serem enviadas. Clique aqui para entender melhor essa funcionalidade.
- Anexo variável: um arquivo armazenado em uma variável do tipo ‘anexo - arquivo’;
- Arquivos de conector: Arquivos trazidos por meio de SQL em um conector. Por exemplo
SELECT IDARQUIVO
FROM GED_ARQUIVO
WHERE ORIGEM = 7 AND IDORIGEM = 0/*IDPROCESSO*/
Ou até mesmo passando o ID do arquivo diretamente:
SELECT IDARQUIVO
FROM GED_ARQUIVO
WHERE IDARQUIVO = 49
No lugar do idarquivo que está fixo "49", pode ser informado uma variável por exemplo, que receba no processo o ID do arquivo específico. Caso o SQL retornado tenha mais de uma linha ele enviará mais de um anexo no e-mail, correspondente as quantidades de linhas.
-
- Protocolo: vai salvar o protocolo vinculado ao processo, se houver. Habilita um campo para escolher um protocolo da preferência do usuário.
Gostaria de um exemplo prático? Clique no link abaixo.
Salvar protocolo - Enviando anexo e protocolo por e-mail
Comunicação - E-mail limpa pasta
Os eventos do tipo E-mail limpar pasta podem ser utilizados em casos onde determinada(s) pasta(s) estão com muitos e-mails armazenados e tornam-se lentas ou desorganizadas em sua visualização. Este evento irá limpar as pastas selecionadas de acordo com as informações que são repassadas pelo usuário.
- Descrição: Campo traz uma descrição padrão de acordo com o tipo do evento, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar na atividade; Ao sair da atividade; Ao anexar
- Conector - origem: Conector do tipo ‘IMAP’ que contém as configurações do e-mail que terá alguma pasta limpa.
- Pasta(s) limpar: Variável (ou texto) que define as pastas que serão limpas.
- E-mails com mais de ... dia(s)*: Define quais e-mails serão excluídos através do número de dias do recebimento.
- *E-mails com data igual a quantidade de dias não serão excluídos: Se for definido por exemplo 5 dias, serão excluídos os e-mails que foram recebidos a 6 dias ou mais.
Social
Criar publicação
Eventos do tipo "Criar publicação" são utilizados em casos onde determinado conteúdo, assunto ou treinamento originados de um processo precisa ser divulgado no menu Social da empresa no DOX Portal.
- Descrição: nesse campo deve ser informado o nome do evento que está sendo configurado no processo;
- Momento da execução: nesse campo, deve ser informado o momento em que esse evento será executado, podendo ser Ao entrar na atividade, Ao sair da atividade e Ao anexar. Nesse caso, Ao sair da atividade;
- Texto: aqui deve ser informada a mensagem que será publicada no blog. No caso, estamos utilizando a variável /*DESCRICAO*/, que trará a informação sobre o evento que foi reservado de acordo com o que será informado no processo, além das variáveis /*DATAINICIO*/, /*HORAINICIO*/, /*DATAFIM*/, e /*HORAFIM*/, que definirá a hora em que acontecerá o evento que foi agendado.
Como exemplo, utilizaremos um processo simples para reserva e agendamento de eventos, onde, ao ser agendado o evento, uma mensagem será inserida no Blog de acordo com o que foi configurado.
Após a interação com o processo e agendado o evento, a mensagem irá aparecer da seguinte maneira no menu Social do DOX Portal:
Registro banco dados
SQL - Executar
Eventos do tipo "SQL - Executar" trabalham em conjunto com conectores do tipo SQL. Imagine que você tem um processo de "Cadastro de Clientes", nele você precisa que após a colaboração com o processo as informações sejam cadastradas no banco de dados de acordo com as informações repassadas pelo usuário. É a partir deste evento que podem ser executados comandos do tipo INSERT, UPDATE, entre outros.
*** Lembre-se: Para executar um comando SQL na base de dados que fará alterações, seja inserindo, atualizando ou deletando dados de uma tabela, basta utilizar este mesmo evento "SQL - Executar", já as CONSULTAS em tabelas, view's seriam no evento "SQL - Selecionar".
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar na atividade;
- Conector - destino: nesse campo será selecionado, se necessário, um conector de Banco de Dados para que o SQL não seja executado na base de dados atual do sistema, e sim, em uma base externa;
- SQL de execução: aqui será montado o conector de SQL que será executado pelo evento, podendo escolhê-lo clicando na lupa ou criá-lo a partir do evento clicando no assistente.
*** Importa frisar: Nos conectores dessa evento, que fazem uma ação no banco (CREATE, UPDATE, DELETE, INSERT) o botão "comando" tem que estar marcado para o sistema execute o que está configurado,
SQL - Selecionar
Os eventos do tipo "SQL - Selecionar" trabalham em conjunto com conectores do tipo SQL. Por exemplo, imagine que você tem um processo de "Solicitação de Compras" e você precisa que o departamento do solicitante (usuário logado) seja trazido para determinado campo.
Para isso, você utiliza o evento SQL - Selecionar trazendo o departamento baseado na variável USERID (código usuário logado) e retornando esse departamento para uma variável de sua preferência.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar na atividade;
- Conector - Origem: Nesse campo será selecionado, se necessário, um conector de banco de dados para que o SQL não seja executado na base de dados atual do sistema, e sim, em uma base externa;
- SQL de consulta: Aqui será montado o conector de SQL que será executado pelo evento, podendo escolhê-lo clicando na lupa ou criá-lo a partir do evento clicando no Assistente.
- Variável de retorno: Aqui poderá ser selecionada uma variável para armazenar as informações trazidas do SQL informado no campo acima.
Variáveis
Variáveis - Definir valor variável
O evento definir valor de variável serve para casos onde você precisa que um valor específico seja definido em uma variável, seja substituindo-a com o valor de outra variável existente (seja ela de processo, sistema, ou global) ou então definindo um valor fixo para a mesma.
Exemplo: Em um processo BPM, ao sair da primeira atividade, você precisa registrar que a variável /*DATAABERTURA*/ receba a data atual. Você precisa desse controle pois usará essa data em painéis de indicadores, relatórios etc.
Bom, pode-se utilizar este evento de definir + a variável de sistema /*DATAATUAL*/ para realizar essa atribuição.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar na atividade, Ao sair;
- Variável: nesse campo será escolhida a variável que terá o seu valor definido;
- Valor do campo: nesse campo, será definido o novo valor da variável selecionada acima, clicando no botão Assistente, poderão ser selecionadas variáveis para esse campo, sejam elas Variáveis de Processo ou de Sistema.
Variáveis - Pegar valor de conector
Diferente do "Definir valor variável", neste evento podemos buscar o valor em uma tabela, view e ai sim atribuir a uma variavel do processo.
Exemplo: Ao entrar no processo, é necessário que a variável /*DEPARTAMENTO_USUARIO*/ receba o departamento do usuario que está logado, abrindo o processo. Talvez nem seja necessário mostrar ao usuário essa informação de departamento, mas é importante ter pois posteriormente essa informação esteja em um relatório por exemplo. Poderia ser feito um SQL como:
SELECT DESCRICAO
FROM DEPARTAMENTOS
WHERE IDDEPARTAMENTO = (SELECT IDDEPARTAMENTO
FROM CLIFOREMP
WHERE IDCLIFOREMP = 0/*USERID*/)
A variável /*USERID*/ utilizada acima refere-se ao IDCLIFOREMP. Essa variável é uma variável de sistema que traz o ID do usuário logado automaticamente.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Variável: nesse campo será escolhida a variável que ter o seu valor retornado do conector;
- Conector - origem: nesse campo será selecionado, se necessário, um conector de Banco de Dados para que as informações consultadas sejam trazidas de uma base de dados externa.
- Conector - SQL: aqui será montado o conector de SQL que será executado pelo evento, podendo escolhê-lo clicando na Lupa ou criá-lo a partir do evento clicando no Assistente.
Variáveis - Operações matemáticas
Eventos do tipo "Operações Matemáticas" podem ser utilizados em processos de Solicitação de Compras para que some/multiplique/divida etc, os valores de todos os itens selecionados, sejam eles informados em campos dentro de uma Grade de Dados, ou campos independentes no formulário de processo.
Para criar um evento de Operações Matemáticas, é necessário que tenhamos no nosso processo dois campos numéricos, que servirão como base para que o evento realize os cálculos. No caso da imagem estão sendo utilizadas variáveis do tipo Inteiro, porém podem ser utilizadas variáveis do tipo Valor, se necessário.
Agora, na aba Eventos, iremos criar quatro eventos de Operações Matemáticas, sendo que o primeiro será de Adição, e os seguintes de Subtração, Divisão e Multiplicação.
- Descrição: campo traz por padrão a 'descrição do tipo do evento' mas permite edição.
- Momento da execução: define o momento em que o evento será executado: Ao entrar, ao sair da atividade, ou ao anexar.
- Variável argumento 1: nesse campo será informado o primeiro número que será utilizado como argumento para o cálculo;
- Operação: nesse campo será informada a operação que necessita ser realizada, podendo ser uma operação de Adição, Subtração, Divisão e Multiplicação;
- Variável argumento 2: nesse campo será informado o segundo número que irá participará do cálculo;
- Variável resultado: nesse campo deve ser configurada uma variável de destino que armazenará o resultado do cálculo obtido com as informações acima.
Em casos onde utiliza-se este evento para cálculos de grade, o mesmo deve encontrar-se entre uma estrutura de repetição que retorna os valores da grade. Na imagem abaixo encontra-se um exemplo da utilização deste evento em conjunto com uma estrutura de repetição.
Variáveis - Manipulação de Texto
Eventos do tipo "Manipulação de Texto" podem ser utilizados em casos onde se faz necessário que determinado texto seja alterado para que mantenha-se uma nomenclatura padrão em alguns termos, por exemplo.
- Descrição: campo traz por padrão 'descrição do tipo de evento' mas permite edição.
- Momento da execução: define o momento em que o evento será executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Variável origem: essa será a variável que contém as informações que serão manipuladas pelo evento;
- Operação: nesse campo será escolhida a operação que precisa ser executada:
- Remover espaços no inicio e fim do texto
- Remover espaços no inicio do texto
- Remover espaços no fim do texto
- Remover todos os espaços do texto
- Incluir '\' ao final do texto
- Remover '\' ao final do texto
- Extrair nome do arquivo
- Extrair caminho do arquivo
- Extrair extensão do arquivo
- Extrai letra da unidade do arquivo
- Remover extensão do arquivo
- Inserir aspas simples
- inserir aspas duplas
- Remover aspas simples ou duplas
- Converter texto para minúsculo
- Converter texto para maiúsculo
- Substituir texto
- Copiar parte do texto
- Alinhar texto
- Formatar - HTML
- Variável destino: aqui deve ser informada a variável que armazenará o resultado da operação.
- Texto substituir: nesse campo, deve ser informado o texto/palavra que será substituída pelo evento;
- Texto substituto: aqui será informado o texto/palavra que irá substituir o que foi informado no campo acima, Exemplo: no texto, onde for informado "Ema" o evento substituirá por "Ema Software".
Variáveis - Criptografar texto
Esse tipo de evento pode ser utilizado caso em algum momento você precise por motivos de segurança criptografar uma informação fornecida pelo usuário.
Sua configuração é bem simples, como veremos na explicação dos campos abaixo, e esse tipo de criptografia permite que possa ser descriptografado.
- Descrição: campo traz por padrão a 'descrição do tipo de evento' mas permite edição.
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou ao anexar.
- Variável: deve ser informada a variável que armazena o texto que será criptografado. No nosso caso, foi criado um campo no formulário utilizando a variável /*TEXTO*/.
- Nível: nível de criptografia que será utilizado, medido em bits. Nesse caso, foi utilizado 128, porém não é um campo obrigatório.
- Variável resultado: é aqui que será armazenado o texto após ter sido criptografado. No nosso caso, configuramos um formulário com a variável /*CRIPTOGRAFIA*/ em uma segunda atividade do processo para receber essa criptografia.
Variáveis - Descriptografar Texto
Assim como no evento acima, esse evento de descriptografar tem como objetivo e função descriptografar uma informação passada em uma variável do processo.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável: nesse campo será escolhida a variável cujo valor necessita ser descriptografado.
- Nível: nível de criptografia que será utilizado, medido em bits. Não é um campo obrigatório.
- Variável resultado: é aqui que será armazenado o texto após ter sido descriptografado.
Variáveis - Criptografar senha
Evento utilizado em casos onde faz-se necessário criptografar as credenciais de acesso de determinado usuário. O vínculo entre a senha e o usuário é realizado através do campo "Variável usuário" que se encontra acima do campo de senha na configuração do evento.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável usuário: nesse campo será trazido o usuário para relacionar à senha que será criptografada.
- Variável senha: senha informada pelo usuário e que será criptografada ao executar o evento.
- Variável resultado: é aqui que será armazenada a senha após ter sido criptografado.
Variáveis - Criptografia MD5
Evento utilizado em casos onde deve-se criptografar dados pessoais e sigilosos de pessoas que estejam utilizando determinados processos, como um processo de compras, por exemplo, onde podem ser informados dados como número ou senha de cartões de crédito.
- Descrição: Campo traz por padrão a 'descrição do tipo de evento' mas permite edição.
- Momento da execução: Define o momento em que o evento será executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Origem
- Variável: Variável que será criptografada.
- Destino
- Variável resultado: Variável que armazenará o conteúdo com a criptografia MD5.
Sincronização
Sincronização - Importar dados de um banco para outro
O evento “Importar dados de um banco para outro”, dentro do agrupador de sincronização, é utilizado para quando são necessárias a busca e importação de informações de determinado banco de dados, para outro.
- Descrição: campo traz por padrão a 'descrição do tipo de evento' mas permite edição.
- Momento da execução: define o momento em que o evento será executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Origem
- Conector - origem: nesse campo, será informado um conector de conexão com o banco de dados de onde serão importados os dados;
- Conector - SQL: carrega os dados do banco de origem a partir do SQL informado no campo "Conector - SQL", exemplo:
SELECT cod_cidade,
nome
FROM cad_cidades
- Destino
- Conector - destino: Conector de banco de dados que irá criar uma conexão com o banco de destino das informações que serão importadas; * Na execução do evento, caso qualquer uma dessas conexões falhe, a execução do evento é abortada. Caso não apresente nenhum erro em nenhuma das conexões, é iniciada uma transação no BD de destino para englobar todos os comandos que serão executados pelo evento.
- SQL de verificação: Percorre a lista de registros obtida do banco de origem para importar cada um no banco de destino;
- Para cada registro, verifica se o mesmo já existe no banco de destino executando o SQL indicado nesse campo. Se a execução desse SQL retornar algum registro, indicará que o mesmo já existe no banco de destino. Esse SQL deve ser parametrizado, de forma que o nome de cada parâmetro corresponda ao nome de um campo do conjunto de dados carregado do banco de origem. Para verificar se uma cidade carregada do banco de origem já existe no banco de destino, poderia ser usado o comando SQL:
SELECT 1
FROM cidade
WHERE idcidade = :cod_cidade
Considerando que os dados carregados do banco de origem possuem um campo chamado "cod_cidade", o qual irá alimentar o parâmetro ":cod_cidade" do SQL de verificação;
-
- SQL de inserção: Caso o registro ainda não exista no banco de destino, insere o mesmo no banco de destino utilizando um SQL. Esse SQL deve ser parametrizado, de forma que o nome de cada parâmetro corresponda ao nome de um campo do conjunto de dados carregado do banco de origem.
- Para inserir uma cidade no banco de destino, poderia ser usado o comando SQL:
INSERT INTO cidade (idcidade, descricao)
VALUES (:cod_cidade, :nome)
Considerando que os dados carregados do banco de origem possuem um campo chamado "cod_cidade" e outro chamado "nome", os quais irão alimentar os parâmetros ":cod_cidade" e ":nome" do SQL de inserção;
-
- SQL de atualização: Caso o registro já exista no banco de destino, realiza a atualização dos dados no banco de destino através do SQL indicado. Esse SQL deve ser parametrizado, de forma que o nome de cada parâmetro corresponda ao nome de um campo do conjunto de dados carregado do banco de origem.
- Para atualizar um registro de cidade no banco de destino, poderia ser usado o comando SQL:
UPDATE cidade
SET descricao = :nome
WHERE idcidade = :cod_cidade
Considerando que os dados carregados do banco de origem possuem um campo chamado "cod_cidade" e outro chamado "nome", os quais irão alimentar os parâmetros ":cod_cidade" e ":nome" do SQL de atualização;
Após processar a sincronização de todos os registros, confirma a transação no banco de dados de destino (commit) ou reverte todas as alterações em caso de falha (rollback).
- Observação: caso ocorra alguma exceção na execução de qualquer comando SQL envolvido na operação, será verificado se existe um evento de tratamento de exceção na atividade do processo. Caso exista um evento desse tipo, a sincronização de dados é interrompida.
Sincronização - Importar dados Excel
Caso você tenha uma planilha Excel de onde deseja extrair informações para o DOX, poderá utilizar o evento Importar Dados Excel para trazer essas informações. Depois de importado para o BPM o usuário pode utilizar essas informações em sua gestão juntamente com a ferramenta.
Aba 1:
Aba 2:
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Origem Excel: aqui será definida a origem de onde a planilha será trazida;
- Disco rígido: nessa opção deverá ser selecionado um local físico onde estará armazenada a planilha Excel.
- Variável: selecionando essa opção, o local de armazenamento da planilha será informado pelo usuário através de uma variável de processo.
- Planilha/Aba: nesse campo deve ser informado o nome da Planilha que será importada.
- Tipo de importação: deve ser informado se dessa importação será trazida a planilha por completo, ou apenas algumas células da mesma;
- Algumas células: deverá ser informada a Linha e Coluna que deseja importar as informações, qual o tipo de dado dessas informações, caso seja numérico, informar a quantidade de casas decimais, e, por último, informar a variável que irá armazenar as informações.
- Planilha toda: se for importada uma planilha inteira, o sistema irá automaticamente criar uma tabela no banco de dados.
- Nome tabela: nome que será dado a tabela criada para armazenar informações. Como padrão, o software sempre informará 'exl_' como prefixo da tabela.
- Limpar todos os dados da tabela antes de importar: sempre que uma nova importação for executada, a tabela será atualizada apenas com os dados da nova importação;
- Colunas chave para atualização: ao atualizar a nova importação, o sistema levará em consideração essas colunas para fazer a verificação.
Em um processo BPM por exemplo:
Evento configurado:
Campo "Tipo de importação": Neste campo você pode informar se quer importar células especificas ou o planilha inteira, caso selecione a planilha inteira vale ressaltar que o evento irá criar uma tabela no banco como por exemplo EXL_ por padrão é o nome informado na aba de Importar planilha inteira.
Caso opte por essa opção a primeira linha do arquivo corresponde ao nome das colunas e a segunda para baixo os dados. Caso deixe a opção de células específica você deve informar o numero da linha e qual coluna está o dado, como na imagem abaixo, o tipo que essa informação será salva, casas decimais caso seja um dado do tipo valor e para qual variável ele irá colocar a informação do arquivo
Formulários do BPM mostrado na primeira imagem:
Ao entrar na atividade o evento irá importar os dados para as variáveis que foi configurada, desse modo, quando o usuário abrir o processo os formulários já estarão com os valores da planilha Excel. Se o Excel tiver vários dados e você precisar importar todos eles, o correto seria para uma variável do tipo grade de dados ao selecionar o tipo de importar a planilha inteira.
EXEMPLO:
Ao entrar na primeira atividade é importada a planilha inteira e o sistema irá criar uma tabela com os dados no banco, EXL_TESTE por exemplo, na segunda atividade criada você usaria o seguinte evento:
- Estrutura de repetição - Carregar
Neste evento teria um SQL que consultaria tabela para retornar os dados e armazenar em uma variável do tipo grade de dados e está estar vinculada a um formulário do tipo grade de dados com os campos criados correspondente aos nomes da coluna da tabela de cada campo.
Sincronização - Importar dados arquivo texto
Eventos deste tipo são utilizados em casos onde determinados dados de um arquivo de texto precisam ser importados para o sistema. Por exemplo, você tem uma lista de itens que deve ser baixada como um arquivo texto. Este evento irá realizar a importação desta lista para o sistema de acordo com o delimitador utilizado no arquivo de texto.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Tipo execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Origem: aqui será definida a origem de onde o arquivo será trazido;
- Disco rígido: nessa opção deverá ser selecionado um local físico onde estará armazenado o arquivo, no campo Arquivo;
- Variável: selecionando essa opção, o local de armazenamento da planilha será informado pelo usuário através de uma variável de processo.
- Delimitador: aqui deverá ser informado o delimitador de informações do arquivo texto, podendo ser escolhidas as opções Tabulação, Ponto e vírgula, Vírgula e Espaço.
- Nome tabela: nome que será dado a tabela criada para armazenar informações. Como padrão, o software sempre informará txt_ como prefixo da tabela;
- Limpar todos os dados da tabela antes de importar: sempre que uma nova importação for executada, a tabela será atualizada apenas com os dados da nova importação;
- Colunas chave para atualização: ao atualizar a nova importação, o sistema levará em consideração essas colunas para fazer a verificação.
NF-e
Baixar XML NF-e do e-mail
Se você tem na sua caixa de entrada vários XML de notas fiscais eletrônicas, pode utilizar este evento para que esses XMLs sejam baixados e enviados para determinada pasta do seu e-mail e também computador.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Conector - origem: Conector do tipo IMAP que traz a configuração do e-mail que será varrido em busca dos XMLs;
- Mover e-mails lidos para a pasta: caso marcado, irá mover todos os e-mails que foram lidos para determinada pasta do seu e-mail, definida no campo ao lado;
- Pasta destino: Pasta física no computador onde os XMLs baixados serão armazenados;
Consultar nota fiscal eletrônica
Evento utilizado para que determinada nota fiscal seja consultada para que seu status atual seja retornado ao usuário. Com esse status no processo BPM, é possível fazer diversas tratativas.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Retorno esperado: Aqui será definido o valor padrão esperado para o retorno desta consulta;
- Aviso retorno incorreto: Texto informativo para o usuário caso o retorno não corresponda ao informado no campo acima;
- Variável certificado: Variável trazendo o número de série do certificado digital do estabelecimento (sem espaço entre os caracteres);
- Variável chave NF-e: Variável que traz a chave da NF-e que será consultada pelo evento;
- Variável situação NF-e: Variável que armazenará a situação da nota fiscal eletrônica após ter sido consultada
Importar arquivo XML NF-e
Evento utilizado para que determinada nota XML seja importada de um local do computador para outro. Além disso, ao utilizar este evento, o XML é importado diretamente para o sistema, sendo possível consultar na tabela CRM_PROCESSO_XML ou no módulo "Processo" > "XML".
Com o arquivo no sistema, pode ser feito sua manifestação, gerar a DANFE, etc.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Origem: Local onde o XML estará inicialmente, para que o sistema encontre e possa move-lo.
- Pasta Origem NF-e: Local onde está a Nota Fiscal Eletrônica.
- Pasta Origem CT-e: Local onde está o Conhecimento de Transporte Eletrônico.
- Pasta Origem NFS-e: Local onde está a Nota Fiscal de Serviço Eletrônica.
Utilizando qualquer um desses campos, o sistema já entende e importa os dados ao executar o processo.
- Destino: Local para onde o XML será movido
- Importar XML mesmo se já existir no banco de dados: Utilizando esta opção, mesmo se já existir um registro da nota no sistema (ou seja, ela já foi importada) o sistema permitirá que seja importada novamente, criando mais um registro na CRM_PROCESSO_XML.
Manifestação
Evento utilizado para fazer a manifestação de notas fiscais. Neste evento, pode-se escolher o tipo de manifestação e o caminho para salvar o XML. É um evento importante e pensado em facilitar o manifesto de diversas notas de uma vez só.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável certificado: Variável trazendo o certificado digital do estabelecimento. Neste caso deve ser o Número de série do Certificado Digital e não o caminho do arquivo;
- Tipo de manifesto: Aqui será escolhido o tipo de manifestação que será gerada pelo evento, podendo escolher entre: Ciência da emissão, Confirmação da operação, Não realização da operação e Desconhecimento da operação;
- Manifestar:
- Todas as notas vinculadas ao processo;
- Nota indicada na variável: um campo Variável ficará visível para que a variável trazendo a chave da nota que precisa ser baixada seja preenchida;
- Chaves listadas em conector: pode ser configurado um conector trazendo várias notas a serem baixadas;
- Conector - origem: conector de banco de dados de onde devem ser trazidas as notas fiscais. Deve ser marcado apenas em casos onde a nota seja trazida de um banco de dados externo ao banco de dados em execução no DOX;
- SQL de Consulta: conector SQL trazendo as notas a serem manifestadas. O campo que retorna a chave da NF-e nesse SQL deve ser identificado como CHAVE no seu alias.
- Caminho salvar XML: caminho físico onde serão salvos os arquivos manifestados.
** OBS: O campo "Motivo" é obrigatório para a manifestação do tipo "Não realização da operação". O campo do SQL de consulta que retornar a chave deve ser identificado como "CHAVE"
Consulta notas destinadas
Evento utilizado para fazer a consulta das notas fiscais destinadas.
- Descrição: Campo traz por padrão a 'descrição do tipo de evento' mas permite edição.
- Momento da execução: Define o momento em que o evento será executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Filiais:
- Selecionadas: Puxa cadastradas no cadastro de filiais:
- Variável: Permite usar uma variável para indicar a filial.
Baixar XML NF-e do SEFAZ
Evento utilizado para que o download de um XML de nota fiscal eletrônica seja feito diretamente do Portal do SEFAZ e trazido para o computador local.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável certificado: Variável trazendo o certificado digital do estabelecimento;
- Download de:
- Notas sem download: Irá baixar todas as notas que ainda não foram baixadas;
- Nota indicada na variável: Um campo Variável ficará visível para que a variável trazendo a chave da nota que precisa ser baixada seja preenchida;
- Notas listadas em conector: Pode ser configurado um conector trazendo várias notas a serem baixadas;
- Conector - origem: Conector de banco de dados de onde devem ser trazidas as notas fiscais eletrônicas. Deve ser marcado apenas em casos onde a nota seja trazida de um banco de dados externo ao banco de dados em execução no DOX;
- SQL de Consulta: Conector SQL trazendo as notas fiscais para serem baixadas. O campo que retorna a chave da NF-e nesse SQL deve ser identificado como CHAVE no seu alias.
- Valor NF-e entre: Pode ser definida uma faixa de valor específica para download. Desse modo, serão baixadas apenas as notas que estiverem entre essa faixa de valor;
- Caminho salvar XML: Caminho físico onde o XML que foi baixado será salvo.
OBS: O campo do SQL de consulta que retorna a chave deve ser identificado como "CHAVE"
Gerar DANFE XML
Evento utilizado para que seja gerado o DANFE do XML de determinada nota fiscal eletrônica, de acordo com o código do XML na tabela CRM_PROCESSO_XML.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Cód. arquivo XML: variável do tipo Inteiro trazendo o código de um registro da tabela CRM_PROCESSO_XML, que armazena os XML de notas fiscais que foram baixados através dos eventos Baixar XML NF-e;
- Tipo documento: tipo de documento que será assumido para o DANFE;
- Cód. arquivo: variável armazenando o código do arquivo que será gerado;
- Cód. Versão: variável que armazenará o código da versão atual do arquivo gerado.
PEX - Executar função
Evento utilizado para que em determinado momento um processo execute uma função PEX criada no sistema.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Função: Listra trazendo todas as funções PEX criadas no sistema, deve ser selecionada uma para que seja executada pelo evento;
- Chamada da função: Nesse campo deve ser digitado o nome da função, para que o sistema possa fazer a chamada da mesma. Caso a função contenha parâmetros, os mesmos devem ser passados nesse campo. Ex.: importarClientes(/*CODCIDADE*/, '/*SEGMENTO*/').
Assim que selecionada uma função, todo o script dessa função aparecerá no campo abaixo como Somente Leitura para que o usuário verifique o seu código.
**Funções PEX só podem ser criadas por pessoas certificadas ou que tenham permissão em nosso banco de dados. Geralmente é o desenvolvimento quem pode acessar/criar/validar/liberar funções PEX como essas que vão no evento.
Arquivos
Arquivos - Manipular arquivos
Evento responsável pela manipulação de arquivos por um processo BPM. Neste evento é possível realizar diversas ações com os arquivos diretamente no computador local (onde o sistema está instalado). Pense em um processo de backup de arquivos por exemplo, onde seja necessário copiar, deletar ou mover os documentos, com este evento seria possível realizar tal procedimento,
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Operação: é nesse campo que será definida operação desejada, se é necessário Copiar, Mover, Deletar, Criar diretório, Renomear ou Executar determinado arquivo.
Conforme for selecionada uma das opções acima, os campos Caminho origem e Caminho destino sofrerão alterações, porém, sempre será solicitado o caminho do(s) arquivo(s) que sofrerá(ão) alteração(ões).
- O evento remove todos os arquivos do diretório quando usando o * no caminho de origem.
Exemplos:
- Executando arquivos
Neste exemplo trataremos do evento de manipular arquivo, o qual pode manipular dentro do servidor de aplicação arquivos em diversos formatos, neste exemplo, executaremos um arquivo BAT ou seja, uma arquivo baseado em MS-DOS/Comandos em lotes.
Precisamos criar um variável do tipo texto ou texto longa a qual terá o endereço completo de nosso arquivo a ser manipulado/executado, este pode ser informado no valor padrão da variável ou informado via formulário conforme o exemplo abaixo:
Após informarmos o caminho onde o arquivo se encontra, vamos vincular o mesmo ao nosso evento.
No exemplo acima o arquivo bat executará os seguintes comandos:
cd C:\
mkdir TESTE
move forum.txt TESTE/forum.txt
Ou seja, vai criar um pasta chamada TESTE no C:\ do servidor, e irá mover um arquivo existente chamados forum.txt do C:\ para essa nova pasta;
**LEMBRETE! **
O arquivo bat e os arquivos que estou movendo através dele, estão todos no servidor onde a aplicação está sendo executada, para acesso dos usuários os arquivos devem ser manipulados para dentro de pastas compartilhadas ou alguma outra locação do gênero.
Arquivos - Carregar arquivo
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Origem do arquivo: Aqui será definida a origem de onde o arquivo será trazido;
- Arquivo: Nessa opção deverá ser selecionado um local físico através de uma variável onde estará armazenado o arquivo;
- Anexo do processo: Selecionando essa opção, o local de armazenamento do arquivo será trazido conforme um anexo existente no processo, também de acordo com uma variável.
- Variável armazenar: Variável onde será armazenado o arquivo que será carregado.
Exemplo:
Aqui será abordado um exemplo de como trazer os anexos de um e-mail (IMAP) e popular estes anexos em uma variável para que possam ser usados no processo BPM e posteriormente ser utilizado validações.
Eventos utilizados:
- E-mail - Buscar e-mail
- Estrutura condicional - Início
- Estrutura condicional - Fim
- Arquivos - Carregar arquivo
Pode ser criado formulários para guardar outras informações, nesse caso vamos focar apenas nos eventos. Assim que fizer todas as configurações desejadas, vá a aba eventos para começarmos a configurar os eventos necessários.
- Primeiramente crie um evento de Buscar e-mail (IMAP).
- No evento, configure para que o campo "Origem" seja "Anexos do processo".
Isso fará com que ele percorra todos os arquivos anexados na instância. Em seguida crie o evento "Estrutura condicional - Inicio"
Assim que configurado como a imagem acima, vamos criar o evento que carrega os anexos para uma variável.
- Crie o evento Arquivo - Carregar arquivo.
No campo "Arquivo" será informado o ID do anexo do processo e basta utilizar uma variável do sistema para pegar o id do anexo. /*ANEXOIDANEXO*/, depois crie uma variável do tipo Anexo - Arquivo e vincule no campo "Variável armazenar".
Feche a estrutura com o evento de "Estrutura condicional - Fim". Agora você tem os anexos do e-mail no processo e pode utiliza-los no que for preciso. Por exemplo, a cada e-mail que é buscado pelo IMAP é criado um card com as informações. E esses anexos tem que ir para esse card no kanban.
Enfim, as possibilidades são inúmeras.
Arquivos - Carregar lista de arquivos e pastas
Ele é responsável por carregar pasta e arquivos de determinado local do seu computador por meio de um processo BPM. Nele você coloca também o local de destino, ou seja, o local onde ele será importado, podendo ser uma pasta cadastrada do GED ou algum local padrão do sistema.
Entrada:
- Unidade/Diretório: parâmetro que define qual o diretório, unidade de disco ou caminho de rede que será lido;
- Percorrer subdiretórios: parâmetro para definir se a busca deve ocorrer também nos subdiretórios;
- Carregar: parâmetro para definir o que deve ser carregado ("Arquivos e pastas", "Somente arquivos" ou "Somente pastas");
- Filtro: parâmetro para definir extensões ou nomes de arquivos e pastas que devem ser carregados, possibilitando utilizar diferentes filtros separados por ";" (ex.: *.pdf; *.xml; Notas*).
Saída:
- Armazenar em: parâmetro para informar a variável do processo que vai receber a lista carregada (tipo "Grade de dados");
Na tela de cadastro dos campos da grade, foi disponibilizado o assistente "Carregar campos da lista de arquivos e pastas". Quando deseja-se exibir no formulário de colaboração a grade alimentada pelo evento "Arquivos - Carregar lista de arquivos e pastas", esse assistente irá criar os campos automaticamente.
Arquivos - Criar arquivo
Com este evento pode-se criar um arquivo de texto direto no seu computador através de um processo BPM. Veja o exemplo de criação abaixo:
Uma atividade manual com um campo dissertativo e uma variável /*ARQUIVO*/ do tipo texto longo. Em seguida, crie o evento no agrupador "Arquivos", conforme imagem abaixo.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Caminho do arquivo:. Caminho onde o arquivo será armazenado. Deve-se informar o caminho completo, incluindo o nome do arquivo e a extensão. Pode ser colocado um valor fixo, ou uma variável contendo o valor do caminho. Vale lembrar que deve-se informar o caminho completo incluindo o nome do arquivo e a extensão.
- Origem do conteúdo: Origem do conteúdo do arquivo.
- Conector: Se o conteúdo do arquivo será alimentado por um conector
- Variável: Se o conteúdo do arquivo será alimentado por uma variável.
- Conteúdo: Utiliza-se texto e variáveis. Neste exemplo, utilizaremos o valor da variável /*ARQUIVO*/, onde o usuário irá colocar todo o conteúdo para criar o arquivo.
- Arquivo existente: Se um arquivo com o mesmo nome já existir, executará a ação selecionada.
- Substituir
- Criar outro com um nome sequencial:
- Não criar o arquivo:
- Gerar exceção:
Buscar E-mail
Esse evento é utilizado para que seja feita a leitura da caixa de entrada de determinado e-mail em busca de informações específicas da sua necessidade.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Origem: conector IMAP de onde será feita a varredura em busca das informações.
- Identificar e-mail: nessa grade serão configuradas as condições para a busca de informações;
- Campo: as seguintes opções estão disponíveis para seleção: Remetente, Assunto, Corpo do E-mail e Anexo;
- Sinal: operador lógico para fazer a verificação de informações, poderão ser selecionados: Igual (=), Contém (like), Diferente (<>), Não contem (Not like);
- Valor: aqui será informado o valor a ser verificado para trazer as informações;
- Condicional: caso seja necessário fazer a verificação por mais de um valor, nesse campo você selecionará uma das opções: E, OU.
- E: caso a sua informação que será trazida deva obedecer as duas condições;
- OU: caso a informação possa obedecer apenas uma ou outra condição.
- Remetente: variável de processo onde será armazenado o e-mail do remetente após execução;
- Assunto: variável de processo onde será armazenado o assunto do e-mail que será lido da caixa de entrada;
- Corpo do e-mail: variável de processo tipo Texto Longo onde será armazenado todo o conteúdo enviado no e-mail;
- Quant. anexos: aqui será armazenada a quantidade de anexos presentes no e-mail, caso hajam anexos.
- Importar anexos para o processo: caso você necessite que os anexos sejam importados na execução do evento, basta marcar essa opção;
- Tipo de documento: ao marcar a opção acima, pode ser selecionado o tipo de documento que será assumido para esses anexos;
- Mover para a pasta: aqui serão trazidas as pastas do e-mail informado no campo Origem. Os e-mails que entrarem na condição definida na grade Identificar e-mail serão encaminhados diretamente para a pasta selecionada nesse campo.
Agendamento / Temporizador
Temporizador de espera
Esse evento é utilizado quando uma atividade precisa ficar escondida de colaboração por determinado tempo antes que o usuário possa colaborar com ela.
Pode ser utilizado, por exemplo, em processos de Produção, onde um produto foi enviado para fabricação e seu processo foi passado para frente na atividade de Embalagem, porém o responsável por essa atividade não pode colaborar imediatamente com o processo. Desse modo, configura-se um temporizador de espera de acordo com o tempo estimado de fabricação do produto para que a atividade "Embalagem" possa ser executada.
** ATENÇÃO: Aguarda 'x' horas e minutos antes de liberar o processo para colaboração.
- Descrição: campo traz por padrão a 'descrição do tipo de evento' mas permite edição.
- Momento da execução: define o momento em que o evento será executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Aguardar* (h): tempo, em horas, que a instância ficará fora de colaboração do usuário, importante dizer que, caso esse campo não seja utilizado, deixar valor padrão zero;
- Aguardar* (min): tempo, em minutos, que a instância ficará fora de colaboração do usuário. Caso esse campo não seja utilizado, deixar o valor padrão zero.
Caso a instância com o temporizador configurado ainda esteja "escondida" da colaboração e seja tentado acessar para continuar, o sistema dará o seguinte erro: "A instância do processo ainda não está liberada para colaboração".
Criar agendamento / Remover agendamento
Esses eventos são em sua maioria utilizados em conjunto. São utilizados caso você queira que uma instância de processo mude sua atividade de acordo com um limite de tempo pré-definido no evento. É importante citar que aqui chegamos a uma parte importante de processos BPM, o motor DOX.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Atividade destino: atividade da instância que será definida como atual após atingir um tempo limite;
- Aguardar* (h): caso sejam horas, aqui poderá ser definido o limite em horas que a atividade poderá ficar sem interação antes de ser passada pra frente. Caso esse campo não seja utilizado, deixar como valor padrão zero;
- Aguardar* (min): caso necessite que o tempo seja contato em minutos, aqui poderá ser definido quantos minutos a atividade poderá ficar sem interação. Caso esse campo não seja utilizado, deixar como valor padrão zero.
Depois de ser criado um evento de CRIAÇÃO de agendamento, precisa criar um evento de REMOÇÃO desse agendamento. Pois ele precisa sumir da fila depois de executado sua ação.
- Descrição: campo traz por padrão a 'descrição do tipo do evento' mas permite edição.
- Momento da execução: Define o momento em que o evento será executado: Ao entrar, Ao sair da atividade, Ao anexar.
- Aguardar* (h): caso sejam horas, aqui poderá ser definido o limite em horas para que os agendamentos sejam removidos. Caso esse campo não seja utilizado, deixar como valor padrão zero.;
- Aguardar* (min): caso sejam minutos, aqui poderá ser definido o limite em minutos para que os agendamentos sejam removidos. Caso esse campo não seja utilizado, deixar como valor padrão zero.
*** ATENÇÃO: É interessante utilizar da seguinte estrutura:
- Cria agendamento AO ENTRAR
- Remove agendamento AO SAIR
Um exemplo de uso destes eventos em um processo seria com um processo de solicitação de investimento. Caso uma solicitação de investimento foi aberta e não houve colaboração na primeira atividade deste processo durante um período de 8 horas, o agendamento encaminha o processo para o fim.
Deste modo, pode-se dizer que a atividade destino dessa atividade será o Fim, pois entende-se que a mesma foi aberta por engano.
Exemplo:
Vamos criar um exemplo com um procedimento, visando mostrar na prática a utilização desses dois eventos de sistema. Porém, antes de criar o BPM, é importa verificar duas questões:
- Como foi citado acima, agendamentos de processos BPM utilizam de motor DOX para serem executados, por isso antes de iniciarmos nosso exemplo verifique se o micro_serviço do motor DOX está ativo, se não, ative e suba os serviços novamente.
Acesse o ema configurador > Serviços > Marque o ema Motor DOX:
- O agendamento que é executado no motor é realizado pelo usuário publico configurado no nosso sistema. Verifique se existe um usuário publico e caso não, clique aqui para entender melhor como configurar.
No exemplo mais a frente iremos criar um processo simples de registro de despesas. Ele funcionará da seguinte forma: caso o usuário fique parado na primeira atividade por 1h hora, o processo irá ser cancelado automaticamente. Se o usuário prosseguir, a despesa informada por ele será cadastrada em uma tabela do banco de dados.
Antes da criação do BPM, vamos criar a nossa tabela de despesas:
CREATE TABLE X_DESPESA (
IDPROCESSO INTEGER NOT NULL PRIMARY KEY,
IDUSUARIO INTEGER NOT NULL,
DESCRICAO VARCHAR (250),
NUMERONOTA INTEGER,
VALOR NUMERIC (15,2))
- Campo "IDPROCESSO" pois o usuário só poderá registrar uma despesa por vez, caso queira mudar esse funcionar, basta personalizar essa tabela de acordo.
- Campo "IDUSUARIO" para ter um registro de quem foi o usuário que fez a inserção das informações, caso futuramente um relatório traga essas informações.
- Os outros campos são os valores informados no processo que iremos criar a seguir.
Agora, vamos criar o nosso BPM. Estamos disponibilizando o BPM Clicando aqui ou em anexo deste tópico. Porém é interessante ler todo o tópico de criação para melhor entendimento.
A principio teremos as seguintes atividades
Atividade 1: Inicio | Padrão |
Atividade 2: Manual "Preenchimento da Despesa" | Onde o usuário colocará as informações de descrição, nota e valor da despesa. |
Atividade 3: Automática "Registra Despesa" | Onde será registrado a despesa no banco de dados. |
Atividade 4: Automática "Cancela processo" | Caso o processo aberto fique sem interação por 1h será encaminhado para a atividade "Cancela processo" e a colaboração se encerará. |
Atividade 9999: Fim | Padrão |
Veja a imagem:
Atividade 2 - Preenchimento da Despesa:
Nesta atividade terá 3 formulários obrigatórios para que o usuário coloque as informações sem falta. Faça conforme a imagem:
** Configure o tamanho dos formulários da forma que achar melhor.
Depois de criado os formulários, vamos para os eventos:
- Evento 1: Define IDPROCESSO
Neste evento vamos definir o valor da variável de sistema /*IDPROCESSO*/ para uma variável que criamos no processo /*CODPROCESSO*/
- Evento 2: Define IDUSUARIO
Vamos pegar o IDUSUARIO que está atualmente colaborando com o processo, passando como parâmetro a variável de sistema /*USERID*/.
SQL de consulta:
SELECT IDUSUARIO
FROM USUARIO
WHERE IDCLIFOREMP = 0/*USERID*/
- Evento 3: Criar agendamento 1h
Chegamos no evento mais importante, no campo "Atividade destino" é necessário colocar a atividade "Cancela processo", ou seja. o agendamento irá mover a colaboração para essa atividade depois de 1h. Outra observação é que o campo de min, deve ter o zero como valor caso nada seja colocado nele. Este evento está AO ENTRAR.
Faça como na imagem abaixo:
- Evento 4: Remover agendamento 1h
Atividade 3 - Registra Despesa:
Nesta atividade automática só iremos criar um evento de executar SQL para que os dados informados pelo usuário sejam cadastrados no banco de dados. Vale ressaltar que isso só ira ocorrer se o processo for colaborador, caso sua colaboração seja abandonada, o processo irá ser cancelado.
SQL de execução:
INSERT INTO X_DESPESA
VALUES (0/*CODPROCESSO*/,
0/*IDUSUARIO*/,
'/*DESCRICAO*/',
'/*NUMERONOTA*/',
CAST(REPLACE('0/*VALOR*/', ',', '.') AS NUMERIC (15,2)))
** Variáveis do tipo texto devem ir entre aspas, enquanto as do tipo inteiro devem ter um zero na frente.
Atividade 4 - Cancela processo
É aqui que o sistema irá encaminhar a colaboração caso haja inatividade. Vamos apenas configurar um evento simples de cancelamento.
O campo "Motivo" irá preencher o campo "motivocancelamento" da tabela CRM_PROCESSO.
Exceção
Eventos do tipo Gerar e Tratar exceção são, geralmente, utilizados em conjunto para verificar se determinada situação está de acordo com o que deveria ser executado.
Imagine que você tem um processo onde determinado valor informado pelo usuário deve ser verificado de acordo com uma norma padrão da empresa.
Caso o valor não esteja de acordo com a norma, uma exceção será gerada e uma mensagem aparecerá para o usuário informando a inconsistência. A opção de "Tratar exceção" serve para caso seja necessário enviar o usuário para uma atividade específica quando a exceção for gerada.
Gera exceção
O agrupador "Exceção" serve para que sejam geradas exceções no log do processo caso qualquer inconsistência seja encontrada no decorrer da execução.
Mensagem de erro no portal:
Esse é o evento que irá gerar a exceção dentro do log do processo e também na tela de colaboração. Nele, é possível que seja configurada uma mensagem de erro para melhor identificação da inconsistência.
Trata exceção
Esse evento será o responsável por tratar a exceção que foi encontrada. De acordo com a necessidade, deverá ser configurada a atividade que será executada quando exceções forem encontradas
- Descrição: Campo traz por padrão a 'descrição do tipo de evento' mas permite edição.
- Atividade destino: Onde será redirecionado o processo quando for tratada a exceção.
- Atividade.
- Variável
Exemplo 1:
Neste exemplo serão mostradas duas formas de tratamento utilizando esses dois eventos. Em um processo com apenas uma atividade, foi criado dois formulários do tipo dissertativo com suas respectivas variáveis:
Neste processo, ao preencher os campos "Nome" e "Endereço", os mesmos serão inseridos na tabela registro_endereco onde ao ser executado o evento Conta os registro - Selecionar será contado o numero de linhas da tabela de acordo com o processo atual para verificar se o registro foi realmente inserido.
Caso o número de linhas seja igual a 0, ou seja, o SQL não inseriu os valores por algum motivo, vai ser gerado uma exceção, onde será mostrado uma mensagem de erro para o usuário configurado no evento.
Ao ser preenchido o CHECKBOX ao lado do evento "Gera Exceção", é criado um evento de "Trata Exceção", onde no campo "Atividade destino" é configurado para onde é direcionado o processo ao ser gerada a exceção.
Essa forma de tratamento serve para além de personalizar a mensagem mostrada, validar um erro operacional do processo.
No portal, a mensagem configurada no evento:
Exemplo 2:
Com os mesmos formulários criados acima, na aba eventos vamos apenas manter o evento Insere na tabela - Executar, clicar no CHECKBOX ao lado deste evento e criar o evento Trata Exceção.
Desse modo, caso ocorra algum erro no INSERT o processo apenas mostrará o erro do banco de dados, e o "Trata exceção" direcionará processo para a atividade configurada no evento.
No portal, a mensagem que será mostrada na exceção:
Processo
Processo - Iniciar novo processo
Eventos deste tipo devem ser utilizados quando existe a necessidade de que um processo já existente no DOX seja iniciado a partir da colaboração com um outro processo.
Imagine que você tenha um processo de Contratação, e que após a efetivação da contratação, é necessário que as credenciais deste novo colaborador sejam criadas, mas você não possui acesso para criar tais credenciais. Deste modo, deve-se utilizar um evento Iniciar novo processo, trazendo por meio de variáveis globais os dados conforme foram repassados no processo de Contratação, para que o responsável possa, portanto, gerar as credenciais.
Ou seja, em determinada etapa do processo, um outro processo à parte será iniciado. Esse evento serve para quando há casos onde essa necessidade exista.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Processo: Lista onde será selecionado o processo que será iniciado ao executar o evento, pode ser o valor de um processo guardado em uma variável ou ser um processo escolhido fixo;
- Código processo: Variável armazenando o código da instância que será iniciado do novo processo.
Processo - Finalizar processo atual
Evento utilizado para finalizar o processo atual em colaboração. Com este evento, a instância será direcionada para a atividade fim (atividade 9999) e o status da instância mudará para 2 (finalizado).
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Motivo: Variável ou texto comum que será utilizado como motivo para a finalização do processo. Este valor será preenchido no campo motivo da tabela CRM_PROCESSO.
Processo - Cancelar processo atual
Evento utilizado para cancelar o processo em colaboração. Com este evento, a colaboração será cancelada e o status da instância mudará para 3. O procedimento irá parar exatamente onde está e seu status será mudado apenas. Não aparecerá mais para a colaboração, nem em telas de processo, etc.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Motivo: Variável ou texto comum que será utilizado como motivo para o cancelamento do processo. Este valor será preenchido no campo motivocancelamento da tabela CRM_PROCESSO
Processo - Alterar informações do processo
Evento utilizado para que algumas informações do processo, como Objetivo, Expectativa, Motivo para iniciar, etc. sejam alteradas de acordo com a necessidade do modelador. Essas alterações serão inseridas nos campos da tabela CRM_PROCESSO, que geralmente são usadas para auxiliar na colaboração dos processos no portal.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Propriedade: Propriedade do processo/campo da tabela que será alterada pelo evento;
- Texto: Nesse campo podem ser utilizadas variáveis de processo para que as informações sejam alteradas de acordo com a necessidade, ou um com um texto fixo também funciona.
Processo - Gerar link do processo
Evento utilizado para gerar um link externo de colaboração com o processo, eventos deste tipo são utilizados geralmente em casos onde pessoas externas à empresa precisam colaborar com o processo em questão. A partir desse evento, gera-se o link do processo, que posteriormente será enviado por e-mail a pessoa que deverá realizar a colaboração.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Processo: Variável que irá assumir o processo cujo link deve ser gerado, caso mantido em branco, o evento automaticamente assume que deve ser gerado para o processo atual;
- Link gerado: Variável do tipo texto que armazenará o link gerado pelo evento;
Processo - Exibir mensagem para o usuário
Evento utilizado quando é necessário dar um retorno ao usuário sobre as operações realizadas por ele e pelo processo, podendo ser exibida uma mensagem de Erro ou Informação.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Tipo mensagem: Tipo de mensagem que será exibida, se é uma mensagem de erro ou uma Informação.
- Texto: Texto que será exibido na tela ao usuário;
Processo - Criar lembrete
Evento responsável por criar um lembrete para o usuário. Quando este evento é utilizado, ele mostra na portal uma tela de notificação de acordo com os dados informados no evento (Data, Hora, Usuário, Descrição).
Antes de tudo, verifique se no ema_configurador o seguinte serviço está sendo executado, caso não esteja, marque-o e suba os serviços novamente, senão o evento de lembrete não vai ser executado.
Evento:
- Descrição: Campo traz por padrão a 'descrição do tipo do evento' mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Processo: Variável que irá assumir o código do processo, caso mantido em branco, o evento automaticamente assume que deve ser gerado para o processo atual.
- Usuário: Usuário que irá receber o lembrete, podendo ser configurado com as seguintes opções:
- Usuário atual.
- Conector.
- Variável.
- Descrição: Texto do lembrete.
- Data: Variável contendo a data do lembrete.
- Hora: Variável contendo a hora do lembrete.
Exemplo de sua utilização em um BPM:
Vamos criar uma FK para que o usuário possa escolher o usuário destino que receberá o lembrete na tela. É importante esse detalhe, pois o evento só funciona se o valor do destino ser o USERNAME do usuário. Em conectores, crie um tipo Foreign key que busque dados da tabela USUARIO de acordo com a imagem abaixo:
Agora, vamos criar uma atividade para informar esses dados.
Neste atividade faça quatro formulários.
— Um formulário do tipo dissertativo com a Fk que criamos vinculada para escolher o usuário, sem variável vinculada.
**OBS: Vamos criar um evento PEX ao sair desse formulário para atribuir o valor do campo da FK USERNAME para a variável de processo DESTINO, pois quando salvamos o processo, o formulário de FK salva automaticamente o ID do usuário, não a descrição.
Vá até a tela de programação PEX deste formulário e faça como na imagem:
— Um formulário dissertativo para colocar a descrição do lembrete com uma variável do tipo texto vinculada
— Um formulário dissertativo para colocar a data do lembrete com uma variável do tipo data vinculada
— Um formulário dissertativo para colocar a hora que o lembrete vai ser disparado com uma variável do tipo hora vinculada.
Em seguida, ao sair da atividade, procure o evento de lembrete (Processo - Criar lembrete) e informe:
No portal, o processo aparecerá assim:
Ao clicar em "Confirmar" e finalizar o processo, quando o evento ser executado na data e hora informadas, ele aparecerá na tela, assim no portal:
Note que a descrição ali da notificação é aquela que informamos no campo do processo "Descrição".
Caso queira que o USERNAME já seja setado quando entrar na atividade por um usuário fixo, pode-se utilizar o evento de Variáveis - Definir valor variável.
Processo - Adicionar comentário
Novo evento do sistema, disponível na versão 12.10+ no agrupador "Processo".
Este evento permite, por meio de um processo BPM, que seja vinculado na instância de um processo (atual ou informado na variável) um comentário, tendo o usuário logado, executando o processo, como criador do comentário. Ele contém os seguintes campos:
Sendo possível definir:
- Descrição
- Momento da execução
- Instância do processo ("atua" ou "informada na variável")
- Comentário: campo para informar o texto do comentário, possibilitando o uso de variáveis do processo ou do sistema
- Notificar participantes: com as opções "Sim", "Não", "Conforme variável".
Caso for usando a opção "Conforme variável", a variável deverá conter um dos seguintes valores: "S" ou "N".
OBS: Como citado inicialmente, o criador do comentário é sempre o usuário logado que está executando o processo.
Exemplo do evento em um processo:
- No canto superior direito. No pequeno ícone de comentário
Em um kanban por exemplo:
- Na aba "Comentários" do card.
Estrutura condicional
Estrutura condicional - Inicio
Neste tópico será abordado o evento de Estrutura condicional, este evento é muito importante para validações de formulários, dentre outras funções que podem ser realizadas.
Estrutura condicional é semelhante a um IF em uma programação, ele irá iniciar uma validação e então, se a validação for verdadeira, executar uma ação especifica.
Entre o Inicio e Fim, podemos adicionar um outro evento que irá realizar uma ação, ou seja, se entrar na condição, esse evento será executado.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição. ( Para facilitar na identificação e por boa pratica coloque a palavra Inicio, Exemplo: Início - Verifica Transferência.
- Momento de execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Origem: Forma em que será realizada a validação, podendo ser configurada em:
- Condicional: Trata condições informadas.
- Anexos do processo: Percorre os anexos de processo.
- Conjunto de Dados: Percorre um registro de dados.
Estrutura condicional - Fim
Neste evento ele apenas encerra as validações iniciadas no evento de estrutura condicional: Inicio
- Descrição: Campo traz por padrão 'descrição do tipo do evento' mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
Estrutura de repetição
Aqui falaremos sobre os eventos que estão mais envolvidos com o formulário do tipo grade de dados. Iremos demonstrar a funcionalidade de cada um em sequência.
Estrutura de repetição - Carregar
Este evento irá percorrer uma consulta SQL de um conector vinculado ao evento até encontrar todos os registros trazidos e armazená-los em uma variável do tipo grade.
Qual a diferença deste evento para o evento de registro banco dados - SQL - Selecionar? Bom, como citado acima, este evento serve especificamente para buscar valores e preenche-los em uma grade de dados. O evento de SELECIONAR serve para consultar e atribuir valor a outros tipos de variáveis.
Exemplo: Você tem um processo de registro de treinamento com uma grade de dados de participantes. Utilizando este evento, você poderá retornar a lista de colaboradores da sua empresa para que selecione os participantes do treinamento realizado.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Conector - origem: conector de banco de dados para caso as informações da consulta SQL sejam trazidas de um banco de dados externo;
- SQL de consulta: SQL que fará a consulta no banco de dados trazendo as informações especificadas;
- Variável armazenar: variável do tipo GRADE DE DADOS que armazenará os dados trazidos pela consulta SQL acima.
*** Não esqueça de, além de criar a variável e vincular ao evento, criar o formulário grade com seus respectivos campos. É importante que as colunas no SQL sejam as mesmas colunas no formulário.
Conector SQL:
Formulário do tipo GRADE:
Estrutura de repetição - Descarregar
Evento utilizado para limpar o valor de uma variável específica do processo para que a mesma após ter sido utilizada não continue consumindo espaço na memória.
Exemplo: Um processo que mostre os dados dos colaboradores em uma grade ao entrar na primeira atividade. Como é uma lista meramente visual, onde o usuário não irá interagir e nem editar / inserir nada, não há motivo para salvar esses dados. Dessa forma, utilizamos o evento de descarregar.
- Descrição: Campo traz por padrão a 'descrição do tipo do evento' mas permite edição.
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Variável origem: Variável a ser 'limpa' pelo evento.
Estrutura de repetição - Retorna valor
Evento utilizado para que sejam retornados valores de uma variável de grade de dados. Neste evento, informaríamos a coluna do formulário da grade, e a variável que receberia o valor dessa coluna. Caso a grade tenha mais de uma linha, é importante utilizar uma estrutura condicional com origem "conjunto de dados" e em seguida o evento de retorna valor.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável origem: Aqui deve ser informada a origem das informações. Se a origem for de uma grade de dados, por exemplo, informe aqui a respectiva variável;
- Campo: Nome do(s) campo(s) que trarão os dados da consulta. Deve ser preenchido manualmente. Ex.: se você tem as colunas NOME, EMAIL e TELEFONE em uma grade, devem ser informados aqui NOME, EMAIL e TELEFONE, separadamente;
- Variável destino: Variável que irá armazenar os valores trazidos dos campos previamente informados.
Exemplo:
Vamos realizar um exemplo onde utilizamos uma estrutura para carregar os dados para uma grade, retornar o valor desses dados para as variáveis e em seguida inserir em uma tabela personalizada.
Eventos utilizados:
- Estrutura de repetição - Carregar
- Estrutura condicional - Inicio
- Estrutura de repetição - Retorna valor
- Registro banco dados - SQL - Executar
- Estrutura condicional - Fim
Inicialmente vamos começar a criar nossa tabela personalizada.
Pode ser mudado o nome ou os campos posteriormente, mas para nosso exemplo vamos utilizar dessa forma. Crie um conector do tipo "SQL" e marque a opção "comando" para poder criar a tabela conforme instrução SQL abaixo, ou acesse uma ferramenta de banco de dados.
CREATE TABLE PEX_USUARIO (
IDUSUARIO INTEGER,
USERNAME VARCHAR (150),
INATIVO VARCHAR (1));
Agora, Iremos criar o nosso processo BPM. Vamos começar com a criação das variáveis que iremos precisar para vincular aos eventos. Acesse a aba "Variáveis" e crie conforme tabela abaixo:
Descrição: | Tipo: |
/*G_DADOS*/ | Grade de dados |
/*IDUSUARIO*/ | Inteiro |
/*INATIVO*/ | Texto |
/*USER*/ | Texto |
Depois de criada as variáveis acima, crie uma atividade manual com um formulário de grade, vinculando nossa variável criada mais cedo.
É importa a criação das colunas da grade. Elas deve ter o NOME igual ao que será carregado pelo evento de carregar grade. Faça como na imagem:
Salve o que já foi criado e agora iremos para os eventos, a parte mais importante deste exemplo:
Evento 1:
- Estrutura de repetição - Carregar
Este evento é o responsável por buscar os dados da tabela de usuários e carregar a nossa grade. Note que ele está com o momento da execução ao entrar, ou seja, quando o usuário abrir o processo para colaboração já estará populado na grade os usuários.
No SQL de consulta:
SELECT IDUSUARIO,
USERNAME,
INATIVO
FROM USUARIO
Evento 2:
- Estrutura condicional - Inicio
Este evento é responsável por percorrer todos os registros da grade (quando há mais de um). É de extrema importância que este evento esteja com a origem "conjunto de dados" pois é um recurso especifico para grade de dados. Ele irá percorrer todos os dados que estiverem populados na variável de grade vinculada no campo "Variável origem".
Neste caso, estamos deixando ao sair pois nossa grade é editável, ou seja, o usuário pode mudar os dados apresentados.
Evento 3:
- Estrutura de repetição - Retorna valor
Existe uma razão para qual este evento está abaixo do evento de percorrer a grade, pois depois de percorrer um registro, ele irá passar para o evento de retorna valor, onde esse valor atual será populado em uma variável. Ou seja, a variável destino do evento irá receber o valor atual daquela linha em especifico.
** Atenção: A variável que guarda o USERNAME não pode ser nomeada como /*USERNAME*/ pois esta é a descrição de uma outra variável do sistema e pode ocorrer conflito. Por este motivo, deixamos como /*USER*/
Evento 4:
- Registro banco dados - SQL - Executar
Logo depois que o registro atual é retornado para a variável, nós inserimos esse valor na tabela. Depois que esse INSERT é feito e a estrutura terminar para o registro, ela irá começar novamente, onde o sistema passará para o registro posterior, linha por linha. É de fato uma estrutura de repetição, onde cada linha da grade é lida, passada para a variável e incrementada na nossa tabela personalizada.
** Atenção: Repare que no INSERT temos a opção "comando" marcada e as variáveis do tipo INTEIRO tem um zero (0) na frente, enquanto que as variáveis do tipo TEXTO estão entre aspas. Siga essas instruções para que o INSERT seja bem sucedido.
Evento 5:
- Estrutura condicional - Fim
Com isso fechamos nossa estrutura de repetição para a grade.
Confira todos os dados criados e em seguida feche e salve o processo. Teste no portal e faça a consulta no LOG e banco de dados para verificar se o INSERT foi bem sucedido.
Lembre-se que este é apenas um exemplo, depois de criado, pode ser mudado/alterado os dados, tabela e eventos da forma que for a sua necessidade. Pode também baixar o processo em anexo deste tópico, só não esqueça da criação da tabela personalizada, ou se necessário, alterar os dados conforme achar melhor.
Arquivo XML
Ler Tag/Atributo
Evento Ler Tag/Atributo é utilizado para quando é necessário fazer a leitura de informações a partir de um arquivo do tipo XML. É aqui que campos de determinado XML podem ser lidos pelo sistema, retornando seu valor para uma variável.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável arquivo: variável armazenando o XML a ser lido pelo evento;
- Campo: campo que será lido do XML;
- Tipo: duas opções: Tag ou Atributo.
- Tag: se será lida a tag como um todo;
- Atributo: se será lido apenas o atributo de uma tag;
- Variável destino: variável que irá armazenar as informações retornadas pelo evento;
Ler Tag/Atributo - Repetição
Este evento é utilizado para caso onde devem ser lidos tags ou atributos de tags que contenham repetição dentro de um xml.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável XML: variável armazenando o XML a ser lido pelo evento;
- Tag repetição: aqui será informado o nome da tag de repetição que deve ser lida;
- Nome tabela: nome da tabela que será criada para armazenar as informações quando executado o evento;
- Limpar dados da tabela antes da leitura do arquivo: se marcado, irá limpar a tabela de acordo com a opção selecionada no campo abaixo;
- Excluir:
- Todos os registros: irá excluir todos os dados existentes na tabela;
- Somente os registros do processo atual: caso esse evento seja executado mais de uma vez em um processo, alimentando a mesma tabela, irá limpar da mesma somente os registros que foram gerados pela instância em execução.
- Excluir:
- Tag XML: nome das tags existentes dentro da Tag de Repetição informada acima, que serão lidas por esse evento;
- Campo destino: as informações que foram lidas das tags definidas na coluna ao lado serão trazidas para esse campo da tabela, podendo ser consultados posteriormente.
Exemplo de uso:
- Criar processo BPM .
- Na aba "Eventos", selecionar o evento de "Ler tag / Atributo - Repetição".
- Com o XML, é necessário abrir e verificar as tags que se repetem para configurar o evento. Veja:
No evento do DOX, os campos da repetição devem ser informados em "Tag XML". Lembrando que o que for maiúsculo deve ser informado em maiúsculo no evento, e vice-versa.
O "campo destino" será criado na tabela e recebido o valor do XML de acordo.
No log:
Agora, verifique a tabela e veja os valores importados ao XML.
Arquivo JSON
Ler Par
Evento utilizado para quando é necessário fazer a leitura de informações a partir de um arquivo do tipo JSON. Utilize este evento quando é necessário que campos de determinado Arquivo JSON sejam lidos pelo sistema, retornando seu valor para uma variável.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável arquivo: variável que traz o endereço do JSON que será lido pelo evento;
- Nome do par: nome do par com os valores a serem lidos e repassados pelo evento;
- Variável destino: as informações que foram lidas pelos pares definidos na coluna ao lado serão trazidas para essa variável;
Ler Par - Repetição
- Caso o par de dados JSON que precisa ser lido tenha repetição (esteja entre colchetes []), deve-se utilizar esse evento para que esse par de repetição possa ser percorrido e trazido para um campo para que possa ser consultado posteriormente.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Variável arquivo: variável que traz o endereço do JSON que será lido pelo evento;
- Par com repetição: nome do par com repetição que será lido pelo evento;
- Nome tabela: nome da tabela que será criada para armazenar as informações quando executado o evento;
- Limpar dados da tabela antes da leitura do arquivo: se marcado, irá limpar a tabela de acordo com a opção selecionada no campo abaixo;
- Excluir:
- Todos os registros: irá excluir todos os dados existentes na tabela;
- Somente os registros do processo atual: caso esse evento seja executado mais de uma vez em um processo, alimentando a mesma tabela, irá limpar da mesma somente os registros que foram gerados pela instância em execução.
- Excluir:
- Nome do par: nome do par de repetição com os valores a serem lidos e repassados pelo evento;
- Campo destino: as informações que foram lidas pelos pares definidos na coluna ao lado serão trazidas para esse campo da tabela, podendo ser consultados posteriormente.
Senhas
Eventos de "Senhas" estão ligadas diretamente ao recurso de telas de atendimento. Em uma empresa que trabalha com atendimento é necessário ter um procedimento para chamar a próxima senha, chamar a ultima senha, reiniciar senha, de forma a manter o controle e deixar organizado.
Os eventos abaixo geralmente trabalham em conjunto, por isso é interessante ver um exemplo de sua utilização.
** ATENÇÃO: Clique aqui para entender como funcionar os eventos BPM juntamente com a tela de senha de atendimento.
Senha - Chamar próxima senha
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Tela de senha: Variável/conector com valor padrão definido de acordo com o código da Tela de Processo do tipo Senha de Atendimento que será utilizada;
- Senha/Pessoa: Variável/conector trazendo o nome da pessoa que será atendida;
- Guichê/Atendente: Variável/conector que traz o nome do atendente ou em qual guichê será feito o atendimento;
- Código atendente: Variável/conector trazendo o código do atendente;
- Código pessoa: Variável/conector trazendo o código do cliente a ser atendido;
- Observação: Aqui pode ser informado texto ou variáveis trazendo determinados valores para que possa ser gerada uma observação para a senha a ser chamada;
- Cor: Se refere a cor da observação;
- Código ordem: Variável para armazenar a ordenação das senhas que são chamadas;
- Gera senha numérica sequencial: Para gerar um sequencial ordenado de acordo com as senhas que são chamadas;
- Permite puxar atendimento de outros atendentes: Caso marcado, se no formulário o usuário selecione quem fará seu atendimento, e essa pessoa não estiver disponível, outro atendente poderá realizar esse atendimento.
Senhas - Chamar última senha
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Tela de senha: Variável/conector com valor padrão definido de acordo com o código da Tela de Processo do tipo Senha de Atendimento que será utilizada;
- Guichê/Atendente: Variável/conector que traz o nome do atendente ou em qual guichê será feito o atendimento;
- Código atendente: Variável/conector trazendo o código do atendente;
- Observação: Aqui pode ser informado texto ou variáveis trazendo determinados valores para que possa ser gerada uma observação para a senha a ser chamada;
- Cor: Se refere a cor da observação.
Senhas - Reiniciar senha
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Tela de senha: Variável/conector com valor padrão definido de acordo com o código da Tela de Processo do tipo Senha de Atendimento que será utilizada.
Senhas - Reservar senha
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Tela de senha: Variável/conector com valor padrão definido de acordo com o código da Tela de Processo do tipo Senha de Atendimento que será utilizada;
- Data, Hora: Variáveis trazendo data e hora que será realizado o atendimento;
- Senha/Pessoa: Variável/conector trazendo o nome da pessoa que será atendida;
- Código pessoa: Variável/conector trazendo o código do cliente a ser atendido;
- Guichê/Atendente: Variável/conector que traz o nome do atendente ou em qual guichê será feito o atendimento;
- Código atendente: Variável/conector trazendo o código do atendente;
- Observação: Aqui pode ser informado texto ou variáveis trazendo determinados valores para que possa ser gerada uma observação para a senha a ser chamada;
- Cor: Se refere a cor da observação;
- Código ordem: Variável para armazenar a ordenação das senhas que são chamadas.
Eventos do sistema
Verificar horário disponível
Trabalha em conjunto com os eventos "Estrutura Condicional" e "Registrar Evento". Este é utilizado para que antes de realizar a inserção seja verificado se existe ou não horário disponível para data, hora e usuário informados, retornando em uma variável de processo a ser criada as seguintes respostas:
- S caso exista disponibilidade
- N caso data e horário não estejam disponível.
A partir do evento Estrutura Condicional pode ser verificado se registrará o evento ou não com base no retorno da variável.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Para: Variável/conector que traz o usuário responsável pelo evento;
- Modo verificação:
- Data e hora fixas: Pode ser utilizadas as variáveis de processo para a verificação de horário;
- Data Início: Variáveis trazendo data inicial em que será realizado o evento;
- Hora Início: Variável trazendo hora inicial em que o evento será realizando;
- Data Fim: Variável trazendo data final em que será realizado o evento;
- Hora fim: Variável trazendo a hora final em que o evento será realizado;
- Tempo médio: Fará a verificação de acordo com o tempo definido na variável.
- Ex.: se estiver informado 30 (min) fará a verificação partindo de 30 min antes e 30 min depois da data/horário informado pelo usuário.
- Data e hora fixas: Pode ser utilizadas as variáveis de processo para a verificação de horário;
- Disponível: Variável que armazenará o resultado obtido pela verificação. Obrigatoriamente retorna S (para disponível) ou N (para indisponível).
Registrar evento
O agrupador Eventos do Sistema serve para que seja verificada a disponibilidade e feito o registro de um evento no sistema.
Registrar Evento é utilizado para inserir um evento no sistema a partir de informações passadas pelo usuário em colaboração com o processo. Depois, esses eventos inseridos podem ser consultadas com telas de processo do tipo calendário.
Eventos deste tipo são utilizados principalmente em processos comerciais, ou de reserva de sala/carro para que um evento seja registrado/reservado de acordo com os dados de Cliente, Local, Data/Hora, entre outros que são informados.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
Aba Geral
- Data Início: variáveis trazendo data inicial em que será realizado o evento;
- Hora Início: variável trazendo hora inicial em que o evento será realizando;
- Data Fim: variável trazendo data final em que será realizado o evento;
- Hora fim: variável trazendo a hora final em que o evento será realizado;
- Cód. tipo evento: variável que trará o código do tipo de evento que será realizado de acordo com o que for informado pelo usuário na colaboração com o processo;
- Descrição: variável para informar a descrição do evento que será realizado, conforme repassado pelo usuário em colaboração com o processo;
- Local: variável que trará o local onde será realizado o evento, conforme informado pelo usuário em colaboração com o processo;
- Texto para exibição: variável que trará as informações sobre o evento registrado sempre que os usuários passem o mouse sobre ele;
- Cor: cor que será registrada para o evento. Caso não seja informado esse campo na configuração do evento, os eventos registrados obedecerão a cor padrão vinda do tipo de Evento;
Aba Outros
- Lembretes:
- Agendar o dia todo: variável que pode ser configurada retornando um valor S ou N, para que o usuário informe se será um evento de dia todo, ou não;
- Alarme: caso marcado, será exibido um lembrete na tela de acordo com o tempo definido no campo logo ao lado;
- Particular: caso esteja marcado, o evento que será registrado irá aparecer apenas para o usuário criador;
- Usuário: variável/conector que trará o nome de usuário /*USERNAME*/ responsável pelo evento. Obs.: Se o evento não tiver o usuário informado, o mesmo pode ser registrado (na tabela CONTATO_EVENTO) porém não será listado nas telas de processo de calendário no Portal;
- Referências:
- Cód. processo: variável/conector trazendo o cód. da instância em execução. Caso seja necessário rastrear o processo que criou o evento, sugerimos informar a variável com o código do processo, assim o vínculo (CONTATO_EVENTO.IDPROCESSO) será preenchido neste evento, com a possibilidade de colaborar com o processo, caso em aberto, diretamente pela tela de calendário no Portal;
- Código empresa: variável trazendo o código da empresa logada;
- Código Filial: variável trazendo o código da filial logada;
- Código contato: variável/conector informando o contato do cliente que participará do evento que será registrado. Não necessita ser preenchido;
-
- Código origem: para fins de rastreamento do evento caso necessite ser consultado futuramente. Não é um campo obrigatório;
Quer ver um exemplo da utilização desses eventos de sistema? clique aqui
GED
GED - Iniciar revisão
Os eventos "Aprovar publicação", "Aprovar revisão" e "Aprovar exclusão" são utilizados em processos para criarem vínculos com os tipos de documentos. Quando um processo (seja ele de aprovação, revisão ou exclusão) for vinculado a um tipo de documento, o mesmo será iniciado sempre que os usuários adicionarem arquivos ao GED relacionados àquele tipo de documento.
Iniciar revisão é um evento utilizado para que seja iniciada a revisão/edição de um arquivo dentro do GED. Pode ser utilizado com o evento GED - Salvar Arquivo para fazer o upload de um novo arquivo após ter sido iniciada a revisão.
Este evento deve ser utilizado junto com o Aprovar revisão pois depois que iniciar ele e colaborar com a mesma ele deve ser aprovado, caso não seja informado ele ficara no limbo.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Cód. arquivo: variável do tipo inteiro que trará o código do arquivo a ter sua revisão iniciada;
- Motivo: motivo para abrir a revisão/edição do arquivo. Podem ser utilizadas variáveis clicando no botão Assistente (...) ao lado do campo.
Após realizar este processo basta vincular ele ao Tipo de documento que deseja, que se encontra em Organização > Documentos > Tipo de Documentos
Versão homologada: 12.3.0
GED - Salvar Arquivo
Evento utilizado para fazer o upload de um novo arquivo para um arquivo em edição no GED.
Evento utilizado juntamente com um formulário dissertativo e com variável do tipo Anexo - Arquivo, que irá salvar o mesmo no processo e em GED > Documentos > Anexos > Processos
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Tipo execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Cód. arquivo: variável do tipo inteiro que trará o código do arquivo que receberá o upload de um novo arquivo;
- Arquivo: variável do tipo Anexo - Arquivo que trará o novo arquivo a ser assumido no arquivo de código informado acima.
GED - Aprovar revisão
Quando arquivos anexados ao GED precisam de uma aprovação para ser visualizado, existe no DOX Estúdio um evento a qual realiza essa função, para cria-lo basta seguir os passos-a-passos abaixo:
- Primeiramente vamos criar um processo de Aprovação simples para simular a funcionalidade do evento.
- Neste processo, criamos um formulário com um campo dissertativo
- Logo após, criamos o evento que se encontra no agrupador > GED > Aprovar Revisão, muito importante colocar o momento que executa o evento. O correto a se utilizar é Ao Sair, pois caso precise de uma condição para aprovar ou for negada a aprovação, Ao Entrar não iria cair nessas condições, aprovando o mesmo quando abrisse a instância para ser colaborada.
Evento utilizado para aprovar a revisão/edição de arquivos.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Cód. arquivo: podem ser utilizadas duas opções:
- Arquivo que originou o processo: irá aprovar a revisão do arquivo que originou o processo. Isso ocorre de acordo com o Processo de aprovação/revisão que foi vinculado no tipo de documento do arquivo;
- Variável: pode ser utilizada uma variável de processo trazendo o código do arquivo que deseja que seja aprovada a revisão;
- Motivo: motivo para aprovar a revisão/edição do arquivo. Podem ser utilizadas variáveis clicando no botão Assistente (...) ao lado do campo.
Após criar o processo, liberar sua versão para uso e criar um Tipo de Documento que será vinculado no GED ao arquivo que deseja importar, em Organização > Documentos > Tipos de documentos.
Pressionando Novo(F2), abrirá Documentos > Tipo de documentos e em Descrição informe o nome do Tipo de Documento e logo após anexe o processo de Aprovar Revisão que foi criado.
GED - Reprovar
Reprova o arquivo que originou o processo. Utilizado apenas em casos onde o Tipo de Documento do arquivo tenha um processo de exclusão, revisão ou publicação vinculado.
Usado com evento condicionais para fazer as devidas validações e assim executar o evento, normalmente utilizado com um múltipla escolha que seria usado para cair na condições de reprovar;
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Motivo: motivo para reprovação do arquivo. Podem ser utilizadas variáveis clicando no botão Assistente (...) ao lado do campo.
Casos de uso: utilize este evento sempre que a validação de determinado documento não seja aprovada, seja ela uma revisão/edição(reprovar revisão), exclusão(reprovar exclusão), ou quaisquer outras aprovações.
GED - Aprovar publicação
Um dos principais eventos do GED que é muito utilizado é o GED - Aprovar publicação, ele é muito importante para que uma pessoa que tenha permissão para inserir um novo arquivo em uma pasta seja revisado e aprovado a publicação, como uma forma de controle. A seguir iremos mostrar passo-a-passo de como realizar esse processo.
Primeiramente vamos criar um processo simples de aprovação, com um campo dissertativa para o usuário preencher o motivo. Em seguida crie o evento GED - Aprovar publicação.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Cód. arquivo: podem ser utilizadas duas opções:
- Arquivo que originou o processo: irá aprovar a publicação do arquivo que originou o processo. Isso ocorre de acordo com o vínculo do processo de aprovação existente no tipo de documento do arquivo;
- Variável: pode ser utilizada uma variável de processo trazendo o código do arquivo que deseja que seja aprovada a publicação;
- Motivo: motivo para aprovar a publicação do arquivo. Podem ser utilizadas variáveis clicando no botão Assistente (...) ao lado do campo.
*** Arquivos cujo Tipo de documento não contenham um processo de Aprovar publicação vinculados serão publicados automaticamente no GED após o usuário ter feito upload.
Após ter criado o processo vamos criar o tipo de documento ou vincular a um existente. Neste exemplo vamos criar um novo, para isso vamos em Organização > Documentos > Tipo de documentos, assim que abrir a tela de tipo de documentos, atualize a página (F5), e se preferir pode anexar o processo de aprovação a um tipo existente ou criar um Novo(F2)
Assim que executados todos estes passos-a-passos no estúdio vamos ao portal e inserir um novo arquivo. Ao inserir o arquivo, selecione o tipo de documento que contém o processo de aprovação pois se não for informado ele será aprovado automaticamente.
GED - Aprovar exclusão
O GED além de conter a funcionalidade de aprovar e revisar os arquivos antes de serem postado, tem também o evento aprovar exclusão após ter o arquivo já inserido. Para realizar este procedimento basta seguir os passos-a-passos que será mostrado.
Para utilizar o evento primeiramente iremos criar um processo simples contendo uma atividade do tipo dissertativa e iremos usar o evento GED > Aprovar Exclusão ( ao Sair);
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Motivo: motivo para reprovação do arquivo. Podem ser utilizadas variáveis clicando no botão Assistente (...) ao lado do campo.
Configurado o evento vamos vincular ele ao Tipo de Documento que se encontra em Organização >Documentos >Tipo de Documentos, após abrir a tela de Tipo de documentos vincule ou criei um Novo(F2).
Logo em seguida, no GED no portal, insira um novo arquivo com o tipo de documento criado ou editado contendo o BPM com o evento de Aprovar Exclusão
Assim que criado, exclua o mesmo clicando sobre ele e ir em excluir e confirme a exclusão.
Assim que confirmar a situação do arquivo, será mudada para Aguardando Exclusão. Logo após basta ir em Processos > Colaborar e colaborar com a instancia em aberto que o BPM enviará o arquivo para lixeira.
GED - Salvar protocolo
O evento GED - Salvar protocolo serve para pegar o protocolo anexado ao processo e salvar na instância. Com isso, além de ser salvo o protocolo no próprio processo ele também ira ser salvo na pasta padrão do Portal : Documentos > Anexos > Processo.
Para utilizar este evento basta ir na aba eventos da atividade que precisa utilizar, o evento se encontra em GED > Salvar Protocolo
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Tipo execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar.
- Tipo documento: Tipo de documento do protocolo que será salvo;
- Protocolo: Protocolo a ser salvo no GED. Caso não informado, buscará o do atividade atual ou processo;
- Documento já existente: Caso o protocolo já esteja salvo no GED, poderá gerar uma nova versão do arquivo ou então criar um novo, de acordo com a opção selecionada;
- Exigir senha ao abrir PDF: Com este parâmetro, ao marcar, irá exibir um campo de variável para salvar a senha do PDF. O tipo da variável deve ser Texto ou Texto Longo e, caso a variável esteja vazia, o protocolo não será gerado.
- Cód. Arquivo: Variável de processo do tipo Inteiro que armazenará o código do arquivo a ser salvo;
- Cód. Versão: Variável de processo do tipo Inteiro que armazenará o código da versão atual do arquivo salvo.
Casos de uso: Utilize este evento quando determinado protocolo de processo precisa ser salvo e adicionado aos anexos de processo para que fique registrado na instância caso seja necessário realizar uma consulta posteriormente.
GED - Criar pasta
Para criar novas pastas o GED via BPM, pode ser utilizado o evento GED - Criar pasta, para isso basta criar o evento que se encontra na aba Eventos de uma atividade, GED > Criar Pasta:
- Descrição: Campo traz por padrão a "descrição do tipo do evento", mas permite edição;
- Tipo execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Cód. pasta pai: Código da pasta pai em que será criada a nova pasta, para que seja criada uma hierarquia. Caso não haja uma pasta pai, pode ser mantido em branco;
- Descrição: Variável que armazenará o nome da pasta a ser criada;
- Cód. pasta: Variável do tipo Inteiro que irá armazenar o código da pasta que será criada.
GED - Exportar documentos
Evento usado para baixar arquivos do GED, salvar como um .ZIP / .RAR e anexar ao processo quando necessário, para realizar este processo basta configurar o evento conforme a imagem abaixo:
- Descrição: Campo traz por padrão a 'descrição do tipo do evento' mas permite edição;
- Momento da execução: Momento em que o evento será executado, Ao entrar, Ao sair da atividade e Ao Anexar;
- Conector de origem: Conector do tipo SQL que irá retornar os arquivos que serão exportados pelo evento. É buscado os arquivos das tabelas GED_ARQUIVOS dentre outras.
- Tipo documento: Campo que informara o tipo de documento cadastrado em Organização > Documentos > Tipos de Documentos;
Quando o processo for executado ele irá salvar um .zip /.rar ao anexos da instancia executada.
GED - Compartilhar
Disponível na versão 12.12.+
Foi criado um evento de sistema "Compartilhar" no agrupamento GED, é utilizando quando deseja-se compartilhar um ou mais arquivos por meio de um processo BPM. Esse evento consiste nos seguintes campos:
- Código dos arquivos: com as opções "Variável", "Conector" e "Anexos do processo", este campo deve conter os códigos (IDARQUIVO) dos arquivos que serão compartilhados;
- Destino: local onde os arquivos serão compartilhados, podendo ser uma pasta cadastrada, um processo ou um local padrão do sistema que permite anexos (pessoa, tarefa, projeto, contato, etc.);
- Cód. pasta de destino: visível apenas se "Destino = Pasta", este campo deve guardar o código (IDPASTA) de uma pasta cadastrada;
- Instância do processo: visível apenas se "Destino = Processo", este campo deve guardar o código (IDPROCESSO) de uma instância de processo;
- Código do destino: visível apenas se "Destino diferente de Pasta e Processo", este campo deve guardar o código de uma pessoa, tarefa, projeto, contato, etc.
- Cód. compartilhamento: variável que vai receber o IDARQUIVOLOCAL gerado pelo compartilhamento.
Para ver um exemplo da utilização deste evento do GED, clique aqui.
GED - Importar arquivo
Evento do sistema disponibilizado no agrupador "GED".
Este evento é responsável por importar um ou mais arquivos do seu computador, e importá-lo em uma pasta cadastrada no GED ou algum local padrão do sistema. Tudo isso por meio de um processo BPM.
Este evento consiste nos seguintes campos:
Entrada:
- Caminho do arquivo: parâmetro para informar o caminho completo do arquivo que vai ser importado;
- Tipo de documento: parâmetro que define o tipo de documento do arquivo que será importado;
- Destino: local onde o arquivo será importado, podendo ser uma pasta cadastrada, um processo ou um local padrão do sistema que permite anexos (pessoa, tarefa, projeto, contato, etc.);
- Cód. pasta de destino: visível apenas se "Destino = Pasta", deve identificar o código (IDPASTA) de uma pasta cadastrada;
- Instância do processo: visível apenas se "Destino = Processo", deve identificar o código (IDPROCESSO) de uma instância de processo;
- Código do destino: visível apenas se "Destino diferente de Pasta e Processo", deve identificar o código de uma pessoa, tarefa, projeto, contato, etc.
- Arquivo existente: define o que fazer caso já exista um arquivo com o mesmo nome e extensão no destino informado ("Não importar", "Criar um novo documento", "Criar nova versão" ou "Gerar exceção").
Saída:
- Cód. arquivo importado: variável que vai receber o IDARQUIVO do arquivo importado.
Na tela de cadastro de eventos do processo, foi disponibilizado o modelo "Importar arquivos". Ao usar esse modelo, será sugerida uma sequência de eventos para aplicação de dois eventos do sistema (Carregar lista de arquivos e pastas e importar arquivo ), onde carrega uma lista de arquivos e a percorre, fazendo a importação dos mesmos.
Para ver um exemplo da utilização deste evento do GED, clique aqui.
Web Service
Web Service - Requisição
Evento utilizado para quando é necessário trazer informações de determinados serviços na web.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Momento da execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Serviço: conector do tipo Webservice trazendo a conexão com o serviço que será utilizado no evento;
- Recurso: recurso que será utilizado para leitura de informações;
- Método: podem ser selecionadas as seguintes opções;
- Get: utilizado quando o evento irá retornar informações;
- Post: utilizado quando devem ser inseridas informações;
- Grade: nesse campo do tipo grade poderão ser informados parâmetros, caso os mesmos existam no webservice;
- Tipo: local onde será passado o parâmetro, podendo ser Header, Cookie, Get/Post, Url-Segment, Body;
- Nome: nome do parâmetro;
-
- Valor: valor que deve ser passado como parâmetro;
- Corpo da requisição: disponível apenas quando o Método for Post. Aqui deve ser informado o corpo da requisição que será passada ao webservice;
- Tipo corpo: tipo de conteúdo que será retornado pelo evento, abrangendo: application/atom+xml, application/json, application/xml, application/x-www-form-urlencoded e text/html;
- Armazenar resposta em: variável do tipo Anexo - Arquivo que irá armazenar o retorno feito pelo evento Webservice;
- Armazenar exceção em: caso seja gerada alguma falha na conexão com o webservice, a mensagem de retorno dessa falha será armazenada na variável que for configurada nesse campo.
Marcadores
Marcadores - Adicionar marcador
O agrupador "Marcadores" é utilizado para que sejam adicionados marcadores (tags) aos processos para que possam ser identificados mais facilmente na tela de colaboração. O evento "Adicionar marcador" é utilizado para adicionar determinado marcador a um processo.
- Descrição: Campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Tipo execução: Define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Código do processo: Variável que trará o código do processo em que o marcador será inserido. Se mantido em branco adicionará no processo em execução;
- Marcador: Variável de valor pré-definido trazendo o código do marcador a ser adicionado.
Para um cadastro prévio dos marcadores pelo estúdio, acesse Processo> Marcadores
Ali você pode adicionar a descrição do marcador e a cor desejada.
Marcadores - Remover marcador
Evento utilizado para remover determinado marcador de um processo.
- Descrição: campo traz por padrão a ‘descrição do tipo do evento’, mas permite edição;
- Tipo execução: define o momento em que o evento vai ser executado: Ao entrar, Ao sair da atividade, ou Ao anexar;
- Código do processo: variável que trará o código do processo em que o marcador será removido. Se mantido em branco removerá do processo em execução;
- Marcador: variável de valor pré-definido trazendo o código do marcador a ser removido.
Momento da execução
No sistema DOX, os eventos de sistema são executados em quatro momentos:
- Ao entrar na atividade
- Ao sair da atividade
- Ao anexar na atividade
- Ao comentar na atividade: Este sendo implementado na versão 18.2.0.626.
Ao entrar
Os eventos configurados 'Ao entrar na atividade' serão executados antes do usuário acessar a tela com formulários. É a primeira coisa executada (sem não houver PEX / JEX ao entrar na atividade) ao acessar a atividade.
- Ex: Um evento de 'Definir valor variável' que atribui um valor para uma variável presente em um formulário:
No portal o usuário só verá o resultado da execução do evento
No LOG:
Ao sair
Ao contrário do momento 'Ao entrar', os eventos 'Ao sair' são executados quando o usuário clica em 'Próximo' para sair da atividade atual e prosseguir com o processo. Também são execuções que o usuário não acessa.
Em caso de atividades automáticas, assim como os eventos ao entrar, os eventos ao sair são executados rapidamente.
Ao anexar
Em desenvolvimento
Ao comentar
Na versão 18.2.0.626 foi disponibilizado a opção 'Ao comentar'. Esse evento será iniciado quando o usuário incluir um comentário no processo em execução.
Primeiramente, deve-se estar parametrizado para permitir incluir comentário em Atividades > Aba 'Opções de colaboração'
E ao criar o evento, levar em consideração que existem alguns eventos que não executam 'Ao comentar':
- Finalizar processo atual
- Cancelar processo atual
- Adicionar comentário
- Agendamento / Temporizador