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)。
我正在使用调用转换将 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)。