采购订单价格及其发票校验权限控制的实现

本文的主要目的是实现采购订单价格信息维护以及估价标识维护的权限控制,并保证估价订单行项目不能够做发票校验。

1.       创建权限对象zpuordcon,用来进行订单价格信息维护和估价标识维护的权限检查

2.      在function group V69A的屏幕6201的PBO的MODULE FELDAUSWAHL中找到user exit userexit_field_modification,插入如下代码: 

AUTHORITY-CHECK OBJECT ‘ZPUORDCON’

ID ‘ACTVT’ FIELD ‘16′.

CHECK sy-subrc <> 0.

IF SCREEN-INPUT = ‘1′.

SCREEN-INPUT = ‘0′.

ENDIF.

但用户没有权限时,将可输入的字段改为不可输入

同样在屏幕6201的PAI MODULE:kondition_pruefen中找到user exit:userexit_pricing_check加入如下代码:

AUTHORITY-CHECK OBJECT ‘ZPUORDCON’

ID ‘ACTVT’ FIELD ‘16′.

CHECK sy-subrc <> 0.

MESSAGE E832(ZBRIL).

当用户没有权限是,如果用户在价格条件的table control中输入值时则报error message。

3.         在函数组MEGUI的屏幕1325中,双击module event_pbo,然后双击call_view的method handle event然后双击method PBO,然后双击method:initi_control,加入如下代码:

  IF sy-dynnr = ‘1325′.

    LOOP AT SCREEN.

      IF SCREEN-NAME = ‘MEPO1325-SCHPR’.

        AUTHORITY-CHECK OBJECT ‘ZPUORDCON’

                 ID ‘ACTVT’ FIELD ‘16′.

        IF sy-subrc <> 0.

          SCREEN-INPUT = ‘0′.

          MODIFY SCREEN.

        ENDIF.

      ENDIF.

    ENDLOOP.

  ENDIF. 当用户没有估价标志的维护权限时,则将其改为不可输入。

通过创建项目,激活增强LMR1M004,在其中加入如下代码:

 IF TAB_DRSEG-SELKZ = ‘X’ AND TAB_DRSEG-SCHPR = ‘X’.

    MESSAGE e831(zbril) WITH TAB_DRSEG-ebeln TAB_DRSEG-ebelp

                             TAB_DRSEG-MATNR.

 ENDIF.

当用户对估价的订单行项目做发票校验时,则会报error message,发票校验无法通过。曾经尝试通过badi INVOICE_UPDATE的CHANGE_BEFORE_UPDATE来校验,但是这样的报error message后就会退出失误,不够理想,故改为使用customer exit的方式。不过可以在badi INVOICE_UPADATE的CHANGE_AT_SAVE中加入下面代码校验:

method IF_EX_INVOICE_UPDATE~CHANGE_AT_SAVE.

  DATA: wa_mrmrseg LIKE LINE OF ti_rseg_new,

        flag TYPE c,

        v_schpr TYPE schpr.

  LOOP AT ti_rseg_new INTO wa_mrmrseg.

    SELECT SINGLE schpr INTO v_schpr

                        FROM ekpo

                       WHERE ebeln = wa_mrmrseg-ebeln AND

                             ebelp = wa_mrmrseg-ebelp.

    IF v_schpr = ‘X’.

      flag = ‘X’.

      EXIT.

    ENDIF.

  ENDLOOP.

  IF flag = ‘X’.

    MESSAGE e831(zbril) WITH wa_mrmrseg-ebeln wa_mrmrseg-ebelp.

  ENDIF.

endmethod.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值