METHOD read_table_1.
data: t_kna1 type table of kna1.
** expressão
* itab[idx|key_comp = x]
** Forma Antiga
READ TABLE t_kna1 into DATA(s_kna1_1)
WITH KEY kunnr = '10' .
** Nova Forma
data(s_kna1_2) = t_kna1[ kunnr = '10' ].
ENDMETHOD.
data: t_kna1 type table of kna1.
** expressão
* itab[idx|key_comp = x]
** Forma Antiga
READ TABLE t_kna1 into DATA(s_kna1_1)
WITH KEY kunnr = '10' .
** Nova Forma
data(s_kna1_2) = t_kna1[ kunnr = '10' ].
ENDMETHOD.
METHOD read_table_2.
types: BEGIN OF ty_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
END OF ty_kna1,
y_t_kna1 type STANDARD TABLE OF ty_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
* incluindo regisros na tabela interna
data(t_kna1) = value y_t_kna1(
( kunnr = '10' name1 = 'Cliente Dez' )
( kunnr = '11' name1 = 'Cliente Vinte' )
).
data(s_dez) = t_kna1[ kunnr = '10' ].
data(s_vinte) = t_kna1[ 2 ].
TRY.
data(s_none) = t_kna1[ 3 ].
CATCH cx_sy_itab_line_not_found INTO data(ex).
ENDTRY.
ENDMETHOD.
METHOD read_table_3.
types: BEGIN OF ty_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
END OF ty_kna1,
y_t_kna1 type STANDARD TABLE OF ty_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
data(t_kna1) = VALUE y_t_kna1(
( kunnr = '10' name1 = 'Cliente Dez' )
( kunnr = '20' name1 = 'Cliente Vinte' )
).
* data(s_10) = t_kna1[ kunnr = '10' ].
* data(s_10_name1) = s_10-name1 .
*
* ou
data(s_10_name1) = t_kna1[ kunnr = '10' ]-name1 .
ENDMETHOD.
** Table expression como LHS (left hand expression)
**
**
METHOD build_name.
ENDMETHOD.
METHOD read_table_4.
types: begin of y_order,
vbeln type vbak-vbeln,
netwr type vbak-netwr,
end of y_order,
begin of y_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
t_orders type STANDARD TABLE OF y_order
WITH DEFAULT KEY,
end of y_kna1,
y_t_kna1 type STANDARD TABLE OF y_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
data(t_kna1) = value y_t_kna1(
( kunnr = '10' name1 = 'Cliente dez'
t_orders = value #(
( vbeln = '1001' netwr = '43421432' )
( vbeln = '1002' netwr = '3713322' )
)
)
( kunnr = '20' name1 = 'Cliente vinte'
t_orders = value #(
( vbeln = '2001' netwr = '202001' )
( vbeln = '2002' netwr = '202002' )
( vbeln = '2003' netwr = '202003' )
)
)
).
data(v_2002_netwr) = t_kna1[ kunnr = '20' ]-t_orders[ vbeln = '2002' ]-netwr.
* ou
t_kna1[ kunnr = '20' ]-t_orders[ vbeln = '2002' ]-netwr = '202002'.
ENDMETHOD.
METHOD read_table_5.
types: begin of y_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
end of y_kna1,
y_t_kna1 type STANDARD TABLE OF y_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr
WITH NON-UNIQUE SORTED KEY k2
COMPONENTS name1.
data(t_kna1) = value y_t_kna1(
( kunnr = '10' name1 = 'Cliente dez' )
( kunnr = '20' name1 = 'Cliente vinte' )
( kunnr = '30' name1 = 'Cliente trinta' )
).
data(s_trinta) = t_kna1[ KEY k2 index 2 ].
* ou
data(s_10) = t_kna1[ KEY k2 name1 = 'Cliente dez' ].
ENDMETHOD.
types: BEGIN OF ty_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
END OF ty_kna1,
y_t_kna1 type STANDARD TABLE OF ty_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
* incluindo regisros na tabela interna
data(t_kna1) = value y_t_kna1(
( kunnr = '10' name1 = 'Cliente Dez' )
( kunnr = '11' name1 = 'Cliente Vinte' )
).
data(s_dez) = t_kna1[ kunnr = '10' ].
data(s_vinte) = t_kna1[ 2 ].
TRY.
data(s_none) = t_kna1[ 3 ].
CATCH cx_sy_itab_line_not_found INTO data(ex).
ENDTRY.
ENDMETHOD.
METHOD read_table_3.
types: BEGIN OF ty_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
END OF ty_kna1,
y_t_kna1 type STANDARD TABLE OF ty_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
data(t_kna1) = VALUE y_t_kna1(
( kunnr = '10' name1 = 'Cliente Dez' )
( kunnr = '20' name1 = 'Cliente Vinte' )
).
* data(s_10) = t_kna1[ kunnr = '10' ].
* data(s_10_name1) = s_10-name1 .
*
* ou
data(s_10_name1) = t_kna1[ kunnr = '10' ]-name1 .
ENDMETHOD.
** Table expression como LHS (left hand expression)
**
**
METHOD build_name.
ENDMETHOD.
METHOD read_table_4.
types: begin of y_order,
vbeln type vbak-vbeln,
netwr type vbak-netwr,
end of y_order,
begin of y_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
t_orders type STANDARD TABLE OF y_order
WITH DEFAULT KEY,
end of y_kna1,
y_t_kna1 type STANDARD TABLE OF y_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr.
data(t_kna1) = value y_t_kna1(
( kunnr = '10' name1 = 'Cliente dez'
t_orders = value #(
( vbeln = '1001' netwr = '43421432' )
( vbeln = '1002' netwr = '3713322' )
)
)
( kunnr = '20' name1 = 'Cliente vinte'
t_orders = value #(
( vbeln = '2001' netwr = '202001' )
( vbeln = '2002' netwr = '202002' )
( vbeln = '2003' netwr = '202003' )
)
)
).
data(v_2002_netwr) = t_kna1[ kunnr = '20' ]-t_orders[ vbeln = '2002' ]-netwr.
* ou
t_kna1[ kunnr = '20' ]-t_orders[ vbeln = '2002' ]-netwr = '202002'.
ENDMETHOD.
METHOD read_table_5.
types: begin of y_kna1,
kunnr type kna1-kunnr,
name1 type kna1-name1,
end of y_kna1,
y_t_kna1 type STANDARD TABLE OF y_kna1
WITH KEY PRIMARY_KEY COMPONENTS kunnr
WITH NON-UNIQUE SORTED KEY k2
COMPONENTS name1.
data(t_kna1) = value y_t_kna1(
( kunnr = '10' name1 = 'Cliente dez' )
( kunnr = '20' name1 = 'Cliente vinte' )
( kunnr = '30' name1 = 'Cliente trinta' )
).
data(s_trinta) = t_kna1[ KEY k2 index 2 ].
* ou
data(s_10) = t_kna1[ KEY k2 name1 = 'Cliente dez' ].
ENDMETHOD.