Show de bola vini! é dificil achar um curso completinho sobre abap! obrigado por compartilhar!
@mundoabapАй бұрын
Estamos juntos Madness!
@adrielrodrigues5952 Жыл бұрын
Muito bom!
@robertofarias154511 күн бұрын
Bom dia! Pelo que entendi o evento AT SELECTION-SCREEN é executado após alguma ação na tela ou em um campo específico - nesse caso precisamos informar qual o campo por meio da expressão ON meu_campo. AT SELECTION-SCREEN ON sel_opt1. MESSAGE i888 WITH 'AT SELECTION-SCREEN' 'ON SEL_OPT1'. AT SELECTION-SCREEN ON END OF sel_opt1. MESSAGE i888 WITH 'AT SELECTION-SCREEN' 'ON END OF SEL_OPT1'. Qual seria a diferença entre esses dois eventos acima? Pra mim ambos serão executados after input. Não entendi a construção ON END OF. Desde já agradeço.
@mundoabap11 күн бұрын
Boa tarde Roberto, Tem uma questão respondida na SCN com exatamente essa dúvida, segue link "I want to know the exact difference between AT SELECTION-SCREEN ON field and AT SELECTION-SCREEN ON END OF field" community.sap.com/t5/application-development-discussions/at-selection-screen-on-end-of-field/m-p/1540348 Se preferir, tem a explicação oficial da SAP help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abapat_selection-screen_events.htm#!ABAP_ALTERNATIVE_1@1@ ABAPZombie Guide to ABAP - Parte 13 - AT SELECTION-SCREEN www.abapzombie.com/2011/02/22/abapzombie-guide-to-abap-parte-13-at-selection-screen/ Acredito que a melhor forma de entender, é criar um report de exemplo e colocar um breakpoint no evento. Ai você vai mexendo na tela, chamando o match code, preenchendo os filtros, excluindo filtro etc, até passar no evento, assim ficará mais claro em qual momento, o evento é chamado.
@jrvsalum Жыл бұрын
Vinicius, que doidera o evento ao teclar ENTER. Com um ENTER no campo sel_opt1, disparou os eventos (do ENTER) dos outros campos. Programo em algumas linguagens e isso não acontece. Como controlar para disparar somente o evento do campo em que se deu o ENTER?
@mundoabap Жыл бұрын
Boa noite @jrvsalum, Vai se acostumando com ABAP hehehehe. A maioria das outras linguagens é tudo bem mais organizado e funciona muito melhor que ABAP, ABAP tem esse problema, a SAP não te dá muitas opções igual as outras linguagens. Esse comportamento infelizmente é normal, o que você pode fazer se quiser chamar um código específico para um campo com ENTER é usar field exit, tem um vídeo no canal sobre kzbin.info/www/bejne/b6nId6qsfstgg5Y&ab_channel=MundoABAP Outra opção, é criar uma variável auxiliar para cada campo da tela de seleção e ao passar no evento, você compara o valor antigo com o atual, caso seja diferente, então o campo foi alterado. Segue exemplo: REPORT ZTESTE. DATA: ld_nome1 TYPE char10. DATA: ld_nome2 TYPE char10. SELECTION-SCREEN BEGIN OF BLOCK main. PARAMETERS p_nome1 TYPE char10. PARAMETERS p_nome2 TYPE char10. SELECTION-SCREEN END OF BLOCK main. AT SELECTION-SCREEN. IF p_nome1 ld_nome1. MESSAGE 'Nome1 alterado!' TYPE 'I'. ENDIF. IF p_nome2 ld_nome2. MESSAGE 'Nome2 alterado!' TYPE 'I'. ENDIF. ld_nome1 = p_nome1. ld_nome2 = p_nome2.
@Patrick.slider8 ай бұрын
O meu não esta dando esse POPUP que abre na sua tela... da apenas a mensagem em baixo , o que posso fazer ?
@mundoabap8 ай бұрын
Boa tarde Patrick, Esse popup só aparece se a mensagem for de "Informação" tipo "I". No meu ambiente, a instrução que esta dando a mensagem é essa MESSAGE i888 WITH ... Como esta no seu caso?
@Patrick.slider8 ай бұрын
Perfeito, consegui... como eu olhei a aula de mensagem, eu confundi um pouco, mas agora fez total sentido e consegui, gratidão... @@mundoabap
@Patrick.slider8 ай бұрын
Porem outra duvida, eu vi que o seu MESSAGE-ID ele esta como sabaodemos no topo... o meu esta aparecendo a função que eu cadastrei anteriormente na informação,porem sem ele fica errado o codigo, como posso fazer pra ele funcionar corretamente ? @@mundoabap
@mundoabap8 ай бұрын
@@Patrick.slider Há várias formas de você usar as mensagem, fiz um report para você entender melhor, executa no seu ambiente. Se você não especificar a classe de mensagem na própria mensagem, você é obrigado a especificar lá em cima no report, no MESSAGE-ID. É claro que você também pode emitir uma mensagem sem uma classe de mensagem criada na SE91, porém a classe de mensagem tem uma série de vantagens: - É mais fácil localizar quando você tem uma situação de erro por exemplo, no debug, você pode colocar a classe da mensagem e o número - Suporta tradução para outros idiomas - Suporta documentação - Suporta variáveis - Permite usar a ferramenta "Lista de utilizações" REPORT ZTESTE MESSAGE-ID SABAPDEMOS. MESSAGE 'Teste1' TYPE 'I'. MESSAGE i888 WITH 'Teste2'. " Obrigatório ter MESSAGE-ID no Report! MESSAGE i888(SABAPDEMOS) WITH 'Teste3'. MESSAGE ID 'SABAPDEMOS' TYPE 'I' NUMBER 888 WITH 'Teste4'.