我试图从内部表中获取一个字段,如下所示:
READ TABLE tbl_peps TRANSPORTING ususap INTO lv_responsable WITH KEY usr03 = wa_tbl_prps-usr03.
Run Code Online (Sandbox Code Playgroud)
这句话错了,它给了我一个错误
tbl_peps和lv_responsable是不兼容的
.
有没有办法通过"运输领域"实现这一目标?
小智 14
使用新语法(至少ABAP 7.40),您不再需要工作区.您的示例的编码将是:
try.
lv_responsable = tbl_peps[ usr03 = wa_tbl_prps-usr03 ]-ususap.
catch CX_SY_ITAB_LINE_NOT_FOUND.
endtry.
Run Code Online (Sandbox Code Playgroud)
可以在此处找到有关新表表达式的更多信息.
按照ABAP文档上READ TABLE
,如果使用传输选项的工作区接收数据必须与线型你读取表兼容。您声明的变量lv_responsable
似乎与 不兼容tbl_peps
,因此在检查代码时会出错。
这应该有效:
DATA:
wa_peps like line of tbl_peps.
READ TABLE tbl_peps TRANSPORTING ususap INTO wa_peps WITH KEY usr03 = wa_tbl_prps-usr03.
MOVE wa_peps-ususap TO lv_responsable.
Run Code Online (Sandbox Code Playgroud)