Su Template de datos para el procesamiento de nómina
Su Template de datos para el procesamiento de nómina
- Campos de datos optimizados para el análisis de nómina
- Seguimiento completo de actividades para mapear el ciclo de vida
- Guía detallada de extracción para Oracle HCM Cloud Payroll
Atributos del procesamiento de nóminas
| Nombre | Descripción | ||
|---|---|---|---|
| Marca de tiempo del evento EventTimestamp | La fecha y hora exactas en que tuvo lugar la actividad. | ||
| Descripción Registra el momento exacto en que se produjo una actividad. Es fundamental para calcular duraciones y tiempos de ciclo, así como para identificar cuellos de botella. En los pasos automatizados, corresponde al momento de ejecución del sistema. En los pasos manuales, como las aprobaciones, es la marca de tiempo de la acción de la persona usuaria registrada en el registro de transacciones. Por qué es importante Es esencial para ordenar cronológicamente los eventos y calcular todos los KPI basados en el tiempo. Dónde obtenerlo Columnas CREATION_DATE o ACTION_DATE en tablas de transacciones relevantes, como PAY_ACTION_INFORMATION. Ejemplos 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| Nombre de la actividad ActivityName | El paso o evento específico que se ejecuta en el ciclo de nómina. | ||
| Descripción Este atributo captura el nombre del evento que tiene lugar dentro del proceso de nómina. Algunos ejemplos son 'Time Card Submitted', 'Payroll Calculation Started' y 'Payment Executed'. Es la dimensión principal para descubrir el proceso y analizar sus variantes. En Oracle HCM Cloud, suele derivarse de Action Type o Action Status en las tablas de acciones de nómina. Por qué es importante Define el «qué» del proceso y permite reconstruir el mapa de proceso. Dónde obtenerlo Se deriva del código ACTION_TYPE en PAY_PAYROLL_ACTIONS o de los cambios de estado en los registros de auditoría. Ejemplos Cálculo de nómina iniciadoHoja de horas aprobadaTransferencia bancaria generadaExcepción de auditoría detectada | |||
| Registro de nómina PayrollRecord | Identificador único que representa a una persona empleada dentro de un periodo de pago específico. | ||
| Descripción El registro de nómina actúa como identificador central del caso para el análisis de Process Mining. Es una concatenación o clave única que combina el identificador de asignación de la persona empleada y el identificador del periodo de nómina. Este atributo agrupa todas las actividades relacionadas con el pago a una sola persona empleada durante un ciclo específico, desde el envío inicial de la hoja de horas hasta la transferencia bancaria final y la declaración de impuestos. Garantiza que el análisis pueda distinguir entre el pago a la misma persona empleada en enero y en febrero. Por qué es importante Funciona como Case ID y vincula todos los eventos independientes en una única instancia de proceso para su análisis. Dónde obtenerlo Se construye a partir de PAY_ASSIGNMENT_ACTIONS o de una combinación de Person Number y Payroll Period Name en Oracle HCM. Ejemplos EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| Sistema de origen SourceSystem | El nombre del sistema en el que se originó el evento. | ||
| Descripción Identifica el software o módulo que generó el dato. En este proceso, el valor principal es 'Oracle HCM Cloud Payroll'. Sin embargo, en entornos complejos puede distinguir entre el motor central de nómina, el módulo de tiempo y trabajo o una interfaz bancaria externa. Por qué es importante Aporta contexto sobre la procedencia de los datos, especialmente al integrar datos de subsistemas de control horario o bancarios. Dónde obtenerlo Se codifica durante la extracción o se deriva de los identificadores de interfaz. Ejemplos Oracle HCM Cloud PayrollOracle Time and LaborInterfaz bancaria externa | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo en la que el registro se modificó por última vez en la base de datos de origen. | ||
| Descripción Indica la actualidad de los datos utilizados para el análisis. Es distinto de la marca de tiempo del evento, ya que refleja cuándo un proceso ETL o una actualización del sistema modificó por última vez la fila de la base de datos. Se utiliza para verificar la vigencia de los datos y depurar problemas de latencia en la extracción. Por qué es importante Garantiza que las personas analistas sepan si están consultando datos en tiempo real o desactualizados. Dónde obtenerlo Columna LAST_UPDATE_DATE habitual en casi todas las tablas de Oracle HCM. Ejemplos 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Es una corrección manual IsManualCorrection | Indicador que señala si la actividad implicó una intervención manual. | ||
| Descripción Indicador booleano que se establece en true para actividades como «Data Correction Performed» o «Payroll Record Corrected». Se utiliza para calcular los KPI «Manual Data Correction Rate» y «First-Pass Payroll Accuracy Rate». Por qué es importante Distingue entre el procesamiento directo y el retrabajo manual. Dónde obtenerlo Se obtiene de Activity Name o de tipos de acción específicos que indican ajustes, como QuickPay o Balance Adjustment. Ejemplos truefalse | |||
| Fecha límite de procesamiento del SLA SlaProcessingDeadline | La fecha y hora objetivo en las que debe ejecutarse el pago. | ||
| Descripción Almacena la fecha límite contractual o legal para el desembolso de la nómina. Este atributo se compara con la marca de tiempo «Payment Executed». Se utiliza para calcular el KPI «SLA Processing Deadline Adherence» e identificar los grupos de pago en riesgo. Por qué es importante El principal punto de referencia para determinar el éxito o el incumplimiento del proceso en cuanto a puntualidad. Dónde obtenerlo Normalmente es un campo configurado (DFF) en Payroll Definition o se obtiene de Check Date menos X días. Ejemplos 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Grupo de datos legislativos LegislativeDataGroup | Divide los datos de nómina por país o entorno normativo. | ||
| Descripción En Oracle HCM Cloud, el Legislative Data Group (LDG) divide la nómina y los datos relacionados. Normalmente corresponde a la legislación de un país o territorio específico. Este atributo es fundamental para filtrar el análisis del proceso por país, por ejemplo, nómina de EE. UU. frente a nómina del Reino Unido, y suele asignarse al atributo genérico Country. Por qué es importante Las reglas de Cumplimiento y los flujos de proceso suelen variar considerablemente según la jurisdicción. Dónde obtenerlo Tabla PAY_ALL_PAYROLLS_F unida a las definiciones de Legislative Data Group. Ejemplos Grupo de datos legislativos de EE. UU.UK LDGNómina de Francia | |||
| Grupo de pago PayGroup | Agrupación lógica de personas empleadas para el procesamiento de la nómina. | ||
| Descripción Representa la definición de nómina específica a la que pertenece la persona empleada, por ejemplo, «Weekly Manufacturing» o «Monthly Corporate». Este atributo es fundamental para casi todos los Dashboards, ya que permite comparar el rendimiento entre distintos ciclos y frecuencias de nómina. Por qué es importante El principal objeto de configuración que determina la programación de la nómina. Dónde obtenerlo Tabla PAY_ALL_PAYROLLS_F (Payroll Name). Ejemplos Quincenal de EE. UU.Mensual del Reino UnidoSemanal sindical | |||
| Importe bruto de la nómina GrossPayAmount | El importe bruto total calculado para el periodo. | ||
| Descripción Representa el valor monetario del salario bruto calculado durante el ciclo. Se utiliza en los análisis «Tax and Benefit Calculation Accuracy» e «Incentive Integration». Permite a los analistas correlacionar los pagos de alto valor con el tiempo de procesamiento o las tasas de error. Por qué es importante Aporta contexto financiero al análisis de Process Mining. Dónde obtenerlo Tabla PAY_RUN_RESULT_VALUES, agregada para el saldo Gross Pay. Ejemplos 5000.002350.5010000.00 | |||
| Nombre del departamento DepartmentName | La unidad organizativa en la que trabaja la persona empleada. | ||
| Descripción Identifica el departamento responsable de la persona empleada asociada al registro de nómina. Es fundamental para el Dashboard «Timesheet Approval Efficiency». Al segmentar los datos por departamento, los analistas pueden identificar qué unidades de negocio suelen retrasarse en la aprobación de las hojas de horas, lo que demora la ejecución general de la nómina. Por qué es importante Permite analizar las causas raíz de los retrasos relacionados con las aprobaciones de la dirección. Dónde obtenerlo Se obtiene del registro de asignación de la persona empleada vigente en el momento de ejecutar la nómina. Ejemplos Ventas de NorteaméricaIngenieríaRecursos humanosLogística | |||
| Nombre del periodo de nómina PayrollPeriodName | El nombre específico del intervalo de tiempo correspondiente a la ejecución de la nómina. | ||
| Descripción Identifica el ciclo específico, como «Monthly January 2024» o «Weekly Period 42». Es esencial para el «SLA Deadline Compliance Monitor». Ayuda a agrupar los casos individuales de las personas empleadas en sus respectivas ejecuciones por lotes para elaborar informes agregados. Por qué es importante Es fundamental para el análisis por lotes y el seguimiento de los SLA. Dónde obtenerlo Tabla PAY_TIME_PERIODS o Time Period Name en Payroll Definition. Ejemplos 2023 Mensual 102023 Semanal 42Ejecución de bonos de diciembre de 2023 | |||
| Usuario de procesamiento ProcessingUser | El ID de usuario o el nombre de la persona que realiza la actividad. | ||
| Descripción Registra la identidad del especialista de nómina, gerente o cuenta del sistema que activó la actividad. Esto permite utilizar el Dashboard «Payroll Specialist Workload Distribution». Ayuda a identificar cuellos de botella de recursos y necesidades de capacitación en el equipo de nómina. Por qué es importante Permite analizar la productividad de los recursos y equilibrar la carga de trabajo. Dónde obtenerlo Columnas CREATED_BY o LAST_UPDATED_BY en las tablas de transacciones. Ejemplos sysadminj.smithpayroll_batch_userm.doe | |||
| Estado del SLA SlaStatus | Estado categórico del cumplimiento del SLA (cumplido/incumplido). | ||
| Descripción Se obtiene comparando la marca de tiempo «Payment Executed» con «SLA Processing Deadline». Los valores pueden incluir «On Time», «At Risk» o «Breached». Simplifica los informes del «SLA Deadline Compliance Monitor» al agrupar los casos en categorías de rendimiento. Por qué es importante Simplifica las comparaciones de tiempo complejas y las convierte en categorías prácticas. Dónde obtenerlo Lógica calculada que compara Event Timestamp con SLA Deadline. Ejemplos CumplidoIncumplidoCerca del incumplimiento | |||
| Indicador de cambio retroactivo RetroactiveChangeFlag | Indica si la ejecución de la nómina incluye pagos retroactivos. | ||
| Descripción Indicador booleano que es true si se procesan elementos «Retropay» en este registro. Ayuda a explicar los tiempos de procesamiento más largos o las excepciones de auditoría en «Process Path Variant Comparison». Los cambios retroactivos suelen activar recálculos complejos que abarcan periodos anteriores. Por qué es importante Identifica los casos complejos que, por su naturaleza, requieren más tiempo de procesamiento. Dónde obtenerlo Presencia de entradas del elemento «Retropay» en PAY_ELEMENT_ENTRIES. Ejemplos truefalse | |||
| Jurisdicción fiscal TaxJurisdiction | El estado, provincia o localidad específicos para la presentación de impuestos. | ||
| Descripción Indica la autoridad fiscal principal relacionada con el registro de nómina, por ejemplo, «CA» para California o «NY» para Nueva York. Esto permite utilizar el Dashboard «Tax Compliance Processing Duration». Ayuda a identificar si determinadas regiones tienen procesos de cálculo y presentación de impuestos más complejos o lentos. Por qué es importante Segmenta el rendimiento según la complejidad normativa. Dónde obtenerlo Se obtiene de la tarjeta fiscal de la persona empleada o de las direcciones de su lugar de trabajo. Ejemplos CA-CaliforniaNY-Nueva YorkTX-TexasFederal-EE. UU. | |||
| Número de iteraciones de vista previa PreviewIterationCount | Número de veces que se previsualizaron los resultados antes de finalizarlos. | ||
| Descripción Contador que aumenta cada vez que se produce una actividad «Payroll Result Previewed» para el mismo caso. Es la medida directa del Dashboard «Payroll Preview Iteration Tracker» e indica el nivel de retrabajo o indecisión antes de la aprobación. Por qué es importante Cuantifica la eficiencia de la fase de validación. Dónde obtenerlo Se calcula durante la transformación de datos contando las apariciones de actividades específicas por Case ID. Ejemplos 1350 | |||
| Tipo de excepción de auditoría AuditExceptionType | La categoría del error o la advertencia detectados durante la auditoría. | ||
| Descripción Clasifica el problema específico encontrado durante la actividad «Audit Exception Flagged», por ejemplo, «Negative Net Pay» o «Missing Tax ID». Este atributo permite utilizar el Dashboard «Audit Exception and Correction Analysis» para identificar problemas habituales de calidad de datos. Por qué es importante Es fundamental para analizar las causas raíz de los ciclos de retrabajo. Dónde obtenerlo Columnas Message o Error Code en los registros del proceso de nómina o en los informes de excepciones. Ejemplos Salario neto negativoNúmero de la Seguridad Social ausenteDatos bancarios no válidosLímite de horas extra superado | |||
| Tipo de persona empleada EmployeeType | Clasificación de la persona empleada, por ejemplo, asalariada, por horas o contratista. | ||
| Descripción Clasifica el registro de la persona empleada. Es fundamental para el Dashboard «Digital Pay Slip Publishing Lag», ya que los distintos tipos de personas empleadas pueden estar sujetos a reglas de procesamiento o niveles de urgencia diferentes. Ayuda a filtrar el análisis para comparar el rendimiento del proceso entre distintos segmentos de la plantilla. Por qué es importante Los distintos tipos de personas empleadas suelen seguir variantes de proceso diferentes. Dónde obtenerlo Categoría de asignación o condiciones de empleo en PER_ALL_ASSIGNMENTS_M. Ejemplos Asalariado a tiempo completoPersonal por horas a tiempo parcialContratistaEjecutivo | |||
Actividades del procesamiento de nóminas
| Actividad | Descripción | ||
|---|---|---|---|
| Cálculo de nómina ejecutado | Es la finalización correcta del proceso Calculate Payroll, incluidos los cálculos de bruto a neto. Este evento indica que se han calculado las percepciones, las deducciones y los impuestos de la asignación. | ||
| Por qué es importante Es un hito importante que indica que los datos están listos para su validación. Las duraciones elevadas en este punto pueden indicar problemas de rendimiento del sistema o fórmulas rápidas complejas. Dónde obtenerlo Consulte PAY_PAYROLL_REL_ACTIONS mediante una unión con PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea R o Q y ACTION_STATUS cambie a C (Complete). Recopilar Se registra cuando el estado de la acción Payroll Run cambia a Complete Tipo de evento explicit | |||
| Cálculo de nómina iniciado | Es el inicio del proceso principal de ejecución de nómina para una definición y un periodo de nómina específicos. Marca la transición de la recopilación de datos al procesamiento. | ||
| Por qué es importante Establece el inicio de la ventana de procesamiento intensivo. Se utiliza para calcular el tiempo total del ciclo de ejecución técnica de la nómina. Dónde obtenerlo Consulte la tabla PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea R (Run) o Q (QuickPay) y ACTION_STATUS figure como iniciado, o infiéralo a partir de la fecha de creación. Recopilar Se registra cuando se inserta un registro en PAY_PAYROLL_ACTIONS Tipo de evento explicit | |||
| Pago ejecutado | Es la confirmación final de que el pago se ha procesado. En Oracle, se corresponde con la finalización del flujo de pago o la conciliación en Cash Management. | ||
| Por qué es importante Es la marca de tiempo principal para el cumplimiento del SLA. Se utiliza para determinar si las personas empleadas recibieron su pago a tiempo. Dónde obtenerlo Puede inferirse a partir de la Effective Date de la acción Bank Transfer o registrarse explícitamente mediante los registros de conciliación de Cash Management (CE_STATEMENT_LINES). Recopilar Se registra mediante la fecha efectiva de la acción de pago o el evento de conciliación Tipo de evento explicit | |||
| Prepayments calculados | Es la ejecución del proceso Prepayments, que distribuye el salario neto entre los métodos de pago elegidos por la persona empleada, como Check o EFT. Valida que los importes calculados puedan pagarse realmente. | ||
| Por qué es importante Es el puente entre el cálculo y el desembolso. Los fallos en este punto suelen indicar datos bancarios faltantes o métodos de pago no válidos. Dónde obtenerlo Consulte PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea P (Prepayments) y el estado sea Complete. Recopilar Se registra cuando finaliza la acción Prepayments Tipo de evento explicit | |||
| Transferencia bancaria generada | Es la generación del archivo EFT (Electronic Funds Transfer) u otra salida de pago similar. Es el paso técnico de crear el archivo de instrucciones para el banco. | ||
| Por qué es importante Mide el tiempo del ciclo de generación del archivo de pago. Los retrasos en este punto pueden provocar que no se cumplan las horas límite bancarias. Dónde obtenerlo Consulte PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea M (Magnetic Tape), E (EFT) o C (Check Writer). Recopilar Se registra cuando finaliza la acción EFT/Check Tipo de evento explicit | |||
| Comprobante de pago publicado | Es el momento en que el documento del comprobante de pago pasa a estar visible para la persona empleada en Self Service. Esto ocurre después de Archiver y, posiblemente, de un proceso específico Generate Payslip. | ||
| Por qué es importante Afecta a la satisfacción de las personas empleadas. Los intervalos prolongados entre el pago y la disponibilidad del comprobante generan solicitudes al equipo de soporte. Dónde obtenerlo Consulte la tabla Documents of Record (HR_DOCUMENTS_OF_RECORD) o la finalización del proceso Generate Payslip en PAY_PAYROLL_ACTIONS. Recopilar Se registra cuando finaliza el proceso de generación del PDF del comprobante de pago Tipo de evento explicit | |||
| Costes transferidos | Es la transferencia de los resultados de costes de nómina al libro mayor. Representa el cierre contable del ciclo de nómina. | ||
| Por qué es importante Garantiza el cumplimiento financiero y el registro preciso de los costes laborales. Los retrasos impiden que Finanzas cierre los libros contables. Dónde obtenerlo Consulte PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea T (Transfer to GL) y el estado sea Complete. Recopilar Se registra cuando finaliza el proceso Transfer to GL Tipo de evento explicit | |||
| Datos de incentivos importados | Es la creación de entradas de elementos para pagos variables, como bonificaciones o comisiones, mediante un cargador por lotes o una importación HDL. Representa la integración de datos de compensación externos en la ejecución de nómina. | ||
| Por qué es importante Supervisa la velocidad de integración de los pagos variables. Las importaciones tardías suelen obligar a ejecutar nóminas complementarias o realizar correcciones manuales. Dónde obtenerlo Consulte PAY_BATCH_HEADERS para comprobar la finalización de la importación o supervise la creación de PAY_ELEMENT_ENTRIES_F con una referencia específica al sistema de origen. Recopilar Se registra cuando el proceso de entrada de elementos por lotes finaliza correctamente Tipo de evento explicit | |||
| Ejecución de nómina aprobada | Es la aprobación formal del registro o flujo de nómina dentro del Payroll Dashboard. Normalmente se produce después de revisar los informes de validación y antes de generar los archivos bancarios. | ||
| Por qué es importante Representa la aprobación de la dirección. El tiempo transcurrido entre el cálculo y la aprobación representa la ventana de verificación. Dónde obtenerlo Consulte PAY_REQ_FLOW_INSTANCES para detectar cambios de estado o la finalización de una tarea específica dentro de un Payroll Flow Pattern definido. Recopilar Se registra cuando el estado de Flow Instance cambia a Completed/Approved Tipo de evento explicit | |||
| Excepción de auditoría detectada | Es el registro de un mensaje de error o advertencia durante la fase de cálculo o validación de la nómina. Captura fallos de validación específicos que requieren intervención humana. | ||
| Por qué es importante Es esencial para identificar problemas de calidad de datos. Un volumen elevado de excepciones aumenta el esfuerzo manual y el riesgo de incumplir el SLA. Dónde obtenerlo Consulte la tabla PAY_MESSAGE_LINES vinculada al PAY_PAYROLL_REL_ACTION_ID específico. Esta tabla almacena los errores y las advertencias generados durante las ejecuciones. Recopilar Se registra cuando se inserta un registro en PAY_MESSAGE_LINES Tipo de evento explicit | |||
| Hoja de horas aprobada | Es la confirmación de que una persona responsable ha revisado y autorizado los datos de tiempo enviados. Este cambio de estado activa la transferencia de los datos a las entradas de elementos de nómina. | ||
| Por qué es importante Es fundamental para medir el tiempo de aprobación de la persona responsable. Los retrasos en este punto son una causa principal de los ajustes de pagos retroactivos en periodos posteriores. Dónde obtenerlo Consulte la tabla HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS cuando el estado cambie a APPROVED. Compare la marca de tiempo de aprobación con la del envío. Recopilar Se registra cuando el estado cambia a APPROVED en Time and Labor Tipo de evento explicit | |||
| Hoja de horas enviada | Es el evento inicial en el que una persona empleada o responsable envía los datos de tiempo y trabajo para su procesamiento. En Oracle HCM, se registra cuando el estado de la hoja de horas cambia a Submitted en el módulo Time and Labor. | ||
| Por qué es importante Marca la entrada de datos sin procesar en el posible flujo de nómina. Los retrasos en este punto se propagan a las etapas posteriores y reducen el margen disponible para que los especialistas de nómina validen los cálculos. Dónde obtenerlo Consulte la tabla HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS cuando el estado cambie a SUBMITTED. Utilice la marca de tiempo del envío. Recopilar Se registra cuando el estado cambia a SUBMITTED en Time and Labor Tipo de evento explicit | |||
| Presentación de impuestos completada | Es la generación de archivos fiscales reglamentarios, como Third Party Quarterly Tax File. Garantiza el cumplimiento normativo del periodo de nómina. | ||
| Por qué es importante Es fundamental para el KPI Tax Compliance Processing Duration. Los fallos en este punto pueden provocar sanciones. Dónde obtenerlo Consulte PAY_PAYROLL_ACTIONS para obtener las acciones del grupo de datos legislativos específicas relacionadas con la declaración de impuestos, como US Third Party Tax Filing. Recopilar Se registra cuando finaliza el flujo específico de declaración de impuestos Tipo de evento explicit | |||
| QuickPay ejecutado | Es la ejecución de una nómina para una sola persona, QuickPay, que generalmente se utiliza para verificar correcciones. Sirve como indicador indirecto de la actividad Payroll Result Previewed. | ||
| Por qué es importante Los QuickPay frecuentes por persona indican un enfoque de prueba y error en el procesamiento de nómina, en lugar de un enfoque Dónde obtenerlo Consulte PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea Q (QuickPay). Cuente las instancias por periodo de nómina y persona empleada. Recopilar Se registra cuando una acción QuickPay queda registrada en PAY_PAYROLL_ACTIONS Tipo de evento explicit | |||
| Registro de nómina corregido | Son actualizaciones manuales aplicadas a las entradas de elementos o a los datos de la asignación después de una ejecución inicial de nómina, pero antes de su finalización. Esta actividad representa el retrabajo necesario para corregir errores o excepciones. | ||
| Por qué es importante Indica ineficiencias del proceso y problemas de calidad de datos. Reducir esta actividad es clave para mejorar la tasa de precisión de la nómina en el primer intento. Dónde obtenerlo Se infiere al identificar actualizaciones en PAY_ELEMENT_ENTRIES_F cuya Last Update Date se encuentre entre la fecha de la ejecución inicial de nómina y la fecha de Prepayments. Recopilar Compare las marcas de tiempo de actualización de las entradas de elementos con las marcas de tiempo de las ejecuciones de nómina Tipo de evento inferred | |||
| Resultados de archivo generados | Es la finalización del proceso Archive Periodic Payroll Results. Esta instantánea bloquea efectivamente los datos para la generación de informes y comprobantes de pago. | ||
| Por qué es importante Es un requisito técnico previo para generar comprobantes de pago e informes reglamentarios. Confirma que los datos están finalizados. Dónde obtenerlo Consulte PAY_PAYROLL_ACTIONS cuando ACTION_TYPE sea X (Archive) y el estado sea Complete. Recopilar Se registra cuando finaliza la acción Archive Tipo de evento explicit | |||
Guías de extracción
Pasos
Acceder a Data Exchange: Inicie sesión en Oracle HCM Cloud con un usuario que tenga el rol 'Human Capital Management Integration Specialist'. Vaya a My Client Groups > Data Exchange > Extract Definitions.
Crear un extracto nuevo: Haga clic en el icono '+' para crear un extracto nuevo. Asígnele el nombre 'ProcessMind_Payroll_Extract'. Seleccione 'Payroll' como consumidor y 'HR Archive' como categoría para garantizar el acceso a los datos históricos de acciones de nómina.
Definir los grupos de datos: Cree un Root Data Group basado en la User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship). Esto vincula la extracción con la relación de nómina del empleado. Cree grupos de datos secundarios paraPAY_ACTION_INFORMATION_UE,PAY_ELEMENT_ENTRY_UEyHWM_MEASURE_DAY_V_UE(para tiempo y trabajo).Configurar los registros del extracto: Dentro de los grupos de datos, defina registros para aplanar los datos jerárquicos. Debe crear registros específicos para cada tipo de actividad, por ejemplo, un registro que filtre los eventos 'Time Card' y otro para 'Run Results'.
Implementar la lógica SQL mediante FastFormula o BIP: Debido a la complejidad de transformar los datos jerárquicos de nómina en un Registro de eventos lineal, el enfoque más sólido consiste en utilizar 'Extract Delivery Option' para llamar a un informe de BI Publisher. Esto le permite usar el SQL proporcionado en la sección 'Query' siguiente como Data Model. Este método es superior al filtrado mediante la interfaz gráfica nativa para crear un Registro de eventos unificado.
Crear un Data Model de BI Publisher: Vaya a Tools > Reports and Analytics > Browse Catalog. Cree un Data Model nuevo. Pegue la consulta SQL proporcionada a continuación. Defina un parámetro para
bind_start_dateybind_end_date.Vincular el extracto con BIP: En la pestaña 'Delivery' de Extract Definition, cree una opción de entrega. Seleccione 'PDF' o 'XML' como tipo de salida. ProcessMind prefiere CSV, pero deberá convertir la salida de BIP. Seleccione el informe de BI Publisher que creó en el paso anterior.
Definir los parámetros: En el Extract Execution Tree, añada parámetros para la fecha de inicio y la fecha de finalización, de modo que se envíen dinámicamente a la consulta de BI Publisher.
Validar y enviar: Valide la definición del extracto para comprobar si hay errores. Haga clic en 'Submit Extract'. Introduzca los parámetros, por ejemplo, los últimos 90 días.
Supervisar el proceso: Vaya a 'View Extract Results'. Espere a que el estado cambie a 'Succeeded'.
Descargar la salida: Descargue el archivo XML/CSV generado. Ábralo para verificar que la estructura contiene las columnas necesarias: PayrollRecord, ActivityName, EventTimestamp, etc.
Dar formato para ProcessMind: Si la salida está en XML, conviértala en un archivo CSV plano y asegúrese de que los encabezados coincidan con los requisitos de 'Attributes to include'. Cargue el archivo resultante en ProcessMind.
Configuración
- Modo de extracción: Changes Only frente a Full Extract. Para la carga inicial, utilice Full Extract. Para las actualizaciones diarias, configure 'Changes Only' según Last Update Date.
- Legislative Data Group (LDG): Se recomienda encarecidamente filtrar por LDG si su instancia admite varios países, ya que las definiciones de nómina varían según la legislación.
- Intervalo de fechas: Configure
bind_start_dateybind_end_datepara abarcar al menos entre 3 y 6 meses, de modo que el process mining capture los tiempos de ciclo completos. - Tamaño de bloque: Para nóminas de gran volumen, con más de 10.000 empleados, establezca el tamaño de bloque en 2000 en Extract Definition para evitar errores de tiempo de espera.
- Vigencia por fecha: Las tablas de nómina tienen vigencia por fecha. La lógica de la consulta gestiona explícitamente
effective_start_dateyeffective_end_datepara garantizar que se recupere la versión histórica correcta del registro. - Seguridad: El usuario que ejecute el proceso debe tener perfiles de seguridad de datos que permitan consultar todas las nóminas y departamentos incluidos en el análisis.
a Consulta de ejemplo sql
/* Oracle HCM Cloud Payroll Extraction for ProcessMind */
/* Aggregating 16 specific activities into a unified Event Log */
SELECT
/* Attributes */
rel.person_number || '-' || ppa.payroll_action_id AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
TO_CHAR(htr.creation_date, 'YYYY-MM-DD HH24:MI:SS') AS EventTimestamp,
'Oracle HCM Time and Labor' AS SourceSystem,
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS') AS LastDataUpdate,
pap.name AS PayrollPeriodName,
org.name AS DepartmentName,
NULL AS GrossPayAmount
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id /* Adjust mapping */
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'SUBMITTED'
AND htr.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Time Card Approved',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Time and Labor',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'APPROVED'
AND htr.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || pee.element_entry_id,
'Incentive Data Imported',
TO_CHAR(pee.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
NULL,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_element_types_f pet ON pee.element_type_id = pet.element_type_id
JOIN per_all_assignments_m asg ON pee.assignment_id = asg.assignment_id
JOIN per_all_people_f rel ON asg.person_id = rel.person_id
LEFT JOIN per_departments org ON asg.organization_id = org.organization_id
WHERE pet.classification_name IN ('Supplemental Earnings', 'Voluntary Deductions')
AND pee.creator_type IN ('H', 'F') /* HDL or Flat File */
AND pee.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Started',
TO_CHAR(ppa.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_actions ppa
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id /* Simplified Join */
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q') /* Run or QuickPay */
AND ppa.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(prrv.result_value) FROM pay_run_result_values prrv JOIN pay_run_results prr ON prrv.run_result_id = prr.run_result_id WHERE prr.payroll_rel_action_id = pra.payroll_rel_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q')
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Audit Exception Flagged',
TO_CHAR(pml.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pml.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_message_lines pml
JOIN pay_payroll_rel_actions pra ON pml.source_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pml.message_level IN ('F', 'E') /* Fatal or Error */
AND pml.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Record Corrected',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_payroll_rel_actions pra ON pee.creator_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pee.last_update_date > pee.creation_date
AND pee.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'QuickPay Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'Q'
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Prepayments Calculated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'P' /* Distribution */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Run Approved',
TO_CHAR(pfi.action_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pfi.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_flow_instances pfi
JOIN pay_payroll_actions ppa ON pfi.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pfi.status = 'COMPLETED'
AND pfi.instance_name LIKE '%Approval%'
AND pfi.action_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Archive Results Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'X' /* Archive */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Bank Transfer Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(ppp.value) FROM pay_pre_payments ppp WHERE ppp.payroll_action_id = ppa.payroll_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('M', 'E') /* Mag Tape or EFT */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payment Executed',
TO_CHAR(ppp.base_currency_value, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
ppp.value AS GrossPayAmount
FROM pay_pre_payments ppp
JOIN pay_payroll_actions ppa ON ppp.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('H', 'E', 'M') /* Check or EFT */
AND ppa.effective_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Pay Slip Published',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'G' /* Generate Payslip */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Costing Transferred',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'T' /* Transfer to GL */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Tax Filing Completed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.report_category IN ('Tax', 'Regulatory') /* Customize based on local requirements */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date Pasos
- Iniciar sesión en Oracle BI Publisher: Acceda al entorno de Oracle Cloud y vaya a Tools > Reports and Analytics. Haga clic en Browse Catalog para abrir la interfaz de BI Publisher.
- Crear un modelo de datos: Haga clic en Nuevo, arriba a la izquierda, y seleccione Modelo de datos. Este será el contenedor de la lógica de extracción SQL.
- Crear un conjunto de datos SQL: En la pestaña Diagram, haga clic en el icono Nuevo conjunto de datos y seleccione Consulta SQL.
- Configurar la fuente de datos: Asigne un nombre al conjunto de datos, por ejemplo,
ProcessMind_Payroll_Extract. Establezca la Fuente de datos enApplicationDB_HCMo en la conexión específica de la base de datos de aplicaciones HCM. Mantenga el tipo como SQL estándar. - Introducir la consulta: Copie el script SQL completo proporcionado en la sección Query siguiente y péguelo en el cuadro de texto de la consulta SQL. Asegúrese de no incluir ningún formato Markdown.
- Definir los parámetros: La consulta utiliza las variables de enlace
:p_start_datey:p_end_date. En la pestaña Parámetros del modelo de datos, cree estos dos parámetros de tipo fecha para filtrar el intervalo de extracción, por ejemplo, segúnppa.EFFECTIVE_DATE. - Validar la estructura de los datos: Haga clic en Aceptar. Cambie a la pestaña Datos del editor del modelo de datos. Introduzca fechas de ejemplo, como
2023-01-01a2023-03-31, y haga clic en Ver. Asegúrese de que el resultado contenga filas conPayrollRecord,ActivityNameyEventTimestamp. - Guardar el modelo de datos: Guarde el modelo en una carpeta compartida, por ejemplo,
/Shared Folders/Custom/ProcessMining. - Crear un informe para la exportación: Haga clic en Crear informe y seleccione el modelo de datos que acaba de guardar. Utilice el Asistente de informes para crear una disposición de tabla que contenga todas las columnas. Desmarque «Mostrar totales generales».
- Exportar a CSV: Vea el informe en el visor de informes. Haga clic en el menú Acciones, con el icono de engranaje, y seleccione Exportar > Datos > CSV.
- Transformar: Abra el CSV. Asegúrese de que los formatos de fecha sean ISO 8601 (
YYYY-MM-DD HH:MM:SS) si no se han formateado automáticamente. No debería ser necesario reorganizar los datos si la consulta SQL se pegó correctamente. - Cargar: Importe el archivo CSV resultante en ProcessMind y asigne las columnas según se define en los requisitos de datos.
Configuración
- Conexión al origen de datos: Debe utilizar
ApplicationDB_HCMo el origen de datos JNDI equivalente con acceso de lectura a los esquemasPAY_yPER_. - Intervalo de fechas: Se recomienda una ventana de extracción de entre 3 y 6 meses para capturar ciclos completos de nómina. Utilice los parámetros
:p_start_datey:p_end_datepara controlar esta carga dinámica. - Legislative Data Group (LDG): La consulta extrae todos los LDG de forma predeterminada. Si trabaja con varios países, considere añadir el filtro
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]para particionar los datos. - Rendimiento: La consulta accede a tablas de gran volumen (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Asegúrese de que el intervalo de fechas no sea demasiado amplio, por ejemplo, superior a un año, para evitar errores de tiempo de espera en BI Publisher. - Seguridad: El usuario que ejecute el informe necesita permisos de Data Access Set para las definiciones de nómina de destino.
a Consulta de ejemplo sql
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
peef.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME AS LegislativeDataGroup,
org.NAME AS DepartmentName,
peef.LAST_UPDATED_BY AS ProcessingUser,
NULL AS GrossPayAmount,
ptp.PERIOD_NAME AS PayrollPeriodName,
NULL AS SlaProcessingDeadline,
'N' AS IsManualCorrection,
pg.PAYROLL_NAME AS PayGroup,
NULL AS ProcessDurationDays
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE = 'H'
AND peef.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Time Card Approved' AS ActivityName,
peef.EFFECTIVE_START_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE = 'H'
AND peef.EFFECTIVE_START_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Incentive Data Imported' AS ActivityName,
peef.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE IN ('B', 'F')
AND peef.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
CASE
WHEN ppa.ACTION_TYPE = 'R' AND paa.ACTION_STATUS = 'C' THEN 'Payroll Calculation Executed'
WHEN ppa.ACTION_TYPE = 'R' THEN 'Payroll Calculation Started'
WHEN ppa.ACTION_TYPE = 'Q' THEN 'QuickPay Executed'
WHEN ppa.ACTION_TYPE IN ('P', 'U') THEN 'Prepayments Calculated'
WHEN ppa.ACTION_TYPE = 'X' THEN 'Archive Results Generated'
WHEN ppa.ACTION_TYPE = 'M' THEN 'Bank Transfer Generated'
WHEN ppa.ACTION_TYPE IN ('Z', 'E') THEN 'Payment Executed'
WHEN ppa.ACTION_TYPE = 'T' THEN 'Costing Transferred'
ELSE 'Payroll Process Action'
END AS ActivityName,
ppa.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
paa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
ptp.REGULAR_PAYMENT_DATE AS SlaProcessingDeadline,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE IN ('R', 'Q', 'P', 'U', 'X', 'M', 'Z', 'E', 'T')
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Audit Exception Flagged' AS ActivityName,
pml.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
pml.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
pml.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'Y',
pg.PAYROLL_NAME,
NULL
FROM PAY_MESSAGE_LINES pml
JOIN PAY_PAYROLL_ACTIONS ppa ON pml.PAYROLL_ACTION_ID = ppa.PAYROLL_ACTION_ID
LEFT JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE pml.MESSAGE_LEVEL IN ('E', 'W')
AND pml.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Payroll Record Corrected' AS ActivityName,
peef.LAST_UPDATE_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'Y',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.LAST_UPDATE_DATE > peef.CREATION_DATE
AND peef.LAST_UPDATE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Payroll Run Approved' AS ActivityName,
ppa.LAST_UPDATE_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'R'
AND paa.ACTION_STATUS = 'C'
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Pay Slip Published' AS ActivityName,
(ppa.CREATION_DATE + 1) AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'X'
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Tax Filing Completed' AS ActivityName,
ppa.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'Z'
AND ppa.CREATION_DATE BETWEEN :p_start_date AND :p_end_date ¿Listo para comenzar?
Transforme sus operaciones de nómina utilizando este Template de datos para obtener visibilidad completa de sus ciclos. Comience hoy su camino hacia una mayor eficiencia automatizada y reportes precisos.
Optimice hoy su procesamiento de nómina en Oracle HCM
Reduzca un 30 % el tiempo del ciclo de nómina y elimine los cuellos de botella.
No necesita tarjeta de crédito. Configuración en minutos.