*&---------------------------------------------------------------------*
* Eaiii pessoal tudo bão ? Seguinte hoje eu vim renovar um post antigo do
* Mauro(Mestre ABAPssauro) do nosso coração, e o respectivo post é o do
* translate upper/ to lower case. A gente gosta de coisa vintage mas não da
* para ficar usando velharia em código moderno meus jovens, bora fazer
* aquela moral com o Senior e colocar as nossas queridas built-in functions
* na jogada !!
* Então vamo lá a premissa é a mesma, "Felipão estou controlando um parametro
* de entrada direto por uma variavel porém se ela não for maíuscula/minúscula
* vou ter vários problemas para cair nos meus CASES/WHEN/SWITCHS, o que
* fazer ? " Não temas, como o Mauro ja nos ensinou no passado, temos os
* comandos do TRANSLATE, se quiser saber mais da uma olhada nesse link
* abaixo:
TRANSLATE ... TO LOWER / UPPER CASE e USING
* Porem chegou a hora de modernizar a parada e trazer uma cara mais atual
* ao seu código abap.
REPORT ZFELIPE_UPPER_TO_LOWER_V2.
* Primeiro vamos criar uma variavel de texto digamos que ela será usada para
* controlar uma maquina de refrigerante. E meus cases utilizam tudo em Upper
* Case.
DATA(saboor_refrigerante) = |laranja|.
* Agora preciso convertela para upper case de forma rápida.Criarei mais uma
* variável para manter um fluxo mais visível para que voce possa visualizar
* depois.
DATA(saboor_maisculo) = to_upper( saboor_refrigerante ).
WRITE: saboor_maisculo.
* Viu só nem doeu, "Aaaa Felipe o outro tambem era só uma linha pra que vou
* usar assim ? " Agora que te explico jovem, esse carinha você pode usar
* de maneira mais dinâmica e durante execuções de outros comandos.
* Exemplo:
* vou criar uma tabela simples apenas para demonstrar e claro vamos deixar
* nossa sintaxe cada vez mais moderna.
data(tabela_de_sabores) = VALUE string_table( ( |uva| )
( |cola| )
( |limao| ) ).
* Caso não esteja acostumado a criar tabelas assim, elas vieram com abap
* 7.5+ voce passa o VALUE e o tipo da tabela/estrutura e dentro
* dela preencherá as colunas e linhas com o que deseja, faremos um post
* mais detalhado logo logo , mas ja falo isso salva muito tempo em teste
* hahah.
LOOP AT tabela_de_sabores INTO DATA(sabor).
WRITE: /, to_upper( sabor ). "Lembre de respeitar o espaço dentro dos
"parenteses.
ENDLOOP.
* viu ? não precisei colocar o translate, criar uma variável e por fim
* escrever o valor na tela, aqui fazemos tudo ao vivo e a cores
* "Tabeleza Felipão agora vi que da para usar o upper mas e o lower ? Mesma
* lógica rapaziada, apenas o nome muda usaremos o to_lower( ).
DATA(tabela_de_sabores_em_upper) = VALUE string_table( ( |GUARANA| )
( |ABACAXI| )
( |FRAMBOESA| ) ).
LOOP AT tabela_de_sabores INTO DATA(saboor).
WRITE: / , to_lower( saboor ). "Lembre de respeitar o espaço dentro dos
"parenteses e as piadas.
ENDLOOP.
* "OKAYYY mas e o translate using que substituia as parada?" Então pessoal
* esse carinha não tem um substituto 1:1 mas a função não morreu calma,
* vamos usar um cara que vou apresentar aqui e focar mais em outro post.
* Esse cara é o replace( ) na tradução clara ja diz ele vai subtituir o valor
* por outro, e como usar ele é bem simples.
DATA(linha_toda_errada) = |betete|.
DATA(linha_certa) = replace( val = linha_toda_errada "origem
sub = |e| " valor a ser substituído
with = |a| " valor a ser inserido
occ = 0 ). " occ é a ocorrencia
WRITE: /, linha_certa.
* Seguinte galera essa é versão 2.0 do uso do translate e ai ? o que acharam
* nos digam ai nos comentários, digam se faz sentido essa "inovação" da SAP
* e quais outros exemplos de uso existem para esses caras
*
* Um abraço pessoal, bebam água e comam frutas !! tmj.
quarta-feira, 15 de abril de 2026
TRANSLATE 2.0 - Traduzindo velhos hábitos (ABAP 7.4+)
Assinar:
Postar comentários (Atom)