Su Plantilla de Datos de Hire to Retire - Gestión de Puestos
Su Plantilla de Datos de Hire to Retire - Gestión de Puestos
- `Atributos` recomendados para recopilar para un análisis exhaustivo
- Actividades clave del proceso a rastrear para un descubrimiento preciso
- Guía de extracción específicamente para Microsoft Dynamics 365 Human Resources
Atributos de Gestión de Puestos (Hire to Retire)
| Nombre | Descripción | ||
|---|---|---|---|
| Hora del Evento EventTime | El timestamp que indica cuándo ocurrió la actividad. | ||
| Descripción El Tiempo de Evento, o marca de tiempo (timestamp), registra la fecha y hora exactas en que se completó una actividad. Es crítico para ordenar eventos cronológicamente y para calcular duraciones y tiempos de ciclo. Este atributo se utiliza en casi todos los análisis de Process Mining, desde la construcción del mapa de procesos hasta el cálculo de KPIs de rendimiento como el 'Tiempo de Ciclo Promedio de Aprobación de Puestos'. Ayuda a identificar cuándo ocurren los retrasos y cuánto tiempo toma cada paso del proceso. Por qué es importante Esta marca de tiempo es esencial para ordenar eventos, calcular todas las métricas basadas en el tiempo y descubrir cuellos de botella del proceso. Dónde obtener Esta información se encuentra típicamente en las tablas de registro del sistema o como campos 'CreatedDateTime' o 'ModifiedDateTime' asociados con los registros de puestos y workflows en Dynamics 365 HR. Ejemplos 2023-04-15T09:00:00Z2023-04-15T14:35:10Z2023-04-18T11:21:05Z2023-05-02T16:45:00Z2024-01-10T10:00:00Z | |||
| ID de Posición PositionId | El identificador único para un puesto de trabajo específico dentro de la organización. | ||
| Descripción El Position ID sirve como identificador principal del caso, vinculando todas las actividades y puntos de datos relacionados con un único puesto organizacional. Esto permite un seguimiento de principio a fin de todo el ciclo de vida de un puesto, desde su creación y modificaciones hasta su eventual desactivación o cierre. En el análisis de procesos, este ID es esencial para reconstruir el recorrido de cada puesto. Habilita dashboards que monitorean los tiempos de ciclo, identifican cuellos de botella en las aprobaciones y analizan las variantes del proceso desde la solicitud hasta el cierre. Por qué es importante Este es el identificador central que conecta todos los eventos relacionados en un único caso de proceso, haciendo posible analizar el ciclo de vida completo del puesto. Dónde obtener Este es típicamente el campo HcmPosition.PositionId en Microsoft Dynamics 365 Human Resources. Se puede encontrar en entidades de datos como HcmPositionV2Entity. Ejemplos POS001234MKT-0056FIN-SR-ANALYST-02HRBP-EAST-01IT-DEV-9876 | |||
| Nombre de la Actividad ActivityName | El nombre del evento o tarea específica que ocurrió en el proceso de gestión de puestos. | ||
| Descripción Este atributo describe un solo paso en el ciclo de vida del puesto, como 'Solicitud de Puesto Iniciada', 'Puesto Creado en el Sistema de RR. HH.' o 'Puesto Desactivado'. Forma la columna vertebral del mapa de procesos, mostrando la secuencia de eventos. Analizar el Nombre de Actividad permite la visualización de los flujos de proceso, la identificación de desviaciones del proceso estándar y el cálculo de los tiempos de transición entre diferentes pasos. Es fundamental para comprender qué sucedió y en qué orden. Por qué es importante Define los pasos del proceso, permitiendo la visualización de mapas de proceso y el análisis del flujo y las variaciones del proceso. Dónde obtener Este atributo se deriva de eventos de negocio, cambios de estado o historial de workflow dentro de Microsoft Dynamics 365 Human Resources. No es un solo campo, sino que se construye basándose en el contexto de los datos. Ejemplos Solicitud de Puesto IniciadaSolicitud de Puesto Aprobada por el GerentePuesto Creado en el Sistema de RR. HH.Atributos del Puesto ModificadosPuesto Cerrado | |||
| Centro de Costos CostCenter | El centro de costos financiero al que se asignan los gastos del puesto. | ||
| Descripción El Centro de Costos es una dimensión financiera clave que vincula un puesto a un presupuesto específico o a un área de responsabilidad financiera. Los cambios en este atributo son importantes de monitorear. Este atributo es crítico para el dashboard 'Verificación de Consistencia de Datos de Puestos', que analiza los cambios en los atributos clave después de la creación. También se utiliza para analizar los costos y presupuestos relacionados con los puestos por diferentes unidades financieras. Por qué es importante Conecta el puesto con los datos financieros, permitiendo el análisis de procesos relacionados con los costos y la monitorización de la consistencia de los datos. Dónde obtener Esto se configura típicamente como una dimensión financiera en el registro del puesto. Consulte la configuración de la dimensión financiera en Dynamics 365. Ejemplos CC-1001-FINCC-2500-ITCC-4510-SALESCC-7000-OPSCC-9002-HR | |||
| Departamento DepartmentName | El departamento al que pertenece el puesto. | ||
| Descripción Este atributo especifica el departamento organizacional, como 'Finanzas', 'Marketing' o 'TI', asociado con el puesto. Es una dimensión principal para filtrar y agregar datos de proceso. Analizar por departamento es esencial para el dashboard 'Rendimiento Departamental de Puestos'. Ayuda a comparar el rendimiento del proceso, identificar cuellos de botella específicos de cada departamento y comprender las tendencias de contratación en diferentes partes del negocio. Por qué es importante Permite que el análisis del proceso se segmente por unidad de negocio, ayudando a identificar problemas específicos de cada departamento y a comparar el rendimiento. Dónde obtener Esta información forma parte de los detalles del puesto, típicamente almacenada en la entidad HcmPositionDetail y vinculada a la dimensión de unidad operativa. Ejemplos FinanzasTecnología de la InformaciónVentas y MarketingRecursos HumanosOperaciones | |||
| Estado del Puesto PositionStatus | El estado actual o histórico del puesto. | ||
| Descripción Este atributo indica el estado del puesto en un momento dado, como 'Propuesto', 'Activo', 'Congelado' o 'Cerrado'. Los cambios de estado a menudo corresponden a actividades en el proceso. El seguimiento del estado es crucial para comprender el recorrido del puesto y para dashboards como 'Estado de Revisión de Cumplimiento del Puesto' y 'Puestos Obsoletos y Subutilizados'. Proporciona una instantánea del estado actual del puesto y ayuda a validar el flujo del proceso. Por qué es importante Proporciona un estado claro para cada puesto, lo cual es esencial para filtrar casos y comprender los resultados. Dónde obtener Consulte la documentación de Microsoft Dynamics 365 Human Resources. Esto probablemente se deriva de campos de estado en el registro principal del puesto. Ejemplos PropuestoEn RevisiónActivoCongeladoCerrado | |||
| Hora de Finalización EndTime | La `marca de tiempo` que indica cuándo se completó la `actividad`. | ||
| Descripción EndTime marca la conclusión de una actividad. El tiempo transcurrido entre StartTime y EndTime es el tiempo de procesamiento de esa actividad específica. Este atributo es esencial para calcular las duraciones a nivel de actividad y comprender dónde se está empleando el tiempo dentro del proceso. Por ejemplo, ayuda a determinar cuánto tiempo tarda un gerente en aprobar una solicitud de puesto después de que se le ha asignado. Por qué es importante Permite el cálculo de los tiempos de procesamiento de las actividades, lo cual es fundamental para el análisis detallado del rendimiento y de los cuellos de botella. Dónde obtener Esto puede derivarse de marcas de tiempo de eventos posteriores o de campos específicos de 'finalización' en los registros de workflow dentro de Dynamics 365 HR. A menudo, debe inferirse. Ejemplos 2023-04-15T09:05:12Z2023-04-15T15:00:00Z2023-04-19T09:00:00Z2023-05-03T10:00:00Z2024-01-10T10:05:00Z | |||
| Nombre de Usuario UserName | El nombre o ID del usuario que realizó la actividad. | ||
| Descripción Este atributo identifica al empleado o usuario del sistema responsable de un paso de proceso dado, como el gerente que aprobó una solicitud o el especialista de RR. HH. que creó el puesto en el sistema. Analizar por usuario ayuda a identificar necesidades de capacitación, comparar el rendimiento entre los miembros del equipo y comprender la distribución de la carga de trabajo. También es clave para las comprobaciones de cumplimiento para asegurar una adecuada segregación de funciones. Por qué es importante Proporciona responsabilidad y permite el análisis de rendimiento por individuo o equipo, lo cual es crucial para la gestión de recursos y la formación. Dónde obtener Asociado con el historial de flujo de trabajo o registros de auditoría en Dynamics 365 HR. Puede vincularse mediante un ID de usuario de la entidad HcmWorker. Ejemplos John SmithJane DoeSYSTEMHRAdmin01MGR-FINANCE | |||
| Título del Puesto JobTitle | El título del puesto de trabajo asociado con la posición, como 'Contador Senior'. | ||
| Descripción El Título del Puesto proporciona un contexto importante sobre el rol y las responsabilidades del puesto. Es diferente del Position ID, ya que múltiples puestos pueden compartir el mismo título de puesto. En el análisis, este atributo permite agrupar y filtrar por tipo de rol. Es útil para el dashboard 'Tendencias de Reclasificación de Puestos' para ver qué tipos de puestos se están reclasificando con mayor frecuencia. Por qué es importante Añade un contexto empresarial crucial, permitiendo el análisis basado en el rol de trabajo, el nivel o la función. Dónde obtener Esta información está vinculada desde el registro de 'Puesto de trabajo' asociado con la Posición. Búsquela en entidades como HcmPositionV2Entity o uniéndose a HcmJobEntity. Ejemplos Analista Financiero Senior`Ingeniero de Software` IISocio de Negocio de RRHHCoordinador de MarketingGerente de Logística | |||
| ¿Es Retrabajo? IsRework | Un indicador que señala si una actividad forma parte de un ciclo de retrabajo. | ||
| Descripción Esta bandera booleana se establece en verdadero si una actividad representa un paso que se está repitiendo en el proceso, como una reaprobación después de que se modificaron los atributos. Ayuda a cuantificar bucles de proceso ineficientes. Este atributo soporta directamente el dashboard 'Análisis de Retrabajo de Puestos' y el KPI 'Tasa de Retrabajo en la Creación de Puestos'. Al marcar el retrabajo, los analistas pueden filtrar y medir fácilmente la frecuencia y el impacto de las ineficiencias del proceso. Por qué es importante Identifica y cuantifica explícitamente el retrabajo del proceso, que es un objetivo principal para las iniciativas de mejora de procesos. Dónde obtener Esto se calcula basándose en la secuencia de actividades para un caso. Por ejemplo, si 'Solicitud de Puesto Aprobada por el Gerente' ocurre después de 'Atributos del Puesto Modificados', puede marcarse como retrabajo. Ejemplos truefalse | |||
| El Presupuesto Está Aprobado IsBudgetApproved | Un indicador que señala si el presupuesto para el puesto ha sido aprobado. | ||
| Descripción Este atributo booleano es verdadero si la actividad 'Presupuesto del Puesto Aprobado' ha ocurrido para un caso de puesto dado. Ayuda a analizar el flujo del proceso e identificar puestos atascados esperando presupuesto. Este atributo puede usarse para filtrar procesos y analizar el KPI 'Tiempo de Ciclo de Aprobación de Presupuesto del Puesto' de manera más efectiva. Ayuda a diferenciar los puestos que han superado el obstáculo del presupuesto de aquellos que no lo han hecho, lo cual es útil para el análisis de cuellos de botella. Por qué es importante Simplifica el análisis al proporcionar un indicador claro para un hito crítico, ayudando a aislar y medir la etapa de aprobación del presupuesto. Dónde obtener Esto se deriva durante la transformación de datos verificando la existencia de la actividad 'Presupuesto del Puesto Aprobado' dentro del historial del caso. Ejemplos truefalse | |||
| Familia de Puestos JobFamily | Una agrupación de trabajos con funciones similares, como 'Ingeniería' o 'Finanzas'. | ||
| Descripción Familia de Puestos es una clasificación que agrupa títulos de trabajo relacionados. Por ejemplo, 'Ingeniero de Software' e 'Ingeniero de QA' podrían caer ambos bajo la familia de puestos de 'Ingeniería'. Este atributo es esencial para el tablero de control de 'Tendencias de Reclasificación de Puestos', ya que permite un análisis de nivel superior sobre qué categorías de puestos están cambiando con mayor frecuencia. Proporciona una vista más amplia que al observar títulos de puestos individuales. Por qué es importante Permite un análisis más amplio de los puestos basado en categorías, lo cual es útil para la planificación estratégica de la fuerza laboral y el análisis de tendencias. Dónde obtener Esto forma parte de la configuración del puesto de trabajo en Dynamics 365 HR. Busque campos relacionados con 'Familia de puestos' o 'Función de puestos' en la entidad HcmJobEntity. Ejemplos IngenieríaFinanzas y ContabilidadVentasRecursos HumanosGestión de Productos | |||
| Gerente Solicitante RequestingManager | El gerente que inició la solicitud del puesto. | ||
| Descripción Este atributo identifica al gerente de contratación o jefe de departamento que inició el proceso al solicitar un puesto nuevo o de reemplazo. Esta información proporciona contexto sobre el origen de la demanda de puestos. Analizar por Gerente Solicitante puede ayudar a identificar patrones en el volumen de solicitudes, las tasas de aprobación y la calidad de las solicitudes. Proporciona una capa adicional de detalle para comprender la carga de trabajo y el cumplimiento del proceso. Por qué es importante Ayuda a rastrear el origen de la demanda de puestos y a analizar las métricas del proceso desde la perspectiva del gerente de contratación. Dónde obtener Consulte la documentación de Microsoft Dynamics 365 Human Resources. Es probable que esta información se capture en los datos de inicio del flujo de trabajo. Ejemplos Robert JonesSusan MillerDavid ChenMaria GarciaPaul Williams | |||
| Motivo de rechazo RejectionReason | El motivo proporcionado cuando se rechaza una solicitud de puesto. | ||
| Descripción Cuando una solicitud de puesto es rechazada por un gerente o RR. HH., a menudo se registra un motivo. Esto podría deberse a restricciones presupuestarias, información incorrecta o un cambio en la estrategia. Este atributo es crítico para calcular el KPI de 'Tasa de Rechazo de Solicitudes de Puesto' y comprender por qué ocurre el retrabajo. Analizar los motivos de rechazo más comunes ayuda a identificar problemas aguas arriba, como una calidad de solicitud deficiente o directrices poco claras, que pueden abordarse para mejorar el proceso. Por qué es importante Proporciona una visión directa de por qué fallan las solicitudes, permitiendo mejoras de proceso dirigidas para reducir el retrabajo y las tasas de rechazo. Dónde obtener Consulte la documentación de Microsoft Dynamics 365 Human Resources. Esto a menudo se captura en comentarios de flujo de trabajo o en un campo de código de razón dedicado al momento del rechazo. Ejemplos Presupuesto No DisponibleSolicitud DuplicadaPerfil de Puesto IncorrectoCongelación de ContratacionesReajuste Estratégico | |||
| Source System SourceSystem | El sistema del cual se extrajo la data. | ||
| Descripción Este atributo identifica el origen de los datos del proceso. Para esta vista, típicamente sería 'Microsoft Dynamics 365 Human Resources'. En entornos con múltiples sistemas, este campo es crucial para la trazabilidad de datos y la resolución de problemas. Ayuda a confirmar que los datos provienen de la fuente esperada y puede usarse para filtrar análisis para sistemas específicos. Por qué es importante Proporciona contexto sobre el origen de los datos, lo cual es importante para la gobernanza de datos y para los análisis que abarcan múltiples sistemas empresariales. Dónde obtener Este es un valor estático agregado durante el proceso de extracción y transformación de datos para etiquetar el origen del conjunto de datos. Ejemplos Microsoft Dynamics 365 Human ResourcesD365 HRDynamicsHR | |||
| Tiempo de Procesamiento ProcessingTime | La duración del tiempo dedicado activamente a una actividad. | ||
| Descripción El Tiempo de Procesamiento es la duración calculada entre el StartTime y el EndTime de una actividad. Representa el tiempo real dedicado a una tarea, excluyendo el tiempo de espera. Esta métrica es fundamental para el análisis de rendimiento y se utiliza en dashboards como el 'Monitor de Cuellos de Botella en la Creación de Puestos'. Al sumar los tiempos de procesamiento de todas las actividades, se puede comprender el tiempo total de contacto (touch time) para el ciclo de vida de un puesto, lo cual es un componente clave del análisis de eficiencia. Por qué es importante Mide la duración real del trabajo de las actividades, ayudando a distinguir el tiempo de trabajo activo del tiempo de espera inactivo en el análisis de cuellos de botella. Dónde obtener Esto se calcula durante la transformación de datos restando Ejemplos PT5M12SPT1H30MP2DT4H15MP0DPT8H | |||
| Tiempo del Ciclo de Aprobación ApprovalCycleTime | El tiempo total desde que se inicia una solicitud de puesto hasta que es finalmente aprobada. | ||
| Descripción Esta métrica calculada mide la duración desde la actividad 'Solicitud de Puesto Iniciada' hasta la actividad de aprobación final, que podría ser 'Solicitud de Puesto Aprobada por RR. HH.'. Es un indicador clave de rendimiento (KPI) para la fase inicial del proceso de gestión de puestos. Este atributo alimenta directamente el dashboard y KPI 'Tiempo de Ciclo de Aprobación de Puestos'. Proporciona una medida de alto nivel de la eficiencia del proceso de aprobación y ayuda a seguir el impacto de las iniciativas de mejora a lo largo del tiempo. Por qué es importante Es un KPI crítico que mide la eficiencia de todo el proceso de aprobación, destacando directamente los retrasos en la preparación de los puestos para su creación. Dónde obtener Esto se calcula a nivel de caso encontrando las marcas de tiempo para las actividades de inicio y fin de la fase de aprobación y calculando la diferencia. Ejemplos P3DT2H15MP10DP1DT12HP5DT6HP2W | |||
| Tipo de Puesto PositionType | Clasifica el puesto como a tiempo completo, a tiempo parcial, temporal, etc. | ||
| Descripción Este atributo clasifica el puesto según sus términos de empleo. Esto proporciona un contexto adicional para el análisis y la planificación de la fuerza laboral. En el análisis de procesos, filtrar por tipo de puesto puede revelar si ciertos tipos de puestos tienen diferentes rutas de proceso o tiempos de ciclo más largos. Por ejemplo, los puestos temporales pueden tener un proceso de aprobación más rápido y simplificado en comparación con los puestos permanentes a tiempo completo. Por qué es importante Permite el análisis de cómo el proceso difiere para varios tipos de empleo, ayudando en la planificación de la fuerza laboral y la optimización del proceso. Dónde obtener Esta información está típicamente disponible en el registro del puesto en Dynamics 365 HR. Consulte entidades como HcmPositionV2Entity para un campo relevante. Ejemplos A tiempo completoTiempo ParcialContratistaBecarioTemporal | |||
| Ubicación Location | La ubicación física o geográfica del puesto. | ||
| Descripción Este atributo especifica dónde se basa el puesto, que podría ser una oficina, ciudad o país. Es otra dimensión importante para filtrar y segmentar los datos del proceso. La Ubicación se utiliza directamente en el dashboard 'Rendimiento Departamental de Puestos' para analizar las tendencias de personal y el rendimiento del proceso en diferentes regiones. Puede ayudar a identificar si los procesos de creación o aprobación de puestos son más lentos en ciertas ubicaciones. Por qué es importante Proporciona contexto geográfico, permitiendo el análisis del rendimiento del proceso y las tendencias en diferentes ubicaciones. Dónde obtener Consulte la documentación de Microsoft Dynamics 365 Human Resources. Esto puede ser parte de los detalles del puesto o estar vinculado a través del departamento o la entidad legal. Ejemplos Nueva York, EE. UU.Londres, Reino UnidoBerlín, AlemaniaSingapurRemoto | |||
| Última actualización de datos LastDataUpdate | El timestamp de la actualización de datos más reciente del sistema de origen. | ||
| Descripción Este atributo indica cuándo se extrajeron los datos por última vez de Microsoft Dynamics 365 Human Resources. Proporciona contexto para la actualidad del análisis. Mostrar esta información en dashboards asegura a los usuarios que están viendo información actualizada. Es una pieza clave de metadatos para cualquier proyecto de Process Mining. Por qué es importante Informa a los usuarios sobre la oportunidad de los datos, lo cual es crucial para tomar decisiones basadas en el análisis. Dónde obtener Esta marca de tiempo se genera y almacena durante el proceso de extracción, transformación y carga de datos (ETL). Ejemplos 2024-05-21T02:00:00Z2024-05-20T02:00:00Z2024-05-19T02:00:00Z | |||
Actividades de Gestión de Puestos (Hire to Retire)
| Actividad | Descripción | ||
|---|---|---|---|
| Puesto Activado | Marca el punto en que un puesto se vuelve oficialmente abierto y se puede iniciar la contratación. Este evento se infiere de un campo de estado en el registro del puesto que cambia a 'Activo' o a un estado similar. | ||
| Por qué es importante Este es un hito crítico para medir la preparación del personal y la eficiencia de las etapas finales de configuración. Es esencial para el KPI de 'Tiempo Promedio de Activación de Puestos'. Dónde obtener Inferido al rastrear la marca de tiempo cuando el campo de estado, como 'PositionStatus', en el registro del puesto se actualiza a 'Activo' o 'Abierto'. Capturar Basado en la fecha en que se rellena el campo 'ActivationDate' del puesto o un campo de estado cambia a 'Activo'. Tipo de evento inferred | |||
| Puesto Cerrado | Representa el archivo final del registro del puesto, significando el fin absoluto de su ciclo de vida. Este evento se infiere por un cambio de estado a 'Cerrado' o un estado terminal similar. | ||
| Por qué es importante Este es el evento terminal del proceso, permitiendo un análisis completo del ciclo de vida de principio a fin y ayudando a identificar puestos obsoletos que deberían cerrarse. Dónde obtener Inferido de un cambio en un campo de estado a 'Cerrado' en el registro del puesto. Esto es menos común que la desactivación, ya que los registros a menudo se conservan por motivos históricos. Capturar Inferido de la marca de tiempo cuando un campo de estado se actualiza a 'Cerrado'. Tipo de evento inferred | |||
| Puesto Creado en el Sistema de RR. HH. | Este evento marca la creación oficial del registro del puesto dentro de Dynamics 365 HR. Se captura de la marca de tiempo de creación del propio registro principal del puesto. | ||
| Por qué es importante Un hito fundamental que significa la transición de una solicitud a una entidad organizativa real. Es el punto final para el KPI de Tiempo de Espera de Creación de Puestos. Dónde obtener Del campo de sistema 'CreatedDateTime' en la tabla principal de puestos, como HcmPosition. Capturar Extraído del campo de sistema CreatedDateTime en la tabla HcmPosition. Tipo de evento explicit | |||
| Puesto Desactivado | El puesto ya no está activo y se elimina de la estructura organizacional activa, a menudo después de ser cubierto. Esto se infiere de un cambio de estado a 'Inactivo' o un estado terminal similar. | ||
| Por qué es importante Marca un paso clave al final de la vida activa del puesto. Es crucial para analizar el Tiempo Promedio hasta la Desactivación del Puesto y gestionar el personal con precisión. Dónde obtener Inferido de la marca de tiempo cuando se rellena el campo 'RetirementDate' o un campo de estado en el registro del puesto cambia a 'Inactivo'. Capturar Basado en la fecha en que se establece el 'RetirementDate' del puesto o un campo de estado cambia a 'Inactivo'. Tipo de evento inferred | |||
| Solicitud de Puesto Aprobada por RR. HH. | Significa la aprobación final del departamento de Recursos Humanos antes de que el puesto pueda crearse formalmente. Este es un evento explícito registrado al finalizar la tarea de aprobación de RR. HH. en el sistema de workflow. | ||
| Por qué es importante Esto marca el final de la fase de aprobación y es un hito crítico para medir el 'Tiempo de Ciclo Promedio de Aprobación de Puestos' general. Dónde obtener Registrado en las tablas de historial de flujo de trabajo, como WorkflowTrackingTable, cuando el representante de RRHH completa su tarea de aprobación. Capturar El evento se registra en el historial del flujo de trabajo con una marca de tiempo al finalizar el paso de aprobación de RRHH. Tipo de evento explicit | |||
| Solicitud de Puesto Iniciada | Marca el inicio formal del ciclo de vida de la gestión de puestos. Este evento se captura típicamente cuando un usuario envía una nueva solicitud de puesto a través de un formulario o flujo de trabajo dedicado en Dynamics 365 HR. | ||
| Por qué es importante Este es el punto de partida para medir todo el ciclo de vida del puesto, incluyendo KPIs cruciales como el 'Tiempo de Ciclo de Aprobación de Puestos' y el 'Tiempo de Entrega de Creación de Puestos'. Dónde obtener Capturado de la marca de tiempo de creación de un registro de solicitud de puesto o del registro de inicio en la tabla de historial de flujo de trabajo, como WorkflowTrackingStatusTable. Capturar El evento se registra al enviar un nuevo flujo de trabajo de solicitud de puesto. Tipo de evento explicit | |||
| Atributos del Puesto Modificados | Representa cualquier cambio realizado en atributos clave de un puesto, como el título o el departamento, después de su creación inicial. Esta actividad se infiere típicamente mediante el seguimiento de cambios en el registro de la base de datos del sistema. | ||
| Por qué es importante La alta frecuencia de esta actividad puede indicar una baja calidad de datos o retrabajo del proceso. Es esencial para los KPI de Frecuencia de Cambio de Atributos de Puestos y Tasa de Retrabajo. Dónde obtener Inferido de la tabla SysDatabaseLog si el seguimiento de cambios está habilitado para la tabla de puestos. Alternativamente, requiere comparar instantáneas históricas de los datos de los puestos. Capturar Inferido al detectar operaciones de actualización en campos clave de la tabla HcmPosition a través del registro de la base de datos. Tipo de evento inferred | |||
| Presupuesto del Puesto Aprobado | Un hito clave de aprobación que confirma que los fondos necesarios están asignados para el nuevo puesto. Esto se captura típicamente como un paso de aprobación distinto dentro del flujo de trabajo de creación de puestos. | ||
| Por qué es importante Aísla la etapa de aprobación financiera, permitiendo el análisis de los retrasos relacionados con la asignación de presupuesto y apoyando el KPI de Tiempo de Ciclo de Aprobación de Presupuesto del Puesto. Dónde obtener Registrado en las tablas de historial del workflow, como WorkflowTrackingTable, como una tarea de aprobación completada, a menudo asignada a un rol de finanzas. Capturar Capturado de la marca de tiempo de finalización de la tarea de aprobación de presupuesto en el registro de flujo de trabajo. Tipo de evento explicit | |||
| Proceso de Contratación Iniciado | Significa el traspaso de la gestión de puestos al reclutamiento. Este evento se infiere cuando se crea una nueva vacante o proyecto de reclutamiento y se vincula a este Position ID específico. | ||
| Por qué es importante Conecta el proceso de gestión de puestos con su resultado, permitiendo el análisis del tiempo entre la activación del puesto y el inicio de las actividades de contratación reales. Dónde obtener Inferido al identificar la fecha de creación de un registro en las tablas de reclutamiento o vacantes, como HcmRecruitingRequest, que hace referencia al ID del Puesto. Capturar Inferido al vincular el PositionId a la creación de un registro correspondiente en el módulo de reclutamiento. Tipo de evento inferred | |||
| Puesto Congelado | Indica que un puesto ha sido temporalmente suspendido, impidiendo cualquier actividad de contratación. Esto se captura infiriendo un cambio de estado en el registro del puesto a un estado 'Congelado' o 'En Espera'. | ||
| Por qué es importante Rastrea las interrupciones en el ciclo de vida del puesto, que pueden afectar los planes de personal y los presupuestos. Ayuda a identificar las razones de los retrasos en la contratación. Dónde obtener Inferido al rastrear la marca de tiempo cuando un campo de estado en el registro del puesto se actualiza a 'Congelado' o un valor similar. Capturar Inferido de la marca de tiempo de un cambio de estado a 'Congelado' o 'En Espera'. Tipo de evento inferred | |||
| Puesto Reclasificado | Una actualización significativa donde se cambia la clasificación fundamental del puesto, como su familia de trabajo o nivel. Esto se infiere típicamente de un cambio en el campo 'Job' en el registro del puesto. | ||
| Por qué es importante Ayuda a analizar los cambios en la estructura organizacional y la estabilidad de las definiciones de puestos. Es la actividad clave para el KPI de Tasa de Reclasificación de Puestos. Dónde obtener Inferido de un cambio en el campo 'JobId' en la tabla HcmPosition, capturado a través del registro de la base de datos o comparando versiones de registros a lo largo del tiempo. Capturar Inferido de un cambio registrado en el campo de clasificación del puesto en el registro del puesto. Tipo de evento inferred | |||
| Puesto Revisado para Cumplimiento | Indica que un puesto ha sido sometido a una verificación formal de cumplimiento. Esto puede ser capturado por un cambio de estado, una tarea de lista de verificación completada o la actualización de un campo personalizado. | ||
| Por qué es importante Crucial para monitorear la adhesión a las políticas regulatorias e internas. Esta actividad apoya directamente el KPI de Tasa de Adhesión al Cumplimiento del Puesto. Dónde obtener Probablemente inferido de un campo de estado con marca de tiempo como 'ComplianceReviewStatus' o un campo booleano 'IsComplianceReviewed' en el registro del puesto. Capturar Inferido de la marca de tiempo cuando un campo de estado de cumplimiento se actualiza a 'Completado' o 'Revisado'. Tipo de evento inferred | |||
| Solicitud de Puesto Aprobada por el Gerente | Representa la finalización de la primera línea de aprobación por parte del gerente de contratación. Este evento se registra explícitamente en el historial del workflow cuando el gerente completa su tarea de aprobación asignada. | ||
| Por qué es importante Determina la duración del paso de aprobación inicial, ayudando a identificar cuellos de botella con gerentes o departamentos específicos. Dónde obtener Registrado como un paso completado en las tablas de historial del flujo de trabajo, como WorkflowTrackingTable, asociado con la solicitud de puesto. Capturar Capturado de la marca de tiempo de finalización del paso de aprobación del gerente en el registro de flujo de trabajo. Tipo de evento explicit | |||
| Solicitud de Puesto Rechazada | Indica que una solicitud de puesto ha sido denegada en una de las etapas de aprobación. Este evento se captura explícitamente en el historial del flujo de trabajo cuando un aprobador selecciona la acción 'Rechazar'. | ||
| Por qué es importante Destaca fallas de proceso y bucles de retrabajo. Analizar las razones de rechazo ayuda a mejorar la calidad de las solicitudes iniciales y apoya el KPI de Tasa de Rechazo de Solicitudes de Puestos. Dónde obtener Registrado como estado de 'Rechazo' en las tablas de historial del workflow, como WorkflowTrackingStatusTable, para la solicitud de puesto específica. Capturar Capturado del registro de flujo de trabajo cuando un aprobador ejecuta la acción de rechazo. Tipo de evento explicit | |||
Guías de Extracción
Pasos
- Navegar al espacio de trabajo de Gestión de Datos: Inicie sesión en Microsoft Dynamics 365 Human Resources. Utilice la barra de búsqueda principal para navegar al espacio de trabajo de 'Gestión de datos'.
- Crear un Nuevo Proyecto de Exportación: Dentro del espacio de trabajo, seleccione el mosaico 'Exportar'. En la página del proyecto 'Exportar', haga clic en 'Nuevo' para crear un nuevo proyecto. Proporcione un nombre descriptivo, como 'PositionManagement_EventLog_Export', y seleccione un formato de datos. Para fines de transformación, se recomienda 'CSV'.
- Agregar Entidades de Datos al Proyecto: En su nuevo proyecto, haga clic en 'Agregar entidad'. Necesitará añadir varias entidades para capturar el ciclo de vida completo del puesto. Agregue las siguientes entidades clave una por una: 'HcmPositionV2', 'WorkflowTrackingStatusTable' y 'HcmRecruitingRequest'. Si el registro de la base de datos está habilitado para cambios de puesto, también agregue 'SysDatabaseLog'.
- Configurar Filtros de Entidad: Para cada entidad, es crucial aplicar filtros para limitar el alcance de los datos. Seleccione una entidad, luego haga clic en 'Filtrar'. Para 'HcmPositionV2', filtre por un rango de fechas específico usando los campos 'CreatedDateTime' o 'ModifiedDateTime'. Para 'WorkflowTrackingStatusTable', filtre 'CONTEXTTABLENAME' para incluir solo flujos de trabajo relacionados con puestos.
- Seleccionar Campos para cada Entidad: Asegúrese de exportar todos los campos necesarios para la transformación posterior. Para 'HcmPositionV2', incluya 'PositionId', 'CreatedDateTime', 'ActivationDate', 'RetirementDate', 'ModifiedDateTime', 'JobId' y 'DepartmentNumber'. Para 'WorkflowTrackingStatusTable', incluya 'ContextRecId', 'WorkflowTrackingStatus', 'CreatedDateTime' y 'UserId'.
- Ejecutar el Trabajo de Exportación: Una vez configuradas todas las entidades, campos y filtros, haga clic en 'Exportar' en la página principal del proyecto. El sistema creará un paquete de datos que contendrá archivos separados para cada entidad.
- Monitorear y Descargar el Paquete de Datos: Puede monitorear el progreso del trabajo en la sección 'Historial de trabajos'. Una vez que el trabajo se complete con éxito, descargue el paquete de datos, que será un archivo comprimido.
- Extraer y Transformar los Datos: Descomprima el paquete descargado. Encontrará archivos CSV separados para cada entidad. Estos archivos representan datos en bruto, no el registro de eventos final. Debe usar un script externo (por ejemplo, usando Python con pandas o PowerShell) para procesar estos archivos.
- Implementar la Lógica de Transformación: Su script debe realizar las siguientes acciones:
- Cargar el archivo 'HcmPositionV2.csv'. A partir de este archivo, genere el evento 'Puesto Creado en el Sistema de RRHH' utilizando 'PositionId' y 'CreatedDateTime'.
- Genere eventos de cambio de estado ('Puesto Activado', 'Puesto Congelado', 'Puesto Desactivado', 'Puesto Cerrado') interpretando campos de estado o campos de fecha como 'ActivationDate' y 'RetirementDate' del archivo 'HcmPositionV2.csv'.
- Cargar el archivo 'WorkflowTrackingStatusTable.csv'. Una estos datos con los datos del puesto utilizando el ID de registro. A partir de esto, genere los eventos de flujo de trabajo: 'Solicitud de Puesto Iniciada', 'Solicitud de Puesto Aprobada por el Gerente', 'Presupuesto del Puesto Aprobado', 'Solicitud de Puesto Aprobada por RRHH' y 'Solicitud de Puesto Rechazada'. Deberá mapear el estado del flujo de trabajo y el contexto del paso al nombre de actividad correcto.
- Si exportó 'SysDatabaseLog.csv', analice este archivo para generar eventos de 'Atributos del Puesto Modificados' y 'Puesto Reclasificado' basados en cambios a campos específicos en la tabla HcmPosition.
- Cargar el 'HcmRecruitingRequest.csv' para generar el evento 'Proceso de Contratación Iniciado' encontrando cuándo se creó una solicitud de reclutamiento para un puesto dado.
- Ensamblar el Registro de Eventos Final: El script debe combinar todos los eventos generados de las diferentes fuentes en un único archivo CSV. Este archivo debe contener las columnas requeridas: 'PositionId', 'ActivityName' y 'EventTime', junto con cualquier atributo recomendado que haya podido mapear.
- Formato para Carga: Asegúrese de que el archivo CSV final tenga encabezados que coincidan con los nombres de atributos requeridos y que la columna 'EventTime' esté en un formato de marca de tiempo consistente. El archivo ahora está listo para cargarse en la herramienta de Process Mining.
Configuración
- Entidades de Datos Clave: Las entidades principales requeridas para esta extracción son:
HcmPositionV2: Contiene los detalles principales de cada puesto, incluyendo fechas de creación, fechas de activación y atributos como el trabajo y el departamento.WorkflowTrackingStatusTable: Proporciona el historial de las instancias de flujo de trabajo, incluyendo envíos, aprobaciones y rechazos. Esto es esencial para rastrear el proceso de aprobación.HcmRecruitingRequest: Se utiliza para inferir la actividad 'Proceso de Contratación Iniciado' cuando una solicitud de reclutamiento está vinculada a un puesto.SysDatabaseLog: Una entidad opcional pero potente para capturar cambios detallados como 'Atributos del Puesto Modificados' y 'Puesto Reclasificado'. Su uso depende de que el registro de la base de datos esté preconfigurado para la tabla HcmPosition.
- Filtrado por Rango de Fechas: Es muy recomendable aplicar un filtro de rango de fechas a la entidad 'HcmPositionV2' basándose en el campo 'CreatedDateTime'. Un rango de 6 a 12 meses es a menudo un buen punto de partida para asegurar un volumen de datos manejable.
- Exportaciones Incrementales: Para un análisis continuo, considere configurar el proyecto de exportación para exportaciones incrementales. Esto solo extraerá los registros que hayan cambiado desde la última ejecución, reduciendo significativamente el tiempo de procesamiento.
- Requisitos Previos: El usuario que ejecuta la exportación debe tener un rol de seguridad con permisos suficientes para acceder al espacio de trabajo de 'Gestión de datos' y acceso de lectura a todas las entidades de datos especificadas. Normalmente se requieren roles como 'Administrador de gestión de datos' o un rol personalizado con privilegios de entidad específicos.
a Consulta de ejemplo config
/*
This extraction uses the Dynamics 365 Data Management Framework. The 'query' is defined by configuring an export project via the user interface, not by running a script directly against the database.
A post-processing script is required to transform the output of this configuration into a final event log.
*/
-- Data Export Project Configuration --
Project Name: PositionManagement_EventLog_Export
Data Format: CSV
-- Entity 1: Positions --
Source Entity: HcmPositionV2
Fields to Export:
- PositionId
- CreatedDateTime (Used for 'Position Created In HR System' event)
- ActivationDate (Used for 'Position Activated' event)
- RetirementDate (Used for 'Position Deactivated' / 'Position Closed' event)
- ModifiedDateTime (Can be used for 'Position Attributes Modified' if SysDatabaseLog is not available)
- JobId (Used for 'Position Reclassified' event and 'JobTitle' attribute)
- DepartmentNumber (Used for 'DepartmentName' attribute)
- [Other fields for attributes like CostCenter, PositionStatus]
-- Entity 2: Workflow History --
Source Entity: WorkflowTrackingStatusTable
Fields to Export:
- ContextRecId (The record ID, used to link back to the HcmPosition record)
- ContextTableName (Filter this for 'HcmPosition')
- WorkflowTrackingStatus (Values like 'Submitted', 'Approved', 'Rejected')
- CreatedDateTime (Timestamp for the workflow event)
- UserId (The user who performed the action)
- [Workflow step name or ID field if available, to differentiate approval types]
-- Entity 3: Recruitment Requests --
Source Entity: HcmRecruitingRequest
Fields to Export:
- PositionId
- CreatedDateTime (Used for 'Hiring Process Started' event)
- RecruitingId
-- Entity 4: Database Change Log (Optional) --
Source Entity: SysDatabaseLog
Fields to Export:
- RefRecId (The record ID of the changed record)
- RefTableId (The table ID, filter for HcmPosition)
- CreatedDateTime (Timestamp of the change)
- [Fields indicating the old and new values, if available] Pasos
- Confirmación de Requisitos Previos: Antes de comenzar, verifique que la característica 'Bring Your Own Database' (BYOD) esté configurada para su instancia de Microsoft Dynamics 365 Human Resources. Asegúrese de que las entidades de datos requeridas se estén exportando a su Base de Datos SQL de Azure. Las entidades clave incluyen:
HcmPositionV2,HcmPositionDetail,WorkflowTrackingStatusTable,HcmJob,OMOperatingUnityHcmRecruitingRequest. - Conectarse a la Base de Datos SQL de Azure: Utilice una herramienta cliente SQL, como SQL Server Management Studio (SSMS) o Azure Data Studio, para establecer una conexión con la Base de Datos SQL de Azure que sirve como su destino BYOD.
- Identificar Esquema de la Base de Datos: Una vez conectado, familiarícese con el esquema de la base de datos. Las entidades de datos de D365 HR se replican como tablas. Tenga en cuenta que los nombres de las tablas en la base de datos BYOD pueden no coincidir exactamente con los nombres de las entidades, pero suelen ser muy similares.
- Cargar la Consulta SQL: Abra una nueva ventana de consulta en su cliente SQL y pegue el script SQL completo proporcionado en la sección 'query' de este documento.
- Personalizar Parámetros: Modifique las variables de marcador de posición en la consulta. Establezca
@[YourCompanyId]a la entidad legal específica (por ejemplo, 'USMF') que desea analizar. Ajuste el rango de fechas en las cláusulasWHERE(por ejemplo,CREATEDDATETIME >= '2023-01-01') para limitar la extracción al período de tiempo deseado. - Ejecutar la Consulta: Ejecute la consulta SQL completa contra la base de datos BYOD. El tiempo de ejecución variará dependiendo del volumen de datos y el rango de fechas seleccionado.
- Revisar los Resultados: Una vez finalizada la consulta, inspeccione la salida en el panel de resultados de su cliente SQL. Verifique que las columnas
PositionId,ActivityName,EventTimey otras estén pobladas como se esperaba. - Exportar a CSV: Exporte el conjunto de resultados completo a un archivo CSV. La mayoría de los clientes SQL tienen una función incorporada para guardar los resultados directamente en un archivo CSV. Por ejemplo, en SSMS, puede hacer clic derecho en la cuadrícula de resultados y seleccionar 'Guardar resultados como...'.
- Preparar para la Carga: Asegúrese de que el archivo CSV exportado tenga codificación UTF-8. Confirme que los encabezados de las columnas coincidan exactamente con los atributos requeridos (
PositionId,ActivityName,EventTime, etc.) para una carga sin problemas en la herramienta de Process Mining.
Configuración
- Entidades de Datos BYOD: Asegúrese de que todas las entidades de datos necesarias estén publicadas desde Dynamics 365 HR a su instancia de BYOD. Las entidades críticas para este proceso incluyen las de puestos, detalles de puestos, historial de flujos de trabajo, trabajos, departamentos y solicitudes de contratación.
- Latencia de Datos: Tenga en cuenta que BYOD es una replicación casi en tiempo real, no instantánea. Puede haber un ligero retraso, de minutos a una hora, entre la ocurrencia de una transacción en D365 HR y la aparición de los datos en la Base de Datos SQL de Azure.
- Filtrado por Rango de Fechas: Es crucial aplicar filtros de fecha a su consulta para gestionar el rendimiento y el volumen de datos. Un punto de partida habitual es un rango de 3 a 6 meses. Aplique filtros en las marcas de tiempo de creación o evento dentro de cada bloque
UNION ALL. - Filtro de Compañía: Siempre filtre por el
DATAREAID(entidad legal o ID de compañía) para asegurarse de que está analizando datos de la unidad organizativa correcta. La consulta proporcionada incluye un marcador de posición@[YourCompanyId]para este fin. - Requisitos Previos: Este método requiere una suscripción activa de Azure, una instancia BYOD configurada, permisos de lectura en la Base de Datos SQL de Azure de destino y una herramienta de cliente SQL adecuada para la ejecución de consultas.
- Pasos de Flujo de Trabajo Personalizados: La consulta utiliza nombres comunes de pasos de flujo de trabajo para aprobaciones, como 'Aprobar solicitud de puesto'. Si su organización utiliza nombres personalizados para estos pasos de flujo de trabajo, deberá actualizar los valores
CONTEXTen las cláusulasWHEREcorrespondientes.
a Consulta de ejemplo sql
SELECT
p.POSITIONID AS PositionId,
'Position Request Initiated' AS ActivityName,
w.CREATEDDATETIME AS EventTime,
w.CREATEDDATETIME AS EndTime,
w.USERID AS UserName,
dept.NAME AS DepartmentName,
pd.DESCRIPTION AS JobTitle,
'Initiated' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM WorkflowTrackingStatusTable w
JOIN HcmPositionV2 p ON w.REFRECID = p.RECID
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE w.TRACKINGSTATUS = 1 -- Submitted
AND w.CONTEXT LIKE '%Create position request%'
AND p.DATAREAID = '[YourCompanyId]'
AND w.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Request Approved By Manager' AS ActivityName,
w.CREATEDDATETIME AS EventTime,
w.CREATEDDATETIME AS EndTime,
w.USERID AS UserName,
dept.NAME AS DepartmentName,
pd.DESCRIPTION AS JobTitle,
'Pending Budget' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM WorkflowTrackingStatusTable w
JOIN HcmPositionV2 p ON w.REFRECID = p.RECID
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE w.TRACKINGSTATUS = 5 -- Approval
AND w.CONTEXT LIKE '%Manager approval%'
AND p.DATAREAID = '[YourCompanyId]'
AND w.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Budget Approved' AS ActivityName,
w.CREATEDDATETIME AS EventTime,
w.CREATEDDATETIME AS EndTime,
w.USERID AS UserName,
dept.NAME AS DepartmentName,
pd.DESCRIPTION AS JobTitle,
'Pending HR' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM WorkflowTrackingStatusTable w
JOIN HcmPositionV2 p ON w.REFRECID = p.RECID
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE w.TRACKINGSTATUS = 5 -- Approval
AND w.CONTEXT LIKE '%Budget approval%'
AND p.DATAREAID = '[YourCompanyId]'
AND w.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Request Approved By HR' AS ActivityName,
w.CREATEDDATETIME AS EventTime,
w.CREATEDDATETIME AS EndTime,
w.USERID AS UserName,
dept.NAME AS DepartmentName,
pd.DESCRIPTION AS JobTitle,
'Approved' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM WorkflowTrackingStatusTable w
JOIN HcmPositionV2 p ON w.REFRECID = p.RECID
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE w.TRACKINGSTATUS = 5 -- Approval
AND w.CONTEXT LIKE '%HR approval%'
AND p.DATAREAID = '[YourCompanyId]'
AND w.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Request Rejected' AS ActivityName,
w.CREATEDDATETIME AS EventTime,
w.CREATEDDATETIME AS EndTime,
w.USERID AS UserName,
dept.NAME AS DepartmentName,
pd.DESCRIPTION AS JobTitle,
'Rejected' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM WorkflowTrackingStatusTable w
JOIN HcmPositionV2 p ON w.REFRECID = p.RECID
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE w.TRACKINGSTATUS = 3 -- Rejection
AND p.DATAREAID = '[YourCompanyId]'
AND w.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Created In HR System' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
p.CREATEDDATETIME AS EndTime,
p.CREATEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Created' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE p.DATAREAID = '[YourCompanyId]'
AND p.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Attributes Modified' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
p.MODIFIEDDATETIME AS EndTime,
p.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Modified' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE p.MODIFIEDDATETIME > p.CREATEDDATETIME
AND p.DATAREAID = '[YourCompanyId]'
AND p.MODIFIEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Reviewed For Compliance' AS ActivityName,
pd.MODIFIEDDATETIME AS EventTime,
pd.MODIFIEDDATETIME AS EndTime,
pd.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Compliance Reviewed' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE pd.[YourComplianceStatusField] = 'Reviewed' -- This requires a custom field indicating compliance review
AND p.DATAREAID = '[YourCompanyId]'
AND pd.MODIFIEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Reclassified' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
p.MODIFIEDDATETIME AS EndTime,
p.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Reclassified' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE p.MODIFIEDDATETIME > p.CREATEDDATETIME -- This is an inference. See known limitations.
AND p.DATAREAID = '[YourCompanyId]'
AND p.MODIFIEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Activated' AS ActivityName,
pd.VALIDFROM AS EventTime,
pd.VALIDFROM AS EndTime,
pd.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Active' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE pd.VALIDFROM >= '[StartDate]'
AND p.DATAREAID = '[YourCompanyId]'
UNION ALL
SELECT
hr.POSITIONID AS PositionId,
'Hiring Process Started' AS ActivityName,
hr.CREATEDDATETIME AS EventTime,
hr.CREATEDDATETIME AS EndTime,
hr.CREATEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Recruiting' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmRecruitingRequest hr
JOIN HcmPositionV2 p ON hr.POSITIONID = p.POSITIONID
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE hr.DATAREAID = '[YourCompanyId]'
AND hr.CREATEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Frozen' AS ActivityName,
pd.MODIFIEDDATETIME AS EventTime, -- Assuming a status change triggers modification time
pd.MODIFIEDDATETIME AS EndTime,
pd.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Frozen' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE p.[YourPositionStatusField] = 'Frozen' -- Requires a dedicated status field on the position
AND p.DATAREAID = '[YourCompanyId]'
AND pd.MODIFIEDDATETIME >= '[StartDate]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Deactivated' AS ActivityName,
pd.VALIDTO AS EventTime,
pd.VALIDTO AS EndTime,
pd.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Inactive' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE pd.VALIDTO < '2154-12-31' -- D365 often uses this far-future date for 'never expires'
AND pd.VALIDTO >= '[StartDate]'
AND p.DATAREAID = '[YourCompanyId]'
UNION ALL
SELECT
p.POSITIONID AS PositionId,
'Position Closed' AS ActivityName,
pd.MODIFIEDDATETIME AS EventTime, -- Assuming a status change triggers modification time
pd.MODIFIEDDATETIME AS EndTime,
pd.MODIFIEDBY AS UserName,
dept.NAME AS DepartmentName,
j.DESCRIPTION AS JobTitle,
'Closed' AS PositionStatus,
pd.DEFAULTDIMENSIONDISPLAYVALUE AS CostCenter
FROM HcmPositionV2 p
JOIN HcmPositionDetail pd ON p.POSITIONID = pd.POSITIONID
LEFT JOIN HcmJob j ON p.JOBID = j.JOBID
LEFT JOIN OMOperatingUnit dept ON pd.DEPARTMENT = dept.OMOPERATINGUNITNUMBER
WHERE p.[YourPositionStatusField] = 'Closed' -- Requires a dedicated status field on the position
AND p.DATAREAID = '[YourCompanyId]'
AND pd.MODIFIEDDATETIME >= '[StartDate]'