Bom dia @josimar.picoloto!
Elaboramos um exemplo de utilização do LPA para abrir uma tarefa recorrente no Workflow.
No nosso exemplo, utilizaremos o Controle de Estoque Mínimo, ou seja, todas as vezes que determinado produto atingir a quantidade mínima de estoque, será aberta uma tarefa para que seja providenciado o seu reabastecimento.
-
O primeiro passo é cadastrar a tarefa no menu LATROMI Workflow → Cadastro → Tipo de Tarefa.
O campo ID será utilizado na função de agendamento do LPA. -
Com a tarefa criada, vamos configurar a automatização no LPA (menu LATROMI → LPA → Agendador de Tarefas). A figura abaixo apresenta a inclusão do agendamento da tarefa.
-
A próxima etapa é o Fluxo de Tarefas. Neste exemplo, vamos utilizar um Comando SQL.
-
Abaixo segue o código SQL utilizado:
DO LANGUAGE plpgsql $BODY$ DECLARE rEstoqueMinimo RECORD; rListaTarefaParametros RECORD; nIdTarefaDiaria INTEGER:= 56; -- ID do Tipo de Tarefa que controla o estoque mínimo BEGIN /* Query para verificar se algum estoque mínimo foi atingido */ FOR rEstoqueMinimo IN SELECT produto.descricao ,produto.quantidadeestoqueminimo ,produto.quantidadesaldoestoque FROM produto WHERE produto.quantidadesaldoestoque < produto.quantidadeestoqueminimo LOOP /* Bucar parâmetros do Tipo de Tarefa */ SELECT INTO rListaTarefaParametros prioridade ,dtlimitealerta ,dtlimiteconclusao ,descricao ,textomensagempadrao ,arrayusuario ,arraygrupousuario FROM workflow.fnc_tarefa_retorna_parametros(nIdTarefaDiaria); /* Chamada da função que gera a tarefa no Painel de Tarefas - Workflow */ SELECT workflow.fnc_listatarefa_incluir( nIdTarefaDiaria::integer, -- ID da tarefa CURRENT_TIMESTAMP, -- data de inclusão rListaTarefaParametros.dtlimiteconclusao, -- data limite de conclusão 'www.latromi.com.br', -- link que direciona o usuário para a tela de execução da tarefa. NULL::TEXT, -- alimenta o campo apontamentopk ('{"Produto":'||TO_JSON(rEstoqueMinimo.descricao::VARCHAR)||' ,"QuantidadeMinima":'||TO_JSON(rEstoqueMinimo.::VARCHAR)||' ,"Numero":'||TO_JSON(pnNumero::VARCHAR)||'}')::json, -- alimenta o campo apontamentopk 'O produto atingiu seu estoque mínimo.'::VARCHAR::text, -- descrição da tarefa rListaTarefaParametros.prioridade, -- prioridade da tarefa rListaTarefaParametros.dtlimitealerta, --data limite para alertar o responsável da tarefa NULL::INTEGER , -- ID do cadastro 'LoginUsuario', -- Login do usuário que incluiu a tarefa NULL::TIMESTAMP, -- data de agendamento inicial NULL::TIMESTAMP, -- data de agendamento final NULL::INTEGER, -- ID da Lista Tarefa Origem. Se aplica nos casos em que ocorre a inclusão de subtarefas NULL::VARCHAR , -- Login do usuário que será o responsável da tarefa NULL::INTEGER -- ID Lista Tarefa Valores ); END LOOP; END; $BODY$
Deste modo, a cada 30 segundos, o LPA irá rodar essa função e verificar se precisa ou não abrir uma nova tarefa. Quando a condição da função for atingida, ou seja, quando a quantidade de estoque atingir o estoque mínimo determinado, vai abrir a tarefa para o setor de Suprimentos.
Para conferir as demais possibilidades de uso do LPA, clique aqui.