Alertas em janelas abertas fora do SIGAADV

Boa tarde!

Estou com uma dúvida quanto ao uso de alertas (MsgInfo, MsgAlert, etc) em programas que não são chamadas dentro do SIGAADV/Protheus.

Estou montando uma rotina que é chamada diretamente pelo SmartClient, essa rotina possui algumas telas onde o usuário pode fazer operações sem logar no sistema (usando apenas o RpcSetEnv). Mas percebi que não estou conseguindo realizar a chamada de nenhuma mensagem de alerta. Ao invés de exibir a mensagem na tela, a mesma é impressa no console.

Tentei criar uma TWindow, mas mesmo assim as mensagens não são exibidas.

Existe alguma forma de forçar a exibição e/ou existe alguma função que exiba a mensagem mesmo estando fora da interface padrão do sistema? A única que consegui fazer funcionar foi a MsgYesNo.

Grato pela atenção.

Giordano,

A função RpcSetEnv foi criada para trabalhar sem interface, por conta disso, diversos componentes deixam de ser exibidos, pois ao chamar essa função o ambiente compreender que será executado em uma thread sem interface.

Verifique a possibilidade de incluir essa rotina no menu, uma sugestão seria utilizar o SIGAESP.


Uma pergunta muito semelhante foi feita há pouco tempo: https://forum.totvs.io/t/funcao-apmsgalert-nao-exibe-para-o-usuario/16522

Já tentou o uso da função Help() ? Talvez ela possa funcionar.

Quando executo programas por fora do SIGAADV, principalmente para fazer testes, uso a função MessageBox. Mesmo executando por fora com essa função funciona.

https://tdn.totvs.com/display/tec/MessageBox

Obrigado pelo retorno Rodrigo, tenho uma dúvida sobre qual Include é usado para que não use Defines em casa fonte.

Opa ! Fico feliz em ajudar ! Tenho rotinas usando RWMAKE.CH, PROTHEUS.CH e TOTVS.CH. Em todos os casos funciona.