** V A L U E
** VALUE
*--------------------------------------------------
* Definição existente + preenchimento de estrutura
types:
begin of t1,
campo1 type i,
campo2 type char10,
end of t1.
data d1 type t1.
d1 = VALUE #(
campo1 = 1
campo2 = 'Hum'
).
* Definição existente + definição inline + preenchimento
types:
begin of t1,
campo1 type i,
campo2 type char10,
end of t1.
data(d1) = value t1(
campo1 = 1
campo2 = 'Hum'
).
** Estrutura dentro de estrutura
types:
begin of t1,
campo1 type 1,
campo2 type char10,
end of t1,
begin of t2,
estr1 type t1,
campo3 type char10,
end of t2.
DATA(d1) = VALUE t2(
estr1 = VALUE #(
campo1 = 1
campo2 = 'Hum'
)
campo3 = 'zzz'
).
* Definição + Preenchimento de tabela interna
types:
y_t_kna1 TYPE STANDARD TABLE OF kna1.
DATA(t_kna1) = VALUE y_t_kna1(
(
kunnr = '123'
name1 = 'Cliente 1'
)
(
kunnr = '456'
name1 = 'Cliente 2'
)
) .
* Preenchimento de tabela interna com um campo fixo.
types:
y_t_kna1 TYPE STANDARD TABLE OF kna1.
DATA(t_kna1) = VALUE y_t_kna1(
name2 = 'Sempre igual'
(
kunnr = '123'
name1 = 'Cliente 1'
)
(
kunnr = '456'
name1 = 'Cliente 2'
)
) .
* Definição + preenchimento
* Uso como parâmetro (utiliza a assinatura do método)
METHOD set_kna1 IMPORTING is_kna1 TYPE kna1.
ENDMETHOD.
set_kna1(
VALUE #(
kunnr = '123'
name1 = 'Cliente1'
)
).
** Montando um range
types y_r_kunnr TYPE RANGE OF kunnr.
data(r_kunnr) =
VALUE y_r_kunnr(
(
sign = 'I'
option = 'EQ'
low = '123'
)
(
sign = 'I'
option = 'EQ'
low = '456'
)
).
*
LOOP AT r_kunnr into data(ls_kunnr).
ENDLOOP.