sc_error_exit() não aborta processamento onValidate aplicação Controle

Em uma validação no onValidate de uma aplicação Controle, o processo não é abortado ao usar sc_error_exit() após sc_error_message().

if ($valor < 0) {
    sc_rollback_trans();
    sc_error_message("Fechamento em $data não permitido para saldo negativo!");
    sc_error_exit();
}

A documentação fala Nas aplicações de “Formulário e Controle” as mensagens serão apresentadas juntamente com as demais mensagens de erro encontradas na aplicação, exceto se utilizada a macro “sc_erro_exit”. Ou seja, acredito que estamos fazendo certo.

A verificação do saldo está dentro de um foreach, então precisamos que o processo seja interrompido, o que não está ocorrendo.

Código:

Com sc_error_exit();

Sem sc_error_exit();

Tá funcionando corretamente.

Usa o break; para sair dos loops:

if ($valor < 0) {
sc_rollback_trans();
sc_error_message(“Fechamento em $data não permitido para saldo negativo!”);
break;
}

Se não conseguir cola seu foreach inteiro aqui, que tem jeito de colocar uma flag de saída junto.