为什么权限检查不起作用?

时间:2016-02-12 13:17:28

标签: sap abap

我需要检查ACTVT是01还是02,WERKS来自选择屏幕,DIRCT-Y和VD来自A,B,C,K,R,O范围。下面的代码没有检查这些字母,测试我可以选择任何,不仅按照预期选择lv_values。任何建议在哪里查看,或者可能有另一种解决方案?

CALL FUNCTION 'Z_GET_PARAMS'
      EXPORTING
        iv_repid        = 'ZMM_LIM'
        iv_param        = 'VD'
     IMPORTING
       et_values       = lt_values.

    LOOP AT lt_values ASSIGNING FIELD-SYMBOL(<lf_values>).

* Проверка прав
      AUTHORITY-CHECK OBJECT 'ZMM_LIMIT'
             ID 'ACTVT' FIELD '01'
             ID 'ACTVT' FIELD '02'
             ID 'WERKS' FIELD s_werks
             ID 'DIRCT' FIELD 'Y'
             ID 'VD' FIELD <lf_values>-low

1 个答案:

答案 0 :(得分:3)

据我所知,您在一个AUTHORITY-CHECK语句中不能多次使用相同的字段 - 您必须自己为OR执行此操作。如果你得到sy-subrc = 24,我不会感到惊讶,这表示编程错误而不是缺少权限。