Disparar ENTER pelo programa | ABAP Warrior

Disparar ENTER pelo programa

Tecla ENTER
E se fosse possível simular o pressionamento de um ENTER, para tratar alguma situação específica, ao invés de ficar esperando o usuário pressioná-lo???

Na verdade é possível. Não só é possível como também é muito útil, simples, e fácil. Além de disparar um ENTER também é possível disparar qualquer CODE de seu STATUS GUI e tratá-lo nos eventos de INPUT e OUTPUT.
Apenas com a chamada de uma função...


Recentemente passei por uma situação bem específica. Fiz um programa com uma particularidade no preenchimento dos campos da tela inicial. Quando o usuário preenche uma série de campos, algumas informações são validadas e depois alguns campos são desabilitados para que o usuário não modifique mais as entradas.




Esse mesmo programa citado também pode ser chamado a partir de outro programa com algumas entradas já preenchidas. Neste caso a validação e desabilitação dos campos não funcionava por si só. Para funcionar era necessário que alguém pressionasse um ENTER.

Mas era estranho ter que pedir para o usuário. "Olha, depois que você preencher os dados na tela, você pode dar mais um ENTER, por favor???" rsrsrs. Então pensei que pudesse existir alguma funcionalidade que disparasse o pressionamento de um ENTER como se fosse o usuário.

Foi então que conheci a função SAPGUI_SET_FUNCTIONCODE.
Essa função pode disparar qualquer CODE que você precise. Para disparar um ENTER basta passar o sinal de igual para o parâmetro FUNCTIONCODE da função. Veja exemplo abaixo.

CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
  EXPORTING
    functioncode           = '='
  EXCEPTIONS
    function_not_supported = 1
    OTHERS                 = 2.


Fiz alguns testes, e todos os CODES disparados pela função funcionaram perfeitamente. Para disparar um CODE, informe-o no parâmetro FUNCTIONCODE.

Outro detalhe que pude perceber nos testes é que nos programas do tipo REPORT a função não funciona muito bem nas seções START-OF-SELECTION e END-OF-SELECTION. Já nos programas do tipo MODULE POOL a função funcionou em todos os lugares.


Se alguém souber mais informações sobre o uso da função SAPGUI_SET_FUNCTIONCODE pode compartilhar aqui na página.
Um grande abraço e até a próxima.
2016-03-15T23:07:00-03:00 2017-04-15T00:53:12Z
Nenhum comentário:
Related Posts Plugin for WordPress, Blogger...