SAP ABAP批量复制PFCG角色并生效

文章目录

    • 需求
    • 整体流程
      • 1. 检查角色是否存在
      • 2. 复制角色
      • 3. 批量生成参数文件
      • 4. 如果角色用户还是出现未比较,可在PFCG界面选择批量比较
    • 细节
      • 上载模板
      • 代码:
    • 小结

需求

最近碰到一个需求,需要对大批量的PFCG角色进行复制并使其生效

整体流程

1. 检查角色是否存在

PRGN_CHECK_AGR_EXISTS

2. 复制角色

PRGN_COPY_AGR

3. 批量生成参数文件

在这里插入图片描述
批量复制新角色名,填入选择屏幕
在这里插入图片描述
点击在后台 等待生成即可
在这里插入图片描述
出现此消息代表成功
在这里插入图片描述

4. 如果角色用户还是出现未比较,可在PFCG界面选择批量比较

在这里插入图片描述
在这里插入图片描述
批量数据填入选择屏幕 出现以下消息代表比较成功
在这里插入图片描述

细节

上载模板

旧角色新角色
ZROLE1ZROLE_NEW1
ZROLE2ZROLE_NEW2

代码:

1.	*&---------------------------------------------------------------------*  
2.	*& Report Z_CREATE_ROLE  
3.	*&---------------------------------------------------------------------*  
4.	*&  
5.	*&---------------------------------------------------------------------*  
6.	REPORT Z_CREATE_ROLE.  
7.	  
8.	  
9.	DATA: IT_DATA TYPE STANDARD TABLE OF ZZS_ALSMEX_TABLINE WITH HEADER LINE.  
10.	FIELD-SYMBOLS: <WA_DATA> TYPE ZZS_ALSMEX_TABLINE.  
11.	  
12.	* 导入的EXCEL格式  
13.	TYPES: BEGIN OF IT_FILE,  
14.	         ROLE_NAME1(30) TYPE C,    "复制来源  
15.	         ROLE_NAME2(30) TYPE C,    "创建内容  
16.	       END OF IT_FILE.  
17.	DATA: WA_FILE TYPE IT_FILE.  
18.	DATA: LT_FILE TYPE STANDARD TABLE OF IT_FILE. "与EXCEL格式保持一致  
19.	  
20.	DATA: ACT_NAME TYPE XUPROFNAME.  
21.	  
22.	DATA: LT_AGR_USERS TYPE TABLE OF AGR_USERS,  
23.	      LT_PT1016    TYPE TABLE OF PT1016,  
24.	      LT_PT1250    TYPE TABLE OF PT1250,  
25.	      LT_PT1251    TYPE TABLE OF PT1251,  
26.	      WA_PT1016    LIKE LINE OF LT_PT1016.  
27.	  
28.	  
29.	* 画屏  
30.	SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.  
31.	PARAMETERS: FNAME1 TYPE RLGRAP-FILENAME OBLIGATORY.  
32.	SELECTION-SCREEN END OF BLOCK BLK1.  
33.	  
34.	INITIALIZATION.  
35.	*获取本地文件  
36.	AT SELECTION-SCREEN ON VALUE-REQUEST FOR FNAME1." SEACH HELP  
37.	  
38.	  CALL FUNCTION 'WS_FILENAME_GET'  
39.	    EXPORTING  
40.	      MASK             = ',EXCEL FILE,*.XLS;*.XLSX;'  
41.	      MODE             = 'O' "S为保存,O为打开  
42.	    IMPORTING  
43.	      FILENAME         = FNAME1  
44.	    EXCEPTIONS  
45.	      INV_WINSYS       = 1  
46.	      NO_BATCH         = 2  
47.	      SELECTION_CANCEL = 3  
48.	      SELECTION_ERROR  = 4  
49.	      OTHERS           = 5.  
50.	  
51.	START-OF-SELECTION.  
52.	  PERFORM INTERNAL_TABLE.  
53.	  PERFORM COPY_ROLE.  
54.	  
55.	END-OF-SELECTION.  
56.	  
57.	  
58.	*获取数据转化为内表  
59.	FORM INTERNAL_TABLE.  
60.	  CALL FUNCTION 'Z_SSF_EXCEL_TO_INTERNAL_TABLE'  
61.	    EXPORTING  
62.	      FILENAME                = FNAME1  
63.	      I_BEGIN_COL             = '1'     "起始列  
64.	      I_BEGIN_ROW             = '2'     "起始行  
65.	      I_END_COL               = '2'     "终结列  
66.	      I_END_ROW               = '65535' "终结行  
67.	    TABLES  
68.	      INTERN                  = IT_DATA  
69.	    EXCEPTIONS  
70.	      INCONSISTENT_PARAMETERS = 1  
71.	      UPLOAD_OLE              = 2  
72.	      OTHERS                  = 3.  
73.	  IF IT_DATA[] IS INITIAL.  
74.	    MESSAGE '清单中无数据' TYPE 'E'.  
75.	    RETURN.  
76.	  ENDIF.  
77.	  
78.	  SORT IT_DATA BY ROW.  
79.	  LOOP AT IT_DATA ASSIGNING <WA_DATA>.  
80.	    CASE <WA_DATA>-COL.  
81.	      WHEN '0001'.  
82.	        WA_FILE-ROLE_NAME1      = <WA_DATA>-VALUE.  
83.	      WHEN '0002'.  
84.	        WA_FILE-ROLE_NAME2      = <WA_DATA>-VALUE.  
85.	    ENDCASE.  
86.	  
87.	    AT END OF ROW.  
88.	      APPEND WA_FILE TO LT_FILE.  
89.	      CLEAR WA_FILE.  
90.	    ENDAT.  
91.	  ENDLOOP.  
92.	ENDFORM.  
93.	  
94.	  
95.	FORM COPY_ROLE.  
96.	  
97.	  LOOP AT LT_FILE INTO WA_FILE.  
98.	*检查角色是否存在  
99.	    CALL FUNCTION 'PRGN_CHECK_AGR_EXISTS'  
100.	      EXPORTING  
101.	        ACTIVITY_GROUP = WA_FILE-ROLE_NAME1.  
102.	    IF SY-SUBRC = 0.  
103.	*复制角色  
104.	      CALL FUNCTION 'PRGN_COPY_AGR'  
105.	        EXPORTING  
106.	          SOURCE_AGR       = WA_FILE-ROLE_NAME1  
107.	          TARGET_AGR       = WA_FILE-ROLE_NAME2  
108.	          DISPLAY_MESSAGES = ''.  
109.	  
110.	    ENDIF.  
111.	  ENDLOOP.  
112.	ENDFORM.  

小结

代码不多 操作方便快捷

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

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

相关文章

全国超市数据可视化仪表板制作

全国超市消费数据展示 指定 Top几 客户销费数据展示 指定 Top几 省份销费数据展示 省份销售额数据分析 完整结果

银行“反向追薪”现象透视:业绩压力下的薪酬不确定性

近日&#xff0c;多家银行纷纷披露了向员工“反向追薪”的消息&#xff0c;这一举措引发了社会各界的广泛关注和热议。所谓“反向追薪”&#xff0c;即银行在员工绩效薪酬发放后&#xff0c;根据一定条件进行追索扣回。这种看似反常的做法&#xff0c;实际上揭示了银行业在业绩…

Spring+thymeleaf完成用户管理页面的增删查改功能

目录 知识点&#xff1a; 路由重定向 redirect:/*** 登录 控制层代码 接口 sql配置 页面效果 添加用户 控制层代码 接口 sql配置 页面效果 查看信息 控制层代码 接口 sql配置 页面效果 修改信息 控制层代码 接口 sql配置 页面效果 条件查询 控制层代码 …

python学习14:python中的表达式

python中的表达式 1.表达式是什么呢&#xff1f; 表达式就是一个具有明确结果的代码语句&#xff0c;如11、type(‘字符串’)、3*5等 在定义变量的时候&#xff0c;如age108,等号右侧的就是表达式&#xff0c;也就是有具体的结果&#xff0c;将结果赋值给了等号左侧的变量 2.…

全国美食博主都在天水:一碗麻辣烫,如何在互联网热辣滚烫?

从淄博到哈尔滨&#xff0c;地方文旅此前从未想到过&#xff0c;自己与“一夜爆火”的距离居然这么近&#xff1b; 而等到从哈尔滨再到天水时&#xff0c;地方文旅的应对甚至已经开始轻车熟路了起来。 热闹之下&#xff0c;难免有几个问题需要细思&#xff1a;为什么从2023年到…

Mysql的连接与存储

目录 一、mysql的连接查询 1、连接的分类&#xff1a; 1.1 内连接 1.2左连接 1.3 右连接 二、存储过程 1、简介 2、优点 3、语法 4、参数分类 5、带参数的存储过程 6、修改存储过程 7、删除存储过程 三、总结 一、mysql的连接查询 mysql的连接查询&#xff0c;通…

Linux:环境变量的特性及获取

目录 一、环境变量基本概念 1.1命令行参数 1.2常见环境变量 二、环境变量相关指令 创建本地变量 三、环境变量通常是具有全局属性的 一、环境变量基本概念 环境变量(environment variables)不是一个而是一堆&#xff0c;彼此之间其实没有关系。本质上是为了解决不同场景下…

【Java程序设计】【C00402】基于(JavaWeb)Springboot的新冠物资管理(含论文)

基于&#xff08;JavaWeb&#xff09;Springboot的新冠物资管理&#xff08;含论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千…

由浅到深认识Java语言(33):多线程

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

记一次 .NET某防伪验证系统 崩溃分析

一&#xff1a;背景 1. 讲故事 昨晚给训练营里面的一位朋友分析了一个程序崩溃的故障&#xff0c;因为看小伙子昨天在群里问了一天也没搞定&#xff0c;干脆自己亲自上阵吧&#xff0c;抓取的dump也是我极力推荐的用 procdump 注册 AEDebug 的方式&#xff0c;省去了很多沟通…

【Python BUG】CondaHTTPError解决记录

问题描述 CondaHTTPError: HTTP 429 TOO MANY REQUESTS for url https://mirrors.ustc.edu.cn/anaconda/pkgs/free/win-64/current_repodata.json Elapsed: 00:26.513315 解决方案 找到用户路径下的 .condarc文件&#xff0c;建议用这个方法前和我一样做个备份&#xff0c;方…

蛋糕店怎么弄一个微信小程序_开启蛋糕店新篇章

微信小程序&#xff0c;开启蛋糕店新篇章——甜蜜触手可及 在这个数字化、智能化的时代&#xff0c;微信小程序以其便捷、高效的特点&#xff0c;成为了众多商家与消费者之间的桥梁。对于蛋糕店而言&#xff0c;拥有一个专属的微信小程序&#xff0c;不仅可以提升品牌形象&…

家用超声波清洗机高端品牌推荐!4款值得入手的热门超声波清洗机

急着洗眼镜的朋友先不要慌&#xff0c;虽然洗眼镜是日常生活中最常见的操作&#xff0c;但是在清洗眼镜方面也是有讲究的&#xff0c;不是随随便便把眼镜擦一下就算清洁干净了&#xff01;因为我们拿眼镜布擦眼镜的时候&#xff0c;布料粗糙的微粒就会跟砂纸一样打磨着镜片&…

YOLOv5-小知识记录(一)

0. 写在前面 这篇博文主要是为了记录一下yolov5中的小的记忆点&#xff0c;方便自己查看和理解。 1. 完整过程 &#xff08;1&#xff09;Input阶段&#xff0c;图片需要经过数据增强Mosaic&#xff0c;并且初始化一组anchor预设&#xff1b; &#xff08;2&#xff09;特征提…

快递鸟物流轨迹地图API接口,包裹行程尽在掌握!

在快节奏的现代生活中&#xff0c;物流行业作为连接生产者与消费者的桥梁&#xff0c;其重要性不言而喻。随着电子商务的飞速发展&#xff0c;人们对物流信息的实时性和准确性要求越来越高。为了满足这一需求&#xff0c;快递鸟物流轨迹地图API应运而生&#xff0c;为广大用户提…

jsp将一个文本输入框改成下拉单选框,选项为字典表配置,通过后端查询

一&#xff0c;业务场景&#xff1a; 一个人员信息管理页面&#xff0c;原来有个最高学历是文本输入框&#xff0c;可以随意填写&#xff0c;现在业务想改成下拉单选框进行规范化&#xff0c;在专科及以下、本科、研究生三个选项中选择&#xff1b; 二&#xff0c;需要解决问…

职场中人如何做好时间管理提高工作效率?高效时间管理软件

在职场中&#xff0c;时间就是金钱&#xff0c;效率就是生命。面对繁杂的工作任务和紧迫的时间限制&#xff0c;做好时间管理显得尤为重要。只有合理规划时间&#xff0c;才能提高工作效率&#xff0c;从而在激烈的职场竞争中脱颖而出。 那么&#xff0c;职场中人如何做好时间…

mysql80-DBA数据库学习1-数据库安装

掌握能力 核心技能 核心技能 mysql部署 官网地址www.mysql.com 或者www.oracle.com https://dev.mysql.com/downloads/repo/yum/ Install the RPM you downloaded for your system, for example: yum install mysql80-community-release-{platform}-{version-number}.noarch…

大唐电信AC管理平台弱口令登录及信息泄露

大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院&#xff08;大唐电信科技产业集团&#xff09;控股的的高科技企业&#xff0c;大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…

如何在Windows通过eXtplorer结合cpolar搭建个人文件服务器并实现无公网ip远程访问

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件&#xff0c;是互联网最重要的应用之一&#xff0c;无论是…