首页 > 其他分享 >VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格

时间:2023-10-16 14:56:43浏览次数:33  
标签:sy name screen -------------------- SCREEN ENDIF VA03 VA02 VA01

1、业务需求

针对用户使用销售订单时,根据定价和步骤顺序,判断是否有权限,没有权限时隐藏销售订单抬头和行项目的部分价格数据

要限制的定价和步骤在spro中的位置

限制的步骤

2、增强实现

2.1权限对象

创建带有定价和步骤的权限对象

分配权限

2.2、隐藏抬头和行项目价格

隐藏抬头和行项目表格中的净值和净价字段

在程序MV45AFZZ→USEREXIT_FIELD_MODIFICATION中写隐式增强

"--------------------@斌将军--------------------
FORM userexit_field_modification.

* CASE SCREEN-GROUP3.
*   WHEN '900'.
*     IF VBAK-VBTYP NE IF_SD_DOC_CATEGORY=>INQUIRY.
*       SCREEN-ACTIVE = 0.
*     ENDIF.
* ENDCASE.

* CASE SCREEN-NAME.
*   WHEN 'VBAK-VBELN'.
*     SCREEN-ACTIVE = 0.
* ENDCASE.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1)
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZSD007_VA01_PRICE.    "active version
CALL FUNCTION 'ZXX01_USER_EXITS'
  EXPORTING
    i_encode = 'SD007'
  EXCEPTIONS
    close    = 1
    OTHERS   = 2.
IF sy-subrc = 0.
  IF screen-name = 'KOMV-KBETR'
      OR screen-name = 'VBAK-NETWR'"抬头 净值
      OR screen-name = 'VBAK-WAERK'"抬头 货币
      OR screen-name = 'VBAP-NETPR'"项目 净价
      OR screen-name = 'VBAP-NETWR'."项目 净值

    AUTHORITY-CHECK OBJECT 'Z_KONH_KLS'
  ID 'ZKALSM' FIELD vbak-kalsm
  ID 'ZSTUNR' DUMMY
  ID 'ACTVT' DUMMY.
    IF sy-subrc <> 0.
      screen-active = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDIF.
ENDIF.
ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*
ENDFORM.
"--------------------@斌将军--------------------

效果如下

2.3、隐藏条件页签价格

还需要隐藏抬头和行项目的条件页签中的价格数据

在程序中定义变量

在出口处引用自定义代码

"--------------------@斌将军--------------------
*&---------------------------------------------------------------------*
*&      Form  USEREXIT_FIELD_MODIFIC_LEER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form userexit_field_modific_leer.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1)
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZSD007_SALES_PRICE.    "active version
 INCLUDE ZSD007_SALES_PRICE01.
ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*

endform.                               " USEREXIT_FIELD_MODIFIC_LEER
*&---------------------------------------------------------------------*
*&      Form  USEREXIT_FIELD_MODIFIC_KZWI
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form userexit_field_modific_kzwi.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2) 
*$*$-Start: (2)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 2  ZSD007_SALES_PRICE.    "active version
INCLUDE ZSD007_SALES_PRICE01.
ENDENHANCEMENT.
*$*$-End:   (2)---------------------------------------------------------------------------------$*$*

endform.                               " USEREXIT_FIELD_MODIFIC_KZWI
*&---------------------------------------------------------------------*
*&      Form  USEREXIT_FIELD_MODIFIC_KOPF
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form userexit_field_modific_kopf.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(3)
*$*$-Start: (3)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 3  ZSD007_SALES_PRICE.    "active version
INCLUDE ZSD007_SALES_PRICE01.
ENDENHANCEMENT.
*$*$-End:   (3)---------------------------------------------------------------------------------$*$*

endform.                               " USEREXIT_FIELD_MODIFIC_KOPF
*&---------------------------------------------------------------------*
*&      Form  USEREXIT_FIELD_MODIFICATION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form userexit_field_modification.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(4) 
*$*$-Start: (4)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 4  ZSD007_SALES_PRICE.    "active version
INCLUDE ZSD007_SALES_PRICE01.
ENDENHANCEMENT.
*$*$-End:   (4)---------------------------------------------------------------------------------$*$*

endform.                               " USEREXIT_FIELD_MODIFICATION
"--------------------@斌将军--------------------

ZSD007_SALES_PRICE01

 代码如下

"--------------------@斌将军--------------------
IF screen-name = 'FCODE'.
    CLEAR:old_komk.
    auth_subrc = 4.
  ENDIF.

  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'
      OR screen-name = 'KOMV-KUMZA'
      OR screen-name = 'RV61A-MEINS'
      OR screen-name = 'KOMV-KUMNE'
*      OR screen-name = 'KOMP-NETWR' "净值
*      OR screen-name = 'KOMK-WAERK' "货币
*      OR screen-name = 'KOMP-MWSBP' "税收
      OR screen-name = 'RV61A-KMEI1'.
"增强开关
    CALL FUNCTION 'ZXX01_USER_EXITS'
      EXPORTING
        i_encode = 'SD007'
      EXCEPTIONS
        close    = 1
        OTHERS   = 2.
    IF sy-subrc = 0.
      IF komk-kalsm NE old_komk-kalsm OR komv-stunr NE old_komv-stunr.

        AUTHORITY-CHECK OBJECT 'Z_KONH_KLS'
         ID 'ZKALSM' FIELD komk-kalsm
         ID 'ZSTUNR' FIELD komv-stunr
         ID 'ACTVT' DUMMY.

        auth_subrc = sy-subrc.

        old_komk = komk.
        old_komv = komv.
      ENDIF.

      IF auth_subrc <> 0.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDIF.
  ENDIF.
"--------------------@斌将军--------------------

效果如下

这种方法做完之后,在页签跳转之后,再回到条件页签,此处的价格就又会出现,所以需要再写下边的增强

在程序LV69AF01→TCTRL_KONDITIONEN_INIT中写隐式增强

"--------------------@斌将军--------------------
FORM tctrl_konditionen_init.
  DATA: da_tfill LIKE sy-tabix.

* Refresh table control if screen number has changed
  STATICS: last_dynnr TYPE dynnr.
  IF sy-dynnr NE last_dynnr AND gf_called_by_lord IS INITIAL.
    last_dynnr = sy-dynnr.
    REFRESH CONTROL 'tctrl_konditionen' FROM SCREEN sy-dynnr.
  ENDIF.

  DESCRIBE TABLE xkomv LINES da_tfill.

......


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1)
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 6  ZSD007_SALES_PRICE.    "active version
"增强开关 CALL FUNCTION 'ZXX01_USER_EXITS' EXPORTING i_encode = 'SD007' EXCEPTIONS close = 1 OTHERS = 2. IF sy-subrc = 0. LOOP AT SCREEN. IF screen-name = 'KOMP-NETWR' "净值 OR screen-name = 'KOMK-WAERK' "货币 OR screen-name = 'KOMP-MWSBP'. "税收. AUTHORITY-CHECK OBJECT 'Z_KONH_KLS' ID 'ZKALSM' FIELD komk-kalsm ID 'ZSTUNR' DUMMY ID 'ACTVT' DUMMY. IF sy-subrc <> 0. screen-active = 0. MODIFY SCREEN. ENDIF. ENDIF. ENDLOOP. ENDIF. ENDENHANCEMENT. *$*$-End: (1)---------------------------------------------------------------------------------$*$* ENDFORM. "tctrl_konditionen_init "--------------------@斌将军--------------------

到此通过定价和步骤隐藏部分价格的增强就实现了

 

    TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back     此页面的语言为英语   翻译为中文(简体)        
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语
 

标签:sy,name,screen,--------------------,SCREEN,ENDIF,VA03,VA02,VA01
From: https://www.cnblogs.com/BinGeneral/p/17767103.html

相关文章

  • VA01/VA02/VA03/VA05 销售订单隐藏价格
    1、业务需求针对用户使用销售订单时,判断是否有权限,没有权限时隐藏销售订单抬头和行项目的价格相关字段2、增强实现2.1、隐藏抬头和行项目价格隐藏抬头和行项目表格中的净值和净价字段在程序MV45AFZZ→USEREXIT_FIELD_MODIFICATION中写隐式增强"--------------------@斌将......
  • Java01:常识
     高可用,高兴能,高并发。   writeoncerunanywhere.简单性,面向对象,可移植性,高性能,分布式,动态性,多线程,安全性,健壮性。java三大版本:JavaSE:标准版(桌面程序,控制台开发)嵌入式版本已经寄了。JavaEE:E企业级开发(web端,服务器开发)JDKJREJVMJDK:JavaDevelop......
  • JAVA02
    基本运算符算数运算符:+-*/%++--赋值运算符:=关系运算符:><>=<===!=(instanceof)逻辑运算符:&&||!位运算符:&|^~>><<>>>条件运算符:?:扩......
  • ABAP:VA02销售订单保存前增强
    VA02销售订单保存前增强:SE38:MV45AFZZENHANCEMENT2ZCD_SO_SAVE_CHECK."activeversion*****ADDBYZJ20221026START检查非源头订单禁止修改DATA:ls_zs......
  • ABAP:VA02销售订单修改BAPI
    VA02销售订单修改BAPIFUNCTIONzsdfu016.*"----------------------------------------------------------------------*"*"本地接口:*"IMPORTING*"VALUE(I_ID)......
  • java01
    ~~有出错的地方,我会及时改正owo~~java入门jdk配置&&dos指令程序是有序指令集合(cpu)95年有了java第一个版本java技术体系平台:javaSEjavaEEjavaME//ME不怎......
  • DEMO:VA01创建贷项订单SD_SALESDOCUMENT_CREATE
    货铺QQ群号:834508274进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合不修改昵称会被不定期踢除,谢谢配合如果使用BAPI......
  • VA01 销售订单 审批 状态 增强
    需求:在使用事务代码VA01创建销售订单时,在点击保存按钮后,根据销售组织(VBAK-VKORG)及订单类型(VBAK-AUART)读取自定义表,如果自定义表有值且“自动审批”标识为“X”则自动将该订......
  • Java03 标注语句
    标注语句就是有名称的语句。命名方法是,在语句前加上一个标识符和一个冒号。break和continue语句会用到标注。例如:rowLoop:for(intr=0;r<rows.length;r++){......
  • Java01 位运算符和位移运算符
    位运算符和位移运算符是底层运算符,处理组成整数的单个位。位运算符和位移运算符操作数不能是浮点数、布尔值、数组或对象。如果操作数是布尔值,&、|和^运算符执行的是逻......