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

news2024/11/25 13:24:08

文章目录

    • 需求
    • 整体流程
      • 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.  

小结

代码不多 操作方便快捷

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

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

相关文章

Java 堆外内存及调优

文章目录 直接内存简介为什么DirectByteBuffer可以优化 IO 性能 直接内存的分配直接内存的回收直接内存跟踪与诊断 直接内存简介 直接内存(Direct Memory) 并不是虚拟机运行时数据区的一部分&#xff0c;并非Java虚拟机规范中定义的内存区域。但是这部分内存的频繁使用&#x…

动手机器学习支持向量机+习题

非参数化模型&#xff0c;当数据集规模增大时&#xff0c;其参数量也相应变多 希望从这无数个可以分隔两个点集的超平面中&#xff0c;挑选出与任意一点间隔&#xff08;margin&#xff09;的最小值最大的平面 支持向量机的数学描述 对上式来说&#xff0c;当w和b的大小同时变…

书生·浦语大模型实战营(第二期)-书生·浦语大模型全链路开源体系

课程来源&#xff1a;书生浦语大模型全链路开源体系 1.大模型成为发展通用人工智能的重要途径 专用模型:针对特定任务,一个模型解决一个问题 通用大模型:一个模型应对多种任务、多种模态 2.书生浦语大模型开源历程 书生浦语2.0面向不同的使用需求,每个规格包含三个模型版本:I…

golang语言系列:Authentication、OAuth、JWT 认证策略

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 golang语言系列 文章&#xff0c;主要对编程通用技能 Authentication、OAuth、JWT 认证策略 进行学习 1.Basic Authentication认证 每个请求都需要将 用户名密码 进行base64编码后&#xff0c;放在请求头的Aut…

04-MySQL数据库-权限管理

一、查看权限 1&#xff0c;查看系统所有权限 mysql> show privileges; 权限字段介绍 privileges #权限名称 context #对象&#xff0c;表示可以对数据库&#xff0c;那些资源、进行哪些操作&#xff1b; comment #描述&#xff0c;备注解释说明&#xff1b; Grant…

C++刷题篇——04找等值元素

一、题目 二、解题思路 1、分割后放进二维数组 2、使用map&#xff0c;key为数值&#xff0c;value为其坐标 3、遍历二维数组元素&#xff0c;再在map中找该元素对应的value值&#xff08;二维数组形式&#xff09;&#xff0c;倘若value.size为1&#xff0c;那直接返回-1&…

稳定性生产总结

本期我们来谈下稳定性生产这个话题&#xff0c;稳定性建设目标有两个&#xff1a;降发生、降影响&#xff0c; 在降发生中的措施是做到三点&#xff1a;系统高可用、 高性能、 高质量&#xff0c;三高问题确实是一个很热的话题&#xff0c;里面涉及很多点。 在降影响中要做到…

数据结构03:栈、队列和数组 队习题01[C++]

考研笔记整理~&#x1f95d;&#x1f95d; 之前的博文链接在此&#xff1a;数据结构03&#xff1a;栈、队列和数组_-CSDN博客~&#x1f95d;&#x1f95d; 本篇作为链表的代码补充&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 第1版&#xff1a;王道书的课后习题…

Mamba和状态空间模型(SSM)的视觉指南:替代 Transformers 的语言建模方法

原文地址&#xff1a; A Visual Guide to Mamba and State Space Models 2024 年 2 月 19 日 论文地址&#xff1a;https://arxiv.org/pdf/2312.00752.pdf 这篇论文介绍了一种新型的线性时间序列模型Mamba&#xff0c;它通过选择性状态空间&#xff08;Selective State Space…

【Redis持久化】RDB、ROB介绍和使用

RDB、ROB介绍和使用 引言ROB介绍配置指令介绍使用指令&#xff1a;dump文件修复指令快照禁用 AOF工作流程&#xff1a;文件重写&#xff1a;三种写回策略&#xff1a; 混合使用 引言 持久化的目的&#xff0c;其实就是在Redis重启或者中途崩溃的时候能够依靠自身恢复数据&…

953: 单链表的删除操作的实现

学习版 【C语言】 【C】 #include <iostream>class MyLinkedList{public:struct LinkedNode{int val;LinkedNode* next;LinkedNode(int x):val(x),next(NULL){};}; MyLinkedList(){dummyHeadnew LinkedNode(0);length0;}~MyLinkedList(){while (dummyHead){LinkedNode…

vulhub打靶记录——driftingbox

文章目录 主机发现端口扫描目录扫描爆破子域名提权总结 主机发现 使用nmap扫描局域网内存活的主机&#xff0c;命令如下&#xff1a; nmap -sP 192.168.56.0/24192.168.56.1&#xff1a;主机IP&#xff1b;192.168.56.100&#xff1a;DHCP服务器IP&#xff1b;192.168.56.101…

代码随想录第二十六天 | 回溯算法P3 |● 39. ● 40.● 131.

39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重…

windows下部署llama.cpp

下载cmake 下载地址 解压&#xff0c;设置Path环境变量D:\CMake\bin 打开cmd输入cmake -version 安装mingw powershell下执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iex "& {$(irm get.scoop.sh)} -RunAsAdmin" scoop bucket add extras s…

蓝桥杯算法题——暴力枚举法

先估算这个数小于3的50次方 cnt0 for i in range(50):for j in range(50):for k in range(50):a3**ib5**jc7**kif a*b*c<59084709587505:cnt1 print(cnt-1)#当ijk都为0时&#xff0c;a*b*c1不是幸运数字所以要减去

C++笔记:命名空间

引入&#xff1a; 平常&#xff0c;我们在进行C编写时&#xff0c;一般我们都会默认在开始去写这样的代码&#xff1a; #include<iostream>//包含头文件using namespace std;//展开命名空间 这里就出现了与C语言不同的地方&#xff1a;这里的命名空间就是C对于C语言进…

深度学习| DiceLoss解决图像数据不平衡问题

图像数据不平衡问题 图像数据不平衡&#xff1a;在进行图像分割时&#xff0c;二分类问题中&#xff0c;背景过大&#xff0c;前景过小&#xff1b;多分类问题中&#xff0c;某一类别的物体体积过小。在很多图像数据的时候都会遇到这个情况&#xff0c;尤其是在医学图像处理的…

如何快速掌握数字化运维方法,构建数字化运维体系?

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 主要内容读者…

操作符:左移(<<)右移(>>)

在介绍移位操作符前&#xff0c;我们先介绍一下原码反码和补码 这里要讲的左移和右移牵扯到原码补码和反码&#xff0c; 原码即这个整数转化为2进制时的一串&#xff0c; 正整数的原码、反码、补码相同&#xff0c; 10&#xff08;int类型&#xff09;的原码&#xff1a;00…

day4 linux上部署第一个nest项目(java转ts全栈/3R教室)

背景&#xff1a;上一篇吧nest-vben-admin项目&#xff0c;再开发环境上跑通了&#xff0c;并且build出来了dist文件&#xff0c;接下来再部署到linux试试吧 dist文件夹是干嘛的&#xff1f; 一个pnpn install 直接生成了两个dist文件夹&#xff0c;前端admin项目一个&#xf…