【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'
    EXPORTING
      textline1 = '该功能用于角色导入事务代码使用,请确保先清除自定义表ZTROLE_TCODE中的旧数据后上载新数据,'
      textline2 = '确认上载的数据没问题后再执行导入操作,是否确认要执行导入操作?'
      titel     = '警告'
    IMPORTING
      answer    = confirm_flag.
  CASE confirm_flag.
    WHEN 'N'. EXIT. "NO
    WHEN 'A'. EXIT. "Cancel
    WHEN 'J'. "YES

      SORT itab_gw BY role.
      DELETE ADJACENT DUPLICATES FROM itab_gw COMPARING role.

      LOOP AT itab_gw.

        CALL FUNCTION 'PRGN_READ_ROLE_MENU'
          EXPORTING
            role              = itab_gw-role
            language          = i_zh
          TABLES
            t_nodes           = it_hier
            t_dtl_flags       = it_dtl_flags
            t_dtl_bor_methods = it_dtl_bor_methods
            t_dtl_bor_params  = it_dtl_bor_params
            t_tcodes          = it_rt
            t_texts           = it_hiert
          EXCEPTIONS
            not_authorized    = 1
            OTHERS            = 2.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.



        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'
          EXPORTING
            activity_group          = role          " agr_name
          TABLES
            nodes                   = it_hier
            texts                   = it_hiert
            tcodes                  = it_rt         " agr_tcodes
          EXCEPTIONS
            not_authorized          = 1
            activity_group_enqueued = 2
            no_auth_for_tcodes      = 3.
        IF  sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH 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当中需要增加对应的角色,只需要创建角色,无需给角色分配事务码权限(给角色分配事务码权限由程序完成)

第四步

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

第五步

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux中DNS域名解析服务

DNS系统在网络中的作用就是维护一个地址数据库&#xff0c;其中记录了各种主机域名与IP地址的对应关系&#xff0c;以便为客户程序提供正向或反向的地址查询服务&#xff0c;即正向解析与反向解析。 正向解析&#xff1a;根据域名查IP地址&#xff0c;即将指定的域名解析为相对…

Kafka高频面试题整理

文章目录 1、什么是Kafka?2、kafka基本概念3、工作流程4、Kafka的数据模型与消息存储机制1)索引文件2)数据文件 5、ACKS 机制6、生产者重试机制:7、kafka是pull还是push8、kafka高性能高吞吐的原因1&#xff09;磁盘顺序读写&#xff1a;保证了消息的堆积2&#xff09;零拷贝机…

stm32_HAL_CAN(特点:广播试,检测线路是否空,id有优先级)

UART I2C SPI 介绍 CAN&#xff08;Controller Area Network&#xff09;接口是一种常用于嵌入式系统中的通信接口&#xff0c;尤其在汽车和工业领域。它由Robert Bosch GmbH在1986年开发&#xff0c;旨在提供一种可靠、高效、灵活的车载通信网络。CAN总线的主要 特点包括&am…

Flask基础2-Jinja2模板

目录 1.介绍 2.模板传参 1.变量传参 2.表达式 3.控制语句 4.过滤器 5.自定义过滤器 6.测试器 7.块和继承 flask基础1 1.介绍 Jinja2:是Python的Web项目中被广泛应用的模板引擎,是由Python实现的模板语言,Jinja2 的作者也是 Flask 的作 者。他的设计思想来源于Django的模…

Windows本地使用SSH连接VM虚拟机

WIN10 VM17.5 Ubuntu:20.04 1.网路设置 1)选择编辑->更改设置 配置完成 2.修改了服务器文件&#xff0c;修改sshd配置&#xff0c;在此文件下/etc/ssh/sshd_config&#xff0c;以下为比较重要的配置 PasswordAuthentication yes PermitRootLogin yes PubkeyAuthenticat…

华为昇腾异构计算架构CANN及AI芯片简介

异构计算架构CANN 异构计算架构CANN&#xff08;Compute Architecture for Neural Networks&#xff09;是华为针对AI场景推出的异构计算架构&#xff0c;向上支持多种AI框架&#xff0c;包括MindSpore、PyTorch、TensorFlow等&#xff0c;向下服务AI处理器与编程&#xff0c;…

ISCC2024 winterbegins

首先&#xff0c;用IDA打开程序&#xff0c;看到一大堆while(1)又套着while(1)的结构&#xff0c;肯定是控制流平坦化了&#xff0c;我们可以使用IDA插件d810去掉。 现在程序就好看多了。如果IDA没有显示这堆中文字符串&#xff0c;可以考虑使用IDA8.3&#xff0c;就可以显示…

MyBatis 动态 SQL 的详细内容讲解

1. MyBatis 动态 SQL 的详细内容讲解 文章目录 1. MyBatis 动态 SQL 的详细内容讲解2. 准备工作3. if 标签4. where 标签5. trim 标签6. set 标签7. choose when otherwise 标签8. foreach 标签8.1 批量删除8.2 批量添加 9. SQL 标签与 include 标签10. 总结&#xff1a;11. 最…

【介绍下ERP,什么是ERP?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

问题:棕色试剂瓶用于盛装见光易分解的试剂或溶剂。 #其他#学习方法#微信

问题&#xff1a;棕色试剂瓶用于盛装见光易分解的试剂或溶剂。 A、正确 B、错误 参考答案如图所示

机器学习第四十三周周报 aGNN

文章目录 week43 aGNN摘要Abstract1. 题目2. Abstract3. 网络架构3.1 aGNN3.1.1 输入与输出模块3.1.2 嵌入层3.1.3编码器解码器模块&#xff1a;带有多头注意力层的GCN 3.2 可释性模型&#xff1a;SHAP 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 实验区域以及场…

CentOS手工升级curl记

笔者一台服务器装有 CentOS 7.9 系统&#xff0c;运行 curl -V 查询 curl 的版本是 7.29&#xff0c;这个老版本的 curl 不支持 HTTP/2 协议。为了使 curl 能连接HTTP/2&#xff0c;curl 必须升级到至少7.46.0版本以上。查询 curl的官网得知当前最新版本是 8.8.0&#xff0c;然…

wireshark抓包ssl数据出现ignored unknown record的原因

文章目录 前言一、出现原因二、wireshark抓包分析Ignored Unknown RecordTCP segment of a reassembled PDU 总结 前言 使用下面这个例子来观察记录层数据大于TCP MSS时用wireshark抓包出现ignored unknown record的情况并分析原因。 c语言利用openssl实现简单客户端和服务端&…

每日复盘-2024060123

今日关注&#xff1a; 这几天市场打板情绪环境转好&#xff0c;轻仓试错 20240613 六日涨幅最大: ------1--------301036--------- 双乐股份 五日涨幅最大: ------1--------301036--------- 双乐股份 四日涨幅最大: ------1--------301036--------- 双乐股份 三日涨幅最大: --…

CANable USB转CAN适配器固件的安装(ubuntu20.04)

CANable USB转CAN适配器固件和驱动的安装(以candlelight和pcan为例)ubuntu20.04 candlelight candlelight是什么 Candlelight是CANable设备的固件之一&#xff0c;用于将CANable设备转换为本机CAN设备&#xff0c;无需使用slcand。它允许CANable设备直接在Linux系统上以本机C…

【智能算法应用】基于A星算法求解六边形栅格地图路径规划

目录 1.算法原理2.结果展示3.参考文献4.代码获取 1.算法原理 精准导航&#xff1a;用A*算法优化栅格地图的路径规划【附Matlab代码】 六边形栅格地图 分析一下地图&#xff1a; 六边形栅格地图上移动可以看做6领域运动&#xff0c;偶数列与奇数列移动方式有所差异&#xff0…

Jetson Linux 上安装ZMQ

1. 安装ZMQ 框架 apt-get install libzmq3-dev 2. 或者自己build ZMQ https://github.com/zeromq/libzmq.git 参考官网教程 3. 安装CPPZMQ CPPZMQ 是ZMQ 的友好的C封装&#xff0c;只需要一个zmq.hpp 头文件即可 git clone https://github.com/zeromq/cppzmq.git cd cppz…

文件没有权限问题:cannot create /opt/apollo/neo/data/log/monitor.log: Permission denied

问题描述 执行 aem bootstrap start --plus 命令启动 Dreamview 提示错误&#xff1a; /bin/sh: 1: cannot create /opt/apollo/neo/data/log/monitor.log: Permission denied [ERROR] Failed to start Dreamview. Please check /opt/apollo/neo/data/log/dreamview.log or /op…

.net 调用海康SDK以及常见的坑解释

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 在工控领域,很多时候需要…

内网穿透的新标杆:神卓互联发布 V9.0 极速版本

在当今数字化时代&#xff0c;企业对于高效、安全的内网穿透解决方案的需求愈发迫切。神卓互联 V9.0 极速版本的惊艳发布&#xff0c;为企业提供了更为强大、稳定的内网穿透服务&#xff0c;有力地推动了企业实现更便捷的远程办公和数据共享。接下来&#xff0c;让我们详细探究…