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 thuộc tính nên thu thập
- Các hoạt động bảo trì quan trọng cần theo dõi
- Hướng dẫn kỹ thuật trích xuất dữ liệu từ SAP PM
Thuộc tính bảo trì tài sản
| Tên | Mô tả | ||
|---|---|---|---|
| Dấu thời gian sự kiện EventTimestamp | Ngày và giờ chính xác khi hoạt động diễn ra. | ||
| Mô tả Ghi lại thời điểm cụ thể một sự kiện xảy ra. Với thay đổi trạng thái, dữ liệu lấy từ thời điểm cập nhật trạng thái hệ thống; với công việc, dữ liệu lấy từ thời điểm xác nhận. Dấu thời gian chính xác rất quan trọng để tính thời gian chu kỳ, thời gian xử lý và xác định điểm nghẽn giữa các bước như 'Lập kế hoạch' và 'Thực hiện'. Vì sao điều này quan trọng Cần thiết để sắp xếp sự kiện đúng thứ tự và tính mọi KPI dựa trên thời lượng. Lấy dữ liệu ở đâu JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) Ví dụ 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| Hệ thống nguồn SourceSystem | Hệ thống nơi dữ liệu được tạo ra. | ||
| Mô tả Xác định SAP client hoặc phiên bản cụ thể, chẳng hạn như 'SAP_PM_PROD'. Khi có nhiều hệ thống ERP, thuộc tính này giúp phân biệt các bản ghi có thể trùng mã nhưng thuộc về các pháp nhân hoặc môi trường hệ thống khác nhau. Vì sao điều này quan trọng Đảm bảo dữ liệu không trùng lặp và truy xuất được nguồn gốc trong môi trường nhiều hệ thống. Lấy dữ liệu ở đâu Cấu hình hệ thống / nhật ký trích xuất Ví dụ SAP_ECC_P01SAP_S4H_100 | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian của lần trích xuất dữ liệu gần nhất. | ||
| Mô tả Cho biết lần gần nhất dữ liệu được làm mới trong mô hình dữ liệu process mining. Nhờ đó, chuyên viên phân tích biết thông tin chi tiết mới đến đâu và có thể kiểm tra độ mới của dữ liệu trên các dashboard theo dõi lượng việc tồn hoặc mức độ đáp ứng SLA theo thời gian thực. Vì sao điều này quan trọng Rất quan trọng để quản trị dữ liệu và tạo niềm tin vào các dashboard. Lấy dữ liệu ở đâu Dấu thời gian ETL Ví dụ 2023-11-01T12:00:00Z | |||
| Lệnh bảo trì MaintenanceWorkOrder | Mã định danh duy nhất của lệnh bảo trì. | ||
| Mô tả Lệnh bảo trì là chứng từ trung tâm trong SAP Plant Maintenance (bảng AUFK, trường AUFNR). Lệnh này liên kết yêu cầu bảo trì (thông báo) với tài nguyên, vật tư và chi phí thực hiện. Trong phân tích process mining, lệnh đóng vai trò là Case ID, giúp tái dựng toàn bộ vòng đời công việc bảo trì, từ lúc tạo đến khi hoàn tất về mặt kỹ thuật và nghiệp vụ. Vì sao điều này quan trọng Đây là khóa duy nhất liên kết mọi hoạt động, chi phí và dấu thời gian, giúp trực quan hóa luồng quy trình. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường AUFNR Ví dụ 00004001234540012345000040098765 | |||
| Tên hoạt động Activity | Công việc cụ thể hoặc thay đổi trạng thái đã diễn ra. | ||
| Mô tả Đại diện cho một bước trong quy trình bảo trì, chẳng hạn như 'Tạo lệnh bảo trì', 'Ghi nhận xuất kho vật tư' hoặc 'Xác nhận công việc trong lệnh'. Dữ liệu thường được lấy từ các bảng quản lý trạng thái (JEST) để ghi nhận thay đổi trạng thái, hoặc từ các bảng giao dịch (AFRU cho xác nhận, MKPF cho luân chuyển vật tư). Thuộc tính này xác định các nút trên sơ đồ quy trình. Vì sao điều này quan trọng Thuộc tính này cho biết quy trình đã diễn ra như thế nào, rất cần thiết để khám phá luồng quy trình và các biến thể. Lấy dữ liệu ở đâu Lấy từ JEST (trạng thái), AFRU (xác nhận), QMEL (thông báo) Ví dụ Tạo lệnh bảo trìĐã phát hành lệnhĐã hoàn tất kỹ thuật | |||
| Loại lệnh bảo trì MaintenanceOrderType | Phân loại lệnh bảo trì, chẳng hạn như bảo trì phòng ngừa hoặc khắc phục. | ||
| Mô tả Loại lệnh (AUART) trong SAP PM cho biết tính chất của công việc bảo trì. Các loại thường gặp gồm PM01 (khắc phục), PM02 (phòng ngừa) và PM03 (tân trang). Thuộc tính này rất cần thiết cho 'dashboard theo dõi tác động của lệnh bảo trì khẩn cấp' và để phân nhóm các biến thể quy trình, vì quy trình bảo trì phòng ngừa khác đáng kể so với quy trình xử lý sự cố. Vì sao điều này quan trọng Cần thiết để phân tích riêng công việc có kế hoạch và ngoài kế hoạch. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường AUART Ví dụ PM01PM02PM03 | |||
| Mã thiết bị EquipmentNumber | Mã định danh của tài sản vật lý cụ thể cần bảo trì. | ||
| Mô tả Mã thiết bị (EQUNR) xác định từng máy móc hoặc tài sản. Bằng cách tổng hợp dữ liệu theo trường này, chuyên viên phân tích có thể tạo dashboard 'Chi phí bảo trì và sản lượng tài sản' để tìm các thiết bị thường xuyên hỏng hóc, tốn kém chi phí sửa chữa. Thuộc tính này hỗ trợ phân tích bảo trì tập trung vào độ tin cậy. Vì sao điều này quan trọng Liên kết hiệu suất quy trình với từng tài sản vật lý. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường EQUNR Ví dụ 10004567BƠM-001ĐIỀU HÒA-202 | |||
| Mức ưu tiên bảo trì MaintenancePriority | Mức độ khẩn cấp được gán cho lệnh bảo trì. | ||
| Mô tả Cho biết mức ưu tiên (PRIOK) của công việc bảo trì, chẳng hạn như '1-Rất cao', '2-Cao' hoặc '3-Trung bình'. Trường này là dữ liệu đầu vào trực tiếp cho KPI 'Tỷ lệ lệnh bảo trì khẩn cấp'. Phân tích luồng theo mức ưu tiên giúp xác định liệu các lệnh ưu tiên cao có thực sự được xử lý nhanh hơn các công việc thông thường hay không. Vì sao điều này quan trọng Yếu tố chính để phân tích SLA và xác định công việc khẩn cấp. Lấy dữ liệu ở đâu Bảng SAP AFKO, trường PRIOK (hoặc AUFK qua chế độ xem) Ví dụ 1-Khẩn cấp2-Cao3-Trung bình4-Thấp | |||
| Ngày hoàn tất mục tiêu TargetFinishDate | Ngày dự kiến hoàn thành công việc bảo trì. | ||
| Mô tả Ngày này (thường là Ngày kết thúc cơ bản, GLTRP) là hạn chót của lệnh công việc. Đối chiếu ngày này với thời điểm hoàn thành thực tế để tính KPI “Tỷ lệ đáp ứng SLA”. Đây là mốc để xác định lệnh công việc hoàn thành đúng hạn hay trễ. Vì sao điều này quan trọng Mốc tham chiếu cho mọi phép tính Giao hàng đúng hạn (OTD). Lấy dữ liệu ở đâu Bảng SAP AFKO, trường GLTRP Ví dụ 2023-12-012023-12-15 | |||
| Người dùng tạo CreatedByUser | Tên người dùng đã tạo lệnh. | ||
| Mô tả Xác định người dùng (ERNAM) chịu trách nhiệm tạo lệnh công việc. Trường này được ánh xạ thành “Người dùng” trong mô hình chung. Bạn có thể phân tích lệnh được tạo thủ công hay tự động, đồng thời kiểm tra hoạt động “Tạo lệnh bảo trì”. Vì sao điều này quan trọng Hỗ trợ phân tích hành vi người dùng và kiểm tra. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường ERNAM Ví dụ JSMITHBSERVICEDDAVIS | |||
| Nhà máy bảo trì MaintenancePlant | Nhà máy phụ trách công tác bảo trì. | ||
| Mô tả Nhà máy (WERKS) là đơn vị tổ chức chính trong hoạt động logistics. Thuộc tính này phân tách dữ liệu theo cơ sở vật lý, rất cần thiết để so sánh hiệu suất giữa các địa điểm. Thuộc tính được ánh xạ thành 'Đơn vị kinh doanh' để hỗ trợ lọc dữ liệu theo cấp tổ chức trên dashboard. Vì sao điều này quan trọng Bộ lọc tổ chức chính để so sánh hiệu suất giữa các cơ sở. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường WERKS Ví dụ 100020003000 | |||
| Nhóm lập kế hoạch ResponsiblePlannerGroup | Nhóm chuyên viên lập kế hoạch phụ trách xử lý lệnh. | ||
| Mô tả Nhóm lập kế hoạch (INGRP) xác định đội ngũ hoặc bộ phận phụ trách lập kế hoạch công việc bảo trì. Thuộc tính này được ánh xạ thành 'Phòng ban' và rất quan trọng đối với dashboard theo dõi mức sử dụng tài nguyên và lịch làm việc, giúp xác định nhóm lập kế hoạch nào đang tạo điểm nghẽn trong giai đoạn chuẩn bị. Vì sao điều này quan trọng Xác định đội ngũ hành chính phụ trách quy trình lập kế hoạch. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường INGRP Ví dụ M01ELEMEC | |||
| Số thông báo NotificationNumber | Thông báo bảo trì đã dẫn đến lệnh này. | ||
| Mô tả Số thông báo (QMNUM) liên kết lệnh bảo trì với yêu cầu ban đầu (thông báo). Liên kết này cần thiết để tính toàn bộ thời gian từ lúc nhận yêu cầu bảo trì đến khi hoàn tất. Nếu thiếu liên kết, phân tích sẽ bỏ qua giai đoạn phát hiện và báo cáo ban đầu trong vòng đời bảo trì. Vì sao điều này quan trọng Kết nối giai đoạn thực hiện với giai đoạn yêu cầu/phát hiện. Lấy dữ liệu ở đâu Bảng SAP AUFK, trường QMNUM Ví dụ 1000050010000501 | |||
| Trạng thái hệ thống SystemStatus | Trạng thái kỹ thuật hiện tại của lệnh (ví dụ: REL, TECO). | ||
| Mô tả Chuỗi hoặc danh sách các trạng thái hệ thống đang áp dụng cho lệnh (từ JEST). Các giá trị thường gặp gồm CRTD (Đã tạo), REL (Đã phát hành), TECO (Hoàn tất kỹ thuật) và CLSD (Đã đóng). Dữ liệu này giúp lọc các trường hợp đang mở hoặc đã đóng trong “Bảng theo dõi tồn đọng và công việc đang thực hiện”. Vì sao điều này quan trọng Chỉ báo chính về giai đoạn hiện tại của lệnh. Lấy dữ liệu ở đâu SAP Function Module STATUS_TEXT_EDIT hoặc bảng JEST Ví dụ REL CNFTECOCRTD MACM | |||
| Trung tâm làm việc chính MainWorkCenter | Trung tâm làm việc hoặc đội ngũ chính được phân công thực hiện lệnh. | ||
| Mô tả Trung tâm làm việc chính (VAPLZ) đại diện cho nhóm kỹ thuật viên hoặc máy móc thực hiện công việc thực tế. Thuộc tính này được ánh xạ thành 'Đội ngũ' và rất quan trọng để phân tích hiệu quả thực hiện, chẳng hạn như thời gian sửa chữa trung bình của từng đội. Thuộc tính này cũng giúp phân biệt nhân công nội bộ với nhà thầu bên ngoài. Vì sao điều này quan trọng Cho phép phân tích hiệu suất theo từng nhóm tài nguyên. Lấy dữ liệu ở đâu Bảng SAP AFKO, trường VAPLZ (hoặc AUFK-VAPLZ tùy cấu hình) Ví dụ CƠKHÍ_01ĐỘI_ĐIỆNNHÀTHẦU_NGOÀI | |||
| Vị trí chức năng FunctionalLocation | Vị trí theo cấu trúc phân cấp nơi tài sản được lắp đặt. | ||
| Mô tả Cho biết vị trí trong cấu trúc kỹ thuật nơi thực hiện công việc bảo trì (TPLNR). Khác với thiết bị có thể di chuyển, vị trí chức năng là cố định. Thuộc tính này hỗ trợ dashboard theo dõi thời gian chu kỳ kiểm tra kỹ thuật, giúp so sánh hiệu suất giữa các khu vực khác nhau trong nhà máy, chẳng hạn như phòng nồi hơi và dây chuyền đóng gói. Vì sao điều này quan trọng Cho phép phân tích hiệu suất bảo trì theo vị trí và cấp bậc. Lấy dữ liệu ở đâu Bảng SAP IFLOT, trường TPLNR (hoặc qua AUFK-TPLNR) Ví dụ NHÀMÁY1-TÒANHÀ2-DÂYCHUYỀN01MỸ-TX-DAL-01 | |||
| Là công việc khẩn cấp IsEmergencyWork | Cờ cho biết lệnh công việc có phải là trường hợp khẩn cấp hay không. | ||
| Mô tả Thuộc tính đúng/sai được tính dựa trên Mức độ ưu tiên bảo trì. Nếu mức ưu tiên là “1” (hoặc mã được cấu hình cho trường hợp khẩn cấp), cờ này có giá trị đúng. Nhờ đó, bạn có thể lọc dữ liệu và tạo KPI “Tỷ lệ lệnh công việc khẩn cấp” mà không cần viết logic phức tạp ở lớp bảng điều khiển. Vì sao điều này quan trọng Giúp lọc dữ liệu để phân tích hoạt động bảo trì khắc phục sự cố nghiêm trọng. Lấy dữ liệu ở đâu Được tính từ MaintenancePriority Ví dụ truefalse | |||
| Là công việc làm lại IsRework | Cờ cho biết lệnh có phát sinh hoạt động làm lại hay không. | ||
| Mô tả Giá trị đúng/sai được tính để xác định quy trình có lặp lại hay không. Cụ thể, quy trình được xem là lặp nếu hoạt động “Thực hiện công việc bảo trì” diễn ra nhiều hơn một lần hoặc trạng thái chuyển từ “Hoàn tất kỹ thuật” về “Đang xử lý”. Dữ liệu này hỗ trợ KPI “Tỷ lệ làm lại trong bảo trì” và giúp phát hiện vấn đề về chất lượng. Vì sao điều này quan trọng Hỗ trợ trực tiếp việc phân tích kiểm soát chất lượng. Lấy dữ liệu ở đâu Được tính từ luồng quy trình Ví dụ truefalse | |||
| Số giờ nhân công theo kế hoạch PlannedLaborHours | Số giờ nhân công ước tính cho lệnh. | ||
| Mô tả Tổng khối lượng công việc theo kế hoạch (ARBEI) từ các hoạt động của lệnh. So sánh số liệu này với Thời lượng hoạt động thực tế trong bảng điều khiển “Hiệu quả lập kế hoạch và ước tính” để đánh giá độ chính xác của kế hoạch bảo trì. Vì sao điều này quan trọng Chỉ số cơ sở để phân tích độ chính xác của kế hoạch. Lấy dữ liệu ở đâu Bảng SAP AFKO (tổng khối lượng công việc theo kế hoạch của các hoạt động) Ví dụ 4.08.512.0 | |||
| Tổng chi phí thực tế TotalActualCost | Tổng chi phí thực tế được ghi nhận cho lệnh công việc. | ||
| Mô tả Tổng hợp chi phí nhân công, vật tư và dịch vụ (từ bảng PMCO). Thuộc tính này hỗ trợ bảng điều khiển “Chi phí và sản lượng bảo trì tài sản”, giúp quản lý nắm được tác động tài chính của các hoạt động bảo trì. Đây là dữ liệu cần thiết để đánh giá sửa chữa hay thay thế tài sản sẽ tiết kiệm chi phí hơn. Vì sao điều này quan trọng Bổ sung khía cạnh tài chính vào dữ liệu vận hành quy trình. Lấy dữ liệu ở đâu Bảng SAP PMCO (tổng giá trị loại 04, Thực tế) Ví dụ 150.002500.500.00 | |||
Hoạt động bảo trì tài sản
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đánh dấu hoàn tất kỹ thuật | Đánh dấu công việc bảo trì đã hoàn tất về mặt kỹ thuật và thực tế. Hoạt động này được ghi nhận khi trạng thái chuyển sang TECO (hoàn tất kỹ thuật). | ||
| Vì sao điều này quan trọng Đây là mốc kết thúc quan trọng nhất để phân tích vận hành, cho biết tài sản đã được khôi phục và công việc bảo trì đã hoàn tất. Lấy dữ liệu ở đâu Bảng JCDS, trạng thái I0045 (TECO). Thu thập Ghi nhận khi trạng thái trong JCDS chuyển sang TECO Loại sự kiện explicit | |||
| Đánh dấu hoàn tất nghiệp vụ | Đánh dấu lệnh bảo trì đã đóng hoàn toàn về mặt hành chính, không cho phép ghi nhận thêm chi phí. Hoạt động này được ghi nhận khi trạng thái chuyển sang CLSD (đã đóng). | ||
| Vì sao điều này quan trọng Đây là điểm kết thúc cuối cùng trong vòng đời lệnh, rất quan trọng để đảm bảo độ chính xác của dữ liệu và tuân thủ quy định lưu trữ hồ sơ. Lấy dữ liệu ở đâu Bảng JCDS, trạng thái I0046 (CLSD). Thu thập Ghi nhận khi trạng thái trong JCDS chuyển sang CLSD Loại sự kiện explicit | |||
| Ghi nhận xuất kho vật tư | Ghi nhận việc sử dụng phụ tùng hoặc vật tư thực tế cho lệnh bảo trì. Hoạt động này lấy dữ liệu từ tiêu đề chứng từ vật tư liên kết với lệnh. | ||
| Vì sao điều này quan trọng Xác nhận phụ tùng đã có sẵn và được lấy khỏi kho, tác động trực tiếp đến phân tích thời gian chờ phụ tùng. Lấy dữ liệu ở đâu Bảng MSEG/MKPF, loại chuyển động 261 (xuất vật tư cho lệnh). Thu thập Ghi nhận khi thực hiện giao dịch MIGO/MB1A Loại sự kiện explicit | |||
| Phát hành lệnh bảo trì | Cho biết việc lập kế hoạch đã hoàn tất và lệnh được phép thực hiện. Hoạt động này được ghi nhận khi trạng thái hệ thống chuyển sang REL. | ||
| Vì sao điều này quan trọng Mốc này phân định giai đoạn lập kế hoạch với giai đoạn thực hiện, rất quan trọng để đo thời gian lập kế hoạch và ước tính. Lấy dữ liệu ở đâu Bảng JCDS (chứng từ thay đổi trạng thái), trạng thái I0002 (REL). Thu thập Ghi nhận khi trạng thái trong JCDS chuyển sang REL Loại sự kiện explicit | |||
| Tạo lệnh bảo trì | Đánh dấu thời điểm hệ thống tạo đối tượng lệnh bảo trì. Hoạt động này lấy dấu thời gian tạo từ bảng dữ liệu chính của lệnh. | ||
| Vì sao điều này quan trọng Đây là sự kiện mốc chính của hồ sơ, đánh dấu bước chuyển từ yêu cầu sang lập kế hoạch và thực hiện. Lấy dữ liệu ở đâu Bảng AUFK, trường ERDAT (ngày) và ERFZEIT (giờ). Thu thập Ghi nhận khi thực hiện giao dịch IW31 Loại sự kiện explicit | |||
| Xác nhận công việc trong lệnh | Ghi nhận thời gian thực tế kỹ thuật viên dành cho một công việc cụ thể. Hoạt động này phản ánh công việc thực tế được thực hiện trên tài sản. | ||
| Vì sao điều này quan trọng Hoạt động này là nguồn dữ liệu chính để tính thời gian sửa chữa trung bình và chi phí nhân công. Lấy dữ liệu ở đâu Bảng AFRU (xác nhận lệnh). Thu thập Ghi nhận khi thực hiện giao dịch IW41 Loại sự kiện explicit | |||
| Ghi nhận số đo | Ghi nhận việc nhập chứng từ đo lường, chẳng hạn như chỉ số bộ đếm hoặc đánh giá tình trạng. Hoạt động này thường tương ứng với sự kiện kiểm tra kỹ thuật. | ||
| Vì sao điều này quan trọng Cần thiết cho bảo trì dựa trên tình trạng và theo dõi thời gian chu kỳ kiểm tra kỹ thuật. Lấy dữ liệu ở đâu Bảng IMRG (chứng từ đo lường), liên kết với thiết bị hoặc vị trí chức năng. Thu thập Ghi nhận khi tạo chứng từ đo lường Loại sự kiện explicit | |||
| Hủy hoàn tất kỹ thuật | Ghi nhận việc hủy trạng thái hoàn tất kỹ thuật, cho biết lệnh đã được mở lại. Thao tác này tạo vòng lặp làm lại trong mô hình quy trình. | ||
| Vì sao điều này quan trọng Đây là chỉ báo chính của KPI tỷ lệ làm lại trong bảo trì, giúp phát hiện việc đóng lệnh quá sớm hoặc vấn đề về chất lượng. Lấy dữ liệu ở đâu Bảng JCDS, trạng thái I0045 (TECO) chuyển sang không hoạt động. Thu thập Ghi nhận khi trạng thái TECO bị hủy kích hoạt Loại sự kiện explicit | |||
| Kết chuyển chi phí lệnh | Cho biết chi phí đã tập hợp trên lệnh được chuyển sang đối tượng kiểm soát chi phí, chẳng hạn như trung tâm chi phí. Hoạt động này lấy dữ liệu từ chứng từ kiểm soát chi phí. | ||
| Vì sao điều này quan trọng Theo dõi khâu hoàn tất tài chính và hỗ trợ KPI thời gian kết chuyển chi phí. Lấy dữ liệu ở đâu Bảng COBK (tiêu đề chứng từ đối tượng CO), liên kết với lệnh. Thu thập Ghi nhận khi thực hiện giao dịch kết chuyển KO88 Loại sự kiện explicit | |||
| Lên lịch lệnh bảo trì | Cho biết các công việc được xếp lịch cụ thể theo năng lực hoặc ngày thực hiện. Hoạt động này được suy ra từ việc gán trạng thái Dispatch cho các công việc. | ||
| Vì sao điều này quan trọng Đo hiệu quả phân bổ tài nguyên và hỗ trợ dashboard theo dõi mức sử dụng tài nguyên và lịch làm việc. Lấy dữ liệu ở đâu Bảng JCDS (chứng từ thay đổi trạng thái) cho các công việc (ObjType OV), trạng thái I0009 (DSPT). Thu thập So sánh trường trạng thái trước và sau khi thay đổi Loại sự kiện inferred | |||
| Tạo thông báo bảo trì | Ghi nhận thời điểm tạo thông báo bảo trì, thường là bước khởi đầu dẫn đến một lệnh bảo trì. Hoạt động này lấy dấu thời gian tạo bản ghi từ bảng QMEL, liên kết yêu cầu ban đầu với lệnh thực hiện. | ||
| Vì sao điều này quan trọng Hoạt động này đánh dấu điểm bắt đầu của quy trình bảo trì từ đầu đến cuối, giúp tính thời gian từ lúc phát hiện sự cố đến khi tạo lệnh. Lấy dữ liệu ở đâu Bảng QMEL, trường ERDAT (ngày tạo) và MZEIT (giờ). Liên kết với lệnh qua QMEL-AUFNR. Thu thập Ghi nhận khi tạo bản ghi trong bảng QMEL Loại sự kiện explicit | |||
| Tạo yêu cầu mua hàng | Cho biết yêu cầu mua hàng hóa hoặc dịch vụ từ bên ngoài đã được tạo. Hoạt động này kết nối lệnh bảo trì nội bộ với chuỗi cung ứng bên ngoài. | ||
| Vì sao điều này quan trọng Thông tin này rất quan trọng để phân tích chậm trễ do nhà cung cấp bên ngoài hoặc việc mua vật tư không có sẵn trong kho. Lấy dữ liệu ở đâu Bảng EBAN, liên kết qua phân bổ tài khoản với AUFK-AUFNR. Thu thập Ghi nhận khi tạo bản ghi EBAN Loại sự kiện explicit | |||
| Thay đổi mức ưu tiên bảo trì | Ghi nhận thay đổi mức ưu tiên của lệnh bảo trì, chẳng hạn như nâng lên mức Khẩn cấp. Dữ liệu được lấy từ chứng từ thay đổi liên kết với dữ liệu chính của lệnh. | ||
| Vì sao điều này quan trọng Theo dõi thay đổi mức ưu tiên giúp giải thích các sai lệch trong quy trình và hỗ trợ dashboard theo dõi tác động của lệnh bảo trì khẩn cấp bằng cách phát hiện các lần nâng mức ưu tiên đột xuất. Lấy dữ liệu ở đâu Bảng CDPOS/CDHDR, Object Class AUFTRAG, trường PRIOK. Thu thập Ghi nhận trong chứng từ thay đổi (CDPOS) Loại sự kiện explicit | |||
| Thêm vật tư vào lệnh | Ghi nhận việc thêm phụ tùng hoặc vật tư vào danh sách thành phần của lệnh bảo trì. Hoạt động này được lấy từ thời điểm tạo một dòng đặt trước vật tư. | ||
| Vì sao điều này quan trọng Đánh dấu thời điểm bắt đầu chu trình mua sắm các phụ tùng cần thiết, hỗ trợ dashboard theo dõi thời gian mua phụ tùng. Lấy dữ liệu ở đâu Bảng RESB, trường BDTER (ngày yêu cầu) hoặc dấu thời gian tạo. Thu thập Ghi nhận khi thêm dòng vào RESB Loại sự kiện explicit | |||
Hướng dẫn trích xuất
Các bước
Xác định giao diện nguồn dữ liệu: Chọn cách truy cập giao diện SQL của SAP S/4HANA. Thông thường, bạn có thể dùng SAP HANA Studio, ABAP Development Tools (ADT) trong Eclipse hoặc chuỗi kết nối DBaaS nếu cơ sở dữ liệu HANA được cung cấp cho lớp phân tích dữ liệu.
Kiểm tra các khung nhìn CDS: Đảm bảo các khung nhìn Core Data Services (CDS) tiêu chuẩn đang hoạt động trong hệ thống S/4HANA. Các khung nhìn chính cần dùng là I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation và I_MeasurementDocument. Bạn cũng cần quyền truy cập bảng lịch sử trạng thái hệ thống JCDS và các bảng chứng từ thay đổi (CDHDR/CDPOS) để dựng lại toàn bộ lịch sử sự kiện, vì các khung nhìn CDS tiêu chuẩn thường chỉ hiển thị trạng thái hiện tại.
Chuẩn bị môi trường SQL: Mở trình soạn thảo SQL. Đảm bảo người dùng của bạn có quyền SELECT trên các khung nhìn SQL DDL, thường thuộc lược đồ SAPABAP1 hoặc lược đồ tương tự, đối với các đối tượng nêu trên.
Chạy truy vấn trích xuất: Sao chép tập lệnh SQL được cung cấp vào trình soạn thảo. Thay [Your Client Number] bằng mã SAP client của bạn, chẳng hạn 100. Nếu lọc theo khoảng ngày cụ thể, hãy cập nhật bộ lọc EventTimestamp trong các mệnh đề WHERE.
Chuyển đổi dữ liệu: Truy vấn xử lý hầu hết các bước chuyển đổi, chẳng hạn chuyển kiểu dấu thời gian và ánh xạ mã trạng thái sang nội dung dễ đọc. Tuy nhiên, nếu hệ thống đích yêu cầu, hãy đảm bảo cột EventTimestamp được xuất theo ISO 8601 (YYYY-MM-DDTHH:MM:SS).
Xuất kết quả: Chạy truy vấn và xuất kết quả sang tệp CSV hoặc Parquet. Đặt mã hóa UTF-8 để xử lý đúng ký tự đặc biệt trong tên người dùng hoặc phần mô tả.
Kiểm tra ánh xạ cột: Mở một phần dữ liệu đã xuất và đảm bảo các cột MaintenanceWorkOrder, Activity và EventTimestamp đều có dữ liệu. Kiểm tra cột Activity có các giá trị cụ thể theo yêu cầu, chẳng hạn Maintenance Order Created và Goods Issue Posted.
Tải lên ProcessMind: Nhập tệp phẳng đã kiểm tra vào ProcessMind. Ánh xạ cột Activity vào trường Activity ID, MaintenanceWorkOrder vào trường Case ID và EventTimestamp vào trường Timestamp.
Cấu hình
- Bộ lọc client: Hệ thống SAP có thể có nhiều client. Luôn lọc theo
MANDThoặcClient(ví dụ: '100') để tránh dữ liệu trùng lặp hoặc lẫn dữ liệu giữa các client. - Khoảng ngày: Nên lọc
CreationDatecủa lệnh bảo trì trong 6 đến 12 tháng gần nhất. Truy vấn toàn bộ lịch sử trongJCDS(Trạng thái) hoặcCDPOS(Chứng từ thay đổi) mà không lọc ngày có thể khiến truy vấn hết thời gian chờ. - Mã ngôn ngữ: Truy vấn mặc định dùng tiếng Anh ('E'). Nếu tổ chức của bạn dùng ngôn ngữ chính khác cho phần mô tả, hãy điều chỉnh bộ lọc ngôn ngữ.
- Quyền truy cập hệ thống: Cần quyền truy cập schema ABAP Core Data Services hoặc các bảng HANA bên dưới. Cần có quyền truy cập dữ liệu thô trong JCDS và CDHDR để phân tích lịch sử trạng thái, vì CDS view thuần thường chỉ phản ánh trạng thái tại một thời điểm.
- Loại lệnh: Truy vấn trích xuất mọi loại lệnh. Nếu chỉ muốn phân tích một số tình huống bảo trì nhất định, bạn có thể lọc
MaintenanceOrderType(ví dụ: chỉ lấy PM01, PM02).
Truy vấn mẫu sql
/* Activity 1: Maintenance Notification Created */
SELECT
CAST(N.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(N.CreationDate, ' '), N.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
N.MaintenanceOrderType,
N.MaintenancePriority,
N.Equipment AS EquipmentNumber,
N.FunctionalLocation,
N.MaintenancePlant,
N.MaintenancePlannerGroup AS ResponsiblePlannerGroup,
N.MainWorkCenter,
N.MaintenanceNotification AS NotificationNumber,
CAST(NULL AS DATE) AS TargetFinishDate,
N.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceNotification N
JOIN I_MaintenanceOrder O ON N.MaintenanceOrder = O.MaintenanceOrder
WHERE N.MaintenanceOrder IS NOT NULL AND N.MaintenanceOrder <> ''
UNION ALL
/* Activity 2: Maintenance Order Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Created' AS Activity,
O.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrder O
UNION ALL
/* Activity 3: Maintenance Priority Changed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Priority Changed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(H.UDATE, ' '), H.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
H.USERNAME AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM CDHDR H
JOIN CDPOS P ON H.OBJECTCLAS = P.OBJECTCLAS AND H.OBJECTID = P.OBJECTID AND H.CHANGENR = P.CHANGENR
JOIN I_MaintenanceOrder O ON O.MaintenanceOrder = H.OBJECTID
WHERE H.OBJECTCLAS = 'ORDER'
AND P.TABNAME = 'AFKO'
AND P.FNAME = 'PRIOK'
UNION ALL
/* Activity 4: Maintenance Order Released */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Released' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0002' /* REL Status */
AND J.INACT = ' '
UNION ALL
/* Activity 5: Material Component Added */
SELECT
CAST(C.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Material Component Added' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(C.CreationDate, ' '), COALESCE(C.CreationTime, '000000')), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrderComponent C
JOIN I_MaintenanceOrder O ON C.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 6: Purchase Requisition Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Purchase Requisition Created' AS Activity,
PR.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
PR.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_PurchasingDocumentItem PR
JOIN I_MaintenanceOrder O ON PR.ServiceMaintenanceOrder = O.MaintenanceOrder
WHERE PR.PurchasingDocumentCategory = 'B' /* Requisition */
UNION ALL
/* Activity 7: Goods Issue Posted */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Goods Issue Posted' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(MD.CreationDate, ' '), MD.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
MD.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaterialDocumentItem MD
JOIN I_MaintenanceOrder O ON MD.MaintenanceOrder = O.MaintenanceOrder
WHERE MD.GoodsMovementType = '261'
UNION ALL
/* Activity 8: Work Order Scheduled (Operation Dispatched) */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Work Order Scheduled' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrderOperation OP ON J.OBJNR = OP.MaintenanceOrderOperationInternalID
JOIN I_MaintenanceOrder O ON OP.MaintenanceOrder = O.MaintenanceOrder
WHERE J.STAT = 'I0019' /* DSP Dispatched Status */
AND J.INACT = ' '
UNION ALL
/* Activity 9: Order Operation Confirmed */
SELECT
CAST(CNF.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Operation Confirmed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(CNF.CreationDate, ' '), CNF.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
CNF.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintOrderConfirmation CNF
JOIN I_MaintenanceOrder O ON CNF.MaintenanceOrder = O.MaintenanceOrder
WHERE CNF.IsReversed = ' '
UNION ALL
/* Activity 10: Measurement Reading Recorded */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Measurement Reading Recorded' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(M.CreationDate, ' '), M.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
M.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MeasurementDocument M
JOIN I_MaintenanceOrder O ON M.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 11: Technical Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = ' '
UNION ALL
/* Activity 12: Technical Completion Reversed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Reversed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = 'X' /* Inactive indicates it was removed/reversed */
AND J.CHIND = 'U' /* Update indicator */
UNION ALL
/* Activity 13: Order Cost Settled */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Cost Settled' AS Activity,
JE.CreationDateTime AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
JE.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_ActualPlanJrnlEntryItem JE
JOIN I_MaintenanceOrder O ON JE.OrderID = O.MaintenanceOrder
WHERE JE.BusinessTransactionType = 'KOAO' /* Settlement */
UNION ALL
/* Activity 14: Business Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Business Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0046' /* CLSD Status */
AND J.INACT = ' ' Các bước
- Xác nhận bạn có quyền đọc trực tiếp các bảng AUFK, AFVC, JEST, QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG cùng các bảng chứng từ thay đổi và chứng từ kiểm soát liên quan. Xác nhận tên vật lý chính xác và cách ánh xạ trường trong cơ sở dữ liệu SAP của bạn, vì các trường khả dụng và cấu trúc bảng được sao chép có thể khác nhau tùy cách triển khai.
- Cấu hình kết nối trích xuất, thông tin đăng nhập, ngày bắt đầu và ngày kết thúc trích xuất cùng mọi bộ lọc theo công ty cần thiết. Ban đầu, hãy dùng khoảng thời gian cuốn chiếu từ ba đến sáu tháng. Sau khi kiểm tra hiệu suất và tính đầy đủ của dữ liệu thành công, bạn có thể mở rộng khoảng thời gian.
- Trích xuất thuộc tính đầu mục lệnh từ AUFK, thuộc tính hoạt động từ AFVC và bản ghi trạng thái từ JEST. Nối các bản ghi liên quan đến lệnh bằng trường số lệnh trong lược đồ SAP của bạn. Trong nhiều hệ thống SAP, JEST chỉ lưu trạng thái hiện tại. Để lấy dấu thời gian trạng thái trong quá khứ, cần có nguồn lịch sử trạng thái hoặc nguồn chứng từ thay đổi. Nếu JEST không lưu lịch sử thay đổi trạng thái, hãy cấu hình [Your status history table] cùng các trường dấu thời gian tương ứng.
- Trích xuất dữ liệu tạo thông báo từ QMEL, tạo thành phần từ RESB, tạo yêu cầu mua hàng từ EBAN, thông tin xuất hàng từ MSEG và MKPF, xác nhận từ AFRU, số đo từ IMRG và bản ghi quyết toán kiểm soát từ [Your controlling document table]. Trích xuất thay đổi mức độ ưu tiên từ [Your order change document table] và [Your change document item table]. Cần có các nguồn này vì chỉ AUFK, AFVC và JEST không thể cung cấp đủ 14 hoạt động được yêu cầu.
- Chuẩn hóa tất cả dấu thời gian nguồn về cùng múi giờ và một kiểu dữ liệu dấu thời gian. Chuyển các trường ngày và giờ SAP hoặc trường dấu thời gian trong cơ sở dữ liệu sang EventTimestamp. Giữ nguyên độ chính xác của dấu thời gian mà hệ thống nguồn cung cấp. Áp dụng khoảng thời gian trích xuất cho EventTimestamp, không chỉ cho ngày tạo lệnh.
- Tạo một dòng sự kiện cho mỗi lần phát sinh trong nguồn. Không dựa vào ProcessMind để tự suy ra sự kiện. Gán đúng giá trị Activity theo truy vấn, điền MaintenanceWorkOrder, EventTimestamp, SourceSystem, LastDataUpdate và các thuộc tính đề xuất hiện có. Giữ lại mã định danh nguồn nếu cần để kiểm tra dòng trùng lặp.
- Chỉ loại bỏ các sự kiện nguồn trùng khớp hoàn toàn bằng khóa nguồn ổn định. Không gộp các lần thay đổi trạng thái, xác nhận, luân chuyển vật tư, số đo hoặc chứng từ quyết toán xảy ra vào những thời điểm khác nhau. Nếu nhiều bản ghi nguồn đại diện cho cùng một sự kiện nghiệp vụ, hãy ghi rõ thứ tự ưu tiên nguồn trong tài liệu đặc tả trích xuất.
- Xác minh cả 14 giá trị hoạt động đều xuất hiện thành các dòng riêng, mỗi dòng có mã định danh trường hợp và dấu thời gian, đồng thời dấu thời gian nằm trong khoảng trích xuất yêu cầu. Đối chiếu số lượng với báo cáo SAP hoặc số dòng trong bảng nguồn theo cùng bộ lọc.
- Xuất kết quả dưới dạng CSV UTF-8 hoặc định dạng nhật ký sự kiện khác được ProcessMind hỗ trợ. Mỗi dòng tương ứng với một sự kiện. Bao gồm các cột bắt buộc với đúng tên đã cấu hình, giữ dấu thời gian ISO 8601 nếu định dạng hỗ trợ, rồi tải tệp lên hoặc cấu hình kết nối cơ sở dữ liệu trong ProcessMind. Đặt MaintenanceWorkOrder làm mã định danh trường hợp, Activity làm cột hoạt động và EventTimestamp làm cột dấu thời gian.
Cấu hình
- Bảng nguồn và ánh xạ: AUFK cung cấp dữ liệu tiêu đề lệnh, AFVC cung cấp dữ liệu hoạt động, còn JEST cung cấp dữ liệu trạng thái hệ thống. Để tạo đủ 14 hoạt động, bạn cũng cần QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG, các nguồn chứng từ thay đổi và các nguồn chứng từ kiểm soát. Trước khi chạy, hãy xác minh tên trường chính xác trong cơ sở dữ liệu SAP của bạn.
- Các cột đầu ra bắt buộc: Mỗi dòng sự kiện phải có MaintenanceWorkOrder, Activity, EventTimestamp, SourceSystem và LastDataUpdate.
- Các cột đầu ra nên có: Khi có dữ liệu, hãy điền MaintenanceOrderType, MaintenancePriority, EquipmentNumber, FunctionalLocation, MaintenancePlant, ResponsiblePlannerGroup, MainWorkCenter, NotificationNumber, TargetFinishDate, CreatedByUser và SystemStatus.
- Khoảng thời gian: Bắt đầu với dữ liệu từ ba đến sáu tháng. Dùng mốc bắt đầu có tính bao gồm và mốc kết thúc không bao gồm để tránh trùng sự kiện giữa các lần trích xuất tăng dần. Khi tải bù dữ liệu lịch sử, hãy chia dữ liệu theo tháng hoặc kỳ khác mà cơ sở dữ liệu hỗ trợ.
- Bộ lọc: Cấu hình [Company Code filter], [Order Type filter], [Maintenance Plant filter], [Notification Type filter] và [Document Type filter] theo phạm vi báo cáo. Không dùng bộ lọc loại bỏ các lệnh không có thông báo, hoạt động, thành phần, yêu cầu mua hàng, xác nhận, số đo hoặc chứng từ quyết toán.
- Lịch sử trạng thái: JEST thường lưu các trạng thái được gán, nhưng để xem thay đổi trạng thái trong quá khứ, bạn có thể cần [Your status history table] hoặc chứng từ thay đổi. Hãy cấu hình nguồn có dấu thời gian thay đổi trạng thái và lịch sử chuyển trạng thái.
- Lịch sử mức độ ưu tiên: Để theo dõi thay đổi mức độ ưu tiên, cần [Your order change document table] và [Your change document item table], cùng mã định danh đối tượng, tên trường, giá trị cũ, giá trị mới và dấu thời gian thay đổi tương ứng.
- Giá trị hệ thống nguồn: Thay [Your SAP system identifier] bằng tên hệ thống nguồn ổn định mà tổ chức bạn sử dụng.
- Lần cập nhật dữ liệu gần nhất: Thay [Your extraction timestamp] bằng dấu thời gian được tạo ở đầu hoặc cuối lần trích xuất. Dùng cùng một giá trị cho mọi dòng trong lần chạy đó.
- Hiệu năng: Nếu được phép, hãy lập chỉ mục hoặc phân vùng các cột dùng để nối và lọc. Giới hạn khoảng thời gian trích xuất, chỉ chọn các cột cần thiết, xử lý kỳ dữ liệu lớn theo từng đợt và lưu kết quả trích xuất trung gian nếu việc nối trực tiếp giữa các lược đồ chậm.
- Điều kiện tiên quyết: Cần có kết nối cơ sở dữ liệu, quyền đọc tất cả bảng nguồn đã cấu hình, quyền truy cập dữ liệu liên quan đến Plant Maintenance, Materials Management, Controlling và dữ liệu đo lường, cùng phê duyệt trích xuất dữ liệu vận hành. Hãy xác nhận các giới hạn về sao chép dữ liệu hoặc giấy phép của nền tảng cơ sở dữ liệu.
Truy vấn mẫu sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_ts,
CAST('[End date and time]' AS TIMESTAMP) AS end_ts,
CAST('[Your SAP system identifier]' AS VARCHAR(100)) AS source_system,
CAST('[Your extraction timestamp]' AS TIMESTAMP) AS last_data_update
),
order_base AS (
SELECT
a.[Order number field] AS MaintenanceWorkOrder,
a.[Order type field] AS MaintenanceOrderType,
a.[Priority field] AS MaintenancePriority,
a.[Equipment field] AS EquipmentNumber,
a.[Functional location field] AS FunctionalLocation,
a.[Maintenance plant field] AS MaintenancePlant,
a.[Planner group field] AS ResponsiblePlannerGroup,
a.[Main work center field] AS MainWorkCenter,
a.[Notification number field] AS NotificationNumber,
a.[Target finish date field] AS TargetFinishDate,
a.[Created by field] AS CreatedByUser,
a.[System status field] AS SystemStatus,
a.[Creation date field] AS OrderCreationDate,
a.[Creation time field] AS OrderCreationTime
FROM AUFK a
WHERE a.[Order number field] IS NOT NULL
AND a.[Company code field] = '[Your company code filter]'
),
base_events AS (
SELECT
o.MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
CAST(q.[Notification creation timestamp field] AS TIMESTAMP) AS EventTimestamp,
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN QMEL q ON q.[Notification number field] = o.NotificationNumber
CROSS JOIN params p
WHERE q.[Notification creation timestamp field] >= p.start_ts
AND q.[Notification creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Created',
CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o CROSS JOIN params p
WHERE CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) >= p.start_ts
AND CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Priority Changed',
CAST(c.[Change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, c.[New priority value field], o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your order change document table] h ON h.[Order object identifier field] = o.MaintenanceWorkOrder
JOIN [Your change document item table] c ON c.[Change document number field] = h.[Change document number field]
CROSS JOIN params p
WHERE c.[Changed field name field] = '[Your priority field name]'
AND CAST(c.[Change timestamp field] AS TIMESTAMP) >= p.start_ts
AND CAST(c.[Change timestamp field] AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Released',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'REL'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'REL'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Material Component Added',
CAST(r.[Reservation creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN RESB r ON r.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE r.[Reservation line creation timestamp field] >= p.start_ts
AND r.[Reservation line creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Purchase Requisition Created',
CAST(e.[Purchase requisition creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN EBAN e ON e.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE e.[Purchase requisition creation timestamp field] >= p.start_ts
AND e.[Purchase requisition creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Goods Issue Posted',
CAST(m.[Material document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN MSEG m ON m.[Order number field] = o.MaintenanceWorkOrder
JOIN MKPF k ON k.[Material document number field] = m.[Material document number field]
AND k.[Material document year field] = m.[Material document year field]
CROSS JOIN params p
WHERE m.[Movement type field] IN ('201', '261')
AND k.[Material document timestamp field] >= p.start_ts
AND k.[Material document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Work Order Scheduled',
CAST(v.[Dispatch status timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFVC v ON v.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE v.[Dispatch status field] = '[Your dispatch status value]'
AND v.[Dispatch status timestamp field] >= p.start_ts
AND v.[Dispatch status timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Operation Confirmed',
CAST(f.[Confirmation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFRU f ON f.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE f.[Confirmation timestamp field] >= p.start_ts
AND f.[Confirmation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Measurement Reading Recorded',
CAST(i.[Measurement document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN IMRG i ON i.[Equipment field] = o.EquipmentNumber
CROSS JOIN params p
WHERE i.[Measurement document timestamp field] >= p.start_ts
AND i.[Measurement document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'TECO'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Reversed',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, s.[Resulting system status field]
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Previous status code field] = 'TECO'
AND s.[Status code field] <> 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Cost Settled',
CAST(c.[Controlling document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your controlling document table] c ON c.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE c.[Controlling document timestamp field] >= p.start_ts
AND c.[Controlling document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Business Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'CLSD'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'CLSD'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
)
SELECT
e.MaintenanceWorkOrder,
e.Activity,
e.EventTimestamp,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaintenanceOrderType,
e.MaintenancePriority,
e.EquipmentNumber,
e.FunctionalLocation,
e.MaintenancePlant,
e.ResponsiblePlannerGroup,
e.MainWorkCenter,
e.NotificationNumber,
e.TargetFinishDate,
e.CreatedByUser,
e.SystemStatus
FROM base_events e
CROSS JOIN params p
WHERE e.MaintenanceWorkOrder IS NOT NULL
AND e.EventTimestamp IS NOT NULL
AND e.EventTimestamp >= p.start_ts
AND e.EventTimestamp < p.end_ts
ORDER BY e.MaintenanceWorkOrder, e.EventTimestamp, e.Activity; Sẵn sàng bắt đầu?
Dùng các tài nguyên này để bắt đầu sơ đồ hóa quy trình bảo trì và tìm cơ hội tiết kiệm chi phí. Khung hướng dẫn giúp bạn chuẩn bị cấu trúc dữ liệu phù hợp để nắm rõ hoạt động vận hành.
Xử lý điểm nghẽn trong bảo trì tài sản trên SAP ngay hôm nay
Bắt đầu giảm 30% thời gian chu kỳ bảo trì ngay hôm nay
Không cần thẻ tín dụng... Thiết lập trong 5 phút