Tobias Hofmann

ago 28 2024

Cenário 

A partir do seu sistema S/4HANA, você acessa o SAP webgui (SAP GUI para HTML).

A partir daí, você pode iniciar uma transação inserindo seu código no campo de código OK. Caso você não saiba o código da transação, o campo de entrada oferece uma busca assistida. Isso funciona bem para as transações usuais, como CV04N. Insira parte do nome da transação, selecione a transação na lista de resultados, pressione Enter e comece a trabalhar com a transação. Vamos pegar como exemplo uma transação com um namespace, como o designer de temas UI5: /UI5/THEME_DESIGNER.

Problema: 

Insira “theme” no campo de entrada e uma lista de códigos de transação correspondentes será exibida, incluindo: /UI5/THEME_DESIGNER.

Selecionar a entrada da lista coloca o valor no campo de entrada.

Ao pressionar Enter, você esperaria que a transação fosse iniciada.

No entanto, o resultado é um erro: não, você não pode fazer isso.

Solução: 

Adicione /n na frente do código da transação que você obteve na lista suspensa: /n/UI5/THEME_DESIGNER.

Voilà: agora está funcionando.

Iniciar uma transação deveria ser simples.
Talvez isso aconteça apenas porque a transação do theme designer inicia um aplicativo web? Vamos tentar com o aplicativo de temas do Personas. Selecionando o código de transação /PERSONAS/THEME na lista suspensa e pressionando Enter

Mesmo resultado:

Mesma solução alternativa: adicionar /n (/n/PERSONAS/THEME) inicia a transação.

Causa raiz
De certa forma, eu esperaria que, ao selecionar um código de transação da lista suspensa, esse fosse o valor necessário. Selecionar na lista -> pressionar Enter -> iniciar a transação. Entendo que, quando o código da transação é inserido manualmente, o SAP pode não saber o que o usuário está fazendo e exigir que um /n ou /o seja adicionado. Mas ao selecionar o valor de uma lista de transações? De uma lista claramente destinada a ajudar o usuário? O que o SAP espera que eu faça com o resultado selecionado? Não executá-lo?

Solução melhor
O SAP espera que seus usuários ajustem os códigos de transação sugeridos? Qual é o valor da lista de resultados da busca se não pode ser usada para todos os resultados? Esse é o comportamento pretendido? Por que não adicionar /n ou /o por padrão para transações que não podem ser iniciadas diretamente? Ter um tile para cada possível transação parece uma opção, mas isso não é viável para todos os usuários ou cenários. Por que não oferecer uma melhor experiência de usuário e permitir que as transações sejam executadas ao selecionar seu código na lista de resultados da busca? Independentemente de haver ou não um namespace incluído. Um usuário final não deveria se preocupar com isso. Procurar um valor, selecioná-lo, isso deveria ser o suficiente.

Divulgue isso ao mundo