Conversões de Tipos
📋 Visão Geral
Conversões entre tipos são comuns: números para texto, texto para números, cast entre referências e estruturas. Aqui estão as ferramentas e armadilhas.
CONV e CAST
CONVpara conversões explícitas de valorCASTpara referências e objetos
DATA(lv_num_str) = CONV string( 123 ).
DATA(lv_int) = CONV i( '00123' ).
" CAST
DATA(lo_obj) = CAST ref TO zcl_my_class( lv_ref ).
Conversões de números/decimais
- Use
DECIMAL_SHIFTe tiposppara cálculos financeiros - Evite conversões implícitas que silenciosamente truncam
DATA(lv_amount) = '100,50'.
REPLACE ALL OCCURRENCES OF ',' IN lv_amount WITH '.'.
DATA(lv_dec) = CONV p( lv_amount ).
Strings -> Estruturas
- Use
SPLIT+MOVE-CORRESPONDINGoucl_abap_structdescr - Para CSV, prefira
cl_abap_structdescrou parsing dedicado
JSON / XML
- JSON:
cl_sxml_string_writer/cl_trex_json(dependendo da versão) - XML:
CALL TRANSFORMATIONoucl_xml_document
Exemplo simples JSON → estrutura:
DATA: lv_json TYPE string.
CALL TRANSFORMATION id
SOURCE XML lv_json
RESULT my_struct = DATA(ls_struct).
Boas Práticas
- Valide antes de converter (ex:
IS NUMERIC) - Use
CONVexplicitamente para mostrar intenção - Evite depender de locais (comma vs dot) sem normalizar
Próximos Passos
4_file_handling.md— ficheiros no app/presentation server
Tags: #conversoes #casting #json