Configuração de perfil para identificar facilmente mensagens lançadas no CRM WebUI

A área de mensagens do WebUI é a região das aplicações web do SAP mais visualizada pelos usuários deste sistema, por um simples motivo: a maior parte das mensagens, de sucesso, alerta ou erro, que são lançadas aparece nesta área. Quando são mensagens informativas ou de sucesso é um mar de rosas, mas quando são as de alerta ou erro, especialmente as que não são previstas, é que começa o inferno astral do desenvolvedor. Encontrar onde a mensagem é lançada deveria ser um trabalho rápido… Mas náo é.

A interface para lançar mensagens do WebUI, através do método ADD_MESSAGE da classe CL_BSP_WD_MESSAGE_SERVICE não permite que seja rastreada através do Where-Usage, entra na categoria de mensagem lançada de forma dinâmica, mesmo não sendo esta a intenção. É necessário que o desenvolvedor se lembre que ele tem de recorrer a gambiarra truque de, logo acima ou abaixo, inserir um IF/ENDIF nunca executado lançando a mensagem através do commando MESSAGE.

IF 1 EQ 0. MESSAGE e000(R1). ENDIF.

A mensagem pode também ter sido lançada em um ponto obscuro dentro da solução standard que nem a própria SAP pode lembrar que existe. Há o trabalho, também, de procurá-la na tabela T100 para, então, saber qual seu número e a classe de mensagem que ela pertence, e algum tempo pode ser gasto nisso quando há os placeholders (caractere &) e é necessário realizar uma combinação semi-aleatória de asteriscos para achar a entrada na tabela. Todo este trabalho para identificar em qual mensagem deve ser colocado um ponto de parada e então começar a entender o cenário do erro.

“Feliz o desenvolvedor que consegue rapidamente descobrir o erro que o usuário reporta.”

Existe uma configuração de perfil de usuário que facilita a identificação de qual classe e número de mensagem foi utilizado para gerar as mensagens mostradas na parte superior da tela, além dos parâmetros utilizados na mensagem, como mostrado na imagem abaixo:

Exemplo do parâmetro BSPWD_USER_LEVEL em funcionamento, mostrando, ao manter o mouse sobre a mensagem, os detalhes da classe de mensagem, número e valores 1 a 4 que foram usados para gerar a mensagem em tela.

Isto pode ser ativado da tela inicial do SAPLogon, acessando o menu ‘Sistema / Especificações do usuário / Dados próprios’, e então incluir em seu perfil o parâmetro BSPWD_USER_LEVEL com valor igual ou superior a 6. Isto ajuda a não criar falsas expectativas de conseguir localizar exatamente onde a mensagem foi lançada ao ver imediatamente que foi utilizado as mensagens ‘& & & &’.

Esta configuração também possibilita que sejam lançadas, para um mesmo evento, mensagens direcionadas a um segmento específico de usuário, preenchendo no método ADD_MESSAGE (instância da classe CL_BSP_WD_MESSAGE_SERVICE) o parâmetro IV_MSG_LEVEL. Um exemplo é uma execução que depende de dados customizing, e tais dados não foram configurados. Para o usuário final pode-se lançar a mensagem “Não foi possível realizar a execução” e para o funcional mostrar adicionalmente o alerta “A tabela customizing Z(…) não está preenchida”. Todos ficam felizes, especialmente o ABAPer que não terá que parar o desenvolvimento e fazer um debug para ter de gerar provas de sua inocência em um crime que ele não cometeu.

O documento Message handling in SAP CRM Web UI (SAP Community Network) explica um pouco deste parâmetro.