Seu Template de Dados de Gestão de Cargos
Seu Template de Dados de Gestão de Cargos
- Atributos recomendados para uma análise completa
- Principais atividades do processo para uma descoberta precisa
- Guia de extração específico para Microsoft Dynamics 365 Human Resources
Atributos de Gestão de Posições - Hire to Retire
| Nome | Descrição | ||
|---|---|---|---|
| ID da posição PositionId | O identificador exclusivo para um cargo específico dentro da organização. | ||
| Descrição O ID da Posição serve como o identificador principal do caso, vinculando todas as atividades e pontos de dados a um único cargo organizacional. Isso permite o rastreamento de ponta a ponta de todo o ciclo de vida da posição. Na análise de processos, este ID é essencial para reconstruir a jornada de cada cargo. Ele habilita dashboards que monitoram tempos de ciclo, identificam gargalos em aprovações e analisam variantes do processo, desde a solicitação até o fechamento. Por que é importante Este é o identificador principal que conecta todos os eventos relacionados em um único caso de processo, permitindo analisar o ciclo de vida do cargo de ponta a ponta. Onde obter Este é normalmente o campo HcmPosition.PositionId no Microsoft Dynamics 365 Human Resources. Ele pode ser encontrado em entidades de dados como HcmPositionV2Entity. Exemplos POS001234MKT-0056FIN-SR-ANALYST-02HRBP-EAST-01IT-DEV-9876 | |||
| Nome da Atividade ActivityName | O nome do evento ou tarefa específica que ocorreu no processo de gestão de cargos. | ||
| Descrição Este atributo descreve uma etapa única no ciclo de vida do cargo, como 'Solicitação de Cargo Iniciada' ou 'Cargo Desativado'. Ele forma a base do mapa de processo, mostrando a sequência de eventos. Analisar o Nome da Atividade permite visualizar fluxos, identificar desvios do padrão e calcular tempos de transição. É fundamental para entender o que aconteceu e em que ordem. Por que é importante Define as etapas do processo, permitindo a visualização de mapas de processo e a análise de fluxos e variações. Onde obter Este atributo é derivado de eventos de negócio, mudanças de status ou histórico de workflow no Microsoft Dynamics 365 Human Resources. Não é um campo único, mas construído com base no contexto dos dados. Exemplos Solicitação de Cargo IniciadaSolicitação de Cargo Aprovada pelo GestorCargo Criado no Sistema de RHAtributos do Cargo ModificadosCargo Fechado | |||
| Tempo do Evento EventTime | O timestamp indicando quando a atividade ocorreu. | ||
| Descrição O Event Time, ou timestamp, registra a data e hora exatas em que uma atividade foi concluída. É fundamental para ordenar os eventos cronologicamente e calcular durações e tempos de ciclo. Este atributo é usado em quase todas as análises de Process Mining, desde a construção do mapa de processo até o cálculo de KPIs de desempenho, como o 'Tempo Médio de Ciclo de Aprovação de Cargos'. Ele ajuda a identificar quando ocorrem atrasos e quanto tempo leva cada etapa. Por que é importante Este timestamp é essencial para ordenar os eventos, calcular todas as métricas de tempo e descobrir gargalos no processo. Onde obter Esta informação é normalmente encontrada em tabelas de log do sistema ou nos campos 'CreatedDateTime' ou 'ModifiedDateTime' associados aos registros de cargo e workflow no Dynamics 365 HR. Exemplos 2023-04-15T09:00:00Z2023-04-15T14:35:10Z2023-04-18T11:21:05Z2023-05-02T16:45:00Z2024-01-10T10:00:00Z | |||
| Centro de Custo CostCenter | O centro de custo financeiro ao qual as despesas do cargo são alocadas. | ||
| Descrição O Centro de Custo é uma dimensão financeira essencial que vincula um cargo a um orçamento ou área de responsabilidade específica. É importante monitorar alterações neste atributo. Este atributo é crítico para o dashboard 'Verificação de Consistência de Dados de Cargos', que analisa mudanças em atributos-chave após a criação. Também é usado para analisar custos e orçamentos por diferentes unidades financeiras. Por que é importante Conecta a posição aos dados financeiros, permitindo análises de custo e monitoramento da consistência dos dados. Onde obter Isso é normalmente configurado como uma dimensão financeira no registro do cargo. Consulte a configuração de dimensões financeiras no Dynamics 365. Exemplos CC-1001-FINCC-2500-ITCC-4510-SALESCC-7000-OPSCC-9002-HR | |||
| Departamento DepartmentName | O departamento ao qual o cargo pertence. | ||
| Descrição Este atributo especifica o departamento organizacional associado ao cargo. É uma dimensão primária para filtrar e agregar dados do processo. Analisar por departamento é essencial para o dashboard de 'Vazão de Cargos por Departamento'. Ajuda a comparar o desempenho, identificar gargalos específicos e entender tendências de contratação em diferentes áreas do negócio. Por que é importante Permite que a análise do processo seja segmentada por unidade de negócio, ajudando a identificar problemas específicos de departamentos e comparar desempenho. Onde obter Esta informação faz parte dos detalhes do cargo, normalmente armazenada na entidade HcmPositionDetail e vinculada à dimensão da unidade operacional. Exemplos FinançasTecnologia da InformaçãoVendas e MarketingRecursos HumanosOperações | |||
| End Time EndTime | O timestamp que indica quando a atividade foi concluída. | ||
| Descrição O EndTime marca a conclusão de uma atividade. O tempo decorrido entre o StartTime e o EndTime é o tempo de processamento dessa atividade específica. Este atributo é essencial para calcular durações em nível de atividade e entender onde o tempo está sendo gasto no processo. Por exemplo, ajuda a determinar quanto tempo um gerente leva para aprovar uma solicitação após a atribuição. Por que é importante Permite o cálculo dos tempos de processamento das atividades, fundamental para análises detalhadas de desempenho e gargalos. Onde obter Isso pode ser derivado de timestamps de eventos subsequentes ou de campos específicos de 'conclusão' nos logs de workflow do Dynamics 365 HR. Frequentemente, precisa ser inferido. Exemplos 2023-04-15T09:05:12Z2023-04-15T15:00:00Z2023-04-19T09:00:00Z2023-05-03T10:00:00Z2024-01-10T10:05:00Z | |||
| Nome do Utilizador UserName | O nome ou ID do usuário que executou a atividade. | ||
| Descrição Este atributo identifica o funcionário ou usuário do sistema responsável por uma etapa, como o gestor que aprovou uma solicitação ou o especialista de RH que criou o cargo. Analisar por usuário ajuda a identificar necessidades de treinamento, comparar o desempenho da equipe e entender a distribuição de carga de trabalho. Também é essencial para verificações de conformidade e segregação de funções. Por que é importante Proporciona prestação de contas e permite a análise de desempenho por indivíduo ou equipe, o que é crucial para a gestão de recursos e treinamento. Onde obter Associado a registros de histórico de workflow ou trilhas de auditoria no Dynamics 365 HR. Pode ser vinculado por meio de um ID de Usuário da entidade HcmWorker. Exemplos John SmithJane DoeSISTEMAHRAdmin01MGR-FINANCE | |||
| Status do Cargo PositionStatus | O status atual ou histórico do cargo. | ||
| Descrição Este atributo indica o estado do cargo em um dado momento, como 'Proposto', 'Ativo', 'Congelado' ou 'Fechado'. As mudanças de status geralmente correspondem a atividades no processo. Rastrear o status é crucial para entender a jornada do cargo e para dashboards como 'Status de Revisão de Conformidade' e 'Cargos Obsoletos e Subutilizados'. Ele oferece um panorama do estado atual e ajuda a validar o fluxo. Por que é importante Fornece um estado claro para cada posição, o que é essencial para filtrar casos e entender os resultados. Onde obter Consulte a documentação do Microsoft Dynamics 365 Human Resources. Isso provavelmente é derivado de campos de status no registro principal da Posição. Exemplos PropostoEm AnáliseAtivoCongeladaEncerrado | |||
| Título do cargo JobTitle | O título do trabalho associado ao cargo, como 'Contador Sênior'. | ||
| Descrição O Título do Cargo fornece um contexto importante sobre as funções e responsabilidades da posição. É diferente do ID da Posição, já que vários cargos podem compartilhar o mesmo título. Na análise, este atributo permite agrupar e filtrar por tipo de função. É útil para o dashboard 'Tendências de Reclassificação de Cargos' para ver quais tipos de cargos estão sendo reclassificados com mais frequência. Por que é importante Adiciona contexto de negócio crucial, permitindo análises baseadas em função, nível ou cargo. Onde obter Esta informação está vinculada ao registro 'Job' associado à Posição. Procure em entidades como HcmPositionV2Entity ou fazendo um join com a HcmJobEntity. Exemplos Analista Financeiro SêniorEngenheiro de Software IIBusiness Partner de RHCoordenador de MarketingGerente de Logística | |||
| É Retrabalho IsRework | Indicador que sinaliza se uma atividade faz parte de um ciclo de retrabalho. | ||
| Descrição Esta flag booleana é definida como verdadeira se uma atividade representar uma etapa repetida, como uma reaprovação após modificação de atributos. Ajuda a quantificar loops ineficientes. Este atributo apoia o dashboard de 'Análise de Retrabalho de Cargos' e o KPI de 'Taxa de Retrabalho'. Ao sinalizar o retrabalho, os analistas podem medir facilmente a frequência e o impacto das ineficiências. Por que é importante Identifica e quantifica explicitamente o retrabalho, que é um alvo primário para iniciativas de melhoria de processos. Onde obter Isso é calculado com base na sequência de atividades de um caso. Por exemplo, se a 'Solicitação de Cargo Aprovada pelo Gestor' ocorrer após 'Atributos do Cargo Modificados', pode ser sinalizado como retrabalho. Exemplos verdadeirofalse | |||
| Família de Cargos JobFamily | Um agrupamento de funções com responsabilidades semelhantes, como 'Engenharia' ou 'Finanças'. | ||
| Descrição Família de Cargos é uma classificação que agrupa cargos relacionados. Por exemplo, 'Engenheiro de Software' e 'Engenheiro de QA' podem ambos pertencer à família de 'Engenharia'. Este atributo é essencial para o dashboard de 'Tendências de Reclassificação de Posição', pois permite uma análise de alto nível sobre quais categorias de cargos mudam com mais frequência, oferecendo uma visão mais ampla do que apenas títulos individuais. Por que é importante Permite uma análise mais ampla baseada em categorias de posições, o que é útil para o planejamento estratégico e análise de tendências. Onde obter Isso faz parte da configuração do trabalho no Dynamics 365 HR. Procure por campos relacionados a 'Job family' ou 'Job function' na HcmJobEntity. Exemplos EngenhariaFinanças e ContabilidadeVendasRecursos HumanosGestão de Produtos | |||
| Gestor Solicitante RequestingManager | O gestor que iniciou a solicitação para o cargo. | ||
| Descrição Este atributo identifica o gestor de contratação ou chefe de departamento que iniciou o processo. Essa informação fornece contexto sobre a origem da demanda por cargos. Analisar pelo Gestor Solicitante ajuda a identificar padrões no volume de solicitações, taxas de aprovação e qualidade dos pedidos, oferecendo mais detalhes sobre a carga de trabalho e a adesão ao processo. Por que é importante Ajuda a rastrear a origem da demanda de posições e a analisar métricas do processo sob a perspectiva do gerente requisitante. Onde obter Consulte a documentação do Microsoft Dynamics 365 Human Resources. Esta informação provavelmente é capturada nos dados de início do workflow. Exemplos Robert JonesSusan MillerDavid ChenMaria GarciaPaul Williams | |||
| Localização Location | A localização física ou geográfica do cargo. | ||
| Descrição Este atributo especifica onde o cargo está sediado (escritório, cidade ou país). É outra dimensão importante para filtrar e segmentar os dados. A Localização é usada no dashboard de 'Vazão de Cargos por Departamento' para analisar tendências e desempenho por região. Ajuda a identificar se os processos de criação ou aprovação são mais lentos em determinados locais. Por que é importante Fornece contexto geográfico, permitindo a análise de desempenho e tendências em diferentes localizações. Onde obter Consulte a documentação do Microsoft Dynamics 365 Human Resources. Isso pode fazer parte dos detalhes da posição ou estar vinculado via departamento ou entidade legal. Exemplos Nova York, EUALondres, Reino UnidoBerlim, AlemanhaCingapuraRemoto | |||
| Motivo da Rejeição RejectionReason | O motivo fornecido quando uma solicitação de cargo é rejeitada. | ||
| Descrição Quando uma solicitação de cargo é rejeitada pelo gestor ou pelo RH, um motivo geralmente é registrado. Isso pode ocorrer por restrições orçamentárias, informações incorretas ou mudança de estratégia. Este atributo é crítico para calcular o KPI de 'Taxa de Rejeição de Solicitação de Cargo' e entender por que o retrabalho ocorre. Analisar os motivos de rejeição mais comuns ajuda a identificar problemas na origem, como solicitações de baixa qualidade ou diretrizes pouco claras, que podem ser corrigidos para melhorar o processo. Por que é importante Fornece insights diretos sobre por que as solicitações falham, permitindo melhorias focadas para reduzir o retrabalho e as taxas de rejeição. Onde obter Consulte a documentação do Microsoft Dynamics 365 Human Resources. Isso costuma ser capturado nos comentários do workflow ou em um campo específico de código de motivo na rejeição. Exemplos Orçamento IndisponívelSolicitação DuplicadaPerfil de Cargo IncorretoCongelamento de ContrataçõesRealinhamento Estratégico | |||
| O Orçamento Está Aprovado IsBudgetApproved | Indicador que sinaliza se o orçamento para a posição foi aprovado. | ||
| Descrição Este atributo booleano é verdadeiro se a atividade 'Orçamento do Cargo Aprovado' ocorreu. Ele ajuda a analisar o fluxo e identificar cargos travados aguardando orçamento. Ele pode ser usado para filtrar processos e analisar o KPI de 'Tempo de Ciclo de Aprovação de Orçamento' de forma mais eficaz, diferenciando cargos que já passaram pela etapa orçamentária daqueles que ainda não, o que é útil para análise de gargalos. Por que é importante Simplifica a análise ao fornecer um indicador claro para um marco crítico, ajudando a isolar e medir a etapa de aprovação de orçamento. Onde obter Isso é derivado durante a transformação de dados, verificando a existência da atividade 'Orçamento do Cargo Aprovado' no histórico do caso. Exemplos verdadeirofalse | |||
| Sistema de Origem SourceSystem | O sistema do qual os dados foram extraídos. | ||
| Descrição Este atributo identifica a origem dos dados do processo. Para esta visualização, seria normalmente 'Microsoft Dynamics 365 Human Resources'. Em ambientes com vários sistemas, este campo é crucial para a linhagem de dados e solução de problemas. Ele ajuda a confirmar a fonte dos dados e pode ser usado para filtrar análises por sistemas específicos. Por que é importante Fornece contexto sobre a origem dos dados, o que é importante para a governança de dados e para análises que abrangem múltiplos sistemas corporativos. Onde obter Este é um valor estático adicionado durante o processo de extração e transformação para identificar a origem do conjunto de dados. Exemplos Microsoft Dynamics 365 Human ResourcesD365 HRDynamicsHR | |||
| Tempo de Ciclo de Aprovação ApprovalCycleTime | O tempo total desde que uma solicitação de cargo é iniciada até ser finalmente aprovada. | ||
| Descrição Esta métrica calculada mede a duração desde a 'Solicitação de Cargo Iniciada' até a aprovação final. É um KPI fundamental para o início do processo de gestão de cargos. Este atributo alimenta o dashboard e o KPI de 'Tempo de Ciclo de Aprovação de Cargos'. Ele oferece uma visão macro da eficiência do processo de aprovação e ajuda a monitorar o impacto das melhorias ao longo do tempo. Por que é importante É um KPI crítico que mede a eficiência de todo o processo de aprovação, destacando diretamente os atrasos na preparação das posições para criação. Onde obter Isso é calculado no nível do caso, encontrando os timestamps das atividades de início e fim da fase de aprovação e computando a diferença. Exemplos P3DT2H15MP10DP1DT12HP5DT6HP2W | |||
| Tempo de Processamento ProcessingTime | A duração do tempo gasto a trabalhar ativamente numa atividade. | ||
| Descrição O Tempo de Processamento é a duração calculada entre o StartTime e o EndTime de uma atividade. Ele representa o tempo real gasto em uma tarefa, excluindo o tempo de espera. Essa métrica é fundamental para a análise de desempenho e é usada em dashboards como o 'Monitor de Gargalos na Criação de Cargos'. Ao somar os tempos de processamento de todas as atividades, é possível entender o tempo total de execução (touch time) do ciclo de vida de um cargo, que é um componente essencial da análise de eficiência. Por que é importante Mede a duração real do trabalho nas atividades, ajudando a distinguir o tempo de execução do tempo de espera na análise de gargalos. Onde obter Calculado durante a transformação dos dados subtraindo o StartTime do EndTime (EndTime - StartTime). Exemplos PT5M12SPT1H30MP2DT4H15MP0DPT8H | |||
| Tipo de Cargo PositionType | Classifica a posição como tempo integral, meio período, temporário, etc. | ||
| Descrição Este atributo categoriza o cargo com base em seus termos de emprego, fornecendo contexto para análise e planejamento. Na análise de processos, filtrar pelo tipo de cargo pode revelar se certas posições têm caminhos diferentes ou tempos de ciclo mais longos. Por exemplo, cargos temporários podem ter um processo de aprovação mais rápido e simplificado em comparação com cargos permanentes em tempo integral. Por que é importante Permite analisar como o processo difere para vários tipos de contratação, auxiliando no planejamento da força de trabalho e na otimização de processos. Onde obter Esta informação está normalmente disponível no registro do cargo no Dynamics 365 HR. Verifique entidades como HcmPositionV2Entity para encontrar o campo relevante. Exemplos Tempo integralMeio períodoTerceirizadoEstagiárioTemporário | |||
| Última Atualização de Dados LastDataUpdate | O timestamp da atualização de dados mais recente do sistema de origem. | ||
| Descrição Este atributo indica quando os dados foram extraídos pela última vez do Microsoft Dynamics 365 Human Resources, dando contexto sobre a atualidade da análise. Exibir essa informação nos dashboards garante aos usuários que eles estão vendo dados atualizados. É um metadado essencial para qualquer projeto de Process Mining. Por que é importante Informa os usuários sobre a atualidade dos dados, o que é crucial para tomar decisões baseadas na análise. Onde obter Este timestamp é gerado e armazenado durante o processo de extração, transformação e carregamento (ETL). Exemplos 2024-05-21T02:00:00Z2024-05-20T02:00:00Z2024-05-19T02:00:00Z | |||
Atividades de Gestão de Posições - Hire to Retire
| Atividade | Descrição | ||
|---|---|---|---|
| Cargo Ativado | Marca o ponto em que uma posição se torna oficialmente aberta e o recrutamento pode começar. Este evento é inferido de uma mudança de status no registro da posição para 'Ativo' ou similar. | ||
| Por que é importante Este é um marco crítico para medir a prontidão da equipe e a eficiência das etapas finais de configuração. É essencial para o KPI de Tempo Médio para Ativação de Cargo. Onde obter Inferido ao rastrear o timestamp quando o campo de status (ex: 'PositionStatus') no registro da posição é atualizado para 'Ativo' ou 'Aberto'. Captura Com base na data em que o campo ActivationDate da posição é preenchido ou um campo de status muda para 'Ativo'. Tipo de evento inferred | |||
| Cargo Criado no Sistema de RH | Este evento marca a criação oficial do registro do cargo no Dynamics 365 HR. É capturado a partir do timestamp de criação do próprio registro principal do cargo. | ||
| Por que é importante Um marco fundamental que marca a transição da solicitação para uma entidade organizacional real. É o ponto final para o KPI de Lead Time de Criação de Posição. Onde obter Do campo de sistema 'CreatedDateTime' na tabela principal de posições, como a HcmPosition. Captura Extraído do campo de sistema CreatedDateTime na tabela HcmPosition. Tipo de evento explicit | |||
| Cargo Desativado | O cargo não está mais ativo e é removido da estrutura organizacional ativa, muitas vezes após ser preenchido. Isso é inferido por uma mudança de status para 'Inativo' ou estado semelhante. | ||
| Por que é importante Marca uma etapa essencial no fim da vida ativa de uma posição. É crucial para analisar o Tempo Médio para Desativação da Posição e gerenciar o headcount com precisão. Onde obter Inferido do timestamp quando o campo 'RetirementDate' é preenchido ou um campo de status muda para 'Inativo'. Captura Com base na data em que o RetirementDate da posição é definido ou um campo de status muda para 'Inativo'. Tipo de evento inferred | |||
| Cargo Fechado | Representa o arquivamento final do registro do cargo, significando o fim absoluto do seu ciclo de vida. Este evento é inferido por uma mudança de status para 'Fechado' ou um estado terminal semelhante. | ||
| Por que é importante Este é o evento terminal do processo, permitindo uma análise completa do ciclo de vida e ajudando a identificar cargos obsoletos que devem ser fechados. Onde obter Inferido de uma mudança no campo de status para 'Fechado'. É menos comum que a desativação, pois os registros costumam ser mantidos para histórico. Captura Inferido do timestamp quando um campo de status é atualizado para 'Fechado'. Tipo de evento inferred | |||
| Solicitação de Cargo Aprovada pelo RH | Significa a aprovação final do departamento de Recursos Humanos antes que o cargo possa ser formalmente criado. Este é um evento explícito registrado após a conclusão da tarefa de aprovação do RH no sistema de workflow. | ||
| Por que é importante Isso marca o fim da fase de aprovação e é um marco crítico para medir o Tempo Médio de Ciclo de Aprovação de Cargos geral. Onde obter Registrado nas tabelas de histórico de workflow quando o representante do RH conclui sua tarefa de aprovação. Captura O evento é registrado no histórico do workflow com um timestamp após a conclusão da etapa de aprovação do RH. Tipo de evento explicit | |||
| Solicitação de Cargo Iniciada | Marca o início formal do ciclo de vida da gestão de posições. Este evento geralmente é capturado quando um usuário envia uma nova solicitação por meio de um formulário ou workflow dedicado no D365 HR. | ||
| Por que é importante Este é o ponto de partida para medir todo o ciclo de vida do cargo, incluindo KPIs cruciais como o Tempo de Ciclo de Aprovação e o Lead Time de Criação. Onde obter Capturado a partir do timestamp de criação de um registro de solicitação de posição ou do registro de início na tabela de histórico de workflow. Captura O evento é registrado no envio de um novo workflow de solicitação de posição. Tipo de evento explicit | |||
| Atributos do Cargo Modificados | Representa qualquer alteração feita nos principais atributos de um cargo, como título ou departamento, após a sua criação inicial. Esta atividade é normalmente inferida pelo rastreamento de alterações no log do banco de dados do sistema. | ||
| Por que é importante A alta frequência desta atividade pode indicar baixa qualidade de dados ou retrabalho. É essencial para os KPIs de Frequência de Mudança de Atributos e Taxa de Retrabalho. Onde obter Inferido da tabela SysDatabaseLog se o rastreamento de alterações estiver ativado. Caso contrário, requer a comparação de snapshots históricos dos dados da posição. Captura Inferido ao detectar operações de atualização em campos-chave da tabela HcmPosition via log de banco de dados. Tipo de evento inferred | |||
| Cargo Congelado | Indica que uma posição foi colocada temporariamente em espera, impedindo qualquer atividade de contratação. Isso é capturado ao inferir uma mudança de status no registro para 'Congelado' ou 'Em espera'. | ||
| Por que é importante Rastreia interrupções no ciclo de vida do cargo, que podem impactar planos de contratação e orçamentos. Ajuda a identificar os motivos dos atrasos nas contratações. Onde obter Inferido ao rastrear o timestamp quando um campo de status no registro da posição é atualizado para 'Congelado' ou similar. Captura Inferido do timestamp de uma mudança de status para 'Congelado' ou 'Em Espera'. Tipo de evento inferred | |||
| Cargo Reclassificado | Uma atualização significativa onde a classificação fundamental da posição, como sua família de cargos ou nível, é alterada. Geralmente é inferido de uma mudança no campo 'Job' no registro da posição. | ||
| Por que é importante Ajuda a analisar mudanças na estrutura organizacional e a estabilidade das definições de cargos. É a atividade principal para o KPI de Taxa de Reclassificação de Posição. Onde obter Inferido de uma mudança no campo 'JobId' na tabela HcmPosition, capturada via log de banco de dados ou comparação de versões do registro. Captura Inferido de uma alteração registrada no campo de classificação de cargo no registro da posição. Tipo de evento inferred | |||
| Cargo Revisado para Conformidade | Indica que uma posição passou por uma verificação formal de conformidade. Pode ser capturado por uma mudança de status, tarefa de checklist concluída ou campo personalizado atualizado. | ||
| Por que é importante Crucial para monitorar a adesão a políticas regulatórias e internas. Esta atividade suporta diretamente o KPI de Taxa de Adesão à Conformidade da Posição. Onde obter Provavelmente inferido de um campo de status com timestamp como 'ComplianceReviewStatus' ou um campo booleano 'IsComplianceReviewed' no registro da posição. Captura Inferido do timestamp quando um campo de status de conformidade é atualizado para 'Concluído' ou 'Revisado'. Tipo de evento inferred | |||
| Início do Processo de Contratação | Significa a passagem da gestão de cargos para o recrutamento. Este evento é inferido quando uma nova vaga ou projeto de recrutamento é criado e vinculado a este ID de cargo específico. | ||
| Por que é importante Conecta o processo de gestão de posições ao seu resultado final, permitindo analisar o tempo entre a ativação da posição e o início real das atividades de contratação. Onde obter Inferido ao identificar a data de criação de um registro nas tabelas de recrutamento ou vagas que referencia o ID da Posição. Captura Inferido ao vincular o PositionId à criação de um registro correspondente no módulo de recrutamento. Tipo de evento inferred | |||
| Orçamento do Cargo Aprovado | Um marco de aprovação essencial que confirma que os fundos necessários foram alocados para a nova posição. Geralmente é capturado como uma etapa distinta de aprovação no workflow de criação de posição. | ||
| Por que é importante Isola a etapa de aprovação financeira, permitindo analisar atrasos relacionados à alocação de orçamento e apoiando o KPI de Tempo de Ciclo de Aprovação de Orçamento. Onde obter Registrado nas tabelas de histórico de workflow, como a WorkflowTrackingTable, como uma tarefa de aprovação concluída, geralmente atribuída a uma função financeira. Captura Capturado a partir do timestamp de conclusão da tarefa de aprovação de orçamento no log do workflow. Tipo de evento explicit | |||
| Solicitação de Cargo Aprovada pelo Gestor | Representa a conclusão da primeira linha de aprovação pelo gestor da contratação. Este evento é registrado explicitamente no histórico do workflow quando o gestor conclui sua tarefa de aprovação atribuída. | ||
| Por que é importante Identifica a duração da etapa inicial de aprovação, ajudando a encontrar gargalos com gerentes ou departamentos específicos. Onde obter Registrado como uma etapa concluída nas tabelas de histórico de workflow associadas à solicitação da posição. Captura Capturado a partir do timestamp de conclusão da etapa de aprovação do gerente no log do workflow. Tipo de evento explicit | |||
| Solicitação de Cargo Rejeitada | Indica que uma solicitação de posição foi negada em uma das etapas de aprovação. Este evento é explicitamente capturado no histórico do workflow quando um aprovador seleciona a ação 'Rejeitar'. | ||
| Por que é importante Destaca falhas de processo e loops de retrabalho. Analisar os motivos de rejeição ajuda a melhorar a qualidade das solicitações iniciais e apoia o KPI de Taxa de Rejeição de Solicitação de Posição. Onde obter Registrado com o status 'Rejeição' nas tabelas de histórico de workflow, como a WorkflowTrackingStatusTable, para a solicitação de cargo específica. Captura Capturado do log do workflow quando um aprovador executa a ação de rejeição. Tipo de evento explicit | |||
Guias de Extração
Etapas
- Navegue até o Workspace de Gerenciamento de Dados: Faça login no Microsoft Dynamics 365 Human Resources. Use a barra de pesquisa principal para acessar o workspace 'Gerenciamento de dados'.
- Crie um Novo Projeto de Exportação: No workspace, selecione o bloco 'Exportar'. Na página do projeto, clique em 'Novo' para criar um projeto. Dê um nome descritivo, como 'PositionManagement_EventLog_Export', e selecione um formato de dados. Para fins de transformação, recomendamos o 'CSV'.
- Adicione Entidades de Dados ao Projeto: No seu novo projeto, clique em 'Adicionar entidade'. Você precisará adicionar várias entidades para capturar o ciclo de vida completo da posição. Adicione as seguintes entidades principais uma a uma: 'HcmPositionV2', 'WorkflowTrackingStatusTable' e 'HcmRecruitingRequest'. Se o log de banco de dados estiver ativado para alterações de posição, adicione também 'SysDatabaseLog'.
- Configure os Filtros de Entidade: Para cada entidade, é fundamental aplicar filtros para limitar o escopo dos dados. Selecione uma entidade e clique em 'Filtrar'. Para 'HcmPositionV2', filtre por um intervalo de datas específico usando os campos 'CreatedDateTime' ou 'ModifiedDateTime'. Para 'WorkflowTrackingStatusTable', filtre o 'CONTEXTTABLENAME' para incluir apenas os workflows relacionados a posições.
- Selecione os Campos para Cada Entidade: Certifique-se de exportar todos os campos necessários para a transformação posterior. Para 'HcmPositionV2', inclua 'PositionId', 'CreatedDateTime', 'ActivationDate', 'RetirementDate', 'ModifiedDateTime', 'JobId' e 'DepartmentNumber'. Para 'WorkflowTrackingStatusTable', inclua 'ContextRecId', 'WorkflowTrackingStatus', 'CreatedDateTime' e 'UserId'.
- Execute o Trabalho de Exportação: Após configurar todas as entidades, campos e filtros, clique em 'Exportar' na página principal do projeto. O sistema criará um pacote de dados contendo arquivos separados para cada entidade.
- Monitore e Baixe o Pacote de Dados: Você pode acompanhar o progresso na seção 'Histórico de trabalhos'. Quando o trabalho for concluído com sucesso, baixe o pacote de dados (um arquivo compactado).
- Extraia e Transforme os Dados: Descompacte o pacote baixado. Você encontrará arquivos CSV separados para cada entidade. Eles representam dados brutos, não o Event Log final. Você precisará usar um script externo (como Python com pandas ou PowerShell) para processar esses arquivos.
- Implemente a Lógica de Transformação: Seu script deve realizar as seguintes ações:
- Carregar o arquivo 'HcmPositionV2.csv'. A partir dele, gerar o evento 'Posição Criada no Sistema de RH' usando 'PositionId' e 'CreatedDateTime'.
- Gerar eventos de mudança de status ('Posição Ativada', 'Posição Congelada', 'Posição Desativada', 'Posição Fechada') interpretando campos de status ou de data como 'ActivationDate' e 'RetirementDate'.
- Carregar o arquivo 'WorkflowTrackingStatusTable.csv'. Unir esses dados com os dados da posição usando o ID do registro. A partir disso, gerar os eventos de workflow: 'Solicitação de Posição Iniciada', 'Solicitação de Posição Aprovada pelo Gerente', 'Orçamento da Posição Aprovado', 'Solicitação de Posição Aprovada pelo RH' e 'Solicitação de Posição Rejeitada'. Você precisará mapear o status do workflow e o contexto da etapa para o Nome da Atividade correto.
- Se você exportou 'SysDatabaseLog.csv', processe este arquivo para gerar os eventos 'Atributos da Posição Modificados' e 'Posição Reclassificada' com base nas alterações em campos específicos da tabela HcmPosition.
- Carregar o 'HcmRecruitingRequest.csv' para gerar o evento 'Início do Processo de Contratação' identificando quando uma solicitação de recrutamento foi criada para uma determinada posição.
- Monte o Event Log Final: O script deve combinar todos os eventos gerados de diferentes fontes em um único arquivo CSV. Este arquivo deve conter as colunas obrigatórias: 'PositionId', 'ActivityName' e 'EventTime', além de quaisquer atributos recomendados que você conseguiu mapear.
- Formate para Upload: Certifique-se de que o CSV final tenha cabeçalhos correspondentes aos nomes de atributos exigidos e que a coluna 'EventTime' esteja em um formato de timestamp consistente. O arquivo agora está pronto para upload na ferramenta de Process Mining.
Configuração
- Entidades de Dados Principais: As entidades primárias necessárias para esta extração são:
HcmPositionV2: Contém detalhes fundamentais sobre cada posição, incluindo datas de criação, ativação e atributos como função e departamento.WorkflowTrackingStatusTable: Fornece o histórico das instâncias de workflow, incluindo envios, aprovações e rejeições. Isso é essencial para rastrear o processo de aprovação.HcmRecruitingRequest: Usada para inferir a atividade 'Início do Processo de Contratação' quando uma solicitação de recrutamento está vinculada a uma posição.SysDatabaseLog: Uma entidade opcional, mas poderosa, para capturar mudanças detalhadas como 'Atributos da Posição Modificados' e 'Posição Reclassificada'. Seu uso depende da configuração prévia do log de banco de dados para a tabela HcmPosition.
- Filtragem por Intervalo de Datas: Recomendamos fortemente a aplicação de um filtro de data na entidade 'HcmPositionV2' com base no campo 'CreatedDateTime'. Um intervalo de 6 a 12 meses costuma ser ideal para garantir um volume de dados gerenciável.
- Exportações Incrementais: Para análises contínuas, considere configurar o projeto de exportação para modo incremental. Isso extrairá apenas os registros alterados desde a última execução, reduzindo drasticamente o tempo de processamento.
- Pré-requisitos: O usuário que executa a exportação deve ter uma função de segurança com permissões suficientes para acessar o workspace de 'Gerenciamento de dados' e acesso de leitura a todas as entidades especificadas. Geralmente, são exigidas funções como 'Administrador de gerenciamento de dados' ou uma função personalizada com privilégios específicos.
a Consulta de Exemplo 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] Etapas
- Confirmação de Pré-requisitos: Antes de começar, verifique se o recurso 'Bring Your Own Database' (BYOD) está configurado para sua instância do Dynamics 365 HR. Garanta que as entidades de dados necessárias estejam sendo exportadas para seu Banco de Dados SQL do Azure. As entidades principais incluem:
HcmPositionV2,HcmPositionDetail,WorkflowTrackingStatusTable,HcmJob,OMOperatingUniteHcmRecruitingRequest. - Conecte-se ao Banco de Dados SQL do Azure: Use uma ferramenta de cliente SQL, como o SQL Server Management Studio (SSMS) ou o Azure Data Studio, para estabelecer conexão com o banco de dados que serve como destino do seu BYOD.
- Identifique o Esquema do Banco de Dados: Após a conexão, familiarize-se com o esquema. As entidades de dados do D365 HR são replicadas como tabelas. Note que os nomes das tabelas no BYOD podem não ser idênticos aos das entidades, mas geralmente são muito parecidos.
- Carregue a Consulta SQL: Abra uma nova janela de consulta no seu cliente SQL e cole o script SQL completo fornecido na seção 'query' deste documento.
- Personalize os Parâmetros: Modifique as variáveis marcadoras na consulta. Defina o
@[YourCompanyId]para a entidade legal específica (ex: 'BR01') que você deseja analisar. Ajuste o intervalo de datas nas cláusulasWHERE(ex:CREATEDDATETIME >= '2023-01-01') para limitar a extração ao período desejado. - Execute a Consulta: Execute o query SQL completo no banco de dados BYOD. O tempo de execução variará conforme o volume de dados e o intervalo de datas selecionado.
- Revise os Resultados: Após a conclusão, inspecione a saída no painel de resultados do seu cliente SQL. Verifique se as colunas
PositionId,ActivityName,EventTimee outras estão preenchidas corretamente. - Exporte para CSV: Exporte todo o conjunto de resultados para um arquivo CSV. A maioria dos clientes SQL possui uma função nativa para salvar resultados diretamente em CSV. No SSMS, por exemplo, clique com o botão direito na grade de resultados e selecione 'Save Results As...'.
- Prepare para o Upload: Certifique-se de que o arquivo CSV exportado esteja na codificação UTF-8. Confirme se os cabeçalhos das colunas correspondem exatamente aos atributos exigidos (
PositionId,ActivityName,EventTime, etc.) para um upload sem erros na ferramenta de Process Mining.
Configuração
- Entidades de Dados do BYOD: Certifique-se de que todas as entidades de dados necessárias sejam publicadas do Dynamics 365 HR para a sua instância BYOD. As entidades críticas para este processo incluem posições, detalhes da posição, histórico de workflow, funções (jobs), departamentos e solicitações de recrutamento.
- Latência de Dados: Fique atento que o BYOD é uma replicação em tempo quase real, não instantânea. Pode haver um pequeno atraso, de alguns minutos a uma hora, entre a transação no D365 HR e o dado aparecer no Banco de Dados SQL do Azure.
- Filtragem por Intervalo de Datas: É fundamental aplicar filtros de data à sua consulta para gerenciar o desempenho e o volume de dados. Um bom ponto de partida costuma ser um intervalo de 3 a 6 meses. Aplique os filtros nos timestamps de criação ou de evento dentro de cada bloco
UNION ALL. - Filtro de Empresa: Sempre filtre pelo
DATAREAID(ID da entidade legal ou empresa) para garantir que você está analisando dados da unidade organizacional correta. A consulta fornecida inclui o marcador@[YourCompanyId]para essa finalidade. - Pré-requisitos: Este método exige uma assinatura ativa do Azure, uma instância BYOD configurada, permissões de leitura no Banco de Dados SQL do Azure de destino e uma ferramenta de cliente SQL adequada para execução de consultas.
- Etapas de Workflow Personalizadas: A consulta utiliza nomes comuns de etapas de workflow para aprovações, como 'Approve position request'. Se a sua organização utiliza nomes personalizados para essas etapas, você precisará atualizar os valores de
CONTEXTnas cláusulasWHEREcorrespondentes.
a Consulta de Exemplo 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]'