cancel
Showing results for 
Search instead for 
Did you mean: 

Pago de viajes en una nómina con partición de RT

plombardero
Explorer
0 Kudos

Buenas tardes,

Hemos detectado un problema en la integración de gestión de viajes con el cálculo de nómina (función ASREI).

En el sistema, la configuración de viajes está marcada como que el viaje se paga en el momento de su liquidación, es decir, no se lleva a la RT de la fecha del viaje, pero evitar problemas con el registro de gestión y cálculos retroactivos.

El caso que estamos tratando es el de un empleado con viajes pendientes de pago del mes anterior, que inicia una medida de ERTE (marcada en la V_530_E como relevante para generar partición de nómina).

La lógica sería que los viajes fuesen procesados en la primera partición, que es la parte del período en la que el empleado sigue como activo (en la segunda partición recordemos que se encuentra en ERTE).

La función ASREI, encargada de procesar los viajes, lleva a cabo un chequeo que comprueba que el ENDDA (fin de la partición) sea igual al T549Q-ENDDA (fin del mes procesado). En la primera partición, el ENDDA no es el fin de mes; por lo que descarta el procesamiento del viaje. En el segundo corte, ambos campos si son iguales, y procesa el viaje.

Buscando notas al respecto, aparece una que habla precisamente de este tema, la 1815037 - "Payroll function ASREI with multiple splits". En ella se dice que estos problemas pueden ser solucionados en las exits del programa RPRTEC00. Este programa es el encargado de hacer las liquidaciones de los viajes, y no consigo ver que código puede llegar a solventar el problema. La nota remite a la ayuda del programa, y en ella las exits comentan que pueden ayudar a modificar la lectura o procesamiento de tablas de parametrización T706X. No le veo la relación con el problema encontrado, ya que el error está en la función de nómina. He probado a modificar las fechas del período de liquidación en la tabla PTRV_PERIO para adaptarlas a la partición activa, pero tampoco conseguí solucionarlo.

Alguien tuvo el mismo problema y consiguió solucionarlo??

Gracias.

Un saludo,

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola, a mi me ha pasado varias veces y la mejor solución es crear una función de nómina de cliente copia de ASREI por ejemplo _ASRE , en ella llama a un modulo de funciones ASREI del cual tambien tendrás que hacer copia, y dentro de este mismo se encuentra ls siguiente parte de código (CHECK) que es la que genera el problema:

IF NOT ( ( begda EQ endda ) AND                     "MAWK000583
         ( begda EQ t549q-endda ) ).                "MAWK000583
  CHECK t549q-endda GT begda AND t549q-endda LE endda.  "MAWK000583
ENDIF.                                              "MAWK000583

Simplemente eliminalo y cambialo para que te liquide los viajes en cada partición de nómina ( teniendo en cuenta de no liquidarlos dos veces...) , por ejemplo por fecha fin del viaje, en BEGDA y ENDDA tienes el periodo de la particion y en la T_PERIO tienes la fecha fin de viaje PDATB. Aunque sea una función Z pon {INSERT para que cuando haya parches saber que has modificado y si quieres volver a copiar la función de nuevo volver a replicar dicho cambio.

plombardero
Explorer
0 Kudos

Gracias por la información.

Es lo que pensamos en un momento, pero si dejase abrir un punto de implementación en ese código. El problema es que la función sólo lo permite hacer al principio y al final; y es justo en medio cuando se lee los viajes y se procesan.

Hacer el copiado a una función Z tiene el inconveniente de que cualquier cambio tendrías que actualizar tus funciones.

Y habiendo una nota que habla precisamente de esto, creo que sería más conveniente que el estándar funcionase correctamente.

Un saludo,

Answers (1)

Answers (1)

former_member17522
Active Contributor
0 Kudos

Hola Pedro,

Sería la badi Badi after_trip_settlemnt y efectivamente tendrías que ajustar las fechas en PTRV_PERIO, pues esse es el criterio de selección que utiliza ASREI.

Saludos,

Carlos.

plombardero
Explorer
0 Kudos

Gracias Carlos.

No hemos implementado la Badi, pero no le veo mucho sentido. La función ASREI lee viajes por período y año; pero no por día.

En este caso, de partición, el período y año es el mismo en ambos casos; solo se diferenciaría en el día.

He probado a editar la tabla PTRV_PERIO, y marcar como fecha de fin liquidación del viaje (campos ENDP1 y ACCDT) el último día del período en el que quería que apareciese el viaje y sigue sin funcionar, siempre lo recoge en la última partición.

Un saludo,