LOOP AT gt_so_inf into gs_so_inf.
“物料在此工厂是否存在”
select count(*) from marc where werks = go_so_inf-werks and matnr = gs_so_inf-matnr.
if sy-subrc ne 0.
lv_msg = '物料' && gs_so_inf-matnr && '在该工厂:' && gs_so_inf-werks && '不存在!'.
message lv_msg type 'E'.
endif.
message '数据正确!' type 'S'.
endloop.
此处我们从 marc 工厂中寻找 已存在的
select count(*) 查询所有marc中所有满足条件的行,看是否存在 同时与当前循环中的工厂与物料同时相等
在select 语句中,如果sy-subrc 不等于0 ,即代表没有数据,然后进行报错
(sy-subrc = 0 则代表至少有一条数据 ,sy-DBCNT 中保存着记录的个数)