FORM unlocked.
DATA: lt_p2007 LIKE p2007.
DATA: lv_return LIKE bapireturn1,
lv_user LIKE sy-uname.
*.El proceso de desbloquedo se desarrolla de forma estandar, ya que eso
* Permite tener control de los posibles bloquedos desde la PA u otros
* procesos propios de HCM
LOOP AT gt_outlist WHERE cmak EQ 'X' "Marcado en ALV
AND sprps EQ c_icon_lo."Bloqueado
*...Bloqueo al trabajador
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = gt_outlist-pernr
IMPORTING
return = lv_return
locking_user = lv_user.
IF NOT ( lv_return-type IS INITIAL ).
CONCATENATE 'Usuario Bloqueado por: ' lv_user
INTO gt_outlist-statu RESPECTING BLANKS.
MODIFY gt_outlist INDEX sy-tabix.
EXIT.
ENDIF.
*...Desbloquedo el Registro del Infotipo
MOVE-CORRESPONDING gt_outlist-it2007 TO lt_p2007.
* lt_p2007-sprps = ' '.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '2007'
number = lt_p2007-pernr
subtype = lt_p2007-subty
objectid = lt_p2007-objps
lockindicator = lt_p2007-sprps
validityend = lt_p2007-endda
validitybegin = lt_p2007-begda
recordnumber = lt_p2007-seqnr
record = lt_p2007
operation = 'EDQ'
tclas = 'A'
dialog_mode = '0'
nocommit = ' '
IMPORTING
return = lv_return.
IF ( lv_return-id = space ).
gt_outlist-sprps = c_icon_un.
gt_outlist-statu = 'Desbloqueado con exito'.
MODIFY gt_outlist INDEX sy-tabix.
ENDIF.
*...Desbloqueo al trabajador.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = gt_outlist-pernr
IMPORTING
return = lv_return.
ENDLOOP.
ENDFORM. "unlocked