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.
Syntax
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. Example program RSLAW_SET_PERS_DATA.