如何根据用户权限屏蔽或显示SAP的订单中的成本显示
生活随笔
收集整理的這篇文章主要介紹了
如何根据用户权限屏蔽或显示SAP的订单中的成本显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
程序目的說明:
| 1、?? SAP標準程序不能在銷售訂單(va01 va02 ?va03)中根據權限顯示或不顯示有些訂單定價過程的敏感數據。 2、?? 由于公司需要對銷售訂單定價過程的敏感數據(如成本數據)進行控制,因此需要增強系統功能,使系統能根據用戶權限和定價敏感數據的設置來決定顯示或不顯示定價過程中的訂單定價過程的敏感數據。 3、?? 修改了LV69AFZZ的userexit_field_modific_leer userexit_field_modific_kzwi userexit_field_modific_kopf userexit_field_modification 四個用戶出口。 |
程序代碼:?
?
源程序:紅色為新增代碼 *----------------------------------------------------------------------* ***INCLUDE LV69AFZZ . *----------------------------------------------------------------------* *{?? INSERT???????? DEVK901084??????????????????????????????????????? 1 data: OLD_KOMV like komv. data: OLD_KOMk like komk. data: z_auth_subrc like sy-subrc. DATA : i_zauthprice TYPE STANDARD TABLE OF zauthprice ?? WITH HEADER?LINE. data: Z_S(60) type c, ????? z_s1(10) type c. *}?? INSERT *&---------------------------------------------------------------------* *&????? Form?USEREXIT_FIELD_MODIFIC_LEER *&---------------------------------------------------------------------* *?????? text *----------------------------------------------------------------------* *?-->?p1??????? text *?<--?p2???????text *----------------------------------------------------------------------* form userexit_field_modific_leer. *{?? INSERT???????? DEVK901084??????????????????????????????????????? 1 ?z_auth_subrc = 4. ?IF screen-name = 'FCODE'. ??? CLEAR old_komk. ?ENDIF. ?AUTHORITY-CHECK OBJECT 'K_ZKALSM' ?????????????? ID 'KALSM' FIELD komk-kalsm ?????????????? ID 'ACTVT' DUMMY. ?z_auth_subrc = sy-subrc. ?if sy-TCODE ='VA03'. ??? z_auth_subrc = 4. ?endif. ?old_komk = komk. ?old_komv = komv. ?REFRESH i_zauthprice. ?CLEAR i_zauthprice. ?SELECT * FROM zauthprice ??? INTO CORRESPONDING FIELDS OF TABLE i_zauthprice ?? WHERE zauthprice~kalsm = komk-kalsm. ?IF z_auth_subrc NE 0. ??? READ TABLE i_zauthprice WITH KEY stunr = komv-stunr BINARY SEARCH. ??? IF sy-subrc = 0. ????? IF ( screen-name = 'RV61A-SELKZ' ??????? OR?? screen-name = 'KOMV-KAWRT' ??????????? OR?? screen-name = 'RV61A-AWEIN' ??????????? OR?? screen-name = 'KOMV-KBETR' ??????????? OR?? screen-name = 'RV61A-KOEIN' ??????????? OR?? screen-name = 'KOMV-KPEIN' ??????????? OR?? screen-name = 'KOMV-KMEIN' ??????????? OR?? screen-name = 'KOMV-KWERT' ). ??????? screen-active = 0. ????? ENDIF. ??? ENDIF. ?ENDIF. ?move z_auth_subrc to Z_S1. ?CONCATENATE?'userexit_field_modific_leer Control:' z_s1 into Z_S. ?MESSAGE Z_S TYPE 'W'. ?MODIFY SCREEN. *}?? INSERT endform.?????????????????????????????? " USEREXIT_FIELD_MODIFIC_LEER *&---------------------------------------------------------------------* *&????? Form?USEREXIT_FIELD_MODIFIC_KZWI *&---------------------------------------------------------------------* *?????? text *----------------------------------------------------------------------* *?-->?p1??????? text *?<--?p2??????? text *----------------------------------------------------------------------* form userexit_field_modific_kzwi. *{?? INSERT???????? DEVK901084??????????????????????????????????????? 1 ?z_auth_subrc = 4. ?IF screen-name = 'FCODE'. ??? CLEAR old_komk. ?ENDIF. ?AUTHORITY-CHECK OBJECT 'K_ZKALSM' ?????????????? ID 'KALSM' FIELD komk-kalsm ?????????????? ID 'ACTVT' DUMMY. ?z_auth_subrc = sy-subrc. ?if sy-TCODE ='VA03'. ??? z_auth_subrc = 4. ?endif. ?old_komk = komk. ?old_komv = komv. ?REFRESH i_zauthprice. ?CLEAR i_zauthprice. ?SELECT * FROM zauthprice ??? INTO CORRESPONDING FIELDS OF TABLE i_zauthprice ?? WHERE zauthprice~kalsm = komk-kalsm. ?IF z_auth_subrc NE 0. ??? READ TABLE i_zauthprice WITH KEY stunr = komv-stunr BINARY SEARCH. ??? IF sy-subrc = 0. ????? IF ( screen-name = 'RV61A-SELKZ' ??????? OR?? screen-name = 'KOMV-KAWRT' ??????????? OR?? screen-name = 'RV61A-AWEIN' ??????????? OR?? screen-name = 'KOMV-KBETR' ??????????? OR?? screen-name = 'RV61A-KOEIN' ??????????? OR?? screen-name = 'KOMV-KPEIN' ??????????? OR?? screen-name = 'KOMV-KMEIN' ??????????? OR?? screen-name = 'KOMV-KWERT' ). ??????? screen-active = 0. ????? ENDIF. ??? ENDIF. ?ENDIF. ?move z_auth_subrc to Z_S1. ?CONCATENATE?'userexit_field_modific_kzwi Control:' z_s1 into Z_S. ?MESSAGE Z_S TYPE 'W'. ?MODIFY SCREEN. *}?? INSERT endform.????? ?????????????????????????" USEREXIT_FIELD_MODIFIC_KZWI *&---------------------------------------------------------------------* *&????? Form?USEREXIT_FIELD_MODIFIC_KOPF *&---------------------------------------------------------------------* *?????? text *----------------------------------------------------------------------* *?-->?p1??????? text *?<--?p2??????? text *----------------------------------------------------------------------* form userexit_field_modific_kopf. *{?? INSERT???????? DEVK901084??????????????????????????????????????? 1 ?z_auth_subrc = 4. ?IF screen-name = 'FCODE'. ??? CLEAR old_komk. ?ENDIF. ?AUTHORITY-CHECK OBJECT 'K_ZKALSM' ?????????????? ID 'KALSM' FIELD komk-kalsm ?????????????? ID 'ACTVT' DUMMY. ?z_auth_subrc = sy-subrc. ?if sy-TCODE ='VA03'. ??? z_auth_subrc = 4. ?endif. ?old_komk = komk. ?old_komv = komv. ?REFRESH i_zauthprice. ?CLEAR i_zauthprice. ?SELECT * FROM zauthprice ??? INTO CORRESPONDING FIELDS OF TABLE i_zauthprice ?? WHERE zauthprice~kalsm = komk-kalsm. ?IF z_auth_subrc NE 0. ??? READ TABLE i_zauthprice WITH KEY stunr = komv-stunr BINARY SEARCH. ??? IF sy-subrc = 0. ????? IF ( screen-name = 'RV61A-SELKZ' ??????? OR?? screen-name = 'KOMV-KAWRT' ??????????? OR?? screen-name = 'RV61A-AWEIN' ??????????? OR?? screen-name = 'KOMV-KBETR' ??????????? OR?? screen-name = 'RV61A-KOEIN' ??????????? OR?? screen-name = 'KOMV-KPEIN' ??????????? OR?? screen-name = 'KOMV-KMEIN' ??????????? OR?? screen-name = 'KOMV-KWERT' ). ??????? screen-active = 0. ????? ENDIF. ??? ENDIF. ?ENDIF. ?move z_auth_subrc to Z_S1. ?CONCATENATE?'userexit_field_modific_kopf Control:' z_s1 into Z_S. ?MESSAGE Z_S TYPE 'W'. ?MODIFY SCREEN. *}?? INSERT endform.?????????????????????????????? " USEREXIT_FIELD_MODIFIC_KOPF *&---------------------------------------------------------------------* *&????? Form?USEREXIT_FIELD_MODIFICATION *&---------------------------------------------------------------------* *?????? text *----------------------------------------------------------------------* *?-->?p1??????? text *?<--?p2??????? text *----------------------------------------------------------------------* form userexit_field_modification. *{?? INSERT???????? DEVK901084??????????????????????????????????????? 1 ?z_auth_subrc = 4. ?IF screen-name = 'FCODE'. ??? CLEAR old_komk. ?ENDIF. ?AUTHORITY-CHECK OBJECT 'K_ZKALSM' ?????????????? ID 'KALSM' FIELD komk-kalsm ?????????????? ID 'ACTVT' DUMMY. ?z_auth_subrc = sy-subrc. ?if sy-TCODE ='VA03'. ??? z_auth_subrc = 4. ?endif. ?old_komk = komk. ?old_komv = komv. ?REFRESH i_zauthprice. ?CLEAR i_zauthprice. ?SELECT * FROM zauthprice ??? INTO CORRESPONDING FIELDS OF TABLE i_zauthprice ?? WHERE zauthprice~kalsm = komk-kalsm. ?IF z_auth_subrc NE 0. ??? READ TABLE i_zauthprice WITH KEY stunr = komv-stunr BINARY SEARCH. ??? IF sy-subrc = 0. ????? IF ( screen-name = 'RV61A-SELKZ' ??????? OR?? screen-name = 'KOMV-KAWRT' ??????????? OR?? screen-name = 'RV61A-AWEIN' ??????????? OR?? screen-name = 'KOMV-KBETR' ??????????? OR?? screen-name = 'RV61A-KOEIN' ??????????? OR?? screen-name = 'KOMV-KPEIN' ??????????? OR?? screen-name = 'KOMV-KMEIN' ??????????? OR?? screen-name = 'KOMV-KWERT' ). ??????? screen-active = 0. ????? ENDIF. ??? ENDIF. ?ENDIF. ?move z_auth_subrc to Z_S1. ?CONCATENATE?'userexit_field_modification Control:' z_s1 into Z_S. ?MESSAGE Z_S TYPE 'W'. ?MODIFY SCREEN. *}?? INSERT endform.?????????????????????????????? " USEREXIT_FIELD_MODIFICATION *&---------------------------------------------------------------------* *&????? Form?USEREXIT_PRICING_CHECK *&---------------------------------------------------------------------* *?????? text *----------------------------------------------------------------------* *?-->?p1??????? text *?<--?p2??????? text *----------------------------------------------------------------------* form userexit_pricing_check. *{?? INSERT???????? DEVK901084??????????????????????????????????????? 1 include zsde0002. *}?? INSERT endform.?????????????????????????????? " USEREXIT_PRICING_CHECK *&---------------------------------------------------------------------* *&????? Form?USEREXIT_CHANGE_PRICING_RULE *&---------------------------------------------------------------------* *?????? text *----------------------------------------------------------------------* * ?????-->P_RV61A_KSTEU?text *----------------------------------------------------------------------* form userexit_change_pricing_rule using??? p_rv61a_ksteu. endform.?????????????????????????????? " USEREXIT_CHANGE_PRICING_RULE轉載于:https://www.cnblogs.com/xiaomaohai/archive/2006/08/15/6157549.html
總結
以上是生活随笔為你收集整理的如何根据用户权限屏蔽或显示SAP的订单中的成本显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 采用HttpModules来重写URLs
- 下一篇: AtlasControlToolkit.