Bloqueios inteligentes
Quando utilizada a supressão de bloqueios já liberados, existem algumas restrições:
-
Caso a mensagem seja minimamente alterada, o bloqueio volta a ser exibido.
-
Exemplo: o bloqueio de "Limite de crédito" foi aplicado para uma venda que excedeu o limite de crédito do cliente em R$ 100,00. Esse pedido foi alterado, diminuindo seu valor, então o limite foi excedido em R$ 50,00. Como o valor superado do limite mudou, a mensagem mudou, e então o bloqueio será reaplicado (mesmo que o cenário atual seja melhor que o último já liberado).
-
Como a busca da liberação ocorre a partir do histórico de liberações, bloqueios que possam ser aplicados de múltiplas formas para a mesma entidade podem não ter o comportamento deseja.
-
Exemplo: o bloqueio de "Falta de Estoque Livre" é aplicado sobre o item do pedido, mas a liberação poderá ser feita sobre o pedido inteiro, então não impedirá que a mensagem volte a ser exibida quando analisado apenas um item.
Solução
Os Bloqueios inteligentes foram criados para contornar essas restrições. Eles seguem a mesma ideia: analisam o histórico de liberação para ver se pode considerar o bloqueio como já liberado previamente. Mas permitem que os dados sejam processados de uma forma mais coerente.
Vamos tomar como exemplo o bloqueio de "Limite de crédito", citado anteriormente. Ao realizar a primeira liberação, é guardado o valor superado do limite de crédito (R$ 100,00). Ao reaplicar o bloqueio, será verificado que valor superado (R$ 50,00) é menor que o valor superado anteriormente (já liberado) e não reaplicará o bloqueio. Se fosse modificada a venda para um valor maior (para R$ 200,00, digamos), o bloqueio voltaria a ser exibido.
Configuração
Para determinar a forma como se dará essa comparação entre os valores, utiliza-se um modelo de expressão. Ele é configurado junto do bloqueio, na empresa, e permite que o usuário modifique a regra como melhor entender.
A expressão configurada será executada no momento de aplicação do bloqueio, que será reaplicado ou não conforme retornado.
Por exemplo, o bloqueio de Limite de Crédito será aplicado quando excedeu o limite de crédito. Logo, ao refazer o teste, irá identificar o valor excedido do limite atualmente e na última liberação. Caberá à expressão verificar se o valor excedido do limite atual é menor ou igual ao valor anterior, para indicar que não deve bloquear.
Portanto, a expressão criada é a seguinte:

Dessa forma, caso o valor superado atualmente seja menor ou igual, retorna que não deve bloquear e o SIGER® ignora o bloqueio.
Nem todos bloqueios possuem essa possibilidade de configuração.