Usar & em textos de SAPScript
Imagina que queres mostrar um url num formulário. Colocas o url no texto do formulário e partes do princípio que tudo correrá bem. Porque, de facto, geralmente tudo corre bem. Só que às vezes…
Doença
Se experimentares usar este url:
https://era.uma.vez?ums=mulher&com=cara&de=bolacha
No formulário vai aparecer isto:
https://era.uma.vez?ums=mulherde=bolacha
Estranho, não é? Pois.
Diagnóstico
Não é nada óbvio mas o problema é que as variáveis em SAPScript estão balizadas por &:
O meu nome é &SY-UNAME&.
O SAPScript olha para aquele url e vê lá a variável &com=cara&
no meio e substitui-a pelo seu conteúdo. Mas como esta variável não é variável nenhuma, o seu conteúdo não é coisa nenhuma também. E o resultado é que a falsa variável e os dois & desaparecem sem deixar rasto.
Tratamento
A solução é garantir que o SAPScript sabe que aqueles & são mesmo &. E para isso é preciso usar esta sequência de escape:
<(>&<)>
É estranho? É. Funciona? Funciona. Não pentes mais nisso. Toma nota e segue viagem.
Portanto, o url lá de cima deverá ficar assim:
https://era.uma.vez?ums=mulher<(>&<)>com=cara<(>&<)>de=bolacha
Problema resolvido.
Obrigado David Ralo!
O Abapinho saúda-vos.