25019 - Erro tela SGI - "A regra retornou o código de erro 1"
Problema: Ao executar uma tela de SGI, após tratamento de uma ação que está em um evento Ao passar pelo separador da seção chave, o sistema apresenta uma mensagem programada, porém após esta mensagem é colocado uma instrução de CanCel(1) e ocorre um outro erro, não esperado: A regra retornou o código de erro 1. Como tratar este erro para que não seja colocado em tela, fazendo com que o usuário tenha que tomar uma dupla ação?
Rotina / Tela: Tela SGI, utilizando função cancel(1).
Solução: Conforme link abaixo, a função cancel não simula o botão cancelar do formulário e sim a execução da regra. Esta mensagem que está aparecendo é um comportamento do próprio SGI:
Rotina / Tela: Tela SGI, utilizando função cancel(1).
Solução: Conforme link abaixo, a função cancel não simula o botão cancelar do formulário e sim a execução da regra. Esta mensagem que está aparecendo é um comportamento do próprio SGI:
https://documentacao.senior.com.br/tecnologia/6.2.34/index.htm#lsp/sintaxe-de-comandos-e-operadores.htm

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Caso queira dar uma mensagem e em seguida cancelar, deverá ser utilizada função Mensagem no qual exibe uma mensagem para o usuário em tela, onde <tipo da mensagem> podem ser os seguintes:
Retorna - Mostra uma mensagem com os botões especificados entre colchetes. O símbolo & indica tecla de aceleração.
Exemplo.
Definir Numero xErro;
Definir Alfa xMensagem;
IniciarTransacao();
ExecSQLEx ( Insert into R030EMP (<Campos>) values (<valores>), xErro, xMensagem);
Se ( xErro = 0 ) {
ExecSQLEx ( Insert into R034FUN (<campos>) values (<valores>), xErro, xMensagem);
Se (xErro = 0) {
FinalizarTransacao();
Mensagem(Retorna,Sucesso);
}
Senao {
DesfazerTransacao();
Mensagem(Erro,xMensagem);
}
}
Senao {
DesfazerTransacao();
Mensagem(Erro,xMensagem);
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Caso queira dar uma mensagem e em seguida cancelar, deverá ser utilizada função Mensagem no qual exibe uma mensagem para o usuário em tela, onde <tipo da mensagem> podem ser os seguintes:
Retorna - Mostra uma mensagem com os botões especificados entre colchetes. O símbolo & indica tecla de aceleração.
Exemplo.
Definir Numero xErro;
Definir Alfa xMensagem;
IniciarTransacao();
ExecSQLEx ( Insert into R030EMP (<Campos>) values (<valores>), xErro, xMensagem);
Se ( xErro = 0 ) {
ExecSQLEx ( Insert into R034FUN (<campos>) values (<valores>), xErro, xMensagem);
Se (xErro = 0) {
FinalizarTransacao();
Mensagem(Retorna,Sucesso);
}
Senao {
DesfazerTransacao();
Mensagem(Erro,xMensagem);
}
}
Senao {
DesfazerTransacao();
Mensagem(Erro,xMensagem);
}