ABAP 创建SAP账号和分配账号角色程序

DATA:ls_data      TYPE bapilogond,
     ls_addr      TYPE bapiaddr3,
     ls_defu      TYPE bapidefaul,
     ls_pwd       TYPE xuncode,
     lt_return01  TYPE TABLE OF bapiret2,
     lt_bapiparam TYPE TABLE OF bapiparam,
     ls_bapiparam TYPE bapiparam.

DATA:lt_role     TYPE TABLE OF  bapiagr,
     ls_role     TYPE bapiagr,
     lt_return02 TYPE TABLE OF  bapiret2,
     ls_return   TYPE bapiret2.

DATA:ls_bname TYPE xubname,
     lv_name  TYPE bapibname-bapibname VALUE 'TEST001'.


SELECT SINGLE bname FROM usr21 INTO ls_bname WHERE bname = lv_name.
IF sy-subrc NE 0 .

*--------------------------------------------------------------------*创建账号
  ls_data-gltgv  = sy-datum.
  ls_data-gltgb  = '99991231'.
  ls_data-ustyp  = 'A'.
  ls_data-tzone  = 'UTC+8'.

  ls_defu-langu  = '1'.
  ls_defu-spld   = 'LP01'.
  ls_defu-spdb   = 'G'.
  ls_defu-datfm  = '6'.
  ls_defu-dcpfm  = 'X'.
  ls_defu-timefm = '0'.
  ls_defu-timefm = '0'.
  ls_pwd = 'Bdr2019@'.

  ls_addr-lastname = lv_name.

  ls_bapiparam-parid = 'EVO'.
  ls_bapiparam-parva = '03'.
  APPEND ls_bapiparam TO lt_bapiparam.


  CALL FUNCTION 'BAPI_USER_CREATE1'
    EXPORTING
      username  = lv_name
      logondata = ls_data
      password  = ls_pwd
      defaults  = ls_defu
      address   = ls_addr
    TABLES
      return    = lt_return01
      parameter = lt_bapiparam.


*--------------------------------------------------------------------*分配账号角色
  ls_role-agr_name = 'Z_GENERAL_ROLE'.
  ls_role-from_dat = sy-datum.
  ls_role-to_dat   = '99991231'.
  SELECT SINGLE text FROM agr_texts INTO ls_role-agr_text WHERE agr_name = ls_role-agr_name AND  spras = '1'.
  APPEND ls_role TO lt_role.

  CALL FUNCTION 'BAPI_USER_ACTGROUPS_ASSIGN'
    EXPORTING
      username       = lv_name
    TABLES
      activitygroups = lt_role[]
      return         = lt_return02[].

ENDIF.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SAP ABAP是一种面向业务用户的开发工具,用于在SAP系统中创建和修改业务逻辑。在执行BAPI程序时,有时会遇到业务用户账号权限受限的问题,可通过以下方式解决: 首先,需要对业务用户账号的权限进行检查。可以通过Transcation SUIM或者SU53来确定用户账号的权限范围。如果发现权限不足,则需要将用户账号添加到相应的SAP角色中,以获取所需的权限。 其次,可以通过修改用户账号的的参数设置来解决权限受限问题。可以使用Transcation SU01或者SU3来编辑用户账号的参数设置,包括用户组、用户参数、菜单等。通过适当配置这些参数,可以确保用户在执行BAPI程序时具备所需的权限。 此外,还可以通过创建自定义的交易码或者菜单来解决权限问题。可以使用Transcation SE93来创建自定义的交易码,或者使用Transcation SMEN来创建自定义的菜单。通过将需要的功能模块和对象赋予用户账号的自定义交易码或者菜单,可以确保用户具备执行BAPI程序所需的权限。 最后,如果以上方法无法解决权限受限问题,可以考虑联系SAP系统管理员或者技术支持团队。他们可以评估具体情况,并提供更深入的解决方案,包括调整系统配置、修改角色权限等。 总之,通过检查和修改用户账号的权限设置,创建自定义的交易码或菜单,以及寻求专业人士的帮助和支持,可以解决SAP ABAP中业务用户账号在执行BAPI程序中权限受限的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值