STRING no ABAP – Novidades release 7.40
Tempo de leitura: 4 minutos.
‘Antigamente’ uma cadeia de caracteres ou string no ABAP era delimitado por ‘aspas simples’, a partir da versão 7.40 devemos podemos utilizar o chamado pipe ‘|’, mas com um diferencial, agora temos algumas funções agregadas para trabalhar com strings. Caso necessário podemos utilizar as chaves ‘{}’ para ignorar alguma lógica ou tratamento de dados que poderá ser…
- Objeto de dados;
- Expressões calculadas;
- Expressões de construção;
- Expressões de tabela; ou
- Funções predefinidas;
Veja comparativos de utilização de string no ABAP.
DATA:
it_mara TYPE TABLE OF mara,
wa_material LIKE LINE OF it_mara,
output TYPE string.
SELECT * UP TO 10 ROWS
INTO TABLE it_mara
FROM mara .
Antes da versão 7.40:
READ TABLE it_mara INTO wa_material WITH KEY matnr = ‘000000000000066379’.
CONCATENATE ‘Material:’ wa_material–matnr ‘Grupo de mercadoria:’ wa_material–matkl INTO output SEPARATED BY space.
cl_demo_output=>display( output ).
String no ABAP depois da versão 7.40:
*”Não precisamos declarar a Work-Area nem a variável ‘output’ cl_demo_output=>display( |Material: { it_mara[ matnr = ‘000000000060000004’ ]–matnr } Grupo de mercadorias: { it_mara[ matnr = ‘000000000060000004’ ]–matkl }| ).
“No caso acima não é permitido quebra de linha
*”Caso não conheça o READ TABLE utilizado no código acima veja este post.
Concatenar – Antes da versão 7.40:
DATA vl_output TYPE string.
CONCATENATE ‘open’ ‘ABAP’ INTO vl_output.
Concatenar string no ABAP – Depois da versão 7.40:
DATA(vl_output2) = |open| & || & |ABAP|. “Caso não conheça a declaração em linha, veja esse post
Veja novidades de string no ABAP.
Tamanho, alinhamento e preenchimento em string no ABAP – Depois da versão 7.40:
WRITE / |{ ‘Esquerda’ WIDTH = 20 ALIGN = LEFT PAD = ‘0’ }|. “Resultado Esquerda000000000000
WRITE / |{ ‘Centro’ WIDTH = 20 ALIGN = CENTER PAD = ‘0’ }|. “Resultado 0000000Centro0000000
WRITE / |{ ‘Direita’ WIDTH = 20 ALIGN = RIGHT PAD = ‘0’ }|. “Resultado 0000000000000Direita
Condição em string no ABAP – Depois da versão 7.40:
WRITE / |{ ‘Fiél, sem alteraçÃO’ CASE = (cl_abap_format=>c_raw) }|.“Não altera a string
WRITE / |{ ‘maiúsculo’ CASE = (cl_abap_format=>c_upper) }|.“Converte todas as letras em maiúsculas
WRITE / |{ ‘MINÚSCULO’ CASE = (cl_abap_format=>c_lower) }|.“Converte todas as letras em minúsculas
Conversão em string no ABAP – Depois da versão 7.40:
DATA(vl_vbeln) = ‘0000012345’.
WRITE / |{ vl_vbeln ALPHA = OUT }|.
WRITE / |{ vl_vbeln ALPHA = IN }|.
Conversão de datas em string no ABAP – Depois da versão 7.40:
WRITE / |{ syst–datum DATE = ISO }|. “Formato YYYY-MM-DD
WRITE / |{ syst–datum DATE = USER }|. “Utiliza as configurações do usuário
WRITE / |{ syst–datum DATE = ENVIRONMENT }|. “Utiliza as config. do idioma de login/desenvolvimento
Se preferir estudar direto o código, baixe o report exemplo aqui, abra-o, copie, cole e já era. Ou se precisar ‘quebrar’ uma string com quantidade de caracteres definidos, veja esse post e aprenda a quebrar uma string a cada 10 caracteres por exemplo.
Por enquanto são essas as possibilidades que eu descobri, se você conhece mais alguma que não comentei ou quiser conhecer as funcionalidades da classe cl_demo_output deixe um comentário aqui embaixo.
Ouvindo: Território do conhecimento – Mario Sergio Cortella
Abraços,
LNunes.
Ps. Você já visitou nosso Instagram? Vai lá… é @openabap