ASSIGN 因调试器路径中的变量而失败
ASSIGN fails with variable from debugger path
我试图将此结构路径的值分配给字段符号,但此路径不起作用,因为它的路径中有一个 table。
但是在调试器中此路径的这个值显示正确。
有没有办法通过传递一条路径将 table 行的组件动态分配给字段符号?
如果没有,那么我将只阅读 table 行,然后使用路径获取所需的值。
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
解决方法Sandra Rossi
调试器有自己的语法和逻辑,它根本不应用 ASSIGN
算法。使用ABAP源代码,你必须使用ASSIGN
两次,第一次到达内部table,然后你select第一行,第二次到达组件行。
调试器的工作方式完全不同,调试器代码仅在调试模式下工作,您不能从调试器调用代码(即,如果调用它,调试器使用的内核代码将失败)。不,没有 "abappath"。有 XSL 转换对象 (xpath),但对于您所要求的来说速度很慢。
非常感谢
这似乎是 ASSIGN
语句的一个相当意外的限制。可能值得一张 SAP 的 ABAP 语言组的票,以澄清它是否是一个错误。
虽然这有效:
ASSIGN data-some_table[ 1 ]-some_field TO FIELD-SYMBOL(<lv_source>).
相同的表示为字符串不:
ASSIGN (`data-some_table[ 1 ]-some_field`) TO FIELD-SYMBOL(<lv_source>).
Alternative 1 for (name)
of the ABAP keyword documentation for the ASSIGN
statement 表示“name
中的名称结构与直接指定的方式相同”。
但是,此声明后紧跟着 "the content of name must be the name of a data object which may contain offsets and lengths, structure component selectors, and component selectors for assigning structured data objects and attributes in classes or objects",一个 不 包含我们在这里需要的 table expressions 的列表。
我试图将此结构路径的值分配给字段符号,但此路径不起作用,因为它的路径中有一个 table。
但是在调试器中此路径的这个值显示正确。
有没有办法通过传递一条路径将 table 行的组件动态分配给字段符号? 如果没有,那么我将只阅读 table 行,然后使用路径获取所需的值。
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
解决方法Sandra Rossi
调试器有自己的语法和逻辑,它根本不应用 ASSIGN
算法。使用ABAP源代码,你必须使用ASSIGN
两次,第一次到达内部table,然后你select第一行,第二次到达组件行。
调试器的工作方式完全不同,调试器代码仅在调试模式下工作,您不能从调试器调用代码(即,如果调用它,调试器使用的内核代码将失败)。不,没有 "abappath"。有 XSL 转换对象 (xpath),但对于您所要求的来说速度很慢。
非常感谢
这似乎是 ASSIGN
语句的一个相当意外的限制。可能值得一张 SAP 的 ABAP 语言组的票,以澄清它是否是一个错误。
虽然这有效:
ASSIGN data-some_table[ 1 ]-some_field TO FIELD-SYMBOL(<lv_source>).
相同的表示为字符串不:
ASSIGN (`data-some_table[ 1 ]-some_field`) TO FIELD-SYMBOL(<lv_source>).
Alternative 1 for (name)
of the ABAP keyword documentation for the ASSIGN
statement 表示“name
中的名称结构与直接指定的方式相同”。
但是,此声明后紧跟着 "the content of name must be the name of a data object which may contain offsets and lengths, structure component selectors, and component selectors for assigning structured data objects and attributes in classes or objects",一个 不 包含我们在这里需要的 table expressions 的列表。