Olá.
Em comentários a
outra pergunta
, tanto
Sandra Rossi
como
Matthew Billingham
aconselharam contra essa forma, texto-nnn, enquanto aparentemente deveria ser preferido texto(nnn). Isso chamou minha atenção e me deixou perplexo: sempre assumi que a sintaxe mais antiga era texto(nnn) enquanto texto-nnn era mais recente, mas não consegui encontrar nada no ABAPDOCU a esse respeito, de jeito nenhum, talvez porque "texto" é uma palavra-chave horrível para pesquisar.
Então escrevi um programa de teste mínimo em meu ambiente de demonstração 7.52SP04:
WRITE / 'texto traduzível com número no final'(001).
WRITE / 'texto diferente com número no final'(001).
WRITE / TEXTO-002.
WRITE / TEXTO-003.
Nos símbolos de texto tenho as seguintes definições:
Depois revisei a tela de tradução:
(a única tradução possível é de EN para DE neste sistema)
Não importa se a linha com a repetição do número está ativa ou não, em ambos os casos a cadeia não aparece na tela de tradução. Até aqui tudo bem: é preciso clicar duas vezes no número do texto para criar o símbolo correspondente, conforme lembrava.
Clique na primeira linha e TEXTO-001 é criado com "texto traduzível com número no final".
Clique na segunda linha e TEXTO-001 é atualizado com "texto diferente com número no final":
Aqui vem minha pergunta
: como preferir texto(nnn) como forma quando posso escrever um texto diferente com o mesmo número e nunca saber qual é a versão autorizada? Se o código está em um INCLUDE, potencialmente é ainda pior.
Do meu ponto de vista, uma possível vantagem é que você vê o texto no fluxo do programa. Não é ruim, mas, por outro lado, se seu texto tiver que aparecer várias vezes no código, você precisa escrevê-lo literalmente cada vez; se quiser mudá-lo, terá que mudar todas as ocorrências em vez de apenas uma vez na definição dos símbolos, caso contrário se deparará com o problema que criei artificialmente acima.
Aqui está a saída com a versão final do programa: