martes, 9 de junio de 2015

Desbloqueo de Registro de Infotipo

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

No hay comentarios:

Publicar un comentario