是否可以使用VALUE运算符将表数据转换为类似的类型

时间:2018-02-14 08:55:13

标签: type-conversion sap abap

我认为这个问题最好用一个例子来说明。我有2个不同数据类型的表格(但table_type1可以轻松转换为table_type2

  

i_tab1 type table_type1(字段:matnrmaktxspras
  i_tab2 type table_type2(字段:mandtmatnr

是否可以使用VALUE运算符,可能使用FOR line in i_tab1(或类似的内联命令)将i_tab1的数据转换并传输到i_tab2?我在考虑以下内容:

i_tab2 = VALUE # (for line in i_tab1 
                        BASE = gt_itab2 (
                           MANDT = sy-mandt;
                           MATNR = line-matnr
                        )
                  ).

1 个答案:

答案 0 :(得分:4)

你很亲密。这是一个您可能会发现有用的解决方案。

REPORT ZZZ.

TYPES: BEGIN OF tab1_line,
    matnr TYPE mara-matnr,
    maktx TYPE makt-maktx,
    spras TYPE makt-spras,
  END OF tab1_line,
  BEGIN OF tab2_line,
    mandt TYPE t000-mandt,
    matnr TYPE mara-matnr,
  END OF tab2_line,
  table_type1 TYPE STANDARD TABLE OF tab1_line WITH EMPTY KEY,
  table_type2 TYPE STANDARD TABLE OF tab2_line WITH EMPTY KEY.

DATA:
g_tab1 TYPE table_type1,
g_tab2 TYPE table_type2.

START-OF-SELECTION.
g_tab2 = VALUE #( BASE g_tab2 FOR i IN g_tab1 ( mandt = sy-mandt matnr = i-matnr ) ).