CALL TRANSFORMATION 中的动态元素规范

Dynamic element specification in CALL TRANSFORMATION

我正在使用调用转换将 XML 转换为 ABAP 结构。

call transformation demo_id_upper_lower "id 
parameters mode = 'UP' 
source xml asxml_str 
result paymentrequest = abap_out. 

这按预期工作,数据已成功映射到 ABAP 结构。 paymentrequest 是本例中的根标签。

有没有办法直接在结果中指定包含标签名称而不是标签的变量?

data(my_var) = 'paymentrequest'. 

call transformation demo_id_upper_lower "id 
parameters mode = 'UP' 
source xml asxml_str 
result my_var = abap_out.

在这种情况下没有例外,但变量没有解析为值,我认为它是按字面意思读取的。

注意:我也试过将元素名称分配给字段符号。但这也行不通。

有这个answer to your question, in this other ABAP forum

data(res_tab) = value abap_trans_resbind_tab( ( name = root value = ref #( abap_out ) ) ).

call transformation demo_id_upper_lower "id
      parameters mode = 'UP'
      source xml asxml_str
      result (res_tab).

if result_tab is not initial.
   read table result_tab into data(result_wa) index 1.
    if sy-subrc = 0.
     assign result_wa-value->* to field-symbol(<abap_out>).
      if <abap_out> is assigned.
        abap_out = <abap_out>.
      endif.
     endif.
   endif.

请注意,本论坛中给出的代码实现了我两天前的第一个“评论”,参见 ABAP documentation of CALL TRANSFORMATION 中的 RESULT (rtab)