ABAP+71
Informações simples para o dia-a-dia
20240123
Objetos para CDHDR e CDPOS
Tabela TCDOB
Os objetos podem ser identificados pela sua tabela principal.
Ex.:
EKKO --> EINKBELEG
AUFK --> ORDER
20240106
JSON <--> ABAP
METHOD
tamplates_1
.
WRITE
:
/
'*** tamplates_1 - '
.
WRITE
:
/
'*** '
.
WRITE
:
/
'*** JSON --> ABAP'
.
DATA
v_abap_str
TYPE
string
VALUE
'Isto é uma string ABAP'
.
data
(
v_writer
)
=
cl_sxml_string_writer
=>
CREATE
(
type
=
if_sxml
=>
CO_XT_JSON
)
.
CALL
TRANSFORMATION
ID
SOURCE
text
=
v_abap_str
RESULT XML v_writer
.
DATA
(
v_json
)
=
v_writer
->
GET_OUTPUT
(
)
.
cl_demo_output
=>
DISPLAY_JSON
(
v_json
)
.
write
:
/ |
DATA
v_abap_str
TYPE
string
VALUE
'Isto é uma string ABAP'
.
|
.
write
:
/ |
.
|
.
write
:
/ |
data
(
v_writer
)
=
cl_sxml_string_writer
=>
CREATE
(
|
.
write
:
/ |
type
=
if_sxml
=>
CO_XT_JSON |
.
write
:
/ |
)
.
|
.
write
:
/ |
.
|
.
write
:
/ |
CALL
TRANSFORMATION
ID
SOURCE
text
=
v_abap_str |
.
write
:
/ | RESULT XML v_writer
.
|
.
write
:
/ |
.
|
.
write
:
/ |
DATA
(
v_json
)
=
v_writer
->
GET_OUTPUT
(
)
.
|
.
write
:
/ |
.
|
.
write
:
/ | cl_demo_output
=>
DISPLAY_JSON
(
v_json
)
.
|
.
ULINE
.
ENDMETHOD
.
***
*** Exemplo Simples
***
METHOD
tamplates_2
.
WRITE
:
/
'*** tamplates_2 - '
.
WRITE
:
/
'*** '
.
WRITE
:
/
'*** ABAP --> JSON'
.
WRITE
:
/
'*** '
.
DATA
v_json_str
type
string
VALUE
'{"ATTR":"Isto é uma string JSON"}'
.
DATA
v_abap_str
TYPE
string
.
CALL
TRANSFORMATION
id
SOURCE XML v_json_str
RESULT attr
=
v_abap_str
.
cl_demo_output
=>
display
(
|attr={ v_abap_str } |
)
.
write
:
/ |
DATA
v_json_str
type
string
VALUE
[
"ATTR":"Isto é uma string JSON" ]. |.
write
:
/ |
.
|
.
write
:
/ |
DATA
v_abap_str
TYPE
string
.
|
.
write
:
/ |
.
|
.
write
:
/ |
CALL
TRANSFORMATION id|
.
write
:
/ | SOURCE XML v_json_str|
.
write
:
/ | RESULT attr
=
v_abap_str
.
|
.
write
:
/ |
.
|
.
write
:
/ | cl_demo_output
=>
display
(
attr
=
[ v_abap_str ]
)
.
|
.
ULINE
.
ENDMETHOD
.
***
*** Literal + expression
***
METHOD
tamplates_3
.
WRITE
:
/
'*** tamplates_3 -'
.
WRITE
:
/
'*** '
.
WRITE
:
/
'*** JSON (tabela)'
.
WRITE
:
/
'*** '
.
types
:
BEGIN
OF
y_tp1
,
campo1
type
char10
,
campo2
type
char20
,
END
OF
y_tp1
.
data
(
s1
)
=
VALUE
y_tp1
(
campo1
=
'valor1'
campo2
=
'valor2'
)
.
DATA
(
v_writer
)
=
cl_sxml_string_writer
=>
create
(
type
=
if_sxml
=>
co_xt_json
)
.
CALL
TRANSFORMATION
id
SOURCE s1json
=
s1
RESULT XML v_writer
.
DATA
(
v_json
)
=
v_writer
->
get_output
(
)
.
cl_demo_output
=>
display_json
(
v_json
)
.
ULINE
.
ENDMETHOD
.
***
***
***
METHOD
tamplates_4
.
WRITE
:
/
'*** tamplates_4 - '
.
WRITE
:
/
'*** '
.
WRITE
:
/
'*** JSON --> ABAP (tipo complexo)'
.
WRITE
:
/
'*** '
.
DATA
v_json_str
type
string
VALUE
'{"ATTR1":"valor1","ATTR2":"valor2" }'
.
data
v_abap_str
type
string
.
CALL
TRANSFORMATION
id
SOURCE XML v_json_str
RESULT attr1
=
v_abap_str
.
cl_demo_output
=>
display
(
| ATTR1
=
{ v_abap_str } |
)
.
ULINE
.
ENDMETHOD
.
***
***
***
METHOD
tamplates_5
.
WRITE
:
/
'*** tamplates_5 - '
.
WRITE
:
/
'*** JSON --> ABAP (tipo complexo 2)'
.
WRITE
:
/
'*** '
.
write
:
/ |
DATA
v_json_str
type
string
VALUE
'["JSONS1":["ATTR1":"valor1","ATTR2":"valor2" ]]'
.
|
.
write
:
/ |
TYPES
:
|
.
write
:
/ |
BEGIN
OF
y_tp1
,
|
.
write
:
/ | attr1
type
char10
,
|
.
write
:
/ | attr2
type
char20
,
|
.
write
:
/ |
END
OF
y_tp1
.
|
.
write
:
/ |
DATA
s1
type
y_tp1
.
|
.
write
:
/ |
CALL
TRANSFORMATION
id
|
.
write
:
/ | SOURCE XML v_json_str |
.
write
:
/ | RESULT jsons1
=
s1
.
|
.
write
:
/ | cl_demo_output
=>
display
(
|
.
* write:/ | "|",'ATTR1='&&'[ s1-attr1 ]'&&'\nATTR2=[ s1-attr2 ]| |'.
* write:/ | ]. |.
DATA
v_json_str
type
string
VALUE
'{"JSONS1":{"ATTR1":"valor1","ATTR2":"valor2" }}'
.
TYPES
:
BEGIN
OF
y_tp1
,
attr1
type
char10
,
attr2
type
char20
,
END
OF
y_tp1
.
DATA
s1
type
y_tp1
.
CALL
TRANSFORMATION
id
SOURCE XML v_json_str
RESULT jsons1
=
s1
.
cl_demo_output
=>
display
(
|ATTR1={ s1
-
attr1 }\nATTR2={ s1
-
attr2 }|
)
.
ULINE
.
ENDMETHOD
.
Postagens mais recentes
Postagens mais antigas
Página inicial
Assinar:
Postagens (Atom)