通过程序自动锁住账号

该博客介绍了如何通过编程实现用户密码管理策略,当密码在180天前最后一次修改后,系统会在180-170天期间通知用户,并在超过170天未修改时自动锁定账户。程序涉及用户数据查询、日期比较以及通过BAPI_USER_LOCK进行账户锁定,并通过邮件通知用户更新密码。
摘要由CSDN通过智能技术生成

文章目录

1.Requirement

以下是这样的一个需求,密码在最后一次180天之前给锁定,然后180-170天,通知用户,然后小于170天,不用理会. 以下通过程序实现,通过策略配置后也可以实现.

2.Demo
REPORT zjgltest02.
DATA:lv_date   TYPE                   sy-datum,
      lv_date1   TYPE                   sy-datum,
     lt_return TYPE STANDARD TABLE OF bapiret2,
     lv_mes    TYPE                   c LENGTH 220.
lv_date = sy-datum - 180.
lv_date1 = sy-datum - 170.

DATA: BEGIN OF lt_data OCCURS 0,
        bname LIKE ush02-bname,
        ustyp LIKE ush02-ustyp,
        tcode LIKE ush02-tcode,
        modda LIKE ush02-modda,
      END OF lt_data.


SELECT  a~bname a~ustyp a~tcode a~modda
   INTO CORRESPONDING FIELDS OF TABLE  lt_data
   FROM ush02 AS a INNER JOIN usr21 AS b
                           ON a~bname = b~bname
           WHERE
                 a~tcode = 'KRNL'                             " krnl 表示用户登录时修改密码
           AND   a~ustyp = 'A' .                         " A表示是会话用户

SORT lt_data BY bname modda DESCENDING.
DELETE ADJACENT DUPLICATES FROM lt_data COMPARING bname.
LOOP AT lt_data INTO DATA(ls_data).
  IF ls_data-modda > lv_date1 and ls_data-modda <= sy-datum.
  ELSEIF ls_data-modda < lv_date.
    CALL FUNCTION 'BAPI_USER_LOCK'
      EXPORTING
        username = ls_data-bname
      TABLES
        return   = lt_return.

    ELSEIF ls_data-modda >= lv_date1 AND ls_data-modda <= lv_date.
        PERFORM FRM_SEND_MAIL USING LS_DATA.

  ENDIF.
  CLEAR : lv_mes,
          ls_data.

ENDLOOP.
*&---------------------------------------------------------------------*
*& Form FRM_SEND_MAIL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> LS_DATA
*&---------------------------------------------------------------------*
FORM frm_send_mail  USING    is_data TYPE ush02.

ENDFORM.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值