입사부터 퇴직까지: 직위 관리 데이터 템플릿
입사부터 퇴직까지: 직위 관리 데이터 템플릿
- 상세 분석을 위해 수집할 권장 속성
- 정확한 프로세스 탐색을 위해 추적할 주요 활동
- Microsoft Dynamics 365 Human Resources에 맞춘 데이터 추출 안내
입사부터 퇴직까지: 직위 관리 속성
| 이름 | 설명 | ||
|---|---|---|---|
| 이벤트 시각 EventTime | 활동이 발생한 시점을 나타내는 타임스탬프입니다. | ||
| 설명 이벤트 시각 또는 타임스탬프는 활동이 완료된 정확한 날짜와 시간을 기록합니다. 이벤트를 시간순으로 정렬하고 소요 시간과 처리 시간을 계산하는 데 중요합니다. 이 속성은 프로세스 맵 작성부터 '평균 직무 승인 처리 시간'과 같은 성과 KPI 계산까지 거의 모든 process mining 분석에 사용됩니다. 지연이 발생한 시점과 각 단계에 걸린 시간을 파악하는 데 도움이 됩니다. 중요한 이유 이 타임스탬프는 이벤트 정렬, 시간 기반 지표 계산, 프로세스 병목 발견에 필요합니다. 확보 방법 일반적으로 시스템 로그 테이블이나 Dynamics 365 HR의 직무 및 워크플로 레코드에 연결된 'CreatedDateTime' 또는 'ModifiedDateTime' 필드에서 확인할 수 있습니다. 예시 2023-04-15T09:00:00Z2023-04-15T14:35:10Z2023-04-18T11:21:05Z2023-05-02T16:45:00Z2024-01-10T10:00:00Z | |||
| 직무 ID PositionId | 조직 내 특정 직무를 식별하는 고유 ID입니다. | ||
| 설명 직무 ID는 기본 케이스 식별자로, 하나의 직무에 관련된 모든 활동과 데이터 항목을 연결합니다. 이를 통해 직무 생성과 수정부터 비활성화 또는 종료까지 전체 생애주기를 추적할 수 있습니다. 프로세스 분석에서는 이 ID를 사용해 직무별 진행 과정을 재구성합니다. 처리 시간을 모니터링하고 승인 병목을 찾으며 요청부터 종료까지의 프로세스 변형을 분석하는 대시보드를 구성할 수 있습니다. 중요한 이유 관련 이벤트를 하나의 프로세스 케이스로 연결하는 기본 식별자입니다. 이를 통해 직무 생애주기 전체를 분석할 수 있습니다. 확보 방법 일반적으로 Microsoft Dynamics 365 Human Resources의 HcmPosition.PositionId 필드입니다. HcmPositionV2Entity와 같은 데이터 엔터티에서 확인할 수 있습니다. 예시 직무001234마케팅-0056재무-선임분석가-02HRBP-동부-01IT-개발-9876 | |||
| 활동명 ActivityName | 직무 관리 프로세스에서 발생한 특정 이벤트나 작업의 이름입니다. | ||
| 설명 이 속성은 '직무 요청 시작', 'HR 시스템에서 직무 생성', '직무 비활성화'와 같이 직무 생애주기의 개별 단계를 나타냅니다. 이벤트가 발생한 순서를 보여주는 프로세스 맵의 기본 구성 요소입니다. 활동명을 분석하면 프로세스 흐름을 시각화하고 표준 프로세스와 다른 부분을 찾으며 단계 간 처리 시간을 계산할 수 있습니다. 어떤 일이 어떤 순서로 발생했는지 파악하는 데 필요한 속성입니다. 중요한 이유 프로세스 단계를 정의하는 속성으로, 프로세스 맵을 시각화하고 흐름과 변형을 분석할 수 있습니다. 확보 방법 Microsoft Dynamics 365 Human Resources의 업무 이벤트, 상태 변경 또는 워크플로 이력에서 가져옵니다. 단일 필드가 아니라 데이터의 맥락을 바탕으로 구성됩니다. 예시 직무 요청 시작관리자의 직무 요청 승인HR 시스템에서 직무 생성직무 속성 수정직무 종료 | |||
| 부서 DepartmentName | 직책이 속한 부서입니다. | ||
| 설명 이 속성은 직책과 연결된 조직 부서를 나타냅니다. 예를 들어 'Finance', 'Marketing', 'IT' 등이 해당합니다. 프로세스 데이터를 필터링하고 집계할 때 주로 사용하는 기준입니다. 부서별 직책 처리량 대시보드 분석에 필요합니다. 부서별 프로세스 성과를 비교하고, 부서별 병목을 찾으며, 사업 부문별 채용 추이를 파악할 수 있습니다. 중요한 이유 사업 부문별로 프로세스를 나누어 분석할 수 있어 부서별 문제를 찾고 성과를 비교하는 데 도움이 됩니다. 확보 방법 이 정보는 직책 세부 정보에 포함되며, 일반적으로 HcmPositionDetail 엔터티에 저장되고 운영 단위 차원과 연결됩니다. 예시 재무정보 기술영업 및 마케팅인사운영 | |||
| 사용자 이름 UserName | 활동을 수행한 사용자의 이름 또는 ID입니다. | ||
| 설명 이 속성은 프로세스 단계의 담당 직원이나 시스템 사용자를 식별합니다. 예를 들어 요청을 승인한 관리자나 시스템에 직책을 등록한 HR 담당자를 확인할 수 있습니다. 사용자별로 분석하면 교육이 필요한 부분을 파악하고, 팀원 간 성과를 비교하며, 업무량 분포를 확인할 수 있습니다. 적절한 업무 분장을 위한 규정 준수 점검에도 중요합니다. 중요한 이유 담당자를 명확히 하고 개인 또는 팀별 성과를 분석할 수 있습니다. 리소스 관리와 교육에 중요한 정보입니다. 확보 방법 Dynamics 365 HR의 워크플로 이력이나 감사 추적 레코드와 연결됩니다. HcmWorker 엔터티의 User ID를 통해 연결할 수 있습니다. 예시 John SmithJane DoeSYSTEMHRAdmin01MGR-FINANCE | |||
| 원가 센터 CostCenter | 직책 관련 비용이 배정되는 재무 원가 센터입니다. | ||
| 설명 원가 센터는 직책을 특정 예산 또는 재무 책임 영역과 연결하는 주요 재무 차원입니다. 이 속성의 변경 사항을 추적해야 합니다. 이 속성은 직책 생성 후 주요 속성의 변경을 분석하는 '직책 데이터 일관성 점검' 대시보드에 필요합니다. 재무 단위별 직책 비용과 예산을 분석할 때도 사용합니다. 중요한 이유 직책을 재무 데이터와 연결해 비용 관련 프로세스를 분석하고 데이터 일관성을 모니터링할 수 있습니다. 확보 방법 일반적으로 직책 레코드의 재무 차원으로 설정됩니다. Dynamics 365의 재무 차원 설정을 참조하세요. 예시 CC-1001-FINCC-2500-ITCC-4510-SALESCC-7000-OPSCC-9002-HR | |||
| 종료 시각 EndTime | 활동이 완료된 시각입니다. | ||
| 설명 EndTime은 활동이 끝난 시점을 나타냅니다. StartTime부터 EndTime까지의 시간이 해당 활동의 처리 시간입니다. 이 속성은 활동별 소요 시간을 계산하고 프로세스에서 시간이 어디에 쓰이는지 파악하는 데 필요합니다. 예를 들어, 요청이 관리자에게 배정된 후 관리자가 직책 요청을 승인하기까지 걸리는 시간을 확인할 수 있습니다. 중요한 이유 활동 처리 시간을 계산할 수 있어 세부적인 성과 분석과 병목 분석에 활용됩니다. 확보 방법 후속 이벤트의 타임스탬프나 Dynamics 365 HR의 워크플로 로그에 있는 특정 '완료' 필드에서 가져올 수 있습니다. 대개는 추론해야 합니다. 예시 2023-04-15T09:05:12Z2023-04-15T15:00:00Z2023-04-19T09:00:00Z2023-05-03T10:00:00Z2024-01-10T10:05:00Z | |||
| 직무명 JobTitle | '선임 회계사'와 같이 직책에 연결된 직무의 이름입니다. | ||
| 설명 직무명은 직책의 역할과 책임을 파악하는 데 필요한 정보를 제공합니다. 여러 직책이 같은 직무명을 사용할 수 있으므로 Position ID와는 다릅니다. 분석할 때 이 속성으로 역할 유형별 데이터를 묶거나 필터링할 수 있습니다. 어떤 직무가 자주 재분류되는지 확인하는 '직책 재분류 추이' 대시보드에 유용합니다. 중요한 이유 직무, 직급 또는 기능을 기준으로 분석할 수 있도록 업무 맥락을 제공합니다. 확보 방법 이 정보는 Position에 연결된 'Job' 레코드에서 가져옵니다. HcmPositionV2Entity에서 확인하거나 HcmJobEntity와 조인하세요. 예시 선임 재무 분석가소프트웨어 엔지니어 IIHR 비즈니스 파트너마케팅 코디네이터물류 관리자 | |||
| 직책 상태 PositionStatus | 직책의 현재 또는 과거 상태입니다. | ||
| 설명 이 속성은 특정 시점의 직책 상태를 나타냅니다. 예를 들어 '제안됨', '활성', '동결', '종료' 등이 있습니다. 상태 변경은 프로세스의 활동과 연결되는 경우가 많습니다. 상태를 추적하면 직책의 진행 과정을 파악하고 '직책 규정 준수 검토 상태' 및 '장기 미사용 직책' 대시보드를 분석할 수 있습니다. 직책의 현재 상태를 확인하고 프로세스 흐름을 검증하는 데도 도움이 됩니다. 중요한 이유 직책별 상태를 명확히 보여주므로 케이스를 필터링하고 결과를 파악하는 데 필요합니다. 확보 방법 Microsoft Dynamics 365 Human Resources 문서를 참조하세요. 핵심 Position 레코드의 상태 필드에서 가져올 수 있습니다. 예시 제안됨검토 중활성동결종료 | |||
| 거부 사유 RejectionReason | 직책 요청이 거부될 때 기록되는 사유입니다. | ||
| 설명 관리자나 HR이 직책 요청을 거부하면 예산 부족, 잘못된 정보 또는 전략 변경 등의 사유가 기록되는 경우가 많습니다. 이 속성은 '직책 요청 거부율' KPI를 계산하고 재작업이 발생하는 이유를 파악하는 데 필요합니다. 자주 발생하는 거부 사유를 분석하면 요청 품질이 낮거나 지침이 불명확한 등 프로세스 초기 단계의 문제를 찾아 개선할 수 있습니다. 중요한 이유 요청이 거부되는 이유를 직접 파악할 수 있어 재작업과 거부율을 줄이는 프로세스 개선에 도움이 됩니다. 확보 방법 Microsoft Dynamics 365 Human Resources 문서를 참조하세요. 거부 시 워크플로 의견이나 전용 사유 코드 필드에 기록되는 경우가 많습니다. 예시 예산 없음중복 요청잘못된 직무 프로필채용 동결전략 재조정 | |||
| 근무지 Location | 직책의 실제 또는 지리적 위치입니다. | ||
| 설명 이 속성은 직책의 근무지를 나타냅니다. 사무실, 도시 또는 국가가 될 수 있으며, 프로세스 데이터를 필터링하고 분류하는 기준으로 사용됩니다. '부서별 직책 처리량' 대시보드에서 근무지별 인력 추이와 프로세스 성과를 분석하는 데 활용합니다. 특정 지역에서 직책 생성이나 승인 절차가 더 오래 걸리는지 확인할 수 있습니다. 중요한 이유 지역별 프로세스 성과와 추이를 분석하는 데 필요한 지리적 맥락을 제공합니다. 확보 방법 Microsoft Dynamics 365 Human Resources 문서를 참조하세요. 직책 세부 정보에 포함되거나 부서 또는 법인과 연결될 수 있습니다. 예시 미국 뉴욕영국 런던독일 베를린싱가포르원격 근무 | |||
| 승인 소요 시간 ApprovalCycleTime | 직책 요청을 시작한 시점부터 최종 승인까지 걸린 총시간입니다. | ||
| 설명 이 계산 지표는 '직책 요청 시작' 활동부터 최종 승인 활동까지의 시간을 측정합니다. 최종 승인 활동은 'HR 직책 요청 승인'일 수 있습니다. 직책 관리 프로세스 초기 단계의 주요 성과 지표입니다. 이 속성은 '직책 승인 소요 시간' 대시보드와 KPI에 반영됩니다. 승인 프로세스의 전반적인 효율을 측정하고 개선 과제의 효과를 시간에 따라 추적할 수 있습니다. 중요한 이유 전체 승인 프로세스의 효율을 측정하는 주요 KPI로, 직책을 생성할 수 있는 상태로 준비하는 과정의 지연을 보여줍니다. 확보 방법 케이스 수준에서 승인 단계의 시작 및 종료 활동 타임스탬프를 찾아 그 차이를 계산합니다. 예시 P3DT2H15MP10DP1DT12HP5DT6HP2W | |||
| 예산 승인 여부 IsBudgetApproved | 직책 예산의 승인 여부를 나타내는 플래그입니다. | ||
| 설명 이 불리언 속성은 해당 직책 케이스에서 '직책 예산 승인' 활동이 발생하면 true입니다. 프로세스 흐름을 분석하고 예산 승인을 기다리며 지연되는 직책을 찾는 데 도움이 됩니다. 이 속성으로 프로세스를 필터링하면 '직책 예산 승인 소요 시간' KPI를 더 효과적으로 분석할 수 있습니다. 예산 승인을 받은 직책과 그렇지 않은 직책을 구분해 병목 분석에 활용할 수 있습니다. 중요한 이유 주요 마일스톤을 명확한 플래그로 표시해 분석을 간소화하고 예산 승인 단계를 분리해 측정할 수 있습니다. 확보 방법 데이터 변환 과정에서 케이스 이력에 '직책 예산 승인' 활동이 있는지 확인해 계산합니다. 예시 truefalse | |||
| 요청 관리자 RequestingManager | 직책 요청을 시작한 관리자입니다. | ||
| 설명 이 속성은 신규 또는 대체 직책을 요청해 프로세스를 시작한 채용 관리자나 부서장을 식별합니다. 직책 수요가 어디에서 발생하는지 파악할 수 있습니다. 요청 관리자별로 분석하면 요청량, 승인율, 요청 품질의 패턴을 확인할 수 있습니다. 업무량과 프로세스 준수 여부를 파악하는 데도 도움이 됩니다. 중요한 이유 직책 수요가 발생한 경로를 추적하고 채용 관리자 관점에서 프로세스 지표를 분석할 수 있습니다. 확보 방법 Microsoft Dynamics 365 Human Resources 문서를 참조하세요. 이 정보는 워크플로 시작 데이터에 기록될 수 있습니다. 예시 Robert JonesSusan MillerDavid ChenMaria GarciaPaul Williams | |||
| 원본 시스템 SourceSystem | 데이터를 추출한 시스템입니다. | ||
| 설명 프로세스 데이터의 출처를 나타내는 속성입니다. 이 화면에서는 일반적으로 'Microsoft Dynamics 365 Human Resources'가 해당합니다. 여러 시스템을 사용하는 환경에서는 데이터 계보를 추적하고 문제를 해결하는 데 이 필드가 중요합니다. 데이터가 예상한 원본에서 왔는지 확인하고, 특정 시스템의 데이터만 분석하도록 필터링할 수 있습니다. 중요한 이유 데이터 출처에 대한 정보를 제공하며, 데이터 거버넌스와 여러 기업 시스템에 걸친 분석에 중요합니다. 확보 방법 데이터 추출 및 변환 과정에서 데이터 세트의 출처를 표시하기 위해 추가되는 고정값입니다. 예시 Microsoft Dynamics 365 Human ResourcesD365 HRDynamicsHR | |||
| 재작업 여부 IsRework | 활동이 재작업 루프에 포함되는지 나타내는 플래그입니다. | ||
| 설명 이 불리언 플래그는 속성을 수정한 뒤 다시 승인받는 경우처럼 프로세스 단계가 반복되면 true로 설정됩니다. 비효율적인 프로세스 반복을 수치로 파악할 수 있습니다. 이 속성은 '직책 재작업 분석' 대시보드와 '직책 생성 재작업률' KPI에 직접 활용됩니다. 재작업을 표시하면 분석가가 프로세스 비효율의 빈도와 영향을 쉽게 필터링하고 측정할 수 있습니다. 중요한 이유 프로세스 재작업을 명확히 식별하고 수치화해 프로세스 개선 과제의 우선 대상을 찾을 수 있습니다. 확보 방법 케이스의 활동 순서를 기준으로 계산합니다. 예를 들어 '직책 속성 수정' 이후에 '관리자 직책 요청 승인'이 발생하면 재작업으로 표시할 수 있습니다. 예시 truefalse | |||
| 직무군 JobFamily | '엔지니어링' 또는 '재무'처럼 기능이 비슷한 직무를 묶은 분류입니다. | ||
| 설명 직무군은 관련 직무명을 하나로 묶는 분류입니다. 예를 들어 '소프트웨어 엔지니어'와 'QA 엔지니어'는 모두 '엔지니어링' 직무군에 속할 수 있습니다. 이 속성은 어떤 직무 범주가 자주 바뀌는지 상위 수준에서 분석하는 '직책 재분류 추이' 대시보드에 필요합니다. 개별 직무명만 살펴볼 때보다 넓은 관점에서 파악할 수 있습니다. 중요한 이유 직책을 범주별로 폭넓게 분석할 수 있어 인력 계획과 추이 분석에 유용합니다. 확보 방법 Dynamics 365 HR의 직무 설정에 포함됩니다. HcmJobEntity에서 'Job family' 또는 'Job function' 관련 필드를 확인하세요. 예시 엔지니어링재무 및 회계영업인사제품 관리 | |||
| 직책 유형 PositionType | 직책을 정규직, 시간제, 임시직 등으로 분류합니다. | ||
| 설명 이 속성은 고용 조건에 따라 직책을 분류하며, 인력 분석과 계획에 필요한 정보를 제공합니다. 프로세스 분석에서 직책 유형별로 필터링하면 유형에 따라 프로세스 경로나 처리 시간이 다른지 확인할 수 있습니다. 예를 들어 임시직은 정규직보다 승인 절차가 빠르고 간소할 수 있습니다. 중요한 이유 고용 유형별로 프로세스가 어떻게 다른지 분석할 수 있어 인력 계획과 프로세스 개선에 도움이 됩니다. 확보 방법 일반적으로 Dynamics 365 HR의 직책 레코드에서 확인할 수 있습니다. HcmPositionV2Entity 등에서 관련 필드를 확인하세요. 예시 정규직시간제계약직인턴임시직 | |||
| 최근 데이터 업데이트 LastDataUpdate | 원본 시스템에서 데이터를 가장 최근에 새로 고친 시각입니다. | ||
| 설명 이 속성은 Microsoft Dynamics 365 Human Resources에서 데이터를 마지막으로 추출한 시점을 나타냅니다. 분석에 사용된 데이터가 얼마나 최신인지 확인할 수 있습니다. 대시보드에 이 정보를 표시하면 사용자가 최신 데이터를 보고 있는지 확인할 수 있습니다. 모든 process mining 프로젝트에서 중요한 메타데이터입니다. 중요한 이유 분석 결과를 바탕으로 의사결정을 내릴 때 중요한 데이터의 최신성을 사용자에게 알려줍니다. 확보 방법 이 타임스탬프는 데이터 추출, 변환 및 적재(ETL) 과정에서 생성되어 저장됩니다. 예시 2024-05-21T02:00:00Z2024-05-20T02:00:00Z2024-05-19T02:00:00Z | |||
입사부터 퇴직까지: 직위 관리 활동
| 활동 | 설명 | ||
|---|---|---|---|
| HR 시스템에서 직무 생성 | Dynamics 365 HR에 직무 레코드가 공식적으로 생성된 시점을 나타냅니다. 직무 기본 레코드의 생성 시각을 기준으로 기록됩니다. | ||
| 중요한 이유 요청이 실제 조직 내 직무로 전환되는 중요한 단계입니다. 직무 생성 리드 타임 KPI의 종료 시점입니다. 확보 방법 HcmPosition과 같은 기본 직무 테이블의 'CreatedDateTime' 시스템 필드에서 가져옵니다. 기록 HcmPosition 테이블의 CreatedDateTime 시스템 필드에서 추출합니다. 이벤트 유형 explicit | |||
| HR의 직무 요청 승인 | 직무를 공식적으로 생성하기 전에 인사 부서에서 최종 승인한 시점을 나타냅니다. 워크플로 시스템에서 HR 승인 작업이 완료되면 이벤트가 명시적으로 기록됩니다. | ||
| 중요한 이유 승인 단계의 종료를 나타내며, 평균 직무 승인 처리 시간을 측정하는 데 중요한 기준점입니다. 확보 방법 HR 담당자가 승인 작업을 완료하면 WorkflowTrackingTable 등의 워크플로 이력 테이블에 기록됩니다. 기록 HR 승인 단계가 완료되면 시각과 함께 워크플로 이력에 이벤트가 기록됩니다. 이벤트 유형 explicit | |||
| 직무 비활성화 | 직무가 더 이상 활성 상태가 아니며 활성 조직 구조에서 제외된 경우를 나타냅니다. 일반적으로 직무가 충원된 후 발생합니다. 상태가 '비활성' 또는 이에 해당하는 상태로 변경된 것을 기준으로 추정합니다. | ||
| 중요한 이유 직무의 활성 기간이 끝나는 주요 단계입니다. 평균 직무 비활성화 시간 분석과 정확한 인원 관리에 중요합니다. 확보 방법 'RetirementDate' 필드가 입력된 시각 또는 직무 레코드의 상태 필드가 '비활성'으로 변경된 시각을 기준으로 추정합니다. 기록 직무의 RetirementDate가 설정된 날짜 또는 상태 필드가 '비활성'으로 변경된 날짜를 기준으로 합니다. 이벤트 유형 inferred | |||
| 직무 요청 시작 | 직무 관리 생애주기가 공식적으로 시작되는 시점입니다. 일반적으로 사용자가 Dynamics 365 HR의 전용 양식이나 워크플로를 통해 새 직무를 요청할 때 기록됩니다. | ||
| 중요한 이유 직무 생애주기 전체를 측정하는 시작점입니다. 직무 승인 처리 시간과 직무 생성 리드 타임 등 주요 KPI를 계산할 때 사용됩니다. 확보 방법 직무 요청 레코드의 생성 시각이나 WorkflowTrackingStatusTable과 같은 워크플로 이력 테이블의 시작 레코드에서 가져옵니다. 기록 새 직무 요청 워크플로를 제출하면 이벤트가 기록됩니다. 이벤트 유형 explicit | |||
| 직무 종료 | 직무 레코드가 최종 보관되어 생애주기가 완전히 끝난 시점을 나타냅니다. 상태가 '종료' 또는 이에 해당하는 최종 상태로 변경된 것을 기준으로 추정합니다. | ||
| 중요한 이유 프로세스의 마지막 이벤트로, 직무 생애주기 전체를 분석하고 종료해야 할 장기 미사용 직무를 찾는 데 도움이 됩니다. 확보 방법 직무 레코드의 상태 필드가 '종료'로 변경된 내역을 바탕으로 추정합니다. 이력 보존을 위해 레코드를 유지하는 경우가 많아 비활성화보다 드물게 발생합니다. 기록 상태 필드가 '종료'로 변경된 시각을 기준으로 추정합니다. 이벤트 유형 inferred | |||
| 직무 활성화 | 직무가 공식적으로 공석 상태가 되어 채용을 시작할 수 있는 시점을 나타냅니다. 직무 레코드의 상태 필드가 '활성' 또는 이에 해당하는 상태로 변경된 것을 기준으로 추정합니다. | ||
| 중요한 이유 인력 배치 준비 상태와 최종 설정 단계의 효율성을 측정하는 중요한 기준점입니다. 평균 직무 활성화 시간 KPI를 계산하는 데 필요합니다. 확보 방법 직무 레코드의 'PositionStatus'와 같은 상태 필드가 '활성' 또는 '공석'으로 변경된 시각을 추적해 추정합니다. 기록 직무의 ActivationDate 필드가 입력된 날짜 또는 상태 필드가 '활성'으로 변경된 날짜를 기준으로 합니다. 이벤트 유형 inferred | |||
| 관리자의 직무 요청 승인 | 채용 관리자의 1차 승인이 완료된 시점을 나타냅니다. 관리자가 할당된 승인 작업을 완료하면 워크플로 이력에 명시적으로 기록됩니다. | ||
| 중요한 이유 초기 승인 단계에 걸린 시간을 확인해 특정 관리자나 부서에서 발생하는 병목을 찾을 수 있습니다. 확보 방법 직무 요청과 연결된 WorkflowTrackingTable 등의 워크플로 이력 테이블에 완료 단계로 기록됩니다. 기록 워크플로 로그에서 관리자 승인 단계의 완료 시각을 가져옵니다. 이벤트 유형 explicit | |||
| 직무 규정 준수 검토 | 직무에 대한 공식 규정 준수 검토가 진행되었음을 나타냅니다. 상태 변경, 체크리스트 작업 완료 또는 사용자 지정 필드 갱신을 통해 기록할 수 있습니다. | ||
| 중요한 이유 규제 요건과 내부 정책의 준수 여부를 모니터링하는 데 중요합니다. 직무 규정 준수율 KPI를 측정하는 데 직접 활용됩니다. 확보 방법 'ComplianceReviewStatus'와 같은 시각이 기록되는 상태 필드나 직무 레코드의 'IsComplianceReviewed' 논리 필드를 통해 추정할 수 있습니다. 기록 규정 준수 상태 필드가 '완료' 또는 '검토됨'으로 변경된 시각을 기준으로 추정합니다. 이벤트 유형 inferred | |||
| 직무 동결 | 직무가 일시 보류되어 채용 활동이 중단된 상태를 나타냅니다. 직무 레코드의 상태가 '동결' 또는 '보류'로 변경된 것을 기준으로 추정합니다. | ||
| 중요한 이유 직무 생애주기의 중단을 추적해 인력 계획과 예산에 미치는 영향을 파악할 수 있습니다. 채용 지연 사유를 찾는 데도 도움이 됩니다. 확보 방법 직무 레코드의 상태 필드가 '동결' 또는 이에 해당하는 값으로 변경된 시각을 추적해 추정합니다. 기록 상태가 '동결' 또는 '보류'로 변경된 시각을 기준으로 추정합니다. 이벤트 유형 inferred | |||
| 직무 속성 수정 | 직무가 처음 생성된 후 직책명이나 부서 등 주요 속성이 변경된 경우를 나타냅니다. 일반적으로 시스템 데이터베이스 로그의 변경 내역을 추적해 이 활동을 추정합니다. | ||
| 중요한 이유 이 활동이 자주 발생하면 데이터 품질이 낮거나 프로세스 재작업이 많다는 신호일 수 있습니다. 직무 속성 변경 빈도와 재작업률 KPI를 측정하는 데 필요합니다. 확보 방법 직무 테이블의 변경 추적이 활성화된 경우 SysDatabaseLog 테이블에서 추정합니다. 또는 직무 데이터의 과거 스냅샷을 비교해야 합니다. 기록 데이터베이스 로그에서 HcmPosition 테이블의 주요 필드가 업데이트된 내역을 찾아 추정합니다. 이벤트 유형 inferred | |||
| 직무 예산 승인 | 신규 직무에 필요한 예산이 배정되었음을 확인하는 주요 승인 단계입니다. 일반적으로 직무 생성 워크플로의 별도 승인 단계로 기록됩니다. | ||
| 중요한 이유 재무 승인 단계를 분리해 예산 배정 지연을 분석하고 직무 예산 승인 처리 시간 KPI를 측정할 수 있습니다. 확보 방법 WorkflowTrackingTable 등의 워크플로 이력 테이블에 완료된 승인 작업으로 기록되며, 재무 담당자에게 할당되는 경우가 많습니다. 기록 워크플로 로그에서 예산 승인 작업의 완료 시각을 가져옵니다. 이벤트 유형 explicit | |||
| 직무 요청 거부 | 승인 단계 중 한 곳에서 직무 요청이 거부되었음을 나타냅니다. 승인자가 '거부' 작업을 선택하면 워크플로 이력에 명시적으로 기록됩니다. | ||
| 중요한 이유 프로세스 실패와 재작업 반복을 파악할 수 있습니다. 거부 사유를 분석하면 최초 요청의 품질을 높이고 직무 요청 거부율 KPI를 측정하는 데 도움이 됩니다. 확보 방법 해당 직무 요청의 WorkflowTrackingStatusTable 등의 워크플로 이력 테이블에 '거부' 상태로 기록됩니다. 기록 승인자가 거부 작업을 실행할 때 워크플로 로그에 기록됩니다. 이벤트 유형 explicit | |||
| 직무 재분류 | 직무군이나 직급 등 직무의 기본 분류가 변경된 경우를 나타냅니다. 일반적으로 직무 레코드의 'Job' 필드 변경을 통해 추정합니다. | ||
| 중요한 이유 조직 구조의 변화와 직무 정의의 안정성을 분석하는 데 도움이 됩니다. 직무 재분류율 KPI를 측정하는 주요 활동입니다. 확보 방법 데이터베이스 로그에서 확인하거나 시간에 따른 레코드 버전을 비교해 HcmPosition 테이블의 'JobId' 필드 변경을 추정합니다. 기록 직무 레코드의 직무 분류 필드에 기록된 변경 내역을 바탕으로 추정합니다. 이벤트 유형 inferred | |||
| 채용 프로세스 시작 | 직무 관리에서 채용으로 업무가 이관된 시점을 나타냅니다. 해당 직무 ID와 연결된 새 공석 또는 채용 프로젝트가 생성되면 이 이벤트를 추정할 수 있습니다. | ||
| 중요한 이유 직무 관리 프로세스와 그 결과인 채용을 연결해 직무 활성화부터 실제 채용 활동 시작까지 걸린 시간을 분석할 수 있습니다. 확보 방법 직무 ID를 참조하는 HcmRecruitingRequest 등의 채용 또는 공석 테이블에서 레코드 생성일을 찾아 추정합니다. 기록 PositionId를 채용 모듈의 해당 레코드 생성 내역과 연결해 추정합니다. 이벤트 유형 inferred | |||
데이터 추출 가이드
단계
- Data Management Workspace로 이동: Microsoft Dynamics 365 Human Resources에 로그인합니다. 기본 검색창에서 'Data management' 작업 영역을 찾아 이동합니다.
- 새 내보내기 프로젝트 생성: 작업 영역에서 'Export' 타일을 선택합니다. 'Export' 프로젝트 페이지에서 'New'를 클릭해 새 프로젝트를 만듭니다. 'PositionManagement_EventLog_Export'와 같이 용도를 알 수 있는 이름을 지정하고 데이터 형식을 선택합니다. 변환 작업에는 'CSV'를 권장합니다.
- 프로젝트에 데이터 엔터티 추가: 새 프로젝트에서 'Add entity'를 클릭합니다. 직위 라이프사이클 전체를 수집하려면 여러 엔터티를 추가해야 합니다. 주요 엔터티인 'HcmPositionV2', 'WorkflowTrackingStatusTable', 'HcmRecruitingRequest'를 하나씩 추가합니다. 직위 변경에 대한 데이터베이스 로깅이 활성화되어 있다면 'SysDatabaseLog'도 추가합니다.
- 엔터티 필터 구성: 데이터 범위를 제한하려면 각 엔터티에 필터를 적용해야 합니다. 엔터티를 선택한 다음 'Filter'를 클릭합니다. 'HcmPositionV2'는 'CreatedDateTime' 또는 'ModifiedDateTime' 필드를 사용해 특정 날짜 범위로 필터링합니다. 'WorkflowTrackingStatusTable'은 'CONTEXTTABLENAME'을 필터링해 직위 관련 워크플로만 포함합니다.
- 엔터티별 필드 선택: 이후 변환에 필요한 필드를 모두 내보내도록 설정합니다. 'HcmPositionV2'에는 'PositionId', 'CreatedDateTime', 'ActivationDate', 'RetirementDate', 'ModifiedDateTime', 'JobId', 'DepartmentNumber'를 포함합니다. 'WorkflowTrackingStatusTable'에는 'ContextRecId', 'WorkflowTrackingStatus', 'CreatedDateTime', 'UserId'를 포함합니다.
- 내보내기 작업 실행: 엔터티, 필드, 필터를 모두 구성한 후 프로젝트 기본 페이지에서 'Export'를 클릭합니다. 시스템이 엔터티별 파일이 포함된 데이터 패키지를 생성합니다.
- 데이터 패키지 진행 상황 확인 및 다운로드: 'Job history' 섹션에서 작업 진행 상황을 확인할 수 있습니다. 작업이 성공적으로 완료되면 압축 파일 형식의 데이터 패키지를 다운로드합니다.
- 데이터 추출 및 변환: 다운로드한 패키지의 압축을 풉니다. 엔터티별 CSV 파일이 들어 있습니다. 이 파일은 원시 데이터이며 최종 이벤트 로그가 아닙니다. 외부 스크립트(예: pandas를 사용하는 Python 또는 PowerShell)로 파일을 처리해야 합니다.
- 변환 로직 구현: 스크립트에서 다음 작업을 수행해야 합니다.
- 'HcmPositionV2.csv' 파일을 불러옵니다. 'PositionId'와 'CreatedDateTime'을 사용해 'HR 시스템에서 직위 생성' 이벤트를 만듭니다.
- 'HcmPositionV2.csv'의 상태 필드나 'ActivationDate', 'RetirementDate'와 같은 날짜 필드를 해석해 상태 변경 이벤트('직위 활성화', '직위 동결', '직위 비활성화', '직위 종료')를 생성합니다.
- 'WorkflowTrackingStatusTable.csv' 파일을 불러옵니다. 레코드 ID를 사용해 직위 데이터와 조인합니다. 이 데이터에서 '직위 요청 시작', '관리자 승인', '직위 예산 승인', 'HR 승인', '직위 요청 거부' 워크플로 이벤트를 생성합니다. 워크플로 상태와 단계 정보를 올바른 활동 이름에 매핑해야 합니다.
- 'SysDatabaseLog.csv'를 내보냈다면 파일을 분석해 HcmPosition 테이블의 특정 필드 변경을 기준으로 '직위 속성 수정' 및 '직위 재분류' 이벤트를 생성합니다.
- 'HcmRecruitingRequest.csv'를 불러와 해당 직위의 채용 요청이 생성된 시점을 찾아 '채용 절차 시작' 이벤트를 생성합니다.
- 최종 이벤트 로그 구성: 스크립트에서 여러 원본의 이벤트를 하나의 CSV 파일로 결합합니다. 이 파일에는 필수 열인 'PositionId', 'ActivityName', 'EventTime'과 매핑할 수 있었던 권장 속성이 포함되어야 합니다.
- 업로드 형식 지정: 최종 CSV 파일의 헤더가 필수 속성 이름과 일치하고 'EventTime' 열의 타임스탬프 형식이 일관적인지 확인합니다. 이제 파일을 process mining 도구에 업로드할 수 있습니다.
구성
- 주요 데이터 엔터티: 추출에 필요한 주요 엔터티는 다음과 같습니다.
HcmPositionV2: 각 직위의 생성일과 활성화일, 직무 및 부서 등의 주요 정보를 포함합니다.WorkflowTrackingStatusTable: 제출, 승인, 거부를 포함한 워크플로 인스턴스 이력을 제공합니다. 승인 프로세스를 추적하는 데 필요합니다.HcmRecruitingRequest: 채용 요청이 직위와 연결된 경우 'Hiring Process Started' 활동을 추정하는 데 사용합니다.SysDatabaseLog: 'Position Attributes Modified' 및 'Position Reclassified'와 같은 상세 변경 사항을 기록하는 선택 엔터티입니다. 사용하려면 HcmPosition 테이블의 데이터베이스 로깅을 미리 설정해야 합니다.
- 날짜 범위 필터링: 'CreatedDateTime' 필드를 기준으로 'HcmPositionV2' 엔터티에 날짜 범위 필터를 적용하는 것이 좋습니다. 데이터 양을 관리할 수 있도록 처음에는 6~12개월 범위를 설정하는 것이 적절합니다.
- 증분 내보내기: 지속적으로 분석하려면 내보내기 프로젝트에서 증분 내보내기를 설정하는 방법을 고려하세요. 마지막 실행 이후 변경된 레코드만 추출하므로 처리 시간이 크게 줄어듭니다.
- 사전 요건: 내보내기를 실행하는 사용자에게는 'Data management' 작업 영역에 접근하고 지정된 모든 데이터 엔터티를 읽을 수 있는 권한이 포함된 보안 역할이 필요합니다. 일반적으로 'Data management administrator' 역할이나 특정 엔터티 권한을 부여한 사용자 지정 역할이 필요합니다.
샘플 쿼리 sql
/*
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] 단계
- 사전 요건 확인: 시작하기 전에 Microsoft Dynamics 365 Human Resources 인스턴스에서 'Bring Your Own Database'(BYOD) 기능이 설정되어 있는지 확인합니다. 필요한 데이터 엔터티가 Azure SQL Database로 내보내지는지도 확인합니다. 주요 엔터티는
HcmPositionV2,HcmPositionDetail,WorkflowTrackingStatusTable,HcmJob,OMOperatingUnit,HcmRecruitingRequest입니다. - Azure SQL Database에 연결: SQL Server Management Studio(SSMS) 또는 Azure Data Studio와 같은 SQL 클라이언트 도구를 사용해 BYOD 대상인 Azure SQL Database에 연결합니다.
- 데이터베이스 스키마 확인: 연결한 뒤 데이터베이스 스키마를 확인합니다. D365 HR 데이터 엔터티는 테이블로 복제됩니다. BYOD 데이터베이스의 테이블 이름은 엔터티 이름과 정확히 일치하지 않을 수 있지만 대체로 비슷합니다.
- SQL 쿼리 불러오기: SQL 클라이언트에서 새 쿼리 창을 열고 이 문서의 'query' 섹션에 있는 전체 SQL 스크립트를 붙여 넣습니다.
- 매개변수 설정: 쿼리의 자리표시자 변수를 수정합니다. 분석할 법인을
@[YourCompanyId]에 지정합니다(예: 'USMF').WHERE절의 날짜 범위(예:CREATEDDATETIME >= '2023-01-01')를 조정해 원하는 기간의 데이터만 추출합니다. - 쿼리 실행: BYOD 데이터베이스에서 전체 SQL 쿼리를 실행합니다. 실행 시간은 데이터 양과 선택한 날짜 범위에 따라 달라집니다.
- 결과 확인: 쿼리가 끝나면 SQL 클라이언트의 결과 창에서 출력을 확인합니다.
PositionId,ActivityName,EventTime등의 열에 예상한 값이 채워졌는지 확인합니다. - CSV로 내보내기: 전체 결과 집합을 CSV 파일로 내보냅니다. 대부분의 SQL 클라이언트에는 결과를 CSV 파일로 바로 저장하는 기능이 있습니다. 예를 들어 SSMS에서는 결과 그리드를 마우스 오른쪽 버튼으로 클릭하고 'Save Results As...'를 선택합니다.
- 업로드 준비: 내보낸 CSV 파일이 UTF-8 인코딩인지 확인합니다. 원활하게 업로드할 수 있도록 열 머리글이 필수 속성(
PositionId,ActivityName,EventTime등)과 정확히 일치하는지 확인합니다.
구성
- BYOD 데이터 엔터티: 필요한 모든 데이터 엔터티가 Dynamics 365 HR에서 BYOD 인스턴스로 게시되어 있는지 확인합니다. 이 프로세스에는 직위, 직위 상세 정보, 워크플로 이력, 직무, 부서, 채용 요청 관련 엔터티가 필요합니다.
- 데이터 지연: BYOD는 실시간이 아닌 거의 실시간으로 데이터를 복제합니다. D365 HR에서 거래가 발생한 뒤 Azure SQL Database에 데이터가 표시되기까지 몇 분에서 한 시간 정도 지연될 수 있습니다.
- 날짜 범위 필터링: 성능과 데이터 양을 관리하려면 쿼리에 날짜 필터를 적용해야 합니다. 처음에는 3~6개월 범위로 설정하는 것이 일반적입니다. 각
UNION ALL블록에서 생성 시각이나 이벤트 타임스탬프를 기준으로 필터링합니다. - 회사 필터: 올바른 조직 단위의 데이터를 분석하도록 항상
DATAREAID(법인 또는 회사 ID)로 필터링합니다. 제공된 쿼리에는 이를 위한 자리표시자@[YourCompanyId]가 포함되어 있습니다. - 사전 요건: 이 방법을 사용하려면 활성 Azure 구독, 설정된 BYOD 인스턴스, 대상 Azure SQL Database에 대한 읽기 권한, 쿼리 실행에 적합한 SQL 클라이언트 도구가 필요합니다.
- 사용자 지정 워크플로 단계: 쿼리는 'Approve position request'와 같은 일반적인 승인 단계 이름을 사용합니다. 조직에서 다른 이름을 사용한다면 해당
WHERE절의CONTEXT값을 수정해야 합니다.
샘플 쿼리 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]' 시작할 준비가 되셨나요?
이 템플릿으로 데이터 수집을 간소화하고 입사부터 퇴직까지의 직위 관리 프로세스를 자세히 살펴보세요. 지금 프로세스 효율과 규정 준수를 개선해 보세요.
입사부터 퇴직까지의 직위 관리 프로세스를 빠르게 개선하세요
프로세스 처리 시간을 30% 줄이고 병목을 해소하세요.
신용카드가 필요하지 않습니다. 몇 분이면 설정을 마칠 수 있습니다.