如何在不检查 sy-subrc 的情况下创建有效引用?
How can I create valid reference without checking sy-subrc?
在这个 READ 语句中,如果 table 中没有行,我有一个转储。
read table it_example reference into data(lr_example) with key matnr = '22000000'.
这也发生在 OPTIONAL
语句中。
DATA(ls_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] OPTIONAL ).
如何在不检查的情况下使用引用 sy-subrc
?我经常在 select 语句中使用 table 的内联声明。
谢谢。
您似乎正在解除对未初始化引用的引用。如果您不想使用 sy-subrc
然后使用 IF lr_example IS BOUND.
并首先尝试取消引用您的对象。
您可以创建一个伪造的空引用并使用 REF
语句的 DEFAULT 谓词来使引用从不初始。
DATA: ls_konp TYPE konp.
DATA(ref) = REF #( ls_konp ).
DATA(lr_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] DEFAULT ref ).
DATA(ls_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] DEFAULT NEW konp( ) ).
如果您的代码完全适合 ls_konp 可能是空行的情况,请首选此方法。
TRY.
DATA(ls_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] ).
ls_konp->...
" in this block, ignore that ls_konp might not be BOUND
CATCH cx_sy_itab_line_not_found.
" in this block, focus exclusively on the case ls_konp IS NOT BOUND
ENDTRY.
如果您需要显式处理 ls_konp 未绑定的情况,请首选此方法。
在这个 READ 语句中,如果 table 中没有行,我有一个转储。
read table it_example reference into data(lr_example) with key matnr = '22000000'.
这也发生在 OPTIONAL
语句中。
DATA(ls_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] OPTIONAL ).
如何在不检查的情况下使用引用 sy-subrc
?我经常在 select 语句中使用 table 的内联声明。
谢谢。
您似乎正在解除对未初始化引用的引用。如果您不想使用 sy-subrc
然后使用 IF lr_example IS BOUND.
并首先尝试取消引用您的对象。
您可以创建一个伪造的空引用并使用 REF
语句的 DEFAULT 谓词来使引用从不初始。
DATA: ls_konp TYPE konp.
DATA(ref) = REF #( ls_konp ).
DATA(lr_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] DEFAULT ref ).
DATA(ls_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] DEFAULT NEW konp( ) ).
如果您的代码完全适合 ls_konp 可能是空行的情况,请首选此方法。
TRY.
DATA(ls_konp) = REF #( lt_konp[ knumh = <fs_a305>-knumh ] ).
ls_konp->...
" in this block, ignore that ls_konp might not be BOUND
CATCH cx_sy_itab_line_not_found.
" in this block, focus exclusively on the case ls_konp IS NOT BOUND
ENDTRY.
如果您需要显式处理 ls_konp 未绑定的情况,请首选此方法。