【发布时间】:2020-02-12 11:19:28
【问题描述】:
我正在尝试将此结构路径的值分配给字段符号,但此路径不起作用,因为它的路径中有一个表。
但在调试器中,此路径的值会正确显示。
有没有办法通过传递一个路径将表格行的组件动态分配给字段符号? 如果没有,那么我将只阅读表格行,然后使用路径来获取想要的值。
ls_struct (Struct)
- SUPPLYCHAINTRADETRANSACTION (Struct)
- INCL_SUPP_CHAIN_ITEM (Table)
- ASSOCIATEDDOCUMENTLINEDOCUMENT (Element)
i_component_path = |IG_DDIC-SUPPLYCHAINTRADETRANSACTION-INCL_SUPP_CHAIN_ITEM[1]-ASSOCIATEDDOCUMENTLINEDOCUMENT|.
ASSIGN (i_component_path) TO FIELD-SYMBOL(<lg_value>).
IF <lg_value> IS NOT ASSIGNED.
return.
ENDIF.
<lg_value> won't be assigned
【问题讨论】:
-
调试器有自己的语法和逻辑,它根本不应用
ASSIGN算法。使用ABAP源代码,必须使用ASSIGN两次,第一次到达内部表,然后选择第一行,第二次到达行的组件。 -
@SandraRossi 我没有办法使用调试器的功能吗?或者你知道一个函数/类能够用这样的“结构路径”分配值吗?感谢您的快速答复
-
调试器的工作方式完全不同,调试器代码只能在调试模式下工作,你不能从调试器调用代码(即如果你调用它,调试器使用的内核代码会失败) .不,没有“abappath”。有 XSL 转换对象 (xpath),但对于您的要求来说它很慢。
-
您是否尝试过不使用 ASSIGN 而是使用这样的字符串模板:
DATA(value) = |{ IG_DDIC-SUPPLYCHAINTRADETRANSACTION-INCL_SUPP_CHAIN_ITEM[ 1 ]-ASSOCIATEDDOCUMENTLINEDOCUMENT }|?注意方括号后的表格表达式需要空格 -
这不是意味着该值将始终是一个字符串吗?