Su Plantilla de Datos para el Procesamiento de Nóminas
Su Plantilla de Datos para el Procesamiento de Nóminas
- Campos de datos optimizados para el análisis de nóminas
- Seguimiento integral de actividades para mapeo de ciclo de vida
- Guía detallada de extracción para Oracle HCM Cloud Payroll
Atributos de Procesamiento de Nóminas
| Nombre | Descripción | ||
|---|---|---|---|
| Nombre de la Actividad ActivityName | El paso o evento específico realizado en el ciclo de nómina. | ||
| Descripción Este atributo captura el nombre del evento que ocurre dentro del proceso de nómina. Los ejemplos incluyen 'Tarjeta de Tiempo Enviada', 'Cálculo de Nómina Iniciado' y 'Pago Ejecutado'. Es la dimensión principal para el descubrimiento de procesos y el análisis de variantes. En Oracle HCM Cloud, esto a menudo se deriva del Tipo de Acción o Estado de Acción dentro de las tablas de acción de nómina. Por qué es importante Esto define el 'qué' del proceso, permitiendo que el mapa del proceso sea reconstruido. Dónde obtener Derivado del código ACTION_TYPE en PAY_PAYROLL_ACTIONS o cambios de estado en los rastros de auditoría. Ejemplos Cálculo de Nómina IniciadoTarjeta de Tiempo AprobadaTransferencia Bancaria GeneradaExcepción de Auditoría Marcada | |||
| Registro de Nómina PayrollRecord | Identificador único que representa a un empleado dentro de un período de pago específico. | ||
| Descripción El Registro de Nómina actúa como el identificador de case central para el análisis de Process Mining. Es una concatenación o clave única que combina el Identificador de Asignación de Empleado y el Identificador de Período de Nómina. Este atributo agrupa todas las actividades relacionadas con el pago a un solo empleado para un ciclo específico, desde la presentación inicial de la tarjeta de tiempo hasta la transferencia bancaria final y la presentación de impuestos. Asegura que el análisis pueda distinguir entre el mismo empleado que recibe el pago en enero frente a febrero. Por qué es importante Sirve como ID de Caso, vinculando todos los eventos dispares en una única instancia de proceso para el análisis. Dónde obtener Construido a partir de PAY_ASSIGNMENT_ACTIONS o una combinación de Número de Persona y Nombre de Período de Nómina en Oracle HCM. Ejemplos EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-ENE23 | |||
| Source System SourceSystem | El nombre del sistema donde se originó el `evento`. | ||
| Descripción Identifica el software o módulo que generó el punto de datos. Para este proceso, el valor principal es 'Oracle HCM Cloud Payroll'. Sin embargo, en entornos complejos, esto podría distinguir entre el motor de nómina principal, el módulo de tiempo y trabajo, o una interfaz bancaria externa. Por qué es importante Proporciona contexto de linaje, especialmente al integrar datos de subsistemas de control horario o bancarios. Dónde obtener Codificado de forma rígida durante la extracción o derivado de IDs de interfaz. Ejemplos Oracle HCM Cloud PayrollOracle Gestión de Tiempos y Mano de ObraInterfaz Bancaria Externa | |||
| Timestamp del Evento EventTimestamp | La fecha y hora exactas en que ocurrió la actividad. | ||
| Descripción Registra el momento específico en que ocurrió una actividad. Esto es crítico para calcular duraciones, plazos e identificar cuellos de botella. Para pasos automatizados, este es el tiempo de ejecución del sistema. Para pasos manuales como aprobaciones, es la marca de tiempo de la acción del usuario registrada en el log de transacciones. Por qué es importante Esencial para ordenar los eventos cronológicamente y calcular todos los KPIs basados en el tiempo. Dónde obtener 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 | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo cuando el registro fue modificado por última vez en la base de datos de origen. | ||
| Descripción Indica la frescura de los datos utilizados para el análisis. Esto es distinto de la Marca de Tiempo del Evento; refleja cuándo la fila en la base de datos fue tocada por última vez por un proceso ETL o una actualización del sistema. Se utiliza para verificar la actualidad de los datos y depurar problemas de latencia de extracción. Por qué es importante Asegura que los analistas sepan si están viendo datos en tiempo real o datos obsoletos. Dónde obtener Columna LAST_UPDATE_DATE común en casi todas las tablas de Oracle HCM. Ejemplos 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| Días de Duración del Proceso ProcessDurationDays | Tiempo total desde la inicialización hasta el pago. | ||
| Descripción La duración calculada entre la primera actividad y la actividad 'Pago Ejecutado'. Se utiliza para el Dashboard de 'Tiempo de Ciclo de Nómina de Extremo a Extremo'. Esta métrica sirve como una verificación de salud de alto nivel para la velocidad de la función de nómina. Por qué es importante KPI de alto nivel para la eficiencia del proceso. Dónde obtener Calculado: Marca de tiempo (Pago Ejecutado) - Marca de tiempo (Inicio). Ejemplos 3.55.00.5 | |||
| Es Corrección Manual IsManualCorrection | Indicador que señala si la actividad implicó intervención manual. | ||
| Descripción Un indicador booleano que se establece en verdadero para actividades como 'Corrección de Datos Realizada' o 'Registro de Nómina Corregido'. Se utiliza para calcular los KPIs de 'Tasa de Corrección Manual de Datos' y 'Tasa de Precisión de Nómina en Primera Pasada'. Por qué es importante Diferencia entre el procesamiento directo y el retrabajo manual. Dónde obtener Derivado del Nombre de la Actividad o Tipos de Acción específicos que indican ajustes (ej., QuickPay, Ajuste de Saldo). Ejemplos truefalse | |||
| Grupo de Datos Legislativos LegislativeDataGroup | Particiona los datos de nómina por país o entorno regulatorio. | ||
| Descripción En Oracle HCM Cloud, el Grupo de Datos Legislativos (LDG) particiona los datos de nómina y relacionados. Generalmente, corresponde a la legislación de un país o territorio específico. Este atributo es vital para filtrar el análisis de procesos por país (ej., Nómina de EE. UU. vs. Nómina del Reino Unido) y a menudo se mapea al atributo genérico de País. Por qué es importante Las reglas de cumplimiento y los flujos de proceso a menudo varían significativamente según la jurisdicción. Dónde obtener Tabla PAY_ALL_PAYROLLS_F unida a definiciones de Grupo de Datos Legislativos. Ejemplos Grupo de Datos Legislativos de EE. UU.UK LDGNómina de Francia | |||
| Grupo de Pago PayGroup | Agrupación lógica de empleados para el procesamiento de la nómina. | ||
| Descripción Representa la definición específica de nómina a la que pertenece el empleado (por ejemplo, 'Manufactura Semanal', 'Corporativo Mensual'). Este atributo es central para casi todos los dashboards, permitiendo la comparación de rendimiento entre diferentes ciclos y frecuencias de nómina. Por qué es importante El objeto de configuración principal que impulsa la programación de la nómina. Dónde obtener Tabla PAY_ALL_PAYROLLS_F (Nombre de Nómina). Ejemplos Quincenal de EE. UU.Mensual del Reino UnidoSindicato Semanal | |||
| Monto del Salario Bruto GrossPayAmount | El total del salario bruto calculado para el período. | ||
| Descripción Representa el valor monetario del salario bruto calculado durante el ciclo. Esto se utiliza en el análisis de 'Precisión del Cálculo de Impuestos y Beneficios' e 'Integración de Incentivos'. Permite a los analistas correlacionar pagos de alto valor con el tiempo de procesamiento o las tasas de error. Por qué es importante Proporciona contexto financiero al análisis de Process Mining. Dónde obtener Tabla PAY_RUN_RESULT_VALUES, agregada para el saldo de Salario Bruto. Ejemplos 5000.002350.5010000.00 | |||
| Nombre del Departamento DepartmentName | La unidad organizacional donde trabaja el empleado. | ||
| Descripción Identifica el departamento responsable del empleado asociado al registro de nómina. Esto es crucial para el dashboard de 'Eficiencia en la Aprobación de Hojas de Horas'. Al segmentar los datos por departamento, los analistas pueden identificar qué unidades de negocio se retrasan consistentemente en la aprobación de tarjetas de tiempo, demorando la ejecución general de la nómina. Por qué es importante Permite el análisis de la causa raíz de los retrasos relacionados con las aprobaciones de gestión. Dónde obtener Derivado del registro de asignación del empleado efectivo en el momento de la ejecución de la nómina. Ejemplos Ventas América del NorteIngenieríaRecursos HumanosLogística | |||
| Nombre del Período de Nómina PayrollPeriodName | El nombre específico del intervalo de tiempo para la ejecución de la nómina. | ||
| Descripción Identifica el ciclo específico, como 'Mensual Enero 2024' o 'Período Semanal 42'. Esto es esencial para el 'Monitor de Cumplimiento de Plazos de SLA'. Ayuda a agrupar casos individuales de empleados en sus respectivas ejecuciones por lotes para informes agregados. Por qué es importante Fundamental para el análisis a nivel de lote y el seguimiento de SLA. Dónde obtener Tabla PAY_TIME_PERIODS o Nombre del Período de Tiempo en la Definición de Nómina. Ejemplos 2023 Monthly 102023 Weekly 42Ejecución de Bonificación Dic 2023 | |||
| Plazo de Procesamiento del SLA SlaProcessingDeadline | La fecha/hora objetivo en la que debe ejecutarse el pago. | ||
| Descripción Almacena el plazo contractual o legal para el desembolso de la nómina. Este atributo se compara con la marca de tiempo de 'Pago Ejecutado'. Se utiliza para calcular el KPI de 'Cumplimiento del Plazo de Procesamiento del SLA' e identificar grupos de pago en riesgo. Por qué es importante El principal punto de referencia para el éxito o fracaso del proceso en cuanto a la puntualidad. Dónde obtener Generalmente un campo configurado (DFF) en la Definición de Nómina o derivado de la Fecha del Cheque menos X días. Ejemplos 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| Usuario de Procesamiento ProcessingUser | El ID de usuario o nombre de la persona que realiza la actividad. | ||
| Descripción Captura la identidad del especialista de nómina, gerente o cuenta del sistema que desencadenó la actividad. Esto apoya el dashboard de 'Distribución de Carga de Trabajo del Especialista de Nómina'. Ayuda a identificar cuellos de botella de recursos y necesidades de capacitación dentro del equipo de nómina. Por qué es importante Permite el análisis de productividad de recursos y el equilibrio de la carga de trabajo. Dónde obtener Columnas CREATED_BY o LAST_UPDATED_BY en tablas de transacciones. Ejemplos sysadminj.smithpayroll_batch_userm.doe | |||
| Estado de SLA SlaStatus | Estado categórico de cumplimiento de SLA (Cumplido/Incumplido). | ||
| Descripción Derivado comparando la marca de tiempo de 'Pago Ejecutado' con el 'Plazo de Procesamiento de SLA'. Los valores pueden incluir 'A Tiempo', 'En Riesgo' o 'Incumplido'. Esto simplifica los informes para el 'Monitor de Cumplimiento de Plazos de SLA' al agrupar casos en categorías de rendimiento. Por qué es importante Simplifica comparaciones de tiempo complejas en categorías accionables. Dónde obtener Lógica calculada comparando Marca de Tiempo del Evento vs Plazo de SLA. Ejemplos CumplidoIncumplidoCerca del Incumplimiento | |||
| Indicador de Cambio Retroactivo RetroactiveChangeFlag | Indica si la ejecución de la nómina incluye pagos retroactivos. | ||
| Descripción Un indicador booleano que es verdadero si se procesan elementos de 'Retropago' en este registro. Esto ayuda a explicar tiempos de procesamiento más largos o excepciones de auditoría en la 'Comparación de Variantes de Ruta de Proceso'. Los cambios retroactivos a menudo desencadenan recálculos complejos que abarcan períodos anteriores. Por qué es importante Identifica casos complejos que, naturalmente, requieren más tiempo de procesamiento. Dónde obtener Presencia de entradas de elementos de 'Retropago' en PAY_ELEMENT_ENTRIES. Ejemplos truefalse | |||
| Jurisdicción Fiscal TaxJurisdiction | El estado, provincia o localidad específica para la presentación de impuestos. | ||
| Descripción Indica la autoridad fiscal principal relacionada con el registro de nómina (ej., 'CA' para California, 'NY' para Nueva York). Esto apoya el dashboard de 'Duración del Procesamiento de Cumplimiento Fiscal'. Ayuda a identificar si regiones específicas tienen procesos de cálculo y presentación de impuestos más complejos o lentos. Por qué es importante Segmenta el rendimiento por complejidad regulatoria. Dónde obtener Derivado de la tarjeta fiscal del empleado o de las direcciones de su lugar de trabajo. Ejemplos CA-CaliforniaNY-Nueva YorkTX-TexasFederal-EE. UU. | |||
| Recuento de Iteraciones de Previsualización PreviewIterationCount | Número de veces que los resultados fueron previsualizados antes de la finalización. | ||
| Descripción Un contador que se incrementa cada vez que ocurre una actividad de 'Vista Previa del Resultado de la Nómina' para el mismo caso. Esta es la medida directa para el dashboard 'Rastreador de Iteraciones de Vista Previa de Nómina', indicando la cantidad 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 obtener Calculado durante la transformación de datos contando ocurrencias de actividades específicas por ID de Caso. Ejemplos 1350 | |||
| Tipo de Empleado EmployeeType | Clasificación del empleado (ej., Asalariado, Por Horas, Contratista). | ||
| Descripción Clasifica el registro del empleado. Esto es vital para el dashboard 'Retraso en la Publicación del Recibo de Nómina Digital', ya que diferentes tipos de empleados pueden tener diferentes reglas de procesamiento o urgencias. Ayuda a filtrar el análisis para comparar el rendimiento del proceso entre diferentes segmentos de la fuerza laboral. Por qué es importante Diferentes tipos de empleados a menudo siguen diferentes variantes de proceso. Dónde obtener Categoría de asignación o términos de empleo en PER_ALL_ASSIGNMENTS_M. Ejemplos Asalariado a Tiempo CompletoTiempo Parcial por HorasContratistaEjecutivo | |||
| Tipo de Excepción de Auditoría AuditExceptionType | La categoría de error o advertencia marcada durante la auditoría. | ||
| Descripción Categoriza el problema específico encontrado durante la actividad 'Excepción de Auditoría Marcada' (ej., 'Pago Neto Negativo', 'ID Fiscal Faltante'). Este atributo apoya el dashboard de 'Análisis de Excepciones y Correcciones de Auditoría' al identificar problemas comunes de calidad de datos. Por qué es importante Crítico para el análisis de la causa raíz de los bucles de retrabajo. Dónde obtener Columnas de Mensaje o Código de Error en los registros de procesos de nómina o informes de excepción. Ejemplos Salario Neto NegativoSSN FaltanteDatos Bancarios InválidosLímite de Horas Extra Superado | |||
Actividades de Procesamiento de Nóminas
| Actividad | Descripción | ||
|---|---|---|---|
| Cálculo de Nómina Ejecutado | La finalización exitosa del proceso de Calcular Nómina, incluyendo los cálculos de bruto a neto. Este evento indica que las ganancias, deducciones e impuestos han sido computados para la asignación. | ||
| Por qué es importante Un hito importante que indica que los datos están listos para la validación. Las altas duraciones aquí pueden indicar problemas de rendimiento del sistema o fórmulas rápidas complejas. Dónde obtener Consulte PAY_PAYROLL_REL_ACTIONS uniéndose a PAY_PAYROLL_ACTIONS donde ACTION_TYPE es R o Q y ACTION_STATUS cambia a C (Completo). Capturar Registrado cuando el estado de la acción de Ejecución de Nómina se actualiza a Completa Tipo de evento explicit | |||
| Cálculo de Nómina Iniciado | El inicio del proceso principal de ejecución de nómina para una definición y período de nómina específicos. Esto 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 para la ejecución técnica de la nómina. Dónde obtener Consulte la tabla PAY_PAYROLL_ACTIONS donde ACTION_TYPE es R (Ejecución) o Q (QuickPay) y ACTION_STATUS está marcado como iniciado (o inferido de la fecha de creación). Capturar Registrado cuando se inserta el registro de PAY_PAYROLL_ACTIONS Tipo de evento explicit | |||
| Pago Ejecutado | La confirmación final de que el pago ha sido procesado. En Oracle, esto se correlaciona con la finalización del flujo de pago o la conciliación en la Gestión de Efectivo. | ||
| Por qué es importante La marca de tiempo principal para el Cumplimiento del SLA. Se utiliza para determinar si los empleados recibieron el pago a tiempo. Dónde obtener Se puede inferir de la Fecha Efectiva de la acción de Transferencia Bancaria, o explícitamente a través de los registros de conciliación de Gestión de Efectivo (CE_STATEMENT_LINES). Capturar Registrado mediante la fecha efectiva de la acción de pago o el evento de conciliación Tipo de evento explicit | |||
| Pagos Anticipados Calculados | La ejecución del proceso de Pagos Anticipados que distribuye el pago neto a los métodos de pago elegidos por el empleado (Cheque, EFT, etc.). Esto valida que los montos calculados realmente pueden pagarse. | ||
| Por qué es importante El puente entre el cálculo y el desembolso. Las fallas aquí suelen indicar detalles bancarios faltantes o métodos de pago inválidos. Dónde obtener Consulte PAY_PAYROLL_ACTIONS donde ACTION_TYPE es P (Pagos Anticipados) y el estado es Completo. Capturar Registrado cuando la acción de Pagos Anticipados se completa Tipo de evento explicit | |||
| Transferencia Bancaria Generada | La generación del archivo EFT (Transferencia Electrónica de Fondos) o una salida de pago similar. Este es el paso técnico de crear el archivo de instrucciones para el banco. | ||
| Por qué es importante Mide el tiempo de ciclo de generación del archivo de pagos. Los retrasos aquí pueden provocar la pérdida de los plazos bancarios. Dónde obtener Consulte PAY_PAYROLL_ACTIONS donde ACTION_TYPE es M (Cinta Magnética) o E (EFT) o C (Escritura de Cheques). Capturar Registrado cuando la acción de EFT/Cheque se completa Tipo de evento explicit | |||
| Costeo Transferido | La transferencia de los resultados de costos de nómina al Libro Mayor. Esto representa el cierre contable financiero del ciclo de nómina. | ||
| Por qué es importante Garantiza el cumplimiento financiero y el registro preciso de los costos laborales. Los retrasos impiden que Finanzas cierre los libros. Dónde obtener Consulte PAY_PAYROLL_ACTIONS donde ACTION_TYPE es T (Transferencia a GL) y el estado es Completo. Capturar Registrado cuando el proceso de Transferencia a GL se completa Tipo de evento explicit | |||
| Datos de Incentivos Importados | La creación de entradas de elementos para la remuneración variable, como bonificaciones o comisiones, a través del cargador por lotes o la importación HDL. Esto representa la integración de datos de compensación externos en la ejecución de la nómina. | ||
| Por qué es importante Monitorea la velocidad de integración de la remuneración variable. Las importaciones tardías a menudo obligan a realizar ejecuciones de nómina suplementarias o correcciones manuales. Dónde obtener Consulte PAY_BATCH_HEADERS para la finalización de la importación o realice un seguimiento de la creación de PAY_ELEMENT_ENTRIES_F con una referencia de sistema de origen específica. Capturar Registrado cuando el proceso de entrada de elementos por lotes se completa con éxito Tipo de evento explicit | |||
| Ejecución de Nómina Aprobada | La aprobación formal del registro o flujo de nómina dentro del Dashboard de Nómina. Esto suele ocurrir después de que se revisan los informes de validación y antes de que se generen los archivos bancarios. | ||
| Por qué es importante Representa la aprobación gerencial. El tiempo entre el cálculo y la aprobación representa la ventana de verificación. Dónde obtener Consulte PAY_REQ_FLOW_INSTANCES para cambios de estado o finalización de tareas específicas dentro de un Patrón de Flujo de Nómina definido. Capturar Registrado cuando el estado de la Instancia de Flujo cambia a Completado/Aprobado Tipo de evento explicit | |||
| Excepción de Auditoría Marcada | El registro de un mensaje de error o advertencia durante la fase de cálculo o validación de la nómina. Esto captura fallos de validación específicos que requieren intervención humana. | ||
| Por qué es importante Esencial para identificar problemas de calidad de datos. Un alto volumen de excepciones aumenta el esfuerzo manual y el riesgo de incumplimiento de SLA. Dónde obtener Consulte la tabla PAY_MESSAGE_LINES vinculada al PAY_PAYROLL_REL_ACTION_ID específico. Esta tabla almacena los errores y advertencias generados durante las ejecuciones. Capturar Registrado cuando se inserta un registro en PAY_MESSAGE_LINES Tipo de evento explicit | |||
| Presentación de Impuestos Completada | La generación de archivos fiscales estatutarios (por ejemplo, Archivo de Impuestos Trimestrales de Terceros). Esto asegura el cumplimiento normativo para el período de pago. | ||
| Por qué es importante Crítico para el KPI de Duración del Procesamiento de Cumplimiento Fiscal. Una falla aquí conlleva sanciones. Dónde obtener Consulte PAY_PAYROLL_ACTIONS para acciones específicas de grupos de datos legislativos relacionadas con la presentación de informes fiscales (por ejemplo, Presentación de Impuestos de Terceros de EE. UU.). Capturar Registrado cuando el flujo específico de informes fiscales se completa Tipo de evento explicit | |||
| QuickPay Ejecutado | La ejecución de una nómina para una sola persona (QuickPay) generalmente utilizada para verificar correcciones. Esto sirve como un proxy para la actividad de Previsualización del Resultado de Nómina. | ||
| Por qué es importante Las QuickPays frecuentes por persona indican un enfoque de prueba y error en el procesamiento de la nómina en lugar de uno Dónde obtener Consulte PAY_PAYROLL_ACTIONS donde ACTION_TYPE es Q (QuickPay). Cuente las instancias por período de nómina por empleado. Capturar Registrado cuando una acción de QuickPay se registra en PAY_PAYROLL_ACTIONS Tipo de evento explicit | |||
| Recibo de Nómina Publicado | El punto en el que el documento de recibo de nómina se hace visible para el empleado en Self Service. Esto sigue al Archivador y potencialmente a un proceso específico de 'Generar Recibo de Nómina'. | ||
| Por qué es importante Impacta la satisfacción del empleado. Grandes retrasos entre el pago y la disponibilidad del recibo de nómina generan tickets de soporte. Dónde obtener Consulte la tabla Documentos de Registro (HR_DOCUMENTS_OF_RECORD) o la finalización del proceso Generar Recibo de Nómina en PAY_PAYROLL_ACTIONS. Capturar Registrado cuando el proceso de generación de PDF de la nómina se completa Tipo de evento explicit | |||
| Registro de Nómina Corregido | Actualizaciones manuales aplicadas a las entradas de elementos o datos de asignación después de una ejecución inicial de la nómina, pero antes de la finalización. Esta actividad representa el retrabajo necesario para corregir errores o excepciones. | ||
| Por qué es importante Indica ineficiencia del proceso y problemas de calidad de datos. Reducir esta actividad es clave para mejorar la Tasa de Precisión de Nómina en Primera Pasada. Dónde obtener Inferido al identificar actualizaciones en PAY_ELEMENT_ENTRIES_F donde la Fecha de Última Actualización se encuentra entre la fecha de Ejecución de Nómina inicial y la fecha de Prepagos. Capturar Comparar marcas de tiempo de actualización de entrada de elementos con marcas de tiempo de ejecución de nómina Tipo de evento inferred | |||
| Resultados de Archivo Generados | La finalización del proceso de Archivo de Resultados Periódicos de Nómina. Esta instantánea bloquea efectivamente los datos para la generación de informes y recibos de nómina. | ||
| Por qué es importante Un requisito técnico previo para generar recibos de nómina e informes reglamentarios. Confirma que los datos están finalizados. Dónde obtener Consulte PAY_PAYROLL_ACTIONS donde ACTION_TYPE es X (Archivo) y el estado es Completo. Capturar Registrado cuando la acción de Archivo se completa Tipo de evento explicit | |||
| Tarjeta de Tiempo Aprobada | La confirmación de que los datos de tiempo enviados han sido revisados y autorizados por un gerente. Este cambio de estado activa la transferencia de datos a las entradas de elementos de la nómina. | ||
| Por qué es importante Crítico para medir el Tiempo de Espera de Aprobación del Gerente. Los retrasos aquí son una causa principal de ajustes de pago retroactivo en períodos posteriores. Dónde obtener Consulte la tabla HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS donde el estado cambia a APROBADO. Compare la marca de tiempo de aprobación con la marca de tiempo de envío. Capturar Registrado cuando el estado cambia a APROBADO en Gestión de Tiempos y Mano de Obra Tipo de evento explicit | |||
| Tarjeta de Tiempo Enviada | El evento inicial donde un empleado o gerente envía datos de tiempo y mano de obra para su procesamiento. En Oracle HCM, esto se captura cuando el estado de la tarjeta de tiempo cambia a "Enviado" en el módulo de Gestión de Tiempos y Mano de Obra. | ||
| Por qué es importante Marca la entrada de datos brutos en el flujo potencial de la nómina. Los retrasos aquí repercuten en etapas posteriores, acortando el plazo para que los especialistas de nómina validen los cálculos. Dónde obtener Consulte la tabla HWM_TM_REC_GRP_DTLS o la vista HXT_TIMECARDS donde el estado cambia a ENVIADO. Utilice la marca de tiempo de envío. Capturar Registrado cuando el estado cambia a ENVIADO en Gestión de Tiempos y Mano de Obra Tipo de evento explicit | |||
Guías de Extracción
Pasos
Acceder al Intercambio de Datos: Inicie sesión en Oracle HCM Cloud con un usuario que tenga el rol de 'Human Capital Management Integration Specialist'. Navegue a Mis Grupos de Clientes > Intercambio de Datos > Definiciones de Extracción.
Crear Nueva Extracción: Haga clic en el icono '+' para crear una nueva extracción. Nómbrela 'ProcessMind_Payroll_Extract'. Seleccione 'Nómina' como consumidor y 'Archivo de RRHH' como categoría para asegurar el acceso a datos históricos de acciones de nómina.
Definir Grupos de Datos: Cree un Grupo de Datos Raíz basado en la Entidad de Usuario
PAY_PAYROLL_REL_UE(Relación de Nómina). Esto ancla la extracción a 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 Registros de Extracción: Dentro de los grupos de datos, defina registros para aplanar los datos jerárquicos. Debe crear registros específicos para cada tipo de actividad (ej., un registro que filtre eventos de 'Tarjeta de Tiempo', otro para 'Resultados de Ejecución').
Implementar Lógica SQL mediante FastFormula o BIP: Debido a la complejidad de transformar datos jerárquicos de nómina en un registro de eventos lineal, el enfoque más robusto es usar la 'Opción de Entrega de Extracción' para llamar a un Informe de BI Publisher. Esto le permite usar el SQL proporcionado en la sección 'Consulta' a continuación como Modelo de Datos. Esto es superior al filtrado GUI nativo para crear un registro de eventos unificado.
Crear Modelo de Datos de BI Publisher: Navegue a Herramientas > Informes y Análisis > Explorar Catálogo. Cree un nuevo Modelo de Datos. Pegue la consulta SQL proporcionada a continuación. Defina un Parámetro para
bind_start_dateybind_end_date.Vincular Extracción a BIP: En la pestaña 'Entrega' de la Definición de Extracción, cree una opción de entrega. Seleccione 'PDF' o 'XML' como tipo de salida (ProcessMind prefiere CSV, pero usted convertirá la salida de BIP). Seleccione el informe de BI Publisher que creó en el paso anterior.
Definir Parámetros: En el Árbol de Ejecución de Extracción, añada parámetros para la Fecha de Inicio y la Fecha de Fin para pasarlos a la consulta de BI Publisher dinámicamente.
Validar y Enviar: Valide la definición de extracción para verificar errores. Haga clic en 'Enviar Extracción'. Ingrese los parámetros (ej., los últimos 90 días).
Monitorear Proceso: Vaya a 'Ver Resultados de Extracción'. Espere a que el estado cambie a 'Exitoso'.
Descargar Salida: Descargue el archivo XML/CSV generado. Ábralo para verificar que la estructura contiene las columnas requeridas: PayrollRecord, ActivityName, EventTimestamp, etc.
Formato para ProcessMind: Si la salida es XML, conviértala a un archivo CSV plano asegurándose de que los encabezados coincidan con los requisitos de 'Atributos a incluir'. Suba el archivo resultante a ProcessMind.
Configuración
- Modo de Extracción: Solo cambios vs. Extracción completa. Para la carga inicial, use la extracción completa. Para las actualizaciones diarias, configure 'Solo cambios' según la fecha de la última actualización.
- Grupo de Datos Legislativos (LDG): Se recomienda encarecidamente filtrar por LDG si su instancia soporta múltiples países, ya que las definiciones de nómina varían según la legislación.
- Rango de Fechas: Configure
bind_start_dateybind_end_datepara cubrir al menos de 3 a 6 meses para que el Process Mining capture los tiempos de ciclo completos. - Tamaño de Fragmento (Chunk Size): Para nóminas de alto volumen (más de 10 mil empleados), establezca el tamaño del fragmento en la Definición de Extracción en 2000 para evitar errores de tiempo de espera.
- Fechas Efectivas: Las tablas de nómina son efectivas por fecha. La lógica de la consulta maneja explícitamente
effective_start_dateyeffective_end_datepara asegurar la recuperación de la versión histórica correcta del registro. - Seguridad: El usuario que ejecuta debe tener perfiles de seguridad de datos que permitan ver todas las nóminas y departamentos destinados al análisis.
a Consulta de ejemplo config
/* 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 navegue a Herramientas > Informes y Análisis. Haga clic en Explorar Catálogo 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 es el contenedor para su lógica de extracción SQL.
- Crear un Conjunto de Datos SQL: En la pestaña Diagrama, haga clic en el icono Nuevo Conjunto de Datos y seleccione Consulta SQL.
- Configurar Fuente de Datos: Nombre el conjunto de datos (ej.,
ProcessMind_Payroll_Extract). Establezca la Fuente de Datos enApplicationDB_HCM(o su conexión específica de la base de datos de la aplicación HCM). Deje el tipo como SQL Estándar. - Introducir la Consulta: Copie el script SQL completo proporcionado en la sección de Consulta a continuación y péguelo en el cuadro de texto de Consulta SQL. Asegúrese de no incluir ningún formato markdown.
- Definir Parámetros: La consulta utiliza variables de enlace
:p_start_datey:p_end_date. En la pestaña Parámetros del Modelo de Datos, cree estos dos parámetros (tipo Fecha) para filtrar el rango de extracción (ej., basado enppa.EFFECTIVE_DATE). - Validar Estructura de Datos: Haga clic en OK. Cambie a la pestaña Datos dentro del editor del Modelo de Datos. Ingrese fechas de ejemplo (ej.,
2023-01-01a2023-03-31) y haga clic en Ver. Asegúrese de que la salida contenga filas conPayrollRecord,ActivityNameyEventTimestamp. - Guardar el Modelo de Datos: Guarde el modelo en una carpeta compartida (ej.,
/Shared Folders/Custom/ProcessMining). - Crear Informe para Exportar: Haga clic en Crear Informe, seleccione el Modelo de Datos que acaba de guardar. Utilice el Asistente de Informes para crear un diseño de tabla simple 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 (icono de engranaje) > Exportar > Datos > CSV.
- Transformar: Abra el CSV. Asegúrese de que los formatos de fecha sean ISO 8601 (
YYYY-MM-DD HH:MM:SS) if not automatically formatted. No se necesitará más remodelación si el SQL se pegó correctamente. - Cargar: Importe el archivo CSV resultante a ProcessMind, mapeando las columnas según se definen en los Requisitos de Datos.
Configuración
- Conexión a la Fuente de Datos: Debe usar
ApplicationDB_HCMo la fuente de datos JNDI equivalente con acceso de lectura a los esquemasPAY_yPER_. - Rango de Fechas: Se recomienda una ventana de extracción de 3 a 6 meses para capturar ciclos completos de nómina. Utilice los parámetros
:p_start_datey:p_end_datepara controlar esta carga dinámica. - Grupo de Datos Legislativos (LDG): La consulta extrae todos los LDG por defecto. Si opera en varios países, considere añadir un filtro
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]para particionar los datos. - Rendimiento: La consulta accede a tablas de alto volumen (
PAY_RUN_RESULTS,PAY_ASSIGNMENT_ACTIONS). Asegúrese de que el rango de fechas no sea demasiado amplio (ej., >1 año) para evitar errores de tiempo de espera en BI Publisher. - Seguridad: El usuario que ejecuta el informe necesita permisos de Conjunto de Acceso a Datos para las definiciones de Nómina objetivo.
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