Todos nós ABP´s principalmente ao DEBUGAR programas STANDARDS já devemos ter visto o código "IF 1 = 2 ..... FAÇA ISSO... ENDIF" e também sabemos que nunca esse código se transformará em verdade. A finalidade principal de tal código é de "manutenção" do programa. Confuso? Leia o seguinte abaixo:
Dependendo do cenário, quando nós emitimos as mensagens no programa usando o comando MESSAGE, ou às vezes podendo ter que chamar o módulo padrão MESSAGE_PREPARE função para preparar toda a mensagem e usá-lo sempre que necessário, ou seja, usando uma lista de mensagens ao invés de apenas uma mensagem que para a execução do programa assim o programa consegue testar todas as mensagens de erro invés de uma por vez e a exibe em uma lista.
CALL FUNCTION 'MESSAGE_PREPARE'
EXPORTING
msg_id = msg_id
msg_no = msg_no
MSG_VAR1 = sy-msgv1
MSG_VAR2 = sy-msgv2
MSG_VAR3 = sy-msgv3
MSG_VAR4 = sy-msgv4
IMPORTING
MSG_TEXT = tdoc-text
EXCEPTIONS
FUNCTION_NOT_COMPLETED = 1
MESSAGE_NOT_FOUND = 2
OTHERS = 3.
Suponha que nós definimos a classe de mensagem personalizada para a emissão das mensagens. Se temos de modificar certa mensagem nesta classe de mensagem, precisamos primeiro verificar a lista onde será usado a mensagem para estudar o impacto da mudança de mensagem. Se a mensagem é emitida usando a declaração mensagem em qualquer programa, em seguida, que o programa seria exibido na lista onde utilizado. Mas se a mensagem for usado no programa usando o MESSAGE_PREPARE FM ou de qualquer módulo de função similar, então este programa não ira aparecer na lista, onde utilizado. Portanto, a fim de ter este programa incluir na lista onde utilizada, teríamos o seguinte código após a chamada para o MESSAGE_PREPARE módulo de função.
IF 1 = 2.
MESSAGE E003 (xx).
ENDIF.
"IF 1 = 2" nunca será verdadeiro, a mensagem nunca iria desencadear no programa e este programa seria exibido na lista onde será utilizada a mensagem.
2 comentários:
Parabéns pelo primeiro aniversário do Site Abap Recife. Um lugar para aprender e ensinar através do compartilhamento do conhecimento.
Ademir Barbosa
Aquele que não compartilha seu conhecimento, deixa morrer consigo os frutos de sua sabedoria.
Hélcio Macedo.
Postar um comentário