在SU21找到你想控制权限的对象,如物料主数据工厂的权限对象为“M_MATE_WRK”,则其权限判断为:
authority-check object 'M_MATE_WRK' id 'WERKS' field s_werks. "权限检查
if sy-subrc ne 0.
set cursor field 'S_WERKS-LOW'.
message ixxx with s_werks.
leave to transaction sy-tcode.
endif.
但当选择屏幕上的s_werks字段是一个区域时(即选择屏幕工厂定义方法是:s_werks for t001w-werks),上述代码并不适用,可做如下写法:
"定义一内表it_wrk:
data:begin of it_wrk occurs 0 ,
werks like t001w-werks,
end of it_wrk.
"取得所有符合选择条件的工厂
select werks into it_wrk from t001w where werks in s_werks.
"循环判断每一工厂
loop at it_wrk.
"此处代码同上
...
endloop.