ERP – Manutenção Remessa/Retorno – Ação SID de movimento de estoque via identificador de regras CHA-900ECMRR01 gera movimento em duplicidade
Incidente
No módulo de Manufatura, ao utilizar uma ação SID de movimento de estoque, através do identificador de regras CHA-900ECMRR01, quando o usuário não informa o lote, o depósito ou a transação, a ação SID é executada gerando um movimento de estoque, se o usuário corrigir as informações da grid e clicar em processar será novamente gerado uma movimentação de estoque de forma indevida.
Clique aqui para acessar a documentação do identificador de regras CHA-900ECMRR01.
Causa
Essa situação ocorre porque o identificador é acionado antes do processamento da tela ser concluído.
O identificador CHA-900ECMRR01 já trabalha dentro de transação, porém a regra faz a atualização de estoque através de ação SID, ou seja, uma vez chamada a ação SID o processo passa a trabalhar fora da transação, o mesmo dando rollback essa parte fica na base.
Verificado que não existe um outro identificador que possa ser usado.
Solução
Seguem algumas sugestões para este assunto:
- Uma sugestão é não chamar diretamente a ação SID na regra, mas na verdade incluir um registro em alguma tabela de usuário, e que depois um processo automático pegue cada linha dessa tabela e faça a chamada da ação SID. Dessa forma, caso a transação sofra rollback, o registro incluído na tabela de usuário seria descartado;
- Na regra, ao invés de chamar diretamente a ação SID (que vai ser executada no servidor pelo Sapiens Server, por isso perde o contexto da transação), é possível executar um webservice localmente (que não é enviado para o servidor, mas sim resolvido sincronamente pela própria instância da máquina), dessa forma seria executado utilizando o contexto da transação, e casa haja rollback as alterações são descartadas.