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

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'EXPORTINGi_encode = 'SD007'EXCEPTIONSclose    = 1OTHERS   = 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-kalsmID 'ZSTUNR' DUMMYID '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 versionINCLUDE 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'EXPORTINGi_encode = 'SD007'EXCEPTIONSclose    = 1OTHERS   = 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-kalsmID 'ZSTUNR' FIELD komv-stunrID '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 changedSTATICS: 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'EXPORTINGi_encode = 'SD007'EXCEPTIONSclose    = 1OTHERS   = 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-kalsmID 'ZSTUNR' DUMMYID 'ACTVT' DUMMY.IF sy-subrc <> 0.screen-active = 0.MODIFY SCREEN.ENDIF.ENDIF.ENDLOOP.
ENDIF.
ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*
ENDFORM.                    "tctrl_konditionen_init
"--------------------@斌将军--------------------

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins+vue发布项目

在Jenkins 中先创建一个任务名称 然后进行下一步&#xff0c;放一个项目 填写一些参数 参数1&#xff1a; 参数2&#xff1a; 参数3&#xff1a;参数4&#xff1a; 点击保存就行了 配置脚本 // git def git_url http://gitlab.xxxx.git def git_auth_id GITEE_RIVER…

微服务拆分的思考

一、前言 前面几篇文章介绍了微服务核心的两个组件&#xff1a;注册中心和网关&#xff0c;今天我们来思考一下微服务如何拆分&#xff0c;微服务拆分难度在于粒度和层次&#xff0c;粒度太大拆分的意义不大&#xff0c;粒度太小开发、调试、运维会有很多坑。 二、微服务划分…

面试知识点--基础篇

文章目录 前言一、排序1. 冒泡排序2. 选择排序3. 插入排序4. 快速单边循环排序5. 快速双边循环排序6. 二分查找 二、集合1.List2.Map 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、排序 1. 冒泡排序 冒泡排序就是把小的元素往前调或者把大…

xray的使用

不需要扫描 点击 双击xray 1.打开 2.使用 主打扫描 3.被动扫描 网站 与 Burp 联动 - xray 安全评估工具文档 双击 xray cmd xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output text.html 1.bp 2.这道这个 3.配置 xray 改为* 4.代理

一些ECharts配置

基于vue3&#xff0c;EChart5.4.3版本 Line <script setup lang"ts"> import {onBeforeUnmount, onMounted, ref, watch} from "vue" import {useEcharts, type ECOption} from "/composables" import * as echarts from "echarts/c…

全志A40i PRREMPT-RT Linux平台搭建IgH环境

1、编译安装内核 参考创龙开发板官方文档&#xff0c;在menuconfig中把gmac设置成M&#xff0c;方便卸载原始gmac驱动&#xff0c;然后加载优化后的实时网卡驱动 2、编译IgH 把IgH主站代码放到开发板上&#xff0c;进行配置编译(配置和编译可以参考网上ubuntu…

tensorrt安装使用教程

一般的深度学习项目&#xff0c;训练时为了加快速度&#xff0c;会使用多GPU分布式训练。但在部署推理时&#xff0c;为了降低成本&#xff0c;往往使用单个GPU机器甚至嵌入式平台&#xff08;比如 NVIDIA Jetson&#xff09;进行部署&#xff0c;部署端也要有与训练时相同的深…

python学习7

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

GEE:对二值图层进行腐蚀和/或膨胀操作

作者:CSDN @ _养乐多_ 腐蚀和膨胀 是数学形态学图像处理中的两个基本操作,用于修改和分析二值图像(包含只有两个像素值的图像,通常是黑和白)。这些操作可用于处理遥感图像、地理信息系统(GIS)中的栅格数据以及其他领域的图像处理。 腐蚀(Erosion):腐蚀是一种用于缩小…

电脑出现关于kernelbase.dll文件找不到的情况,有什么办法可以解决?

在使用电脑中&#xff0c;突然提示找不到kernelbase.dll&#xff0c;这时候应该怎么办呢&#xff1f;出现这样的问题&#xff0c;有神办法可以解决。看到有小伙伴在问这个问题&#xff0c;那么今天就带大家了解一下这个文件&#xff0c;同时教大家如何解决kernelbase.dll丢失的…

最佳买股票的时机------题解报告

题目&#xff1a; 暴力双循环会时间超限 一次循环&#xff0c;不断更新min和sum值 时间复杂度为O(n),空间复杂度为O(1) 写完之后看了一眼题解&#xff0c;发现没有更好的方法 public int maxProfit(int[] prices) {int sum 0,minprices[0];for(int i1;i <prices.length;i…

乙酰基四肽-3/Acetyl Tetrapeptide-3——刺激毛囊,长出新头发,有效防止秃头

社会对头发很着迷。从圣经人物参孙&#xff08;他从头发中获得力量&#xff0c;并说如果剃光头他就会失去力量&#xff09;&#xff0c;到社交媒体上无休无止地谈论名人的标志性风格&#xff0c;头发是一个永恒的话题。 为什么痴迷&#xff1f;好吧&#xff0c;我们的头发是外…

睿趣科技:现在开抖音小店到底要多少钱

随着短视频平台的兴起&#xff0c;抖音小店成为了越来越多创业者的选择。那么&#xff0c;现在开抖音小店到底要多少钱呢?这个问题涉及到以下几个方面的费用。 首先&#xff0c;我们需要了解的是&#xff0c;开设抖音小店本身是免费的。你只需要在抖音APP上申请开店&#xff0…

idea不识别yaml文件导致,配置文件点击跳转不了类

文章目录 场景确认的idea安装了ymal插件,确认你的配置文件是yml格式的还是ymal格式的然后在项目配置中看看是否有对应的后缀.最后看看在项目模块里面有没有spring模块跟对应的配置文件,如果没有就要添加这样点击配置文件就能跳转到对应的实体类了 场景 在使用idea时&#xff0…

wpf主页面解析

1、 开头的网址作用 1和2都是引入命名空间的&#xff0c;每一个字符串代表一系列的命名空间&#xff0c;这样就可以不用一个一个引用了。wpf中规定有一个名称空间是可以不加名字的&#xff0c;xmlns不加名字是默认命名空间。 "http://schemas.microsoft.com/winfx/2006/x…

微信小程序实现类似于 vue中ref管理调用子组件函数的方式

微信小程序中确实有类似于 vue 中 ref管理子组件的方式、 这里 我给子组件定义了一个 class 只要是 css选择器拿得到的 都没什么问题 但你要保证唯一性 建议前端开发还是慎重一点 就算是不能重复也尽量用class 因为id总还是有风险的 然后 我在子组件中顶一个了一个函数 start…

Kafka序列化反序列化解析、kafka schema

Kafka序列化反序列化解析、kafka schema。 kafka有自己的rpc协议,即nio bytebuf中的数据格式,详见之前的kafka相关介绍的文章。这里我们来看一下大家常用,有时又疑惑的序列化反序列化,对应rpc协议中的records,kafka叫Serdes,实际上也是字面上的意思serialize and deseri…

《C和指针》(3)数据

问题 假定你正编写一个程序&#xff0c;它必须运行于两台机器之上。这两台机器的缺省整型长度并不相同&#xff0c;一个是16位&#xff0c;另一个是32位。而这两台机器的长整型长度分别是32位和64位。程序所使用的有些变量的值并不太大&#xff0c;足以保存于任何一台机器的缺省…

C++中多态的使用和建立条件

一、多态引入 多态按字面的意思就是多种形态。当类之间存在层次结构&#xff0c;并且类之间是通过继承关联时&#xff0c;就会用到多态。 C 多态意味着调用成员函数时&#xff0c;会根据调用函数的对象的类型来执行不同的函数。 根据代码&#xff0c;引入多态的概念&#xff1…

【计算机毕设选题推荐】图书在线商城SpringBoot+SSM+Vue

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的图书在线商城 技术栈 SpringBootVueMySQLMaven 文章目录 一、图书在线商城…