PDA

Ver la Versión Completa : Hr_maintain_masterdata


cdemiguela
05/09/08, 17:19:30
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
05/09/08, 21:09:21
Perdón, el error es 184, de la clase PG.

Saludos.

pmarinab
08/09/08, 07:04:51
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

cdemiguela
08/09/08, 21:38:49
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.

pmarinab
09/09/08, 07:25:43
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

cdemiguela
10/09/08, 12:27:38
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.