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

这篇具有很好参考价值的文章主要介绍了VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、业务需求

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

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

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

限制的步骤

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

2、增强实现

2.1权限对象

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

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

分配权限给需要隐藏价格的用户

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

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

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

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

在程序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.
"--------------------@斌将军--------------------

效果如下

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

2.3、隐藏条件页签价格

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

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

在程序中定义变量

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

在出口处引用自定义代码

"--------------------@斌将军--------------------
*&---------------------------------------------------------------------*
*&      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

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

 代码如下

"--------------------@斌将军--------------------
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.
"--------------------@斌将军--------------------

效果如下

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

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强

在程序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
"--------------------@斌将军--------------------

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

定期更文,欢迎关注

VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格,ABAP,ABAP,屏幕增强文章来源地址https://www.toymoban.com/news/detail-723554.html

到了这里,关于VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SAP为销售订单生成包装建议的BAPI (Packing Proposal for Sales Order)

    关于装箱打包,网上大部分资料都是交货单相关的。 最近要做销售订单的包装建议更新,没查到资料,于是调试看了VA02的代码,发现以下几个函数可以用于SO包装建议的更新:   V51P_FILL_GT :用于填充一些销售订单的基本数据,比如订单号,行项目等,这一步不做的话,下一

    2024年02月16日
    浏览(47)
  • Java项目:03 基于Springboot的销售培训考评管理系统

    企业的销售要进行培训,由技术人员进行辅导并考评检测培训效果,所以有了这个小系统。 实现了系统的登录验证、请求拦截验证、基础模块(用户管理、角色管理、销售管理)、业务模块(评分管理、评分结果)。 除了基本的CRUD之外,其中评分结果模块实现了数据可视化

    2024年01月16日
    浏览(52)
  • 构建外卖系统小程序,订单管理功能实现步骤详解

    外卖系统小程序是近年来越来越受欢迎的一种订餐方式,方便快捷,并且可以减少人与人之间的接触,更加卫生安全。为了搭建一个完善的外卖系统小程序,订单管理功能是必不可少的一部分。在本文中,我们将详细介绍如何实现订单管理功能。 首先,我们需要搭建一个小程

    2024年02月15日
    浏览(37)
  • CRM中的销售机会管理是什么?三个步骤帮你创建销售渠道

    企业销售业务中,有个名词叫做“机会管理”,有效的机会管理可以帮助销售人员准确地抓住潜在客户群体,并将其转化为真正的客户、持续带来收入。CRM客户管理系统也是销售机会管理的一个重要工具,帮助销售人员与正确的人建立起关系,从而更有效地赢得销售机会。下

    2024年02月05日
    浏览(50)
  • el-form表单动态校验(场景: 输入框根据单选项来动态校验表单 没有选中的选项就不用校验)

    el-form常规校验方式: 正题部分-表单动态校验 场景: 输入框根据单选项来动态校验表单 没有选中的选项就不用校验 效果: 关键点: 跟正常校验流程不同的是, el-form-item标签内的required和rules都要加上判断条件

    2024年02月09日
    浏览(51)
  • LeetCode 面试题 02.03. 删除中间节点

      若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。 假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。   例如,传入节点 c (位于单向链表 a-b-c-d-e-f 中),将其删除后,剩余链表为 a-b-d-e-f   

    2024年02月11日
    浏览(39)
  • python爬虫03-request库使用02

    目录 ​​​​​​1、requests库使用的通用框架: 2、requests下载图片 3、发送get / post 请求传递参数:  4、requests库下载视频,并显示进度 5、requests.session进行登录保持 5.1 requests.session的作用和使用场景 5.2 使用方法 基础链接 : 01-python-request库使用01 1、requests库使用的通用框

    2024年01月21日
    浏览(37)
  • LeetCode 面试题 03.02. 栈的最小值

      请设计一个栈,除了常规栈支持的 pop 与 push 函数以外,还支持 min 函数,该函数返回栈元素中的最小值。执行 push 、 pop 和 min 操作的时间复杂度必须为 O(1) 。   点击此处跳转题目。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack

    2024年02月10日
    浏览(32)
  • 【03.02】大数据的多任务编程-进程

    当涉及到大数据处理时,多任务编程和进程管理是非常重要的概念。Python 提供了一些强大的库来处理这些任务,其中最常用的是 multiprocessing 模块。在本教程中,我们将使用 multiprocessing 模块来展示一个有关大数据的多任务编程-进程相关的示例。 首先,我们需要导入 multipr

    2024年02月07日
    浏览(25)
  • JavaSE学习进阶day03_02 内部类

    2.1.1 什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为 内部类 ,B则称为 外部类 。可以把内部类理解成寄生,外部类理解成宿主。 2.1.2 什么时候使用内部类 一个事物内部还有一个独立的事物,内部的事物脱离外部的事物无法独立使用 人里面有一颗心脏。

    2023年04月15日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包