Hr_maintain_masterdata

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • cdemiguela
    Member
    • may
    • 53

    #1

    Hr_maintain_masterdata

    Hola.

    Desde un programa Z que actualiza el IT0009, estoy llamando a la función HR_INFOTYPE_OPERATION, y ésta a su vez llama a HR_MAINTAIN_MASTERDATA.

    La función HR_MAINTAIN_MASTERDATA me devuelve el error 154 "El empleado / candidato aún no está bloqueado". He comprobado que la forma de evitar que se provoque dicho mensaje es que la PA30 esté abierta, con el empleado cuya actualización de datos estoy realizando.

    Por favor, agradecería alguna indicación para conseguir que la función se ejecute sin requerir la PA30, situación que no es razonable.

    Gracias de antemano y saludos.
  • cdemiguela
    Member
    • may
    • 53

    #2
    Hr_maintain_masterdata

    Perdón, el error es 184, de la clase PG.

    Saludos.

    Comentario

    • pmarinab
      Member
      • abr
      • 64

      #3
      Hola, prueba a bloquear el empleado antes de llamar a la HR_MAINTAIN_MASTERDATA y luego no olvides desbloquearlo. Puedes utilizar estas dos FM:

      HR_ECM_DEQUEUE_PERNR
      HR_ECM_ENQUEUE_PERNR

      Comentario

      • cdemiguela
        Member
        • may
        • 53

        #4
        Hr_maintain_masterdata

        Hola.

        Gracias por la respuesta.

        Pero resulta que la función HR_MAINTAIN_MASTERDATA ya llama a las dos funciones que citas, para bloquear y desbloquear. Pero por el motivo que sea, el bloqueo del empleado no se produce. Por eso creo que funciona el hecho de abrir la PA30, porque provoca el bloqueo del empleado que la función HR_ECM_ENQUEUE_PERNR no consigue efectuar.

        Comentario

        • pmarinab
          Member
          • abr
          • 64

          #5
          Hola, prueba a usar estos métodos de bloqueo:

          PERFORM enqueue_pernr(SAPFP50G) USING d_pernr ' '.
          PERFORM dequeue_pernr(SAPFP50G) USING d_pernr.

          Comentame si te funciona, que me pica la curiosidad

          Comentario

          • cdemiguela
            Member
            • may
            • 53

            #6
            Hr_maintain_masterdata

            Al final lo que he hecho es bloquear / desbloquear el empleado antes y después de la ejecución de HR_INFOTYPE_OPERATION, con :

            BAPI_EMPLOYEE_ENQUEUE
            BAPI_EMPLOYEE_DEQUEUE

            Pero no deja de ser intrigante que HR_MAINTAIN_MASTERDATA no pueda bloquear de forma estándar, con las llamadas a :

            ENQUEUE_EPPRELE
            DEQUEUE_EPPRELE

            Saludos.

            Comentario

            Trabajando...