Mẫu dữ liệu bảo trì tài sản của bạn
Mẫu dữ liệu bảo trì tài sản của bạn
- Các trường dữ liệu thiết yếu trong nhật ký bảo trì
- Các mốc quy trình tiêu chuẩn và giai đoạn xử lý lệnh công việc
- Hướng dẫn kỹ thuật trích xuất dữ liệu từ Hexagon EAM
Thuộc tính bảo trì tài sản
| Tên | Mô tả | ||
|---|---|---|---|
| Dấu thời gian EventTimestamp | Ngày và giờ hoạt động diễn ra. | ||
| Mô tả Thuộc tính này ghi lại chính xác thời điểm một sự kiện hoặc thay đổi trạng thái được lưu vào hệ thống. Nhờ đó, bạn có thể tính thời gian giữa các hoạt động và tổng thời gian xử lý lệnh công việc. Vì sao điều này quan trọng Dấu thời gian chính xác rất cần thiết để phân tích thời gian xử lý, xác định độ trễ và tính mức độ đáp ứng SLA. Lấy dữ liệu ở đâu Bảng R5EVENTHISTORY trong Hexagon EAM, trường EVH_DATE Ví dụ 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Hệ thống nguồn SourceSystem | Tên hệ thống nơi dữ liệu được tạo ra. | ||
| Mô tả Thuộc tính này cho biết hệ thống lưu trữ dữ liệu gốc. Trong trường hợp này, tên hệ thống EAM cụ thể được điền cố định để phân biệt với dữ liệu cũ hoặc hệ thống của nhà thầu bên ngoài. Vì sao điều này quan trọng Thuộc tính này giúp xác định rõ nguồn gốc dữ liệu, nhất là khi kết hợp dữ liệu từ nhiều hệ thống bảo trì. Lấy dữ liệu ở đâu Giá trị điền cố định Ví dụ Hexagon EAMInfor EAMDatastream 7i | |||
| Hoạt động ActivityName | Công việc cụ thể hoặc sự kiện thay đổi trạng thái đã diễn ra. | ||
| Mô tả Thuộc tính này cho biết bước đang được thực hiện trong quy trình, chẳng hạn như 'Đã tạo lệnh công việc' hoặc 'Đã xuất vật tư'. Thuộc tính được xác định từ lịch sử thay đổi trạng thái hoặc các giao dịch cụ thể được ghi nhận cho lệnh công việc. Vì sao điều này quan trọng Thuộc tính này xác định trình tự trong nhật ký sự kiện, cho phép tái dựng luồng quy trình và phân tích điểm nghẽn. Lấy dữ liệu ở đâu Bảng R5EVENTHISTORY trong Hexagon EAM, trường EVH_STATUS (được ánh xạ sang nội dung mô tả) hoặc nhật ký kiểm toán Ví dụ Đã tạo lệnh công việcĐã lên lịch lệnh công việcĐã hoàn tất lệnh công việcĐã xuất vật tư | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian cho biết lần gần nhất bản ghi được trích xuất hoặc làm mới. | ||
| Mô tả Thuộc tính này ghi lại thời điểm dữ liệu được lấy gần nhất từ hệ thống nguồn. Thuộc tính giúp chuyên viên phân tích biết dữ liệu còn mới đến đâu và phát hiện độ trễ có thể có trong luồng báo cáo. Vì sao điều này quan trọng Thuộc tính này giúp bạn tin tưởng hơn vào độ cập nhật của kết quả phân tích và hỗ trợ xử lý sự cố đồng bộ dữ liệu. Lấy dữ liệu ở đâu Thời gian hệ thống lúc trích xuất Ví dụ 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| Lệnh công việc bảo trì WorkOrderNumber | Mã định danh duy nhất của lệnh công việc bảo trì. | ||
| Mô tả Thuộc tính này là khóa chính duy nhất của trường hợp bảo trì. Thuộc tính theo dõi lệnh công việc từ yêu cầu ban đầu qua các bước lập kế hoạch, thực hiện đến khi chốt tài chính. Đây là mã định danh trung tâm của trường hợp, dùng để liên kết nhật ký hoạt động, giờ công và lượng vật tư đã sử dụng. Vì sao điều này quan trọng Thuộc tính này xác định trường hợp cụ thể của quy trình bảo trì, cho phép theo dõi thời gian xử lý từ đầu đến cuối và các biến thể của quy trình. Lấy dữ liệu ở đâu Bảng R5EVENTS trong Hexagon EAM, trường EVT_CODE Ví dụ WO-100234WO-100235WO-100236104592 | |||
| Loại lệnh công việc WorkOrderType | Phân loại lệnh công việc thành bảo trì phòng ngừa, khắc phục hoặc khẩn cấp. | ||
| Mô tả Thuộc tính này phân loại tính chất của công việc bảo trì. Thuộc tính được dùng để phân tích tỷ lệ bảo trì phòng ngừa theo kế hoạch so với sửa chữa khẩn cấp khi có sự cố. Đây là chỉ số quan trọng về tình trạng tài sản và mức độ trưởng thành trong quản lý. Vì sao điều này quan trọng Thuộc tính này hỗ trợ dashboard Phân tích tỷ lệ bảo trì phòng ngừa và giúp xác định cơ hội giảm công việc phát sinh do sự cố. Lấy dữ liệu ở đâu Bảng R5EVENTS trong Hexagon EAM, trường EVT_TYPE Ví dụ PPMCOREMGPRJ | |||
| Mức độ ưu tiên PriorityCode | Mức độ khẩn cấp được gán cho lệnh công việc. | ||
| Mô tả Thuộc tính này cho biết mức độ quan trọng của lệnh công việc, từ công việc thường lệ đến khẩn cấp. Thuộc tính chi phối việc lập lịch tài nguyên, đồng thời rất quan trọng để theo dõi mức độ đáp ứng SLA và phát hiện việc lạm dụng mức ưu tiên. Vì sao điều này quan trọng Bảng điều khiển Ưu tiên xử lý khẩn cấp và kiểm tra tài nguyên giúp đảm bảo các công việc quan trọng được ưu tiên đúng mức. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_PRIORITY Ví dụ Quan trọng nhấtCaoTrung bìnhThấp | |||
| Ngày hoàn thành mục tiêu TargetCompletionDate | Thời hạn dự kiến của lệnh công việc. | ||
| Mô tả Thuộc tính này cho biết ngày dự kiến hoàn tất công việc bảo trì. So sánh ngày này với ngày hoàn thành thực tế là cơ sở để tính mức độ đáp ứng SLA và tỷ lệ hoàn thành đúng hạn. Vì sao điều này quan trọng Thuộc tính này rất cần thiết cho bảng điều khiển Theo dõi mức độ đáp ứng SLA của nhà thầu và đánh giá độ chính xác trong lập kế hoạch. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_TARGET Ví dụ 2023-11-012023-11-152023-12-01 | |||
| Người dùng UpdatedBy | ID người dùng của người thực hiện hoạt động. | ||
| Mô tả Thuộc tính này ghi nhận ID đăng nhập của người thực hiện thay đổi trạng thái hoặc cập nhật. Dữ liệu này giúp phân tích khối lượng công việc của đội, xác định nhu cầu đào tạo và kiểm tra việc tuân thủ quy trình. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích hành vi người dùng và mức sử dụng tài nguyên trong suốt vòng đời bảo trì. Lấy dữ liệu ở đâu Bảng R5EVENTHISTORY của Hexagon EAM, trường EVH_USER Ví dụ JSMITHADAVISSYSTEMMGR_USR | |||
| Phòng ban MaintenanceDepartment | Phòng ban hoặc trung tâm công việc chịu trách nhiệm thực hiện công việc. | ||
| Mô tả Thuộc tính này xác định đội hoặc xưởng bảo trì được giao lệnh công việc, chẳng hạn như Điện, Cơ khí hoặc Cơ sở vật chất. Thuộc tính này giúp so sánh hiệu suất giữa các đội kỹ thuật. Vì sao điều này quan trọng Thuộc tính này hỗ trợ bảng điều khiển Năng suất lao động của kỹ thuật viên và giúp phân bổ tài nguyên hiệu quả giữa các nhóm nghề. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_MRC Ví dụ Xưởng điệnBảo trì cơ khíCơ sở vật chấtDịch vụ đội xe | |||
| Tài sản AssetCode | Mã định danh duy nhất của thiết bị hoặc cơ sở cần bảo trì. | ||
| Mô tả Thuộc tính này liên kết lệnh công việc với một thiết bị hoặc địa điểm cụ thể. Dữ liệu này giúp phân tích tần suất hỏng hóc theo tài sản, đồng thời xác định thiết bị thường xuyên gặp sự cố hoặc cần thay thế. Vì sao điều này quan trọng Thuộc tính này là cơ sở để tính các chỉ số độ tin cậy của tài sản và xác định nơi tập trung nhiều nguồn lực bảo trì nhất. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_OBJECT Ví dụ PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Tổng giờ công thực tế ActualLaborHours | Tổng số giờ công được ghi nhận cho lệnh công việc. | ||
| Mô tả Thuộc tính này cộng tổng thời gian kỹ thuật viên đã ghi nhận cho lệnh công việc. Dữ liệu này được dùng để đo năng suất, tính chi phí nhân công và phân tích chênh lệch so với số giờ ước tính. Vì sao điều này quan trọng Đây là nguồn dữ liệu chính cho bảng điều khiển Năng suất lao động của kỹ thuật viên và KPI Chênh lệch giờ công. Lấy dữ liệu ở đâu Bảng R5BOOKEDHOURS của Hexagon EAM, trường BOO_HOURS (cộng theo lệnh công việc) Ví dụ 2.54.012.00.5 | |||
| Chuyển mức ưu tiên khẩn cấp EmergencyEscalationFlag | Cờ cho biết mức ưu tiên có được nâng lên Khẩn cấp sau khi tạo lệnh hay không. | ||
| Mô tả Thuộc tính đúng/sai này xác định các lệnh công việc ban đầu có mức ưu tiên thấp hơn nhưng sau đó được nâng lên Khẩn cấp. Nếu tình trạng này xảy ra thường xuyên, có thể khâu phân loại ban đầu chưa tốt hoặc có người lợi dụng hệ thống để được phục vụ nhanh hơn. Vì sao điều này quan trọng Thuộc tính này hỗ trợ bảng điều khiển Ưu tiên xử lý khẩn cấp và kiểm tra tài nguyên, cùng KPI Tỷ lệ chuyển mức ưu tiên khẩn cấp. Lấy dữ liệu ở đâu Được suy ra từ nhật ký kiểm tra của trường Priority Ví dụ truefalse | |||
| Đạt kiểm tra chất lượng QualityControlPassed | Cờ cho biết bước kiểm soát chất lượng đã được ghi nhận hay chưa. | ||
| Mô tả Thuộc tính đúng/sai này kiểm tra xem một hoạt động kiểm soát chất lượng hoặc mục trong danh sách kiểm tra đã được đánh dấu hoàn tất hay chưa. Thuộc tính này giúp đảm bảo tuân thủ quy định an toàn và tiêu chuẩn nội bộ. Vì sao điều này quan trọng Thuộc tính này cung cấp dữ liệu cho KPI Tỷ lệ tuân thủ kiểm soát chất lượng và hỗ trợ bảng điều khiển Tuân thủ và tính toàn vẹn của hồ sơ. Lấy dữ liệu ở đâu Được suy ra từ các bảng Checklist hoặc lịch sử hoạt động Ví dụ truefalse | |||
| Là bảo trì phòng ngừa IsPreventive | Cờ cho biết lệnh công việc có phải là bảo trì phòng ngừa hay không. | ||
| Mô tả Thuộc tính đúng/sai này giúp lọc và phân loại lệnh công việc dễ dàng. Thuộc tính này đơn giản hóa việc tính KPI Tỷ lệ bảo trì phòng ngừa bằng cách tách công việc chủ động khỏi hoạt động sửa chữa khi có sự cố. Vì sao điều này quan trọng Đây là tiêu chí phân nhóm cơ bản cho bảng điều khiển Phân tích tỷ lệ bảo trì phòng ngừa. Lấy dữ liệu ở đâu Được suy ra từ WorkOrderType Ví dụ truefalse | |||
| Là công việc làm lại IsRework | Cờ cho biết lệnh công việc có phát sinh việc lặp lại các thao tác kỹ thuật hay không. | ||
| Mô tả Thuộc tính được tính toán này xác định các trường hợp quy trình quay lại trạng thái đang thực hiện sau bước kiểm tra chất lượng hoặc trạng thái hoàn tất. Dữ liệu này giúp phát hiện vấn đề về chất lượng và thiếu sót trong đào tạo. Vì sao điều này quan trọng Thuộc tính này cung cấp dữ liệu cho bảng điều khiển Làm lại kỹ thuật và kiểm soát chất lượng, cùng KPI Tỷ lệ làm lại trong bảo trì. Lấy dữ liệu ở đâu Được tính dựa trên số lần lặp lại hoạt động Ví dụ truefalse | |||
| Mô tả lệnh công việc WorkOrderDescription | Tóm tắt ngắn về công việc bảo trì. | ||
| Mô tả Thuộc tính này chứa tiêu đề hoặc mô tả ngắn về sự cố. Thông tin này cung cấp bối cảnh cho chuyên viên phân tích khi xem chi tiết các trường hợp có vấn đề hoặc tìm mẫu trong văn bản phi cấu trúc. Vì sao điều này quan trọng Thuộc tính này cung cấp bối cảnh cần thiết để người dùng xem xét dữ liệu quy trình. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_DESC Ví dụ Sửa phớt bơm bị rò rỉKiểm tra HVAC hằng thángThay băng tải | |||
| Mức độ quan trọng của tài sản AssetCriticality | Điểm thể hiện mức độ quan trọng của tài sản đối với hoạt động vận hành. | ||
| Mô tả Thuộc tính này cho biết tài sản quan trọng đến mức nào đối với hoạt động kinh doanh. Thông tin này thường được dùng để kiểm tra xem các lệnh công việc ưu tiên cao có thực sự liên quan đến thiết bị trọng yếu hay không, qua đó phát hiện khả năng lạm dụng quy trình. Vì sao điều này quan trọng Thuộc tính này hỗ trợ bảng điều khiển Ưu tiên xử lý khẩn cấp và kiểm tra tài nguyên bằng cách đối chiếu mức ưu tiên với giá trị của tài sản. Lấy dữ liệu ở đâu Bảng R5OBJECTS của Hexagon EAM, trường OBJ_CRITICALITY (cần nối với EVT_OBJECT) Ví dụ A - Thiết yếuB - Quan trọngC - Thứ yếuD - Thấp | |||
| Ngày tạo DateCreated | Ngày lệnh công việc được tạo ban đầu. | ||
| Mô tả Thuộc tính này đánh dấu thời điểm bắt đầu vòng đời của lệnh công việc. Đây là mốc cơ sở để tính thời gian lập kế hoạch trung bình và xác định tuổi của các hạng mục tồn đọng. Vì sao điều này quan trọng Thuộc tính này cần thiết cho bảng điều khiển Tốc độ lập kế hoạch bảo trì và KPI Tuổi tồn đọng. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_CREATED Ví dụ 2023-09-012023-09-15 | |||
| Ngày yêu cầu vật tư MaterialRequisitionDate | Ngày yêu cầu phụ tùng thay thế. | ||
| Mô tả Thuộc tính này ghi nhận thời điểm gửi yêu cầu vật tư đến kho hoặc bộ phận mua hàng. Phân tích khoảng thời gian từ ngày này đến ngày xuất vật tư cho thấy hiệu quả của chuỗi cung ứng. Vì sao điều này quan trọng Thuộc tính này cần thiết cho bảng điều khiển Thời gian mua phụ tùng thay thế. Lấy dữ liệu ở đâu Bảng R5REQUISITIONS của Hexagon EAM hoặc bảng giao dịch được liên kết Ví dụ 2023-10-012023-10-05 | |||
| Tổng chi phí thực tế TotalActualCost | Tổng chi phí tài chính được ghi nhận cho lệnh công việc. | ||
| Mô tả Thuộc tính này ghi nhận tổng chi phí nhân công, vật tư và dịch vụ. Đây là dữ liệu cần thiết để phân tích quyết toán tài chính và hiểu tác động chi phí của bảo trì khẩn cấp so với bảo trì phòng ngừa. Vì sao điều này quan trọng Thuộc tính này hỗ trợ bảng điều khiển Quyết toán tài chính và tốc độ đóng lệnh, đồng thời giúp đưa ra quyết định dựa trên chi phí. Lấy dữ liệu ở đâu Bảng R5EVENTS của Hexagon EAM, trường EVT_ACTCOST (hoặc cột tổng hợp tương tự) Ví dụ 150.002500.5075.25 | |||
| Trạng thái SLA SLAState | Cho biết lệnh công việc có đáp ứng thỏa thuận mức dịch vụ hay không. | ||
| Mô tả Thuộc tính được tính toán này so sánh ngày hoàn thành thực tế với ngày hoàn thành mục tiêu. Thuộc tính phân loại trường hợp là “Trong SLA” hoặc “Vi phạm SLA” để đơn giản hóa việc báo cáo hiệu suất của nhà thầu và đội ngũ nội bộ. Vì sao điều này quan trọng Đây là nguồn dữ liệu trực tiếp cho KPI Tỷ lệ đáp ứng SLA. Lấy dữ liệu ở đâu Được tính: Ngày kết thúc thực tế <= Ngày mục tiêu Ví dụ Trong SLAVi phạm SLAĐang mở | |||
Hoạt động bảo trì tài sản
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đã bắt đầu lệnh công việc | Kỹ thuật viên bắt đầu trực tiếp làm việc trên tài sản. Thường được đánh dấu bằng trạng thái chuyển sang In Progress hoặc dấu thời gian đầu tiên ghi nhận giờ công. | ||
| Vì sao điều này quan trọng Điểm kết thúc để tính lượng việc tồn đọng và điểm bắt đầu tính thời gian thao tác trực tiếp. Thiết yếu để tính tỷ lệ đáp ứng SLA. Lấy dữ liệu ở đâu r5statuslog trong Hexagon EAM. Trạng thái chuyển sang 'In Progress' (thường có mã trạng thái 'I' hoặc 'IP'). Thu thập Ghi nhận khi thực hiện giao dịch trên r5statuslog Loại sự kiện explicit | |||
| Đã đóng lệnh công việc | Lệnh công việc được khóa về mặt tài chính và lưu trữ. Không thể ghi nhận thêm chi phí hoặc giờ công. | ||
| Vì sao điều này quan trọng Kết thúc quy trình. Cột mốc quan trọng để phân tích quy trình quyết toán tài chính và chốt chi phí cuối cùng. Lấy dữ liệu ở đâu r5statuslog trong Hexagon EAM. Trạng thái chuyển sang 'C' (Closed) hoặc 'L' (Locked/Closed). Thu thập Ghi nhận khi thực hiện giao dịch trên r5statuslog Loại sự kiện explicit | |||
| Đã ghi nhận giờ công | Kỹ thuật viên ghi số giờ làm việc vào lệnh công việc. Hoạt động này có thể diễn ra nhiều lần trong một trường hợp. | ||
| Vì sao điều này quan trọng Cơ sở cho các dashboard Chênh lệch giờ công và Năng suất lao động của kỹ thuật viên. Cho thấy công sức thực tế so với kế hoạch. Lấy dữ liệu ở đâu Bảng r5booklabor trong Hexagon EAM. Mỗi hàng là một mục ghi giờ công cho WO. Thu thập Ghi nhận khi thực hiện giao dịch INSERT trên r5booklabor Loại sự kiện explicit | |||
| Đã hoàn tất lệnh công việc | Công việc kỹ thuật đã hoàn tất và kỹ thuật viên đánh dấu công việc là xong. Tài sản được đưa trở lại hoạt động. | ||
| Vì sao điều này quan trọng Cột mốc quan trọng để tính thời gian toàn bộ vòng đời và thời gian sửa chữa trung bình. Dừng tính thời gian ngừng hoạt động. Lấy dữ liệu ở đâu r5statuslog trong Hexagon EAM. Trạng thái chuyển sang 'C' (Completed) hoặc 'F' (Finished). Thu thập Ghi nhận khi thực hiện giao dịch trên r5statuslog Loại sự kiện explicit | |||
| Đã phê duyệt lệnh công việc | Thay đổi trạng thái cho biết lệnh công việc đã qua bước xem xét kế hoạch và dự toán. Điều này xác nhận công việc được phép tiến hành. | ||
| Vì sao điều này quan trọng Hỗ trợ phân tích tốc độ lập kế hoạch bảo trì bằng cách đánh dấu thời điểm kết thúc giai đoạn lập kế hoạch. Dùng để kiểm tra tuân thủ nguyên tắc phân tách nhiệm vụ. Lấy dữ liệu ở đâu Bảng r5statuslog trong Hexagon EAM. Tìm trạng thái chuyển sang 'A' (Approved) hoặc trạng thái tương đương trong hệ thống. Thu thập Ghi nhận khi thực hiện giao dịch trên r5statuslog Loại sự kiện explicit | |||
| Đã tạo lệnh công việc | Tạo bản ghi lệnh công việc bảo trì trong hệ thống. Sự kiện này mở đầu hồ sơ và ghi lại dấu thời gian ban đầu cho toàn bộ vòng đời bảo trì. | ||
| Vì sao điều này quan trọng Đánh dấu thời điểm bắt đầu của một trường hợp quy trình và tạo mốc cơ sở để đo tổng thời gian xử lý. Đây là dữ liệu quan trọng để tính thời gian tồn đọng. Lấy dữ liệu ở đâu Bảng r5events trong Hexagon EAM. Ghi nhận khi chèn bản ghi mới có evt_code. Thu thập Ghi nhận khi thực hiện giao dịch INSERT trên r5events Loại sự kiện explicit | |||
| Đã xuất vật tư | Phụ tùng được xuất trực tiếp từ kho và tính vào lệnh công việc. Đây là bước ghi nhận vật tư đã sử dụng. | ||
| Vì sao điều này quan trọng Điểm kết thúc để tính thời gian chờ vật tư. Giúp phát hiện trường hợp công việc bắt đầu rồi phải dừng vì thiếu phụ tùng. Lấy dữ liệu ở đâu Bảng r5translines trong Hexagon EAM. Giao dịch loại 'I' (Issue) được liên kết với lệnh công việc. Thu thập Ghi nhận khi thực hiện giao dịch INSERT trên r5translines Loại sự kiện explicit | |||
| Đã cập nhật mức độ ưu tiên | Mức độ ưu tiên của lệnh công việc thay đổi sau khi được tạo. Sự kiện này ghi lại dấu thời gian và mức ưu tiên mới. | ||
| Vì sao điều này quan trọng Cần thiết cho dashboard Phân tích tăng mức ưu tiên và kiểm tra tài nguyên, giúp phát hiện việc lạm dụng mức ưu tiên hoặc mở rộng phạm vi công việc. Lấy dữ liệu ở đâu Bảng r5audittrail của Hexagon EAM nếu bật kiểm toán, hoặc suy ra từ ảnh chụp dữ liệu. Thường được lấy từ nhật ký kiểm toán của trường evt_priority. Thu thập Ghi nhận khi thực hiện giao dịch UPDATE trên evt_priority Loại sự kiện explicit | |||
| Đã ký duyệt lệnh công việc | Thường cần phê duyệt hành chính cuối cùng để đáp ứng yêu cầu tuân thủ hoặc thanh toán nhà thầu. Bước này xác nhận mọi dữ liệu đều chính xác. | ||
| Vì sao điều này quan trọng Theo dõi để phân tích chu kỳ phê duyệt lệnh công việc. Độ trễ ở bước này ảnh hưởng đến tốc độ quyết toán tài chính. Lấy dữ liệu ở đâu r5statuslog trong Hexagon EAM (chuyển sang 'Signed Off') hoặc nhật ký ghi nhận chữ ký điện tử. Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
| Đã lên lịch lệnh công việc | Lệnh công việc được gán ngày bắt đầu theo lịch hoặc tài nguyên cụ thể. Bước này đưa lệnh từ danh sách tồn đọng vào lịch làm việc đang hoạt động. | ||
| Vì sao điều này quan trọng Quan trọng để phân tích năng suất lao động của kỹ thuật viên và hiệu quả phân bổ tài nguyên. Lấy dữ liệu ở đâu Bảng r5events trong Hexagon EAM (cập nhật evt_schedstart) hoặc r5statuslog (chuyển sang 'S' - Scheduled). Thu thập So sánh trường trạng thái trước và sau, hoặc kiểm tra cập nhật evt_schedstart Loại sự kiện inferred | |||
| Đã tạo yêu cầu vật tư | Yêu cầu phụ tùng hoặc vật tư được liên kết với lệnh công việc. Đây là bước khởi đầu của quy trình phụ trợ trong chuỗi cung ứng. | ||
| Vì sao điều này quan trọng Điểm bắt đầu để tính thời gian mua phụ tùng. Số lượng lớn ở bước này cho thấy mức độ phụ thuộc vào lượng hàng tồn kho sẵn có. Lấy dữ liệu ở đâu Bảng r5requisitions trong Hexagon EAM. Liên kết qua req_evt (mã lệnh công việc). Thu thập Ghi nhận khi thực hiện giao dịch INSERT trên r5requisitions Loại sự kiện explicit | |||
| Đã xác nhận mục trong danh sách kiểm tra | Một công việc hoặc bước kiểm tra cụ thể trong lệnh công việc được đánh dấu là hoàn tất. Sự kiện này ghi nhận tiến độ chi tiết của công việc. | ||
| Vì sao điều này quan trọng Cần thiết để bảo đảm tuân thủ và tính toàn vẹn của hồ sơ. Chứng minh các bước kiểm tra an toàn đã được ghi nhận trong hệ thống. Lấy dữ liệu ở đâu Bảng r5checklist hoặc r5activities trong Hexagon EAM. Thay đổi trạng thái của một mục hoạt động hoặc công việc cụ thể. Thu thập Ghi nhận khi thực hiện giao dịch UPDATE trên r5checklist Loại sự kiện explicit | |||
| Đạt kiểm tra chất lượng | Giám sát viên hoặc nhân viên kiểm tra xem xét công việc đã hoàn tất và phê duyệt chất lượng. Bước này xác nhận việc sửa chữa đạt yêu cầu trước khi đóng lệnh. | ||
| Vì sao điều này quan trọng Hỗ trợ KPI Tỷ lệ tuân thủ kiểm soát chất lượng. Các vòng lặp quay lại từ bước này cho thấy công việc cần làm lại về mặt kỹ thuật. Lấy dữ liệu ở đâu r5statuslog trong Hexagon EAM (chuyển sang 'Review' hoặc 'QC') hoặc r5audittrail ghi nhận xác thực UDF cụ thể. Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
Hướng dẫn trích xuất dữ liệu
Các bước
- Đăng nhập vào ứng dụng Hexagon EAM bằng tài khoản người dùng có quyền tạo báo cáo nâng cao.
- Mở mô-đun Reports, thường nằm trong menu Administration hoặc Reports, rồi khởi chạy giao diện Advanced Reporting (thường là Cognos hoặc công cụ tạo báo cáo SQL tích hợp).
- Khởi tạo trình hướng dẫn tạo báo cáo mới và chọn 'SQL' hoặc 'Free-hand SQL' làm loại nguồn dữ liệu. Cách này cho phép truy vấn trực tiếp cơ sở dữ liệu thay vì dùng mô hình đối tượng nghiệp vụ tiêu chuẩn.
- Sao chép tập lệnh SQL trong phần Query bên dưới và dán vào cửa sổ định nghĩa tập dữ liệu.
- Thay các giá trị giữ chỗ (chẳng hạn [Your Organization Code] và khoảng ngày) bằng giá trị phù hợp với môi trường của bạn.
- Kiểm tra cú pháp truy vấn trong trình soạn thảo để bảo đảm nền tảng cơ sở dữ liệu (Oracle hoặc SQL Server) chấp nhận các câu lệnh union.
- Ánh xạ các cột kết quả vào danh sách bố cục báo cáo, bảo đảm WorkOrderNumber, ActivityName và EventTimestamp hiển thị rõ ràng.
- Cấu hình báo cáo để xuất riêng sang định dạng CSV hoặc Excel, bảo đảm dữ liệu có cấu trúc dạng bảng, không gộp ô hoặc thêm tiêu đề định dạng.
- Chạy báo cáo trong một khoảng thời gian để kiểm tra (ví dụ: 100 lệnh công việc gần nhất) và xác minh cấu trúc dữ liệu.
- Sau khi xác minh, lên lịch chạy báo cáo định kỳ hoặc chạy báo cáo cho toàn bộ khoảng thời gian cần trích xuất.
- Tải tệp kết quả xuống và kiểm tra định dạng ngày. Nếu có thể, hãy bảo đảm dấu thời gian có cả giây để sắp xếp chính xác.
- Nhập tệp CSV vào ProcessMind, ánh xạ cột SourceSystem thành thuộc tính trường hợp và ActivityName thành trường phân loại hoạt động.
Cấu hình
- Khoảng ngày: Nên lọc theo EVT_DATE (ngày tạo) trong khoảng thời gian cuốn chiếu từ 6 đến 12 tháng để duy trì hiệu suất truy vấn.
- Bộ lọc tổ chức: Hexagon EAM thường hỗ trợ nhiều tổ chức. Hãy thêm bộ lọc theo mã tổ chức cụ thể để tránh lẫn dữ liệu từ các đơn vị kinh doanh khác.
- Cú pháp cơ sở dữ liệu: Truy vấn bên dưới dùng SQL chuẩn ANSI khi có thể, nhưng Hexagon EAM thường chạy trên Oracle hoặc SQL Server. Có thể cần điều chỉnh đôi chút các hàm ngày (ví dụ: SYSDATE thay cho GETDATE).
- Cấu hình trạng thái: Ánh xạ mã trạng thái (ví dụ: 'A', 'C', 'R') sang tên hoạt động (ví dụ: 'Work Order Approved') phải khớp với cấu hình trạng thái cụ thể trong hệ thống của bạn.
- Quyền truy cập: Tài khoản người dùng chạy báo cáo cần có quyền đọc các bảng R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS và R5AUDITVALUES.
Truy vấn mẫu 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' Các bước
- Xác định kết nối cơ sở dữ liệu: Đảm bảo bạn có thông tin đăng nhập chỉ đọc, thường là tài khoản dịch vụ, cho cơ sở dữ liệu Oracle hoặc SQL Server phía sau Hexagon EAM.
- Tìm các bảng chính: Xác nhận bạn có quyền truy cập R5EVENTS (tiêu đề lệnh công việc), R5STATUS (lịch sử trạng thái), R5BOOKEDHOURS (giờ lao động), R5TRANSACTIONS (vật tư) và R5AUDITVALUES (nhật ký kiểm tra).
- Ánh xạ mã trạng thái: Hexagon EAM dùng các mã trạng thái có thể cấu hình, chẳng hạn A, C, O, R. Xem cấu hình hệ thống của bạn (màn hình: Administration -> Codes) để ánh xạ mã dài 1 hoặc 2 ký tự sang các hoạt động Đã phê duyệt, Đã lên lịch, Đã bắt đầu, Đã hoàn tất, Đã qua kiểm tra chất lượng, Đã ký xác nhận và Đã đóng.
- Cấu hình truy vấn: Mở tập lệnh SQL bên dưới. Thay các mã trạng thái giữ chỗ, chẳng hạn 'APPR', 'SCHD', 'COMP', bằng mã thực tế trong hệ thống của bạn.
- Đặt khoảng thời gian: Cập nhật các mệnh đề WHERE để lọc theo EVT_DATE hoặc TRN_DATE và chọn khoảng thời gian cụ thể, thường là 12 tháng gần nhất, nhằm đảm bảo truy vấn chạy hiệu quả.
- Chạy trích xuất: Chạy truy vấn trong SQL client của bạn (SQL Developer, SSMS hoặc Toad).
- Kiểm tra dữ liệu kiểm tra: Nếu hoạt động 'Đã cập nhật mức độ ưu tiên' không trả về dòng nào, hãy kiểm tra xem chức năng kiểm tra cho bảng R5EVENTS đã được bật trong cài đặt EAM chưa.
- Kiểm tra dữ liệu danh sách kiểm tra: Đảm bảo R5CHECKLISTVALUES là bảng phù hợp với phiên bản của bạn. Các phiên bản cũ có thể dùng R5ACTIVITIES để ghi nhận việc hoàn thành ở cấp nhiệm vụ.
- Xuất dữ liệu: Lưu kết quả dưới dạng tệp CSV hoặc Parquet. Định dạng cột Timestamp theo ISO 8601 (YYYY-MM-DD HH:MM:SS) để tránh lỗi phân tích dữ liệu.
- Nhập vào ProcessMind: Tải tệp dữ liệu lên giao diện ProcessMind, ánh xạ WorkOrderNumber với Mã trường hợp, ActivityName với Hoạt động và EventTimestamp với Dấu thời gian.
Cấu hình
- Bộ lọc khoảng thời gian: Hiện truy vấn chọn toàn bộ dữ liệu. Bạn nên thêm bộ lọc như WHERE EVT_DATE >= SYSDATE - 365 (Oracle) hoặc GetDate() - 365 (SQL Server) vào CTE nền tảng hoặc từng khối SELECT.
- Ánh xạ mã trạng thái: Thay các chuỗi trong SQL (ví dụ: 'APPR', 'COMP', 'QC') bằng mã thực tế được xác định trong bộ mã R5STATUS của bạn.
- Cấu hình kiểm tra: Việc trích xuất hoạt động 'Priority Updated' phụ thuộc vào bảng R5AUDITVALUES. Nếu tính năng kiểm tra bị tắt cho cột EVT_PRIORITY, hoạt động này sẽ không có trong dữ liệu.
- Tổ chức/đơn vị thuê: Nếu phiên bản EAM của bạn phục vụ nhiều tổ chức, hãy thêm bộ lọc EVT_ORG hoặc EVT_MRC (phòng ban) để tránh trộn lẫn dữ liệu.
- Ngôn ngữ: Truy vấn giả định tiêu đề cột theo tiếng Anh tiêu chuẩn. Nếu cơ sở dữ liệu dùng tên cột đã bản địa hóa, hãy điều chỉnh cho phù hợp.
Truy vấn mẫu 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 Các bước
- Xác nhận Hexagon EAM Databridge Outbound đã được cài đặt, cấp phép và cho phép truy cập dữ liệu lệnh công việc bảo trì cần trích xuất. Kiểm tra cấu hình giao dịch gửi đi, đích nhận, khả năng lên lịch và quyền truy cập vào các bảng hoặc khung nhìn nguồn. Dùng [Configure based on your system] để xác định đường dẫn menu quản trị phù hợp, vì tên menu và mã giao dịch thay đổi theo phiên bản EAM.
- Xác định các bảng hoặc khung nhìn Hexagon EAM chính thức chứa tiêu đề lệnh công việc, lịch sử trạng thái, lịch sử mức ưu tiên, yêu cầu vật tư, xuất vật tư, giao dịch giờ công, kết quả danh sách kiểm tra hoặc kiểm tra, phân công lịch trình, phê duyệt chất lượng, hồ sơ ký xác nhận và hồ sơ đóng lệnh. Thay từng chỗ giữ chỗ [Your ... table name] trong truy vấn bằng đối tượng tương ứng trong môi trường của bạn. Không giả định tiêu đề lệnh công việc hiện tại chứa lịch sử thay đổi.
- Cấu hình Databridge Outbound để gửi giao dịch XML hoặc CSV mỗi khi có thay đổi liên quan đến lệnh công việc được ghi nhận. Bao gồm số lệnh công việc, loại sự kiện, dấu thời gian sự kiện, người dùng nguồn, mức ưu tiên, loại lệnh công việc, phòng ban, ngày hoàn tất dự kiến, tài sản, giờ công thực tế và dấu thời gian làm mới hoặc trích xuất. Tạo ánh xạ gửi đi riêng nếu cấu trúc giao dịch nguồn khác nhau giữa sự kiện trạng thái, giờ công, vật tư, danh sách kiểm tra, lập lịch, chất lượng, ký xác nhận hoặc đóng lệnh.
- Cấu hình dữ liệu gửi đi để mỗi sự kiện nghiệp vụ được ghi thành một bản ghi sự kiện riêng. Không chỉ gửi trạng thái mới nhất của lệnh công việc. Với các mục giờ công, lần xuất vật tư, mục danh sách kiểm tra, thay đổi mức ưu tiên hoặc sự kiện lặp lại khác, hãy tạo một bản ghi cho mỗi lần phát sinh. Ánh xạ loại sự kiện Databridge sang một trong 13 giá trị ActivityName bắt buộc.
- Đưa dữ liệu XML hoặc CSV từ Databridge vào một vị trí lưu tạm có kiểm soát, sau đó nạp vào các đối tượng cơ sở dữ liệu được truy vấn tham chiếu hoặc thay các đối tượng nguồn trong truy vấn bằng bảng lưu tạm. Giữ nguyên mã định danh sự kiện gốc, số lệnh công việc, dấu thời gian sự kiện, người dùng nguồn và LastDataUpdate. Nếu Databridge gửi XML, hãy phân tích các nút sự kiện lặp lại thành từng dòng trước khi ánh xạ hoạt động. Nếu gửi CSV, hãy xác thực dấu phân cách, dấu ngoặc kép, mã hóa và định dạng dấu thời gian.
- Thay các chỗ giữ chỗ trong truy vấn cho đối tượng kết nối, tham số ngày và bộ lọc công ty. Truy vấn dùng nguồn sự kiện đã chuẩn hóa cho từng hoạt động rồi kết hợp kết quả bằng UNION ALL. Bảo đảm các cột nguồn trong mỗi khối có kiểu dữ liệu tương thích. Nếu nguồn không cung cấp thuộc tính được đề xuất, hãy trả về NULL cho thuộc tính đó thay vì tự tạo giá trị.
- Chạy truy vấn cho khoảng thời gian ban đầu khoảng ba đến sáu tháng. Xác nhận kết quả có các cột bắt buộc WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem và LastDataUpdate, cùng các thuộc tính được đề xuất nếu có. Sắp xếp kết quả theo WorkOrderNumber, EventTimestamp và ActivityName, đồng thời giữ lại các dòng trùng lặp nếu chúng đại diện cho những sự kiện nguồn riêng biệt.
- Đối chiếu số dòng trích xuất với số lượng dữ liệu Databridge gửi, số giao dịch nguồn và một số lệnh công việc mẫu trong Hexagon EAM. Kiểm tra các trường hợp thiếu lịch sử trạng thái, gửi trùng, dấu thời gian không hợp lệ và sự kiện nằm ngoài khoảng ngày đã chọn. Chỉ áp dụng quy tắc loại trùng ổn định khi cùng một sự kiện nguồn được gửi nhiều lần.
- Xuất kết quả cuối cùng thành CSV mã hóa UTF-8 hoặc định dạng nhật ký sự kiện khác được ProcessMind hỗ trợ. Mỗi dòng ghi một sự kiện, dùng dấu thời gian nhất quán có xử lý múi giờ, ánh xạ WorkOrderNumber làm mã định danh trường hợp, ActivityName làm hoạt động và EventTimestamp làm dấu thời gian sự kiện. Tải tệp lên ProcessMind và xác minh cả 13 tên hoạt động đều có trong mô hình sự kiện.
Cấu hình
- Cấu hình Hexagon EAM Databridge Outbound để gửi dữ liệu XML hoặc CSV ở cấp sự kiện. Tên giao dịch, màn hình quản trị và đường dẫn menu cụ thể tùy thuộc phiên bản Hexagon EAM đã cài đặt. Hãy dùng [Configure based on your system] thay vì giả định đường dẫn dành riêng cho một phiên bản.
- Cấu hình WorkOrderNumber làm mã định danh trường hợp trong ProcessMind, ActivityName làm trường hoạt động và EventTimestamp làm dấu thời gian sự kiện. Điền Hexagon EAM vào SourceSystem và dùng LastDataUpdate để ghi nhận thời điểm trích xuất hoặc làm mới dữ liệu.
- Cấu hình ánh xạ gửi đi cho cả 13 hoạt động: Work Order Created, Priority Updated, Work Order Approved, Material Requisition Created, Work Order Scheduled, Work Order Started, Material Issued, Labor Hours Recorded, Checklist Item Verified, Work Order Completed, Quality Control Passed, Work Order Signed Off và Work Order Closed.
- Giữ lại các sự kiện trong quá khứ. Chỉ có trường trạng thái hiện tại thì không thể tái dựng mọi lần chuyển trạng thái, cập nhật mức ưu tiên, ghi nhận giờ công, xuất vật tư, xác minh danh sách kiểm tra, phê duyệt hoặc ký xác nhận.
- Dùng khoảng thời gian từ ba đến sáu tháng cho lần trích xuất đầu tiên. Với các lần tải tăng dần, hãy dùng mốc thời gian Databridge gửi dữ liệu hoặc LastDataUpdate, đồng thời chừa một khoảng thời gian chồng lấn ngắn để tránh bỏ sót giao dịch đến muộn.
- Chỉ lọc theo công ty, địa điểm, tổ chức, loại lệnh công việc, phòng ban và trạng thái khi cần cho phân tích. Dùng [Your company filter] hoặc [Configure based on your system] cho các giới hạn riêng theo tổ chức.
- Đưa cả lệnh công việc đã đóng vào dữ liệu nếu phân tích bao quát toàn bộ vòng đời. Lọc chỉ lấy lệnh đang mở sẽ bỏ sót các hoạt động hoàn tất, kiểm soát chất lượng, ký xác nhận và đóng lệnh.
- Cấu hình rõ cách xử lý múi giờ. Chuyển mọi dấu thời gian nguồn về cùng một múi giờ đã thống nhất trước khi tải lên ProcessMind, đồng thời giữ lại múi giờ hoặc độ lệch ban đầu nếu có.
- Với tập dữ liệu lớn, hãy lọc ngay tại nguồn, giới hạn khoảng thời gian trích xuất, lập chỉ mục hoặc phân vùng theo dấu thời gian sự kiện và số lệnh công việc, rồi lưu tạm các tệp Databridge trước khi chuyển đổi. Tránh phân tích lại toàn bộ dữ liệu XML lịch sử nhiều lần.
- Các điều kiện tiên quyết gồm Databridge Outbound khả dụng, được phép đọc dữ liệu EAM liên quan, có quyền truy cập đích gửi dữ liệu hoặc cơ sở dữ liệu lưu tạm, và có quyền truy cập dữ liệu lệnh công việc, trạng thái, vật tư, giờ công, danh sách kiểm tra, lập lịch, phê duyệt, chất lượng, ký xác nhận và đóng lệnh.
- Nếu một sự kiện nghiệp vụ bắt buộc không có sẵn dưới dạng giao dịch Databridge gốc, hãy cấu hình khung nhìn nguồn hoặc bước chuyển đổi dữ liệu lưu tạm để tạo một dòng sự kiện riêng. ProcessMind không tự suy ra các hoạt động còn thiếu từ những dòng dữ liệu khác.
Truy vấn mẫu 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; Sẵn sàng bắt đầu?
Làm theo mẫu này để biến dữ liệu bảo trì thành thông tin hữu ích. Đội ngũ của chúng tôi có thể hỗ trợ bạn giải đáp các câu hỏi kỹ thuật trong quá trình chuẩn bị dữ liệu.
Giảm chậm trễ trong bảo trì tài sản, cải thiện hiệu quả ngay hôm nay
Giảm 30% thời gian chu kỳ và loại bỏ các điểm nghẽn tiềm ẩn.
Không cần thẻ tín dụng. Thiết lập chỉ trong vài phút.