当前位置: 首页 > news >正文

【SAP-ABAP】-权限批导-批量给某个角色导入事务码权限

需求:SAP期初上线的时候,业务顾问经常会遇到批量创建角色和分配角色权限的情况

岗位需求:一般是业务顾问定义权限,BASIS进行后期运维,今天讲两个批导功能,方便期初上线

主要函数:PRGN_READ_ROLE_MENU和PRGN_SAVE_ROLE_MENU

批量给某个角色到事务码权限

第一步

建立一个底表,用于存储哪个角色需要哪些事务码权限(当然你也可以进行模板导入,相当于不存储于数据库中,只做临时界面展示,一般我建议批导功能除了批导字段外,最好加入批导日志,批导时间和批导人员)

第二步

SE38创建程序,程序代码如下

REPORT  ZRIMPORT_TCODE.
DATA: role TYPE agr_name,it_rt TYPE TABLE OF agr_tcodes,wa_rt TYPE agr_tcodes,i_anz TYPE p,confirm_flag(1),it_gw TYPE TABLE OF ztrole_tcode WITH HEADER LINE,itab_gw TYPE TABLE OF ztrole_tcode WITH HEADER LINE.
DATA: it_hier TYPE TABLE OF agr_hier,wa_hier TYPE agr_hier,it_dtl_flags TYPE TABLE OF agr_dtl_flags,it_dtl_bor_methods TYPE TABLE OF agr_dtl_bor_methods,it_dtl_bor_params TYPE TABLE OF agr_dtl_bor_params,it_hiert TYPE TABLE OF agr_hiert,wa_hiert TYPE agr_hiert,i_zh LIKE sy-langu,i_anz1 TYPE p.SELECT * FROM ztrole_tcode INTO TABLE it_gw.
APPEND LINES OF it_gw TO itab_gw.
i_zh = '1'."语言设为中文
DESCRIBE TABLE it_gw LINES i_anz.
IF i_anz > 0.CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'EXPORTINGtextline1 = '该功能用于角色导入事务代码使用,请确保先清除自定义表ZTROLE_TCODE中的旧数据后上载新数据,'textline2 = '确认上载的数据没问题后再执行导入操作,是否确认要执行导入操作?'titel     = '警告'IMPORTINGanswer    = confirm_flag.CASE confirm_flag.WHEN 'N'. EXIT. "NOWHEN 'A'. EXIT. "CancelWHEN 'J'. "YESSORT itab_gw BY role.DELETE ADJACENT DUPLICATES FROM itab_gw COMPARING role.LOOP AT itab_gw.CALL FUNCTION 'PRGN_READ_ROLE_MENU'EXPORTINGrole              = itab_gw-rolelanguage          = i_zhTABLESt_nodes           = it_hiert_dtl_flags       = it_dtl_flagst_dtl_bor_methods = it_dtl_bor_methodst_dtl_bor_params  = it_dtl_bor_paramst_tcodes          = it_rtt_texts           = it_hiertEXCEPTIONSnot_authorized    = 1OTHERS            = 2.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.LOOP AT it_gw WHERE role = itab_gw-role.role = it_gw-role.wa_rt-agr_name = role.wa_rt-type = 'TR'.wa_rt-tcode = it_gw-tcode.wa_rt-direct = 'X'.APPEND wa_rt TO it_rt.DESCRIBE TABLE it_hier LINES i_anz1.wa_hier-agr_name = it_gw-role.wa_hier-object_id = i_anz1 + 2.wa_hier-parent_id = 1.wa_hier-sort_order = ( wa_hier-object_id - 1 ) * 10.wa_hier-reporttype = 'TR'.wa_hier-report = it_gw-tcode.wa_hier-menu_level = '01'.wa_hier-attributes = 'X'.APPEND wa_hier TO it_hier.wa_hiert-agr_name = it_gw-role.wa_hiert-spras = i_zh.wa_hiert-object_id = i_anz1 + 2.SELECT SINGLE ttext FROM tstct INTO wa_hiert-text WHERE sprsl = i_zh AND tcode = it_gw-tcode .APPEND wa_hiert TO it_hiert.ENDLOOP.CALL FUNCTION 'PRGN_SAVE_ROLE_MENU'EXPORTINGactivity_group          = role          " agr_nameTABLESnodes                   = it_hiertexts                   = it_hierttcodes                  = it_rt         " agr_tcodesEXCEPTIONSnot_authorized          = 1activity_group_enqueued = 2no_auth_for_tcodes      = 3.IF  sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.CLEAR: wa_rt,it_rt[],it_hier[],it_hiert[],wa_hier,wa_hiert.ENDLOOP.ENDCASE.
ELSE.MESSAGE '自定义表ZTROLE_TCODE没有要导入的数据,请按模板先上载数据!'  TYPE 'I'.
ENDIF.

第三步

PFCG当中需要增加对应的角色,只需要创建角色,无需给角色分配事务码权限(给角色分配事务码权限由程序完成)

第四步

在自定义的底表中,维护好对应的角色和事务码权限,截图内容为参考截图(两个角色,多个事务码为案例)

第五步

执行程序,即可完成导入。该程序适用于大批量角色权限分配的时候(例如期初上线,或者由新增新权限,批量角色添加权限的时候)

相关文章:

【SAP-ABAP】-权限批导-批量给某个角色导入事务码权限

需求&#xff1a;SAP期初上线的时候&#xff0c;业务顾问经常会遇到批量创建角色和分配角色权限的情况 岗位需求&#xff1a;一般是业务顾问定义权限&#xff0c;BASIS进行后期运维&#xff0c;今天讲两个批导功能&#xff0c;方便期初上线 主要函数&#xff1a;PRGN_READ_ROLE…...

异常处理总结

自定义异常 ​ 系统中的异常可以分为我们能预知的异常和未知的系统异常&#xff0c;对于我们能预知的异常如空值判断&#xff0c;用户名错误&#xff0c;密码错误等异常我们需要返回客户端&#xff0c;对于系统内部异常如SQL语法错误&#xff0c;参数格式转换错误等需要统一包…...

大模型日报2024-06-18

大模型日报 2024-06-18 大模型资讯 大模型产品 Olvy 3.0&#xff1a;AI加速客户反馈分析 摘要: Olvy 3.0推出AI自动监听和智能标签功能&#xff0c;通过Google Meet集成轻松提取洞察&#xff0c;贴近客户&#xff0c;激发同理心。 PlantIdentify-免费植物识别应用 摘要: PlantI…...

NumPy 双曲函数与集合操作详解

NumPy 双曲函数 NumPy 提供了 sinh()、cosh() 和 tanh() 等 ufunc&#xff0c;它们接受弧度值并生成相应的双曲正弦、双曲余弦和双曲正切值。 示例&#xff1a; import numpy as npx np.sinh(np.pi/2)print(x)示例 找到数组 arr 中所有值的双曲余弦值&#xff1a; import…...

ABSD-系统架构师(十三)

1、CDN和反向代理的基本原理都是&#xff08;&#xff09;。 A缓存 B负载均衡 C路由转发 DNAT转发 答案&#xff1a;A 2、&#xff08;必考&#xff09;在ABSD&#xff08;基于架构的软件开发&#xff09;方法中&#xff0c;顶层被分解为&#xff08;&#xff09;&#xff…...

PLC通过Profibus协议转Modbus协议网关接LED大屏通讯

一、背景 Modbus协议和Profibus协议是两种常用于工业控制系统的通信协议&#xff0c;它们在自动化领域中起着重要的作用。Modbus是一种串行通信协议&#xff0c;被广泛应用于各种设备之间的通信&#xff0c;如传感器、执行器、PLC等。而Profibus则是一种现场总线通信协议&…...

第二十三篇——香农第二定律(二):到底要不要扁平化管理?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 对于企业的理解&#xff0c;扁平化的管理&#xff0c;如果从香农第二定律…...

stm32f103 HAL库 HC-SR04测距

目录 一、实现测距二、添加TIM3控制LED根据距离以不同频率闪烁三、观察时序Modebus协议12路超声波雷达设计方案1. 系统架构设计2. 硬件设计3. 软件设计4. 通信协议设计5. 用户接口6. 安全和冗余7. 测试和验证8. 电源和物理封装9. 文档和支持 一、实现测距 配置时钟 配置定时器…...

vue中通过自定义指令实现一个可拖拽,缩放的弹窗

效果 功能描述 按住头部可拖拽鼠标放到边框&#xff0c;可缩放多层重叠丰富的插槽&#xff0c;易于扩展 示例 指令代码 export const dragDialog {inserted: function (el, { value, minWidth 400, minHeight 200 }) {// 让弹窗居中let dialogHeight el.clientHeight ?…...

FreeRtos-09事件组的使用

1. 事件组的理论讲解 事件组:就是通过一个整数的bit位来代表一个事件,几个事件的or和and的结果是输出 #define configUSE_16_BIT_TICKS 0 //configUSE_16_BIT_TICKS用1表示16位,用0表示32位 1.1 事件组适用于哪些场景 某个事件若干个事件中的某个事件若干个事件中的所有事…...

多路h265监控录放开发-(1)建立head窗口并实现鼠标拖动整个窗口

头文件&#xff1a; //鼠标事件 用于拖动窗口//一下三个函数都是QWidget的可重载成员函数void mouseMoveEvent(QMouseEvent* ev) override;void mousePressEvent(QMouseEvent* ev) override;void mouseReleaseEvent(QMouseEvent* ev) override; 源文件&#xff1a; / /// 鼠标…...

ICMR 2024在普吉岛闭幕,学者与泰国舞者共舞,燃爆全场

惊艳&#xff01;ICMR 2024在普吉岛闭幕&#xff0c;学者与泰国舞者共舞&#xff0c;燃爆全场&#xff01; 会议之眼 快讯 ICMR&#xff08;International Conference on Multimedia Retrieval&#xff09;即国际多媒体检索会议&#xff0c;是一个专注于多媒体检索领域的顶级…...

大模型精调:实现高效迁移学习的艺术

在人工智能领域&#xff0c;大型预训练模型&#xff08;以下简称“大模型”&#xff09;已经取得了令人瞩目的成果。这些模型通过在海量数据上进行预训练&#xff0c;能够捕捉到丰富的特征信息&#xff0c;为各种下游任务提供强大的支持。然而&#xff0c;如何将这些大模型应用…...

epoll服务端和客户端示例代码

epoll 服务端demo #include <stdio.h> #include <sys/epoll.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <fcntl.h> #include <unistd.h> #include <ne…...

最大乘积和-第13届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第85讲。 最大乘积和&#…...

探索C嘎嘎的奇妙世界:第四关---引用与内联函数

1 引用: 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 #include<iostream> using namespace std;int main() {int a 0;// 引用&#xff1a;…...

DLS平台:惠誉全球经济展望——今年调增至2.6%,明年调减!

摘要 尽管全球货币政策逐渐转向宽松&#xff0c;惠誉国际评级&#xff08;Fitch Ratings&#xff09;在最新的《全球经济展望》中对2024年全球经济增长进行了上调。然而&#xff0c;由于美国经济增速放缓和其他因素的影响&#xff0c;2025年的全球经济增长预期则被下调。这篇文…...

数据结构习题

第一章 绪论 与数据元素本身的形式、内容、相对位置、个数无关的是数据的 逻辑结构。 第二章 线性表 在一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变&#xff0c;平均要移动的元素个数为 63.5。 n/2 单链表的存储密度 小于1。 创建一个包括n个结点的有序单链…...

交通银行软件开发工程师校招面试经历

本文介绍2024届春招中&#xff0c;交通银行总行的软件开发工程师岗位1场面试的基本情况、提问问题等。 2024年04月投递了交通银行总行的软件开发工程师岗位&#xff0c;暂时不清楚所在部门。目前完成了一面&#xff0c;并进入体检阶段&#xff1b;在这里记录一下面试的相关经历…...

bashrc和profile区别

作用与目的&#xff1a; .bashrc&#xff1a;这个文件主要用于配置和自定义用户的终端环境和行为。每次启动新的终端时&#xff0c;.bashrc文件都会被执行&#xff0c;加载用户设置的环境变量、别名、函数等。这使得用户能够根据自己的喜好和需求来定制终端的行为和外观。profi…...

BC153 [NOIP2010]数字统计

数字统计 一.题目描述二.输入描述&#xff1a;三.输出描述&#xff1a;四.数字范围五.题目思路六.代码实现 一.题目描述 请统计某个给定范围[L, R]的所有整数中&#xff0c;数字2出现的次数。 比如给定范围[2, 22]&#xff0c;数字2在数2中出现了1次&#xff0c;在数12中出现1次…...

浅谈LavelDB

简介 LevelDB 是一个开源的轻量级键值存储库&#xff0c;由 Google 开发&#xff0c;用于提供快速的键值存储和支持读写大量数据。LevelDB 具有高性能、快速的读取和写入速度以及支持原子操作的特点&#xff0c;适合用于需要高效存储和检索键值数据的场景。 LevelDB 主要特点…...

Google Earth Engine(GEE)——NDVI的时间序列分析和在线出图

函数: ui.Chart.array.values(array, axis, xLabels) Generates a Chart from an array. Plots separate series for each 1-D vector along the given axis. - X-axis = Array index along axis, optionally labeled by xLabels. - Y-axis = Value. - Series = Vector, d…...

谈吐的艺术(三)

不是要逼人屈服,而只是想请人遵守规定。 0可能遇到的问题 在快餐店买到的汉堡和薯条都是凉的&#xff0c;跟店员理论的时候对方却说味道没有不对。怎么说才能维护自己的权利呢&#xff1f; 更好的说法&#xff1a;“我想问一下&#xff0c;按照你们的规定&#xff0c;食品退换…...

pop链详细分析、构造(以[NISACTF 2022]babyserialize为例)

目录 [NISACTF 2022]babyserialize &#xff08;一&#xff09;理清pop链&#xff08;链尾 链头&#xff09;&#xff0c;标注步骤 1. 先找eval、flag这些危险函数和关键字样&#xff08;这是链尾&#xff09; 2.往eval()上面看 3.往$bb()上面看 4.往strtolower()上面看 …...

使用超声波麦克风阵列预测数控机床刀具磨损

预测性维护是使用传感器数据来推断机器状态&#xff0c;并从这些传感器数据中检测出在故障发生之前存在的缺陷或故障的过程。预测性维护在所有工业领域都是一种日益增长的趋势&#xff0c;包括轴承故障检测、齿轮磨损检测或往复式机器中的活塞磨损等许多其他例子。在预测性维护…...

怎么控制多个存储设备的访问权限?数据安全存储方案来了

数据安全存储是指将数据以安全的方式存储在存储系统中&#xff0c;以确保数据的机密性、完整性和可用性。要控制数据安全存储的权限以保障安全&#xff0c;可以采取以下措施&#xff1a; 访问控制列表&#xff08;ACLs&#xff09;&#xff1a;使用ACLs来定义对存储数据的访问权…...

麒麟系统mate_indicators进程占用内存资源高

一、问题现象 故障现象&#xff1a;环境出现内存溢出 操作系统&#xff1a;KYlin10-SP2 二、问题定位 发现mate-indicators进程占用内存资源达到节点总内存40%&#xff0c;导致服务出现内存熔断 临时解决 systemctl restart lightdm.service systemctl set-default multi-u…...

Docker高级篇之轻量化可视化工具Portainer

文章目录 1. 简介2. Portainer安装 1. 简介 Portianer是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便管理Docker环境&#xff0c;包括单机环境和集成环境。 2. Portainer安装 官网&#xff1a;https://www.portainer.io 这里我们使用docker命令安装&…...

Vue32-挂载流程

一、init阶段 生命周期本质是函数。 1-1、beforeCreate函数 注意&#xff1a; 此时vue没有_data&#xff0c;即&#xff1a;data中的数据没有收到。 1-2、create函数 二、生成虚拟DOM阶段 注意&#xff1a; 因为没有template选项&#xff0c;所以&#xff0c;整个div root都…...

seo做网站真的赚钱/全自动在线网页制作

原文链接&#xff1a;https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter03_DL-basics/3.1_linear-regression 概念 线性回归输出是一个连续值&#xff0c;因此适用于回归问题。回归问题在实际中很常见&#xff0c;如预测房屋价格、气温、销售额等连续值的问题。与回归问…...

学网站建设难/网站收录查询爱站

这两天在苦苦钻研闭包&#xff0c;因为之前对闭包的接触并不多&#xff0c;于是大量在网上找资料。怕遗忘&#xff0c;登陆博客&#xff0c;记录日记。 什么是闭包&#xff0c;记得刚学习JS的时候&#xff0c;说闭包就是外部调用内部函数的变量。楼主当时比较浮躁&#xff0c;就…...

政府网站信息建设需求/sem竞价托管费用

stl六大组件简介 我们知道&#xff0c;stl有容器&#xff0c;空间配置器&#xff0c;适配器&#xff0c;迭代器&#xff0c;仿函数以及算法这6个组件&#xff0c;它们六者关系大概如下&#xff1a;容器通过配置器取得数据存储空间,算法通过迭代器获取容器内容,仿函数可以协助算…...

做网站之前需要准备什么条件/seo sem关键词优化

点击上方“Java基基”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人&#xff01;每天 14:00 更新文章&#xff0c;每天掉亿点点头发...源码精品专栏 原创 | Java 2021 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框…...

网站留言模块/销售

1.vux3.x性能比vue2.x快1.2~2倍 ①diff方法优化 ②静态提升 ③事件侦听器缓存 ④ssr渲染 1. diff方法优化 vue2.0中的虚拟dom是进行全量的对比 vue3.0新增了静态标记(PatchFlag)&#xff0c;在于上次虚拟节点进行对比的时候&#xff0c;只对比带有patch flag的节点。并且可以…...

做啥网站能挣钱/新闻发布平台有哪些

灾难起源起因是服务器 root 文件系统内存较小&#xff0c;只有 50G&#xff0c;经常爆仓。于是乎&#xff0c;就把 gitlab 整体移动到内存相对较大 home 文件系统下。这不&#xff0c;转移了&#xff0c;我人直接裂开来。噩耗&#xff01;&#xff01;&#xff01;我打开命令窗…...