자산 유지보수 데이터 템플릿
자산 유지보수 데이터 템플릿
- 유지보수 로그에 필요한 데이터 필드
- 표준 프로세스 단계와 작업 지시 단계
- Hexagon EAM 데이터 추출 로직
자산 유지보수 속성
| 이름 | 설명 | ||
|---|---|---|---|
| 마지막 데이터 업데이트 LastDataUpdate | 레코드를 마지막으로 추출하거나 새로 고친 시점의 타임스탬프입니다. | ||
| 설명 이 속성은 소스 시스템에서 데이터를 마지막으로 가져온 시점을 추적합니다. 분석가는 이를 통해 데이터의 최신성을 확인하고 보고 파이프라인의 지연 가능성을 파악할 수 있습니다. 중요한 이유 분석에 사용된 데이터가 최신인지 판단하는 데 도움이 되며 데이터 동기화 문제를 해결할 때도 유용합니다. 확보 방법 추출 시점의 시스템 시간 예시 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| 소스 시스템 SourceSystem | 데이터가 생성된 시스템의 이름입니다. | ||
| 설명 이 속성은 데이터의 기준 시스템을 나타냅니다. 여기서는 기존 시스템이나 외부 협력업체 시스템의 데이터와 구분하기 위해 특정 EAM 시스템 이름을 고정값으로 입력합니다. 중요한 이유 여러 유지보수 시스템의 데이터를 병합할 때 데이터 출처를 명확하게 확인할 수 있습니다. 확보 방법 고정값 예시 Hexagon EAMInfor EAMDatastream 7i | |||
| 유지보수 작업 지시 WorkOrderNumber | 유지보수 작업 지시의 고유 식별자입니다. | ||
| 설명 이 속성은 유지보수 케이스의 고유 기본 키입니다. 최초 요청부터 계획, 작업 수행, 최종 재무 마감까지 작업 지시를 추적합니다. 활동 로그, 작업 시간, 자재 사용 내역을 연결하는 중심 케이스 식별자로 사용됩니다. 중요한 이유 유지보수 프로세스의 개별 인스턴스를 식별해 처리 시간과 프로세스 변형을 처음부터 끝까지 추적할 수 있습니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS의 EVT_CODE 필드 예시 작업 지시-100234작업 지시-100235작업 지시-100236104592 | |||
| 타임스탬프 EventTimestamp | 활동이 발생한 날짜와 시간입니다. | ||
| 설명 이 속성은 이벤트나 상태 변경이 시스템에 반영된 정확한 시점을 기록합니다. 이를 통해 활동 간 소요 시간과 작업 지시의 전체 처리 시간을 계산할 수 있습니다. 중요한 이유 정확한 타임스탬프는 처리 시간을 분석하고 지연을 파악하며 SLA 준수 여부를 계산하는 데 필요합니다. 확보 방법 Hexagon EAM 테이블 R5EVENTHISTORY의 EVH_DATE 필드 예시 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| 활동 ActivityName | 발생한 특정 작업 또는 상태 변경 이벤트입니다. | ||
| 설명 이 속성은 '작업 지시 생성'이나 '자재 출고'와 같이 수행 중인 프로세스 단계를 나타냅니다. 작업 지시에 기록된 상태 변경 이력이나 특정 트랜잭션 이벤트를 바탕으로 생성됩니다. 중요한 이유 이벤트 로그의 순서를 정의해 프로세스 흐름을 재구성하고 병목을 분석할 수 있습니다. 확보 방법 Hexagon EAM 테이블 R5EVENTHISTORY의 EVH_STATUS 필드(설명으로 매핑) 또는 감사 로그 예시 작업 지시 생성작업 지시 일정 등록작업 지시 작업 완료자재 출고 | |||
| 목표 완료일 TargetCompletionDate | 작업 지시의 예정 마감일입니다. | ||
| 설명 이 속성은 정비 작업을 완료해야 하는 날짜를 나타냅니다. 실제 완료일과 비교해 SLA 준수 여부와 정시 완료율을 계산합니다. 중요한 이유 협력업체 SLA 준수 모니터링과 계획 정확도 평가에 필요합니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_TARGET 예시 2023-11-012023-11-152023-12-01 | |||
| 부서 MaintenanceDepartment | 작업을 수행할 책임이 있는 부서 또는 작업 센터입니다. | ||
| 설명 이 속성은 작업 지시를 담당하는 팀이나 정비 부서를 나타냅니다. 예를 들어 전기, 기계, 시설 팀이 해당합니다. 이를 통해 기술 팀별 성과를 비교할 수 있습니다. 중요한 이유 기술자 노동 생산성 대시보드에 활용되며, 직종별로 리소스를 효율적으로 배분하는 데 도움이 됩니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_MRC 예시 전기 정비팀기계 정비팀시설팀차량 정비 서비스 | |||
| 사용자 UpdatedBy | 활동을 수행한 사람의 사용자 ID입니다. | ||
| 설명 이 속성에는 상태 변경이나 업데이트를 수행한 담당자의 로그인 ID가 기록됩니다. 팀의 업무량을 분석하고, 교육이 필요한 부분을 파악하며, 프로세스 규정 준수를 감사하는 데 사용됩니다. 중요한 이유 정비 전 과정에서 사용자 행동과 리소스 활용 현황을 분석할 수 있습니다. 확보 방법 Hexagon EAM 테이블 R5EVENTHISTORY, 필드 EVH_USER 예시 JSMITHADAVIS시스템관리자 사용자 | |||
| 실제 작업 시간 ActualLaborHours | 작업 지시에 기록된 총 작업 시간입니다. | ||
| 설명 이 속성은 기술자가 작업 지시에 기록한 시간을 합산합니다. 생산성 측정, 인건비 계산, 실제 시간과 예상 시간의 차이 분석에 사용됩니다. 중요한 이유 기술자 노동 생산성 대시보드와 작업 시간 차이 KPI의 주요 데이터 원천입니다. 확보 방법 Hexagon EAM 테이블 R5BOOKEDHOURS, 필드 BOO_HOURS (작업 지시별 합계) 예시 2.54.012.00.5 | |||
| 우선순위 PriorityCode | 작업 지시에 지정된 긴급도입니다. | ||
| 설명 이 속성은 작업 지시의 중요도를 일상 작업부터 긴급 작업까지 나타냅니다. 리소스 일정 수립에 영향을 주며 SLA 준수 여부를 모니터링하고 우선순위의 부적절한 변경을 파악하는 데 중요합니다. 중요한 이유 중요 작업의 우선순위가 올바르게 지정되었는지 확인하려면 우선순위 상향 및 리소스 감사 대시보드가 필요합니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_PRIORITY 예시 긴급높음보통낮음 | |||
| 자산 AssetCode | 정비 대상 장비 또는 시설의 고유 식별자입니다. | ||
| 설명 이 속성은 작업 지시를 특정 장비나 위치와 연결합니다. 자산별 고장 빈도를 분석하고, 반복적으로 문제를 일으키거나 교체가 필요한 장비를 파악할 수 있습니다. 중요한 이유 자산 신뢰도 지표를 계산하고 정비 작업이 집중되는 위치를 파악하는 데 필요한 정보입니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_OBJECT 예시 펌프-001공조-204차량-99컨베이어-A | |||
| 작업 지시 유형 WorkOrderType | 작업 지시를 예방, 시정 또는 긴급 작업으로 분류합니다. | ||
| 설명 이 속성은 유지보수 작업의 유형을 분류합니다. 계획된 예방 정비와 사후 대응형 긴급 수리의 비율을 분석하는 데 사용되며, 이는 자산 상태와 관리 성숙도를 보여 주는 주요 지표입니다. 중요한 이유 예방 정비 비율 분석 대시보드에 활용되며 사후 대응 작업을 줄일 기회를 찾는 데 도움이 됩니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS의 EVT_TYPE 필드 예시 PPMCOREMGPRJ | |||
| SLA 상태 SLAState | 작업 지시가 서비스 수준 계약을 충족했는지 나타냅니다. | ||
| 설명 이 계산 속성은 실제 완료일과 목표 완료일을 비교합니다. 보고를 간소화하기 위해 사례를 'SLA 준수' 또는 '기한 초과'로 분류합니다. 협력업체와 내부 성과를 확인할 때 활용됩니다. 중요한 이유 SLA 준수율 KPI의 직접적인 데이터 원천입니다. 확보 방법 계산식: 실제 종료일 <= 목표일 예시 SLA 준수기한 초과미결 | |||
| 긴급 우선순위 상향 EmergencyEscalationFlag | 생성 후 우선순위가 긴급으로 상향되었는지 나타내는 플래그입니다. | ||
| 설명 이 불리언 속성은 처음에는 낮은 우선순위로 등록되었지만 나중에 긴급으로 상향된 작업 지시를 식별합니다. 이런 사례가 자주 발생하면 초기 분류가 부정확하거나 빠른 서비스를 받기 위해 시스템을 부적절하게 이용했을 가능성이 있습니다. 중요한 이유 우선순위 상향 및 리소스 감사 대시보드와 긴급 우선순위 상향률 KPI에 활용됩니다. 확보 방법 우선순위 필드의 감사 추적 기록에서 파생 예시 truefalse | |||
| 생성일 DateCreated | 작업 지시가 처음 생성된 날짜입니다. | ||
| 설명 이 속성은 작업 지시 생애주기의 시작점을 나타냅니다. 계획 소요 시간의 평균을 계산하고 미처리 항목의 경과 기간을 파악하는 기준이 됩니다. 중요한 이유 정비 계획 처리 속도 대시보드와 미처리 작업 경과 기간 KPI에 필요합니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_CREATED 예시 2023-09-012023-09-15 | |||
| 실제 총비용 TotalActualCost | 작업 지시에 기록된 총비용입니다. | ||
| 설명 이 속성은 인건비, 자재비, 서비스 비용을 합산합니다. 재무 정산을 분석하고 긴급 정비와 예방 정비의 비용 영향을 파악하는 데 필요합니다. 중요한 이유 재무 정산 및 종료 속도 대시보드와 비용 기반 의사결정에 활용됩니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_ACTCOST (또는 유사한 요약 열) 예시 150.002500.5075.25 | |||
| 예방 정비 여부 IsPreventive | 작업 지시가 예방 정비인지 나타내는 플래그입니다. | ||
| 설명 이 불리언 속성을 사용하면 작업 지시를 쉽게 필터링하고 분류할 수 있습니다. 선제적 정비와 사후 수리를 구분해 예방 정비 비율 KPI를 간편하게 계산할 수 있습니다. 중요한 이유 예방 정비 비율 분석 대시보드에서 작업을 구분하는 기준입니다. 확보 방법 WorkOrderType에서 파생 예시 truefalse | |||
| 자산 중요도 AssetCriticality | 자산의 운영상 중요도를 나타내는 점수입니다. | ||
| 설명 이 속성은 자산이 운영에 얼마나 중요한지 나타냅니다. 우선순위가 높은 작업 지시가 실제로 중요 장비와 관련되어 있는지 확인하는 데 활용되며, 부적절한 우선순위 지정 가능성을 파악할 수 있습니다. 중요한 이유 우선순위와 자산 가치를 함께 분석해 우선순위 상향 및 리소스 감사 대시보드에 활용합니다. 확보 방법 Hexagon EAM 테이블 R5OBJECTS, 필드 OBJ_CRITICALITY (EVT_OBJECT 기준 조인 필요) 예시 A - 필수B - 중요C - 보조D - 낮음 | |||
| 자재 요청일 MaterialRequisitionDate | 예비 부품을 요청한 날짜입니다. | ||
| 설명 이 속성에는 자재 요청을 창고나 구매 부서에 제출한 시각이 기록됩니다. 이 날짜부터 '자재 출고'까지 걸린 시간을 분석하면 공급망 효율성을 파악할 수 있습니다. 중요한 이유 예비 부품 조달 리드타임 대시보드에 필요합니다. 확보 방법 Hexagon EAM 테이블 R5REQUISITIONS 또는 연결된 거래 테이블 예시 2023-10-012023-10-05 | |||
| 작업 지시 설명 WorkOrderDescription | 정비 작업을 간략히 설명하는 텍스트입니다. | ||
| 설명 이 속성에는 문제의 제목이나 간략한 설명이 포함됩니다. 문제가 있는 사례를 자세히 살펴보거나 비정형 텍스트에서 패턴을 찾을 때 분석에 필요한 맥락을 제공합니다. 중요한 이유 프로세스 데이터를 검토할 때 필요한 맥락을 제공합니다. 확보 방법 Hexagon EAM 테이블 R5EVENTS, 필드 EVT_DESC 예시 펌프 씰 누유 수리월간 공조 설비 점검컨베이어 벨트 교체 | |||
| 재작업 여부 IsRework | 작업 지시에 기술 작업의 반복이 있었는지 나타내는 플래그입니다. | ||
| 설명 이 계산 속성은 품질 검사나 완료 상태에서 작업 중 상태로 되돌아간 사례를 식별합니다. 품질 문제와 교육 부족을 파악하는 데 도움이 됩니다. 중요한 이유 기술 재작업 및 품질 관리 대시보드와 정비 재작업률 KPI에 활용됩니다. 확보 방법 활동 반복을 기준으로 계산 예시 truefalse | |||
| 품질 관리 통과 QualityControlPassed | 품질 관리 단계가 기록되었는지 나타내는 플래그입니다. | ||
| 설명 이 불리언 속성은 특정 품질 관리 활동이나 체크리스트 항목이 완료로 표시되었는지 확인합니다. 안전 규정과 내부 기준을 준수하는지 점검할 수 있습니다. 중요한 이유 품질 관리 준수율 KPI 산출에 활용되며, 규정 준수 및 문서 무결성 대시보드를 지원합니다. 확보 방법 체크리스트 테이블 또는 활동 이력에서 파생 예시 truefalse | |||
자산 유지보수 활동
| 활동 | 설명 | ||
|---|---|---|---|
| 자재 출고 | 예비 부품이 창고에서 실제로 출고되어 작업 지시에 비용으로 반영됩니다. 자재가 소비된 것을 나타냅니다. | ||
| 중요한 이유 자재 가용성 처리 시간 측정의 종료점입니다. 작업이 시작된 뒤 부품 부족으로 중단되는 지연을 파악할 수 있습니다. 확보 방법 Hexagon EAM의 r5translines 테이블에서 작업 지시에 연결된 트랜잭션 유형 'I'(Issue)를 확인합니다. 기록 r5translines에서 INSERT 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 시간 기록 | 기술자가 작업 지시에 투입한 시간을 기록합니다. 한 케이스에서 여러 차례 발생할 수 있습니다. | ||
| 중요한 이유 노동 시간 편차 및 기술자 노동 생산성 대시보드의 기반이 됩니다. 계획 대비 실제 투입량을 확인할 수 있습니다. 확보 방법 Hexagon EAM의 r5booklabor 테이블입니다. 각 행은 작업 지시(WO)의 작업 시간 입력 내역을 나타냅니다. 기록 r5booklabor에서 INSERT 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 지시 생성 | 시스템에 유지보수 작업 지시 기록을 처음 생성하는 단계입니다. 이 이벤트를 기준으로 케이스가 시작되며, 전체 유지보수 주기의 최초 타임스탬프가 기록됩니다. | ||
| 중요한 이유 프로세스 인스턴스의 시작을 나타내며 전체 해결 시간을 측정하는 기준이 됩니다. 적체 기간을 계산하는 데도 필요합니다. 확보 방법 Hexagon EAM의 r5events 테이블입니다. evt_code가 포함된 새 레코드가 삽입될 때 기록됩니다. 기록 r5events에서 INSERT 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 지시 승인 | 작업 지시가 계획 및 견적 검토를 통과했음을 나타내는 상태 변경입니다. 작업을 진행할 권한이 부여되었음을 의미합니다. | ||
| 중요한 이유 유지보수 계획 속도 분석에서 계획 단계의 종료 시점을 표시합니다. 업무 분리 규정 준수 여부를 확인하는 데도 사용됩니다. 확보 방법 Hexagon EAM의 r5statuslog 테이블에서 'A'(Approved) 상태로의 전환 또는 이에 해당하는 시스템 상태를 확인합니다. 기록 r5statuslog에서 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 지시 작업 시작 | 기술자가 자산에 대한 실제 작업을 시작한 시점입니다. 보통 상태가 In Progress로 변경되거나 최초 작업 시간 입력 타임스탬프가 기록될 때 확인합니다. | ||
| 중요한 이유 적체 기간 계산의 종료점이자 실제 작업 시간 측정의 시작점입니다. SLA 준수율을 계산하는 데 중요합니다. 확보 방법 Hexagon EAM의 r5statuslog에서 'In Progress'로의 전환을 확인합니다. 상태 코드는 보통 'I' 또는 'IP'입니다. 기록 r5statuslog에서 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 지시 작업 완료 | 기술 작업이 끝나고 기술자가 작업을 완료로 표시합니다. 자산은 다시 운영에 투입됩니다. | ||
| 중요한 이유 전체 처리 주기와 평균 수리 시간을 측정하는 주요 시점입니다. 이때 가동 중단 시간 계산이 끝납니다. 확보 방법 Hexagon EAM의 r5statuslog에서 'C'(Completed) 또는 'F'(Finished) 상태로 전환되는 경우입니다. 기록 r5statuslog에서 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 지시 종료 | 작업 지시의 재무 처리가 확정되고 기록이 보관됩니다. 이후에는 비용이나 작업 시간을 추가로 입력할 수 없습니다. | ||
| 중요한 이유 프로세스 종료입니다. 재무 정산 완료 분석과 최종 비용 확정에 중요합니다. 확보 방법 Hexagon EAM의 r5statuslog에서 'C'(Closed) 또는 'L'(Locked/Closed) 상태로 전환되는 경우입니다. 기록 r5statuslog에서 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 우선순위 변경 | 작업 지시가 처음 생성된 후 우선순위가 변경된 경우입니다. 변경 시점과 새 우선순위 값이 기록됩니다. | ||
| 중요한 이유 우선순위 상향과 리소스 감사 대시보드에서 우선순위의 부적절한 변경이나 작업 범위 확대를 파악하는 데 필요합니다. 확보 방법 Hexagon EAM의 r5audittrail(감사 기능이 활성화된 경우) 또는 스냅샷에서 추론합니다. evt_priority 필드의 감사 로그에서 가져오는 경우가 많습니다. 기록 evt_priority에서 UPDATE 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 자재 요청 생성 | 예비 부품이나 자재 요청이 작업 지시에 연결됩니다. 이 단계에서 공급망 하위 프로세스가 시작됩니다. | ||
| 중요한 이유 예비 부품 조달 처리 시간 측정의 시작점입니다. 이 단계의 요청량이 많으면 재고 가용성에 대한 의존도가 높다는 뜻입니다. 확보 방법 Hexagon EAM의 r5requisitions 테이블입니다. req_evt(작업 지시 코드)를 통해 연결됩니다. 기록 r5requisitions에서 INSERT 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 작업 지시 일정 등록 | 작업 지시에 예정 시작일이나 특정 리소스가 지정됩니다. 이 단계에서 작업 지시가 적체 목록에서 실행 일정으로 이동합니다. | ||
| 중요한 이유 기술자 노동 생산성 분석과 리소스 배분 효율을 파악하는 데 필요합니다. 확보 방법 Hexagon EAM의 r5events 테이블(evt_schedstart 업데이트) 또는 r5statuslog의 'S'(Scheduled) 상태 전환에서 확인합니다. 기록 상태 필드의 변경 전후를 비교하거나 evt_schedstart 업데이트를 확인합니다. 이벤트 유형 inferred | |||
| 작업 지시 최종 승인 | 규정 준수나 협력업체 대금 지급을 위해 필요한 최종 행정 승인입니다. 모든 데이터가 정확한지 확인합니다. | ||
| 중요한 이유 작업 지시 승인 주기 분석에 활용합니다. 이 단계의 지연은 재무 정산 속도에 영향을 줍니다. 확보 방법 Hexagon EAM의 r5statuslog에서 'Signed Off' 상태로 전환되거나 전자 서명 기록이 생성되는 경우입니다. 기록 상태 필드의 변경 전후를 비교합니다. 이벤트 유형 inferred | |||
| 체크리스트 항목 확인 | 작업 지시 내 특정 작업이나 검사 단계가 완료로 표시됩니다. 작업의 세부 진행 상황을 나타냅니다. | ||
| 중요한 이유 규정 준수와 문서 무결성을 확인하는 데 필요합니다. 안전 점검이 시스템에 기록되었음을 입증합니다. 확보 방법 Hexagon EAM의 r5checklist 또는 r5activities 테이블에서 특정 활동이나 작업 항목의 상태 변경을 확인합니다. 기록 r5checklist에서 UPDATE 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 품질 관리 통과 | 감독자나 검사자가 완료된 작업을 검토하고 품질을 승인합니다. 이 단계에서 종료 전에 수리 결과를 확인합니다. | ||
| 중요한 이유 품질 관리 규정 준수율 KPI를 계산하는 데 사용됩니다. 이 단계에서 이전 단계로 되돌아가는 흐름은 기술 재작업을 나타냅니다. 확보 방법 Hexagon EAM의 r5statuslog에서 'Review' 또는 'QC'로 상태가 전환되거나, 특정 UDF 검증에 대한 r5audittrail 기록이 생성되는 경우입니다. 기록 상태 필드의 변경 전후를 비교합니다. 이벤트 유형 inferred | |||
데이터 추출 가이드
단계
- 고급 보고서 작성 권한이 있는 사용자 계정으로 Hexagon EAM 애플리케이션에 로그인합니다.
- 일반적으로 관리 또는 보고서 메뉴에서 찾을 수 있는 보고서 모듈로 이동한 다음 고급 보고 인터페이스(대개 Cognos 또는 내장 SQL 보고서 작성기)를 실행합니다.
- 새 보고서 작성 마법사를 시작하고 데이터 소스 유형으로 'SQL' 또는 'Free-hand SQL'을 선택합니다. 이 옵션을 사용하면 표준 비즈니스 객체 모델 대신 데이터베이스를 직접 조회할 수 있습니다.
- 아래 쿼리 섹션에 제공된 SQL 스크립트를 복사해 데이터 세트 정의 창에 붙여 넣습니다.
- [Your Organization Code]와 날짜 범위 등의 자리표시자를 해당 환경에 맞는 값으로 바꿉니다.
- 편집기에서 쿼리 구문을 검증해 데이터베이스 플랫폼(Oracle 또는 SQL Server)에서 UNION 문을 처리할 수 있는지 확인합니다.
- 결과 열을 보고서 레이아웃 목록에 매핑하고 WorkOrderNumber, ActivityName, EventTimestamp가 명확히 표시되도록 합니다.
- 병합된 셀이나 서식 머리글이 없는 표 형식으로 내보낼 수 있도록 보고서 형식을 CSV 또는 Excel로 설정합니다.
- 데이터 구조를 확인하기 위해 검증 기간(예: 최근 작업 지시 100건)에 대해 보고서를 실행합니다.
- 검증이 끝나면 정기 실행을 예약하거나 전체 추출 기간에 대해 보고서를 실행합니다.
- 결과 파일을 다운로드하고 날짜 형식을 확인합니다. 정확한 순서를 위해 가능하면 타임스탬프에 초 단위까지 포함합니다.
- 결과 CSV 파일을 ProcessMind로 가져옵니다. SourceSystem 열은 케이스 속성으로, ActivityName은 활동 분류자로 매핑합니다.
구성
- 날짜 범위: 쿼리 성능을 유지하려면 EVT_DATE(생성일)를 기준으로 최근 6~12개월의 기간을 설정하는 것이 좋습니다.
- 조직 필터: Hexagon EAM은 여러 조직을 지원하는 경우가 많습니다. 다른 사업부의 데이터가 섞이지 않도록 해당 조직 코드로 필터링하세요.
- 데이터베이스 구문: 아래 쿼리는 가능한 경우 ANSI 표준 SQL을 사용하지만, Hexagon EAM은 일반적으로 Oracle 또는 SQL Server에서 실행됩니다. 날짜 함수(SYSDATE 또는 GETDATE 등)는 일부 조정이 필요할 수 있습니다.
- 상태 설정: 상태 코드('A', 'C', 'R' 등)를 활동명('작업 지시 승인' 등)에 매핑하는 방식은 시스템의 상태 설정과 일치해야 합니다.
- 권한: 보고서를 실행하는 사용자 계정에는 R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS, R5AUDITVALUES 테이블에 대한 읽기 권한이 필요합니다.
샘플 쿼리 sql
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' 단계
- 데이터베이스 연결 확인: Hexagon EAM의 Oracle 또는 SQL Server 백엔드 데이터베이스에 연결할 읽기 권한이 있는 계정(일반적으로 서비스 계정)을 준비합니다.
- 주요 테이블 확인: R5EVENTS(작업 지시 헤더), R5STATUS(상태 이력), R5BOOKEDHOURS(작업 시간), R5TRANSACTIONS(자재), R5AUDITVALUES(감사 로그)에 액세스할 수 있는지 확인합니다.
- 상태 코드 매핑: Hexagon EAM은 구성 가능한 상태 코드(예: A, C, O, R)를 사용합니다. 시스템 구성(화면: Administration -> Codes)을 확인해 1~2자 상태 코드를 승인, 일정 예약, 시작, 완료, 품질 검사 통과, 승인 완료, 종료 활동에 매핑합니다.
- 쿼리 구성: 아래에 제공된 SQL 스크립트를 엽니다. 자리표시자 상태 코드(예: 'APPR', 'SCHD', 'COMP')를 실제 시스템 코드로 바꿉니다.
- 날짜 범위 설정:
EVT_DATE또는TRN_DATE를 기준으로 필터링하도록WHERE절을 수정해 기간을 지정합니다. 일반적으로 최근 12개월을 선택하면 쿼리 성능을 유지하는 데 도움이 됩니다. - 추출 실행: SQL 클라이언트(SQL Developer, SSMS 또는 Toad)에서 쿼리를 실행합니다.
- 감사 데이터 확인: '우선순위 업데이트' 활동에서 행이 반환되지 않으면 EAM 시스템 설정에서 R5EVENTS 테이블의 감사 기능이 활성화되어 있는지 확인합니다.
- 체크리스트 데이터 검증: 사용 중인 버전에서 R5CHECKLISTVALUES가 올바른 테이블인지 확인합니다. 이전 버전에서는 작업 수준의 완료 정보를 R5ACTIVITIES에 저장할 수 있습니다.
- 데이터 내보내기: 결과를 CSV 또는 Parquet 파일로 저장합니다. 파싱 오류를 방지하려면 타임스탬프 열을 ISO 8601(YYYY-MM-DD HH:MM:SS) 형식으로 지정합니다.
- ProcessMind로 가져오기: 일반 파일을 ProcessMind 인터페이스에 업로드하고 WorkOrderNumber를 케이스 ID에, ActivityName을 활동에, EventTimestamp를 타임스탬프에 매핑합니다.
구성
- 기간 필터: 현재 쿼리는 모든 데이터를 선택합니다. 기본 CTE 또는 각 SELECT 블록에 WHERE EVT_DATE >= SYSDATE - 365(Oracle) 또는 GetDate() - 365(SQL Server)와 같은 필터를 추가하는 것이 좋습니다.
- 상태 코드 매핑: SQL의 문자열 리터럴('APPR', 'COMP', 'QC' 등)을 R5STATUS에 정의된 실제 코드로 바꿔야 합니다.
- 감사 설정: 'Priority Updated' 추출은 R5AUDITVALUES 테이블을 사용합니다. EVT_PRIORITY 열의 감사 기능이 꺼져 있으면 해당 활동이 누락됩니다.
- 조직/테넌트: EAM 인스턴스에서 여러 조직을 관리하는 경우 데이터가 섞이지 않도록 EVT_ORG 또는 EVT_MRC(부서) 필터를 추가합니다.
- 언어: 쿼리는 표준 영어 열 머리글을 전제로 합니다. 데이터베이스에서 현지화된 열 이름을 사용한다면 이에 맞게 조정합니다.
샘플 쿼리 sql
/* 1. Work Order Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
E.EVT_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
E.EVT_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
WHERE E.EVT_TYPE IN ('JOB', 'PPM') -- Filter for Standard and Preventive WOs
UNION ALL
/* 2. Priority Updated (From Audit Log) */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
A.AUD_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
A.AUD_VALUE AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
A.AUD_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5AUDITVALUES A ON E.EVT_CODE = A.AUD_KEY1
WHERE A.AUD_TABLE = 'R5EVENTS'
AND A.AUD_FIELD = 'EVT_PRIORITY'
UNION ALL
/* 3. Work Order Approved */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Approved' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'APPR' -- Replace with your Approved status code
UNION ALL
/* 4. Material Requisition Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
R.REQ_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
R.REQ_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5REQUISITIONS R ON E.EVT_CODE = R.REQ_EVENT
UNION ALL
/* 5. Work Order Scheduled */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Scheduled' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SCHD' -- Replace with your Scheduled status code
UNION ALL
/* 6. Work Order Started */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Started' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS IN ('STRT', 'INPRG') -- Replace with your Started/In Progress status codes
UNION ALL
/* 7. Material Issued */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Issued' AS ActivityName,
T.TRN_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
T.TRN_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5TRANSACTIONS T ON E.EVT_CODE = T.TRN_EVENT
WHERE T.TRN_TYPE = 'ISSUE' -- Indicates material issue from store
UNION ALL
/* 8. Labor Hours Recorded */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
B.BOO_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
B.BOO_PERSON AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
B.BOO_HOURS AS ActualLaborHours
FROM R5EVENTS E
JOIN R5BOOKEDHOURS B ON E.EVT_CODE = B.BOO_EVENT
UNION ALL
/* 9. Checklist Item Verified */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
C.CKV_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
C.CKV_ENTEREDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5CHECKLISTVALUES C ON E.EVT_CODE = C.CKV_EVENT
WHERE C.CKV_COMPLETED = '+' -- Assuming '+' indicates checked/complete
UNION ALL
/* 10. Work Order Completed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Completed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'COMP' -- Replace with your Completed status code
UNION ALL
/* 11. Quality Control Passed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Quality Control Passed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'QC' -- Replace with your QC Passed status code
UNION ALL
/* 12. Work Order Signed Off */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Signed Off' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SIGNOFF' -- Replace with your Sign Off status code
UNION ALL
/* 13. Work Order Closed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Closed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'CLOS' -- Replace with your Closed status code 단계
- Hexagon EAM Databridge Outbound가 설치되어 있고 라이선스와 권한이 설정되어 있으며, 이 추출에 필요한 유지보수 작업 지시 데이터를 사용할 수 있는지 확인합니다. 아웃바운드 트랜잭션 설정, 대상 위치, 예약 실행 기능, 원본 테이블 또는 뷰에 대한 접근 권한도 확인합니다. 메뉴 이름과 트랜잭션 식별자는 EAM 릴리스마다 다르므로 해당하는 관리 메뉴 경로에는 [Configure based on your system]을 사용합니다.
- 작업 지시 헤더, 작업 지시 상태 이력, 우선순위 이력, 자재 요청, 자재 출고, 노무 트랜잭션, 체크리스트 또는 검사 결과, 일정 배정, 품질 승인, 승인 완료 기록, 종료 기록에 해당하는 기준 Hexagon EAM 테이블 또는 뷰를 확인합니다. 쿼리의 각 [Your ... table name] 자리표시자를 해당 환경의 객체 이름으로 바꿉니다. 현재 작업 지시 헤더에 과거 변경 내역이 모두 포함되어 있다고 가정하지 마세요.
- 관련 작업 지시 변경이 확정될 때마다 XML 또는 CSV 트랜잭션을 게시하도록 Databridge Outbound를 설정합니다. 작업 지시 번호, 이벤트 유형, 이벤트 타임스탬프, 원본 사용자, 우선순위, 작업 지시 유형, 부서, 목표 완료일, 자산, 실제 노무 시간, 갱신 또는 추출 타임스탬프를 포함합니다. 상태, 노무, 자재, 체크리스트, 일정, 품질, 승인 완료 또는 종료 이벤트의 원본 트랜잭션 구조가 서로 다르면 아웃바운드 매핑을 각각 설정합니다.
- 각 업무 발생 건이 개별 이벤트 레코드로 표현되도록 아웃바운드 페이로드를 설정합니다. 최신 작업 지시 상태만 보내지 마세요. 반복되는 노무 입력, 자재 출고, 체크리스트 항목, 우선순위 변경 및 기타 반복 발생 건은 각각 별도의 레코드로 내보냅니다. Databridge 이벤트 유형을 필수 ActivityName 13개 중 하나에 매핑합니다.
- Databridge XML 또는 CSV 출력을 관리되는 스테이징 위치에 저장한 다음 쿼리에서 참조하는 데이터베이스 객체에 적재하거나, 쿼리의 원본 객체를 스테이징 테이블로 바꿉니다. 원본 이벤트 식별자, 작업 지시 번호, 이벤트 타임스탬프, 원본 사용자, LastDataUpdate를 보존합니다. Databridge가 XML을 보내는 경우 활동을 매핑하기 전에 반복되는 이벤트 노드를 행으로 파싱합니다. CSV를 보내는 경우 구분 기호, 인용 부호, 인코딩, 타임스탬프 형식을 검증합니다.
- 연결별 객체, 날짜 매개변수, 회사 필터에 해당하는 쿼리의 자리표시자를 바꿉니다. 쿼리는 각 활동의 정규화된 이벤트 원본을 사용하고 UNION ALL로 결과를 결합합니다. 각 블록에서 사용하는 원본 열의 데이터 유형이 호환되는지 확인합니다. 원본에서 권장 속성을 제공하지 않으면 값을 임의로 만들지 말고 해당 속성에 NULL을 반환합니다.
- 처음에는 약 3~6개월의 기간으로 쿼리를 실행합니다. 결과에 필수 열인 WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate와 사용 가능한 권장 속성이 포함되어 있는지 확인합니다. WorkOrderNumber, EventTimestamp, ActivityName 순으로 정렬하되, 서로 다른 원본 발생 건을 나타내는 중복 행은 유지합니다.
- 추출된 행을 Databridge 전송 건수, 원본 트랜잭션 건수, Hexagon EAM의 작업 지시 표본과 대조합니다. 누락된 상태 이력, 중복 전송, 잘못된 타임스탬프, 선택한 기간을 벗어난 이벤트를 조사합니다. 동일한 원본 이벤트가 두 번 이상 전송된 경우에만 일관된 중복 제거 규칙을 적용합니다.
- 최종 결과를 UTF-8 CSV 또는 ProcessMind가 지원하는 다른 이벤트 로그 형식으로 내보냅니다. 행마다 이벤트 하나를 기록하고, 시간대 처리를 포함해 일관된 타임스탬프를 사용합니다. WorkOrderNumber는 케이스 식별자, ActivityName은 활동, EventTimestamp는 이벤트 타임스탬프로 매핑합니다. 파일을 ProcessMind에 업로드하고 이벤트 모델에서 활동명 13개를 모두 사용할 수 있는지 확인합니다.
구성
- 이벤트 단위 XML 또는 CSV를 전송하도록 Hexagon EAM Databridge Outbound를 설정합니다. 트랜잭션 이름, 관리 화면, 메뉴 경로는 설치된 Hexagon EAM 릴리스에 따라 다르므로 특정 릴리스의 경로를 가정하지 말고 [Configure based on your system]을 사용합니다.
- WorkOrderNumber는 ProcessMind 케이스 식별자, ActivityName은 활동 필드, EventTimestamp는 이벤트 타임스탬프로 설정합니다. SourceSystem에는 Hexagon EAM을 입력하고, LastDataUpdate에는 추출 또는 갱신 시각을 기록합니다.
- 다음 13개 활동 모두에 대해 아웃바운드 매핑을 설정합니다: 작업 지시 생성, 우선순위 변경, 작업 지시 승인, 자재 요청 생성, 작업 지시 일정 예약, 작업 지시 시작, 자재 출고, 노무 시간 기록, 체크리스트 항목 확인, 작업 지시 완료, 품질 관리 통과, 작업 지시 승인 완료, 작업 지시 종료.
- 과거 발생 내역을 보존합니다. 현재 상태 필드만으로는 모든 상태 전환, 우선순위 변경, 노무 입력, 자재 출고, 체크리스트 확인, 승인 또는 승인 완료 기록을 복원할 수 없습니다.
- 최초 추출에는 3~6개월의 날짜 범위를 사용합니다. 증분 적재에는 Databridge 전송 시각 또는 LastDataUpdate 워터마크를 사용하고, 늦게 도착하는 트랜잭션을 반영할 수 있도록 짧은 중복 기간을 둡니다.
- 분석에 필요한 경우에만 회사, 사이트, 조직, 작업 지시 유형, 부서, 상태 필터를 적용합니다. 조직별 제한에는 [Your company filter] 또는 [Configure based on your system]을 사용합니다.
- 전체 라이프사이클을 분석하는 경우 종료된 작업 지시도 포함합니다. 진행 중인 작업 지시만 필터링하면 완료, 품질, 승인 완료, 종료 활동이 누락됩니다.
- 시간대 처리를 명시적으로 설정합니다. ProcessMind에 업로드하기 전에 모든 원본 타임스탬프를 합의된 하나의 시간대로 변환하고, 가능한 경우 원래 시간대 또는 오프셋도 보존합니다.
- 대규모 데이터 세트는 원본에서 필터링하고 추출 기간을 제한합니다. 이벤트 타임스탬프와 작업 지시 번호에 인덱스를 만들거나 파티션을 적용하고, 변환 전에 Databridge 파일을 스테이징합니다. 전체 과거 XML 페이로드를 반복해서 파싱하지 마세요.
- 사전 요구사항에는 Databridge Outbound 사용 가능 여부, 관련 EAM 데이터 읽기 권한, 아웃바운드 대상 또는 스테이징 데이터베이스 접근 권한, 작업 지시·상태·자재·노무·체크리스트·일정·승인·품질·승인 완료·종료 데이터 접근 권한이 포함됩니다.
- 필수 업무 이벤트를 기본 Databridge 트랜잭션으로 사용할 수 없다면, 명시적인 이벤트 행 하나를 생성하는 원본 뷰 또는 스테이징 변환을 설정합니다. ProcessMind는 다른 행을 바탕으로 누락된 활동을 추론하지 않습니다.
샘플 쿼리 sql
WITH
created_events AS (
SELECT
CAST(c.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Created' AS VARCHAR(100)) AS ActivityName,
CAST(c.[CreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(c.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(c.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(c.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(c.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(c.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(c.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(c.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(c.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order creation table or view] c
WHERE c.[CreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND c.[CreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
priority_events AS (
SELECT
CAST(p.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Priority Updated' AS VARCHAR(100)) AS ActivityName,
CAST(p.[PriorityChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(p.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(p.[NewPriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(p.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your priority history table or view] p
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = p.[WorkOrderNumber]
WHERE p.[PriorityChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND p.[PriorityChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
approved_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Approved' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your approved status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
requisition_events AS (
SELECT
CAST(r.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Requisition Created' AS VARCHAR(100)) AS ActivityName,
CAST(r.[RequisitionCreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(r.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(r.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material requisition table or view] r
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = r.[WorkOrderNumber]
WHERE r.[RequisitionCreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND r.[RequisitionCreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
scheduled_events AS (
SELECT
CAST(a.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Scheduled' AS VARCHAR(100)) AS ActivityName,
CAST(a.[ScheduledTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(a.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(a.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(a.[ScheduledStartDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order scheduling table or view] a
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = a.[WorkOrderNumber]
WHERE a.[ScheduledTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND a.[ScheduledTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
started_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Started' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] IN ('[Your in progress status value]', '[Your started status value]')
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
issued_events AS (
SELECT
CAST(i.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Issued' AS VARCHAR(100)) AS ActivityName,
CAST(i.[IssueTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(i.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(i.[IssuedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material issue table or view] i
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = i.[WorkOrderNumber]
WHERE i.[IssueTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND i.[IssueTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
labor_events AS (
SELECT
CAST(l.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Labor Hours Recorded' AS VARCHAR(100)) AS ActivityName,
CAST(l.[LaborEntryTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(l.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(l.[RecordedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(l.[LaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your labor transaction table or view] l
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = l.[WorkOrderNumber]
WHERE l.[LaborEntryTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND l.[LaborEntryTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
checklist_events AS (
SELECT
CAST(k.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Checklist Item Verified' AS VARCHAR(100)) AS ActivityName,
CAST(k.[VerifiedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(k.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(k.[VerifiedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your checklist verification table or view] k
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = k.[WorkOrderNumber]
WHERE k.[VerifiedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND k.[VerifiedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
completed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Completed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your completed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
quality_events AS (
SELECT
CAST(q.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Quality Control Passed' AS VARCHAR(100)) AS ActivityName,
CAST(q.[QualityApprovalTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(q.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(q.[ApprovedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your quality approval table or view] q
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = q.[WorkOrderNumber]
WHERE q.[QualityResult] = '[Your quality passed value]'
AND q.[QualityApprovalTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND q.[QualityApprovalTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
signoff_events AS (
SELECT
CAST(f.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Signed Off' AS VARCHAR(100)) AS ActivityName,
CAST(f.[SignOffTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(f.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(f.[SignedOffBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order sign-off table or view] f
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = f.[WorkOrderNumber]
WHERE f.[SignOffTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND f.[SignOffTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
closed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Closed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your closed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
)
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM created_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM priority_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM approved_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM requisition_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM scheduled_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM started_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM issued_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM labor_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM checklist_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM completed_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM quality_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM signoff_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM closed_events
ORDER BY WorkOrderNumber, EventTimestamp, ActivityName; 시작할 준비가 되셨나요?
이 템플릿에 따라 유지보수 데이터를 실행 가능한 인사이트로 전환하세요. 데이터를 준비하는 동안 기술 관련 문의가 있으면 담당 팀이 지원해 드립니다.
자산 유지보수 지연을 줄이고 성과를 높이세요
주기 시간을 30% 단축하고 숨은 병목을 없애세요.
신용카드가 필요하지 않습니다. 몇 분이면 설정할 수 있습니다.