Maintaining Personalization Objects Automatically

You can also create, change, and delete personalization objects automatically. The ABAP-OO class CL_PERS_ADMIN and its methods are available to you for this purpose.

In the following example, a personnel number is assigned to every SAP user.

TYPES: BEGIN OF ty_user,
             bname      TYPE usr02-bname,
             persnumber TYPE .....,
          END OF   ty_user.
   CONSTANTS: gc_pers_key TYPE spers_key VALUE 'LAW_PERS'
   DATA: gt_users    TYPE TABLE OF ty_user.
   DATA: gs_user     TYPE ty_user.
   DATA: gt_law_pers TYPE law_t_pers.
   DATA: gs_law_pers TYPE law_s_pers.

  * Build table gt_users
     ......    

LOOP AT gt_users INTO gs_user.
     CLEAR gt_law_pers[].
     gs_law_pers-name  = 'PERSNUMBER'.
     gs_law_pers-value = gs_user-persnumber.
     APPEND gs_law_pers TO gt_law_pers.

  *   set data
     CALL METHOD cl_pers_admin=>set_data
         EXPORTING
           p_pers_key          = gc_pers_key
           p_uname             = gs_user-bname
           p_pers_data         = gt_law_pers
 *          p_append            = 'X'
 *          p_modify            = 'X'
 *          p_write_through     = 'X'
         EXCEPTIONS
           pers_key_not_found  = 1
           data_type_error     = 2
           user_does_not_exist = 3
           others              = 4.
     CASE sy-subrc.
       WHEN 0.
         ADD 1 TO g_number_ok.
       WHEN 1 OR 2.
         MESSAGE ...
         EXIT.
       WHEN 3.
         ADD 1 TO g_user_error.
     ENDCASE.
   ENDLOOP. 
         

For more information, refer also to:

For more information, refer also to:

Example program RSLAW_SET_PERS_DATA.