เทมเพลตข้อมูลการบำรุงรักษาสินทรัพย์ของคุณ
เทมเพลตข้อมูลการบำรุงรักษาสินทรัพย์ของคุณ
- แอตทริบิวต์ที่แนะนำให้เก็บรวบรวม
- กิจกรรมบำรุงรักษาสำคัญที่ควรติดตาม
- แนวทางสกัดข้อมูลทางเทคนิคสำหรับ SAP PM
แอตทริบิวต์การบำรุงรักษาสินทรัพย์
| ชื่อ | คำอธิบาย | ||
|---|---|---|---|
| ชื่อกิจกรรม Activity | งานหรือการเปลี่ยนสถานะที่เกิดขึ้น. | ||
| คำอธิบาย แสดงขั้นตอนที่เกิดขึ้นในกระบวนการซ่อมบำรุง เช่น 'สร้างใบสั่งงานซ่อมบำรุง' 'บันทึกการเบิกสินค้า' หรือ 'ยืนยันงานปฏิบัติการในใบสั่งงาน' โดยทั่วไปจะดึงข้อมูลการเปลี่ยนสถานะจากตารางจัดการสถานะ (JEST) หรือดึงข้อมูลจากตารางธุรกรรม เช่น AFRU สำหรับการยืนยันงาน และ MKPF สำหรับการเคลื่อนไหวของวัสดุ แอตทริบิวต์นี้ใช้กำหนดโหนดในแผนผังกระบวนการ. เหตุผลที่สำคัญ แอตทริบิวต์นี้ระบุว่าเกิดอะไรขึ้น ซึ่งจำเป็นต่อการค้นหาลำดับการไหลและรูปแบบต่างๆ ของกระบวนการ. แหล่งข้อมูล ดึงข้อมูลจาก JEST (สถานะ), AFRU (การยืนยันงาน), QMEL (ใบแจ้งซ่อม) ตัวอย่าง สร้างใบสั่งงานซ่อมบำรุงอนุมัติใบสั่งงานเสร็จสิ้นทางเทคนิค | |||
| ใบสั่งงานซ่อมบำรุง MaintenanceWorkOrder | รหัสเฉพาะของใบสั่งงานซ่อมบำรุง. | ||
| คำอธิบาย ใบสั่งงานซ่อมบำรุงเป็นเอกสารหลักใน SAP Plant Maintenance (ตาราง AUFK ฟิลด์ AUFNR) ซึ่งเชื่อมข้อกำหนดการซ่อมบำรุง (ใบแจ้งซ่อม) กับทรัพยากร วัสดุ และต้นทุนที่ใช้ดำเนินงาน ในการวิเคราะห์ process mining ใบสั่งงานนี้ทำหน้าที่เป็น Case ID ช่วยสร้างภาพวงจรงานซ่อมบำรุงตั้งแต่สร้างใบสั่งงานจนเสร็จสิ้นทางเทคนิคและทางธุรกิจ. เหตุผลที่สำคัญ รหัสนี้เป็นคีย์เฉพาะที่เชื่อมกิจกรรม ต้นทุน และเวลาทั้งหมดเข้าด้วยกัน ทำให้แสดงลำดับการไหลของกระบวนการได้. แหล่งข้อมูล ตาราง SAP AUFK ฟิลด์ AUFNR ตัวอย่าง 00004001234540012345000040098765 | |||
| ระบบต้นทาง SourceSystem | ระบบที่เป็นแหล่งที่มาของข้อมูล. | ||
| คำอธิบาย ระบุ SAP client หรืออินสแตนซ์ที่ใช้ เช่น 'SAP_PM_PROD' ในสภาพแวดล้อมที่มี ERP หลายระบบ แอตทริบิวต์นี้ช่วยแยกรายการที่อาจใช้รหัสเดียวกัน แต่เป็นของนิติบุคคลหรือสภาพแวดล้อมระบบคนละแห่ง. เหตุผลที่สำคัญ ช่วยให้ข้อมูลไม่ซ้ำกันและตรวจสอบที่มาได้ในสภาพแวดล้อมที่มีหลายระบบ. แหล่งข้อมูล การกำหนดค่าระบบ / บันทึกการดึงข้อมูล ตัวอย่าง SAP_ECC_P01SAP_S4H_100 | |||
| เวลาประทับของเหตุการณ์ EventTimestamp | วันที่และเวลาที่กิจกรรมเกิดขึ้นอย่างแม่นยำ. | ||
| คำอธิบาย บันทึกเวลาที่เหตุการณ์เกิดขึ้นโดยเฉพาะ สำหรับการเปลี่ยนสถานะจะใช้เวลาที่ระบบอัปเดตสถานะ ส่วนงานปฏิบัติการจะใช้เวลายืนยันงาน การบันทึกเวลาอย่างถูกต้องจำเป็นต่อการคำนวณรอบเวลา ระยะเวลาดำเนินงาน และการระบุคอขวดระหว่างขั้นตอนต่างๆ เช่น 'การวางแผน' และ 'การดำเนินงาน'. เหตุผลที่สำคัญ จำเป็นต่อการเรียงลำดับเหตุการณ์ให้ถูกต้องและคำนวณ KPI ที่อิงตามระยะเวลาทั้งหมด. แหล่งข้อมูล JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) ตัวอย่าง 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| อัปเดตข้อมูลล่าสุด LastDataUpdate | เวลาประทับของการดึงข้อมูลครั้งล่าสุด. | ||
| คำอธิบาย ระบุเวลาที่อัปเดตข้อมูลในโมเดลข้อมูล process mining ล่าสุด ช่วยให้นักวิเคราะห์ทราบว่าข้อมูลเชิงลึกเป็นปัจจุบันเพียงใด และตรวจสอบความใหม่ของข้อมูลในแดชบอร์ดที่ติดตามงานค้างหรือการปฏิบัติตาม SLA แบบเรียลไทม์. เหตุผลที่สำคัญ จำเป็นต่อการกำกับดูแลข้อมูลและสร้างความเชื่อมั่นในแดชบอร์ด. แหล่งข้อมูล เวลาประทับ ETL ตัวอย่าง 2023-11-01T12:00:00Z | |||
| กลุ่มผู้วางแผน ResponsiblePlannerGroup | กลุ่มผู้วางแผนที่รับผิดชอบดำเนินการกับใบสั่งงาน. | ||
| คำอธิบาย กลุ่มผู้วางแผน (INGRP) ระบุทีมงานหรือหน่วยงานที่รับผิดชอบวางแผนงานซ่อมบำรุง โดยจับคู่กับ 'Department' และเป็นข้อมูลสำคัญของแดชบอร์ด 'การใช้ทรัพยากรและการจัดตารางงาน' เพื่อระบุว่าทีมวางแผนใดเป็นคอขวดในช่วงเตรียมงาน. เหตุผลที่สำคัญ ระบุทีมธุรการที่รับผิดชอบกระบวนการวางแผน. แหล่งข้อมูล ตาราง SAP AUFK ฟิลด์ INGRP ตัวอย่าง M01ELEMEC | |||
| ตำแหน่งทางเทคนิค FunctionalLocation | ตำแหน่งตามลำดับชั้นที่ติดตั้งสินทรัพย์. | ||
| คำอธิบาย ระบุตำแหน่งในโครงสร้างทางเทคนิคที่มีการปฏิบัติงานซ่อมบำรุง (TPLNR) ตำแหน่งทางเทคนิคจะอยู่กับที่ ต่างจากอุปกรณ์ที่เคลื่อนย้ายได้ แอตทริบิวต์นี้ช่วยให้แดชบอร์ด 'รอบเวลาการตรวจสอบทางเทคนิค' เปรียบเทียบผลการดำเนินงานในพื้นที่ต่างๆ ของโรงงานได้ เช่น ห้องหม้อไอน้ำกับสายการบรรจุ. เหตุผลที่สำคัญ ช่วยวิเคราะห์ผลการดำเนินงานซ่อมบำรุงตามตำแหน่งและลำดับชั้น. แหล่งข้อมูล ตาราง SAP IFLOT ฟิลด์ TPLNR (หรือผ่าน AUFK-TPLNR) ตัวอย่าง PLANT1-BLD2-LN01US-TX-DAL-01 | |||
| ประเภทใบสั่งงานซ่อมบำรุง MaintenanceOrderType | จัดประเภทใบสั่งงาน เช่น งานป้องกันหรืองานแก้ไข. | ||
| คำอธิบาย ประเภทใบสั่งงาน (AUART) ใน SAP PM ใช้แยกลักษณะของงานซ่อมบำรุง ประเภทที่พบบ่อย ได้แก่ PM01 (งานแก้ไข), PM02 (งานป้องกัน) และ PM03 (งานปรับปรุงสภาพ) แอตทริบิวต์นี้จำเป็นต่อ 'แดชบอร์ดติดตามผลกระทบของใบสั่งงานฉุกเฉิน' และการแยกรูปแบบกระบวนการ เพราะขั้นตอนงานป้องกันแตกต่างจากงานแก้ไขเฉพาะหน้าอย่างมาก. เหตุผลที่สำคัญ เป็นพื้นฐานสำคัญในการแยกวิเคราะห์งานที่วางแผนไว้กับงานที่ไม่ได้วางแผน. แหล่งข้อมูล ตาราง SAP AUFK ฟิลด์ AUART ตัวอย่าง PM01PM02PM03 | |||
| ผู้ใช้ที่สร้าง CreatedByUser | ชื่อผู้ใช้ของผู้สร้างใบสั่งงาน. | ||
| คำอธิบาย ระบุผู้ใช้ (ERNAM) ที่เริ่มสร้างใบสั่งงาน โดยแมปกับ “ผู้ใช้” ในโมเดลทั่วไป ช่วยวิเคราะห์การสร้างรายการด้วยตนเองหรือโดยระบบอัตโนมัติ และตรวจสอบกิจกรรม “สร้างใบสั่งงานบำรุงรักษา”. เหตุผลที่สำคัญ ช่วยวิเคราะห์พฤติกรรมผู้ใช้และตรวจสอบย้อนหลัง. แหล่งข้อมูล ตาราง SAP AUFK, ฟิลด์ ERNAM ตัวอย่าง JSMITHBSERVICEDDAVIS | |||
| ระดับความสำคัญของงานซ่อมบำรุง MaintenancePriority | ระดับความเร่งด่วนที่กำหนดให้กับใบสั่งงาน. | ||
| คำอธิบาย ระบุระดับความสำคัญ (PRIOK) ของงานซ่อมบำรุง เช่น '1-สูงมาก' '2-สูง' หรือ '3-ปานกลาง' ฟิลด์นี้เป็นข้อมูลโดยตรงสำหรับ KPI 'สัดส่วนใบสั่งงานฉุกเฉิน' การวิเคราะห์ลำดับงานตามระดับความสำคัญช่วยตรวจสอบว่าใบสั่งงานที่มีความสำคัญสูงได้รับการเร่งดำเนินการจริงเมื่อเทียบกับงานทั่วไปหรือไม่. เหตุผลที่สำคัญ เป็นปัจจัยหลักในการวิเคราะห์ SLA และระบุงานซ่อมบำรุงฉุกเฉิน. แหล่งข้อมูล ตาราง SAP AFKO ฟิลด์ PRIOK (หรือ AUFK ผ่าน view) ตัวอย่าง 1-ฉุกเฉิน2-สูง3-ปานกลาง4-ต่ำ | |||
| โรงงานซ่อมบำรุง MaintenancePlant | โรงงานด้านโลจิสติกส์ที่รับผิดชอบงานซ่อมบำรุง. | ||
| คำอธิบาย โรงงาน (WERKS) เป็นหน่วยงานหลักด้านโลจิสติกส์ ใช้แยกข้อมูลตามสถานที่ตั้งจริง แอตทริบิวต์นี้จำเป็นต่อการเปรียบเทียบผลการดำเนินงานระหว่างสถานที่ต่างๆ และจับคู่กับ 'BusinessUnit' เพื่อใช้กรองข้อมูลระดับองค์กรในแดชบอร์ด. เหตุผลที่สำคัญ ตัวกรองระดับองค์กรหลักสำหรับเปรียบเทียบผลการดำเนินงานของแต่ละโรงงาน. แหล่งข้อมูล ตาราง SAP AUFK ฟิลด์ WERKS ตัวอย่าง 100020003000 | |||
| วันที่กำหนดให้เสร็จสิ้น TargetFinishDate | วันที่กำหนดให้การบำรุงรักษาเสร็จสิ้น. | ||
| คำอธิบาย วันที่นี้ (โดยทั่วไปคือ Basic Finish Date - GLTRP) เป็นกำหนดส่งของใบสั่งงาน ระบบจะนำไปเปรียบเทียบกับเวลาที่ดำเนินการเสร็จจริงเพื่อคำนวณ KPI “อัตราการปฏิบัติตาม SLA” และใช้เป็นเกณฑ์พิจารณาว่าใบสั่งงานเสร็จตรงเวลาหรือล่าช้า. เหตุผลที่สำคัญ จุดอ้างอิงสำหรับคำนวณการส่งมอบตรงเวลา (OTD) ทั้งหมด. แหล่งข้อมูล ตาราง SAP AFKO, ฟิลด์ GLTRP ตัวอย่าง 2023-12-012023-12-15 | |||
| ศูนย์งานหลัก MainWorkCenter | ศูนย์งานหรือทีมหลักที่ได้รับมอบหมายให้ดำเนินการตามใบสั่งงาน. | ||
| คำอธิบาย ศูนย์งานหลัก (VAPLZ) แสดงกลุ่มช่างหรือเครื่องจักรที่จะลงมือปฏิบัติงาน แอตทริบิวต์นี้จับคู่กับ 'Team' และจำเป็นต่อการวิเคราะห์ประสิทธิภาพการดำเนินงาน เช่น เวลาเฉลี่ยในการซ่อมของแต่ละทีม อีกทั้งช่วยแยกแรงงานภายในออกจากผู้รับเหมาภายนอก. เหตุผลที่สำคัญ ช่วยวิเคราะห์ผลการดำเนินงานในระดับทรัพยากร. แหล่งข้อมูล ตาราง SAP AFKO ฟิลด์ VAPLZ (หรือ AUFK-VAPLZ ขึ้นอยู่กับการกำหนดค่า) ตัวอย่าง MECH_01ELEC_TEAMEXT_CONT | |||
| สถานะระบบ SystemStatus | สถานะทางเทคนิคปัจจุบันของใบสั่งงาน เช่น REL หรือ TECO. | ||
| คำอธิบาย ข้อความหรือรายการสถานะระบบที่ใช้งานอยู่กับใบสั่งงานในขณะนี้ (จาก JEST) ค่าที่พบบ่อย ได้แก่ CRTD (สร้างแล้ว), REL (อนุมัติให้ดำเนินการ), TECO (เสร็จสิ้นทางเทคนิค) และ CLSD (ปิดแล้ว) ใช้กรองกรณีที่ยังเปิดอยู่และกรณีที่ปิดแล้วใน “ตัวติดตามงานค้างและงานระหว่างดำเนินการ”. เหตุผลที่สำคัญ ตัวบ่งชี้หลักของขั้นตอนในวงจรชีวิตใบสั่งงาน. แหล่งข้อมูล SAP Function Module STATUS_TEXT_EDIT หรือตาราง JEST ตัวอย่าง REL CNFTECOCRTD MACM | |||
| หมายเลขใบแจ้งซ่อม NotificationNumber | ใบแจ้งซ่อมบำรุงที่เป็นจุดเริ่มต้นของใบสั่งงานนี้. | ||
| คำอธิบาย หมายเลขใบแจ้งซ่อม (QMNUM) เชื่อมใบสั่งงานกลับไปยังคำขอเริ่มต้น (ใบแจ้งซ่อม) การเชื่อมโยงนี้จำเป็นต่อการคำนวณระยะเวลาดำเนินงานทั้งหมด ตั้งแต่ 'รับคำขอซ่อมบำรุง' จนถึงงานเสร็จ หากไม่มีข้อมูลนี้ การวิเคราะห์จะไม่ครอบคลุมช่วงเริ่มต้นของวงจรซ่อมบำรุง ตั้งแต่ตรวจพบปัญหาจนถึงรายงานปัญหา. เหตุผลที่สำคัญ เชื่อมช่วงดำเนินงานกลับไปยังช่วงรับคำขอหรือตรวจพบปัญหา. แหล่งข้อมูล ตาราง SAP AUFK, ฟิลด์ QMNUM ตัวอย่าง 1000050010000501 | |||
| หมายเลขอุปกรณ์ EquipmentNumber | รหัสระบุสินทรัพย์ทางกายภาพที่ต้องซ่อมบำรุง. | ||
| คำอธิบาย หมายเลขอุปกรณ์ (EQUNR) ใช้ระบุเครื่องจักรหรือสินทรัพย์แต่ละรายการ เมื่อนำข้อมูลมารวมตามฟิลด์นี้ นักวิเคราะห์จะคำนวณแดชบอร์ด 'ต้นทุนและปริมาณงานซ่อมบำรุงสินทรัพย์' เพื่อค้นหาอุปกรณ์ที่เสียบ่อยและมีค่าซ่อมสูง ข้อมูลนี้ช่วยวิเคราะห์การซ่อมบำรุงที่เน้นความน่าเชื่อถือของอุปกรณ์. เหตุผลที่สำคัญ เชื่อมผลการดำเนินงานของกระบวนการกับสินทรัพย์ทางกายภาพแต่ละรายการ. แหล่งข้อมูล ตาราง SAP AUFK ฟิลด์ EQUNR ตัวอย่าง 10004567PUMP-001HVAC-202 | |||
| ชั่วโมงแรงงานตามแผน PlannedLaborHours | จำนวนชั่วโมงแรงงานที่ประเมินไว้สำหรับใบสั่งงาน. | ||
| คำอธิบาย ปริมาณงานรวมตามแผน (ARBEI) จากการปฏิบัติงานในใบสั่งงาน เมื่อนำไปเปรียบเทียบกับระยะเวลากิจกรรมจริง จะช่วยประเมินความแม่นยำของแผนบำรุงรักษาในแดชบอร์ด “ประสิทธิภาพการวางแผนและการประเมิน”. เหตุผลที่สำคัญ ตัวชี้วัดพื้นฐานสำหรับวิเคราะห์ความแม่นยำในการวางแผน. แหล่งข้อมูล ตาราง SAP AFKO (ผลรวมปริมาณงานตามแผนของการปฏิบัติงาน) ตัวอย่าง 4.08.512.0 | |||
| ต้นทุนจริงรวม TotalActualCost | ต้นทุนจริงทั้งหมดที่บันทึกไว้ในใบสั่งงาน. | ||
| คำอธิบาย ต้นทุนรวมจากแรงงาน วัสดุ และบริการ (จากตาราง PMCO) แอตทริบิวต์นี้ใช้กับแดชบอร์ด “ต้นทุนและปริมาณงานบำรุงรักษาสินทรัพย์” เพื่อให้ผู้จัดการเห็นผลกระทบด้านการเงินจากกิจกรรมบำรุงรักษา และช่วยประเมินว่าการซ่อมแซมหรือเปลี่ยนสินทรัพย์คุ้มค่ากว่ากัน. เหตุผลที่สำคัญ เพิ่มมิติด้านการเงินให้กับข้อมูลกระบวนการปฏิบัติการ. แหล่งข้อมูล ตาราง SAP PMCO (ผลรวมของ value type 04 - Actual) ตัวอย่าง 150.002500.500.00 | |||
| เป็นงานฉุกเฉินหรือไม่ IsEmergencyWork | ตัวบ่งชี้ว่าใบสั่งงานเป็นงานฉุกเฉินหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์แบบบูลีนที่คำนวณจากลำดับความสำคัญของงานบำรุงรักษา หาก Priority เป็น “1” (หรือรหัสงานฉุกเฉินที่กำหนดไว้ในระบบ) ค่านี้จะเป็นจริง ช่วยให้กรองข้อมูลและสร้าง KPI “สัดส่วนใบสั่งงานฉุกเฉิน” ได้ง่ายขึ้น โดยไม่ต้องเขียนตรรกะซับซ้อนในชั้นแดชบอร์ด. เหตุผลที่สำคัญ ช่วยกรองข้อมูลเพื่อวิเคราะห์งานบำรุงรักษาเชิงแก้ไขที่มีความสำคัญได้ง่ายขึ้น. แหล่งข้อมูล คำนวณจาก MaintenancePriority ตัวอย่าง truefalse | |||
| มีการทำงานซ้ำหรือไม่ IsRework | ตัวบ่งชี้ว่าใบสั่งงานมีการทำงานซ้ำเพื่อแก้ไขหรือไม่. | ||
| คำอธิบาย ค่าบูลีนที่คำนวณเพื่อระบุว่ากระบวนการวนซ้ำหรือไม่ โดยพิจารณาว่ากิจกรรม “ดำเนินงานบำรุงรักษา” เกิดขึ้นมากกว่าหนึ่งครั้ง หรือสถานะเปลี่ยนกลับจาก “เสร็จสิ้นทางเทคนิค” เป็น “อยู่ระหว่างดำเนินการ” หรือไม่ ใช้ประกอบ KPI “อัตราการทำงานบำรุงรักษาซ้ำ” และช่วยระบุปัญหาด้านคุณภาพ. เหตุผลที่สำคัญ ใช้วิเคราะห์การควบคุมคุณภาพได้โดยตรง. แหล่งข้อมูล คำนวณจากลำดับขั้นของกระบวนการ ตัวอย่าง truefalse | |||
กิจกรรมการบำรุงรักษาสินทรัพย์
| กิจกรรม | คำอธิบาย | ||
|---|---|---|---|
| กำหนดสถานะเสร็จสิ้นทางเทคนิค | ระบุว่างานซ่อมบำรุงเสร็จสิ้นทั้งทางกายภาพและทางเทคนิค โดยบันทึกจากการเปลี่ยนสถานะเป็น TECO (เสร็จสิ้นทางเทคนิค). | ||
| เหตุผลที่สำคัญ เป็นจุดสิ้นสุดที่สำคัญที่สุดสำหรับการวิเคราะห์การปฏิบัติงาน เพราะแสดงว่าสินทรัพย์กลับมาใช้งานได้และงานซ่อมบำรุงเสร็จแล้ว. แหล่งข้อมูล ตาราง JCDS สถานะ I0045 (TECO). บันทึก บันทึกเมื่อสถานะเปลี่ยนเป็น TECO ใน JCDS ประเภทเหตุการณ์ explicit | |||
| กำหนดสถานะเสร็จสิ้นทางธุรกิจ | ระบุการปิดใบสั่งงานขั้นสุดท้ายในทางธุรการ เพื่อป้องกันการบันทึกต้นทุนเพิ่มเติม โดยบันทึกจากการเปลี่ยนสถานะเป็น CLSD (ปิดแล้ว). | ||
| เหตุผลที่สำคัญ แสดงจุดสิ้นสุดของวงจรใบสั่งงานอย่างสมบูรณ์ ซึ่งสำคัญต่อความถูกต้องของข้อมูลและการปฏิบัติตามข้อกำหนดด้านการจัดเก็บบันทึก. แหล่งข้อมูล ตาราง JCDS สถานะ I0046 (CLSD). บันทึก บันทึกเมื่อสถานะเปลี่ยนเป็น CLSD ใน JCDS ประเภทเหตุการณ์ explicit | |||
| บันทึกการเบิกสินค้า | บันทึกการเบิกใช้อะไหล่หรือวัสดุจริงสำหรับใบสั่งงาน โดยดึงจากส่วนหัวเอกสารวัสดุที่เชื่อมกับใบสั่งงาน. | ||
| เหตุผลที่สำคัญ ยืนยันว่ามีชิ้นส่วนพร้อมใช้งานและเบิกออกจากคลังแล้ว ซึ่งส่งผลโดยตรงต่อการวิเคราะห์เวลารออะไหล่. แหล่งข้อมูล ตาราง MSEG/MKPF ประเภทการเคลื่อนไหว 261 (เบิกสินค้าให้ใบสั่งงาน). บันทึก บันทึกเมื่อดำเนินธุรกรรม MIGO/MB1A ประเภทเหตุการณ์ explicit | |||
| ยืนยันงานปฏิบัติการในใบสั่งงาน | บันทึกเวลาทำงานจริงที่ช่างใช้กับงานปฏิบัติการแต่ละรายการ ซึ่งสะท้อนการลงมือทำงานกับสินทรัพย์จริง. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้เป็นแหล่งข้อมูลหลักสำหรับคำนวณเวลาเฉลี่ยในการซ่อมและต้นทุนแรงงาน. แหล่งข้อมูล ตาราง AFRU (การยืนยันใบสั่งงาน). บันทึก บันทึกเมื่อดำเนินธุรกรรม IW41 ประเภทเหตุการณ์ explicit | |||
| สร้างใบสั่งงานซ่อมบำรุง | ระบุเวลาที่ระบบสร้างใบสั่งงานซ่อมบำรุง โดยดึงจากเวลาที่สร้างรายการในตารางข้อมูลหลักของใบสั่งงานโดยตรง. | ||
| เหตุผลที่สำคัญ นี่คือเหตุการณ์หลักที่ใช้ยึดโยงข้อมูลของเคส โดยแสดงจุดเปลี่ยนจากการรับคำขอไปสู่การวางแผนและดำเนินงาน. แหล่งข้อมูล ตาราง AUFK ฟิลด์ ERDAT (วันที่) และ ERFZEIT (เวลา). บันทึก บันทึกเมื่อดำเนินธุรกรรม IW31 ประเภทเหตุการณ์ explicit | |||
| อนุมัติใบสั่งงานซ่อมบำรุงให้ดำเนินการ | ระบุว่าการวางแผนเสร็จสมบูรณ์และอนุมัติใบสั่งงานให้เริ่มดำเนินการ โดยติดตามการเปลี่ยนสถานะเป็น REL ในบันทึกสถานะของระบบ. | ||
| เหตุผลที่สำคัญ หมุดหมายนี้แบ่งช่วงวางแผนออกจากช่วงดำเนินงาน ซึ่งจำเป็นต่อการวัดระยะเวลาการวางแผนและประเมินงาน. แหล่งข้อมูล ตาราง JCDS (เอกสารการเปลี่ยนสถานะ) สถานะ I0002 (REL). บันทึก บันทึกเมื่อสถานะเปลี่ยนเป็น REL ใน JCDS ประเภทเหตุการณ์ explicit | |||
| จัดตารางงานในใบสั่งงาน | ระบุว่ามีการกำหนดเวลาปฏิบัติงานให้กับกำลังการผลิตหรือวันที่ โดยอนุมานจากการกำหนดสถานะ Dispatch ให้กับงานปฏิบัติการ. | ||
| เหตุผลที่สำคัญ ใช้วัดประสิทธิภาพการจัดสรรทรัพยากร และสนับสนุนแดชบอร์ดการใช้ทรัพยากรและการจัดตารางงาน. แหล่งข้อมูล ตาราง JCDS (เอกสารการเปลี่ยนสถานะ) สำหรับงานปฏิบัติการ (ObjType OV) สถานะ I0009 (DSPT). บันทึก เปรียบเทียบฟิลด์สถานะก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| บันทึกค่าการวัด | บันทึกการสร้างเอกสารการวัด เช่น ค่าที่อ่านได้จากมิเตอร์หรือผลประเมินสภาพ ซึ่งมักใช้เป็นเหตุการณ์การตรวจสอบทางเทคนิค. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการซ่อมบำรุงตามสภาพและการติดตามรอบเวลาการตรวจสอบทางเทคนิค. แหล่งข้อมูล ตาราง IMRG (เอกสารการวัด) เชื่อมกับอุปกรณ์หรือตำแหน่งทางเทคนิค. บันทึก บันทึกเมื่อสร้างเอกสารการวัด ประเภทเหตุการณ์ explicit | |||
| ปิดบัญชีต้นทุนใบสั่งงาน | ระบุว่ามีการโอนต้นทุนที่สะสมในใบสั่งงานไปยังวัตถุควบคุมต้นทุน เช่น ศูนย์ต้นทุน โดยดึงข้อมูลจากเอกสาร Controlling. | ||
| เหตุผลที่สำคัญ ติดตามการปิดบัญชีด้านการเงินและสนับสนุน KPI ระยะเวลาการปิดบัญชีต้นทุน. แหล่งข้อมูล ตาราง COBK (ส่วนหัวเอกสาร CO Object) เชื่อมกับใบสั่งงาน. บันทึก บันทึกเมื่อดำเนินธุรกรรมปิดบัญชี KO88 ประเภทเหตุการณ์ explicit | |||
| เปลี่ยนระดับความสำคัญของงานซ่อมบำรุง | บันทึกการเปลี่ยนระดับความสำคัญของใบสั่งงาน เช่น การปรับเป็นงานฉุกเฉิน โดยดึงข้อมูลจากเอกสารการเปลี่ยนแปลงที่เชื่อมกับข้อมูลหลักของใบสั่งงาน. | ||
| เหตุผลที่สำคัญ การติดตามการเปลี่ยนระดับความสำคัญช่วยอธิบายความเบี่ยงเบนของกระบวนการ และสนับสนุนแดชบอร์ดติดตามผลกระทบของใบสั่งงานฉุกเฉินด้วยการระบุการยกระดับงานที่เกิดขึ้นเฉพาะหน้า. แหล่งข้อมูล ตาราง CDPOS/CDHDR สำหรับ Object Class AUFTRAG ฟิลด์ PRIOK. บันทึก บันทึกในเอกสารการเปลี่ยนแปลง (CDPOS) ประเภทเหตุการณ์ explicit | |||
| เพิกถอนสถานะเสร็จสิ้นทางเทคนิค | บันทึกการเพิกถอนสถานะเสร็จสิ้นทางเทคนิค ซึ่งแสดงว่ามีการเปิดใบสั่งงานอีกครั้งและเกิดขั้นตอนการแก้ไขงานซ้ำในแบบจำลองกระบวนการ. | ||
| เหตุผลที่สำคัญ เป็นตัวชี้วัดหลักของ KPI อัตราการแก้ไขงานซ่อมบำรุง ช่วยให้เห็นการปิดงานก่อนเวลาอันควรหรือปัญหาด้านคุณภาพ. แหล่งข้อมูล ตาราง JCDS เปลี่ยนสถานะ I0045 (TECO) เป็นไม่ใช้งาน. บันทึก บันทึกเมื่อปิดใช้งานสถานะ TECO ประเภทเหตุการณ์ explicit | |||
| เพิ่มวัสดุหรือชิ้นส่วน | บันทึกการเพิ่มอะไหล่หรือวัสดุลงในรายการชิ้นส่วนของใบสั่งงาน โดยดึงจากการสร้างรายการจองวัสดุ. | ||
| เหตุผลที่สำคัญ ระบุจุดเริ่มต้นของการจัดซื้อชิ้นส่วนที่จำเป็น และสนับสนุนแดชบอร์ดระยะเวลาจัดซื้ออะไหล่. แหล่งข้อมูล ตาราง RESB ฟิลด์ BDTER (วันที่ต้องการใช้) หรือเวลาที่สร้างรายการ. บันทึก บันทึกเมื่อเพิ่มรายการลงใน RESB ประเภทเหตุการณ์ explicit | |||
| สร้างใบขอซื้อ | ระบุว่ามีการสร้างคำขอจัดซื้อสินค้าหรือบริการจากภายนอก ซึ่งเชื่อมใบสั่งงานซ่อมบำรุงภายในกับห่วงโซ่อุปทานภายนอก. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการวิเคราะห์ความล่าช้าที่เกิดจากผู้ขายภายนอกหรือการจัดซื้อวัสดุที่ไม่มีในคลัง. แหล่งข้อมูล ตาราง EBAN เชื่อมผ่านการกำหนดบัญชีกับ AUFK-AUFNR. บันทึก บันทึกเมื่อสร้างรายการใน EBAN ประเภทเหตุการณ์ explicit | |||
| สร้างใบแจ้งซ่อมบำรุง | บันทึกเวลาที่สร้างใบแจ้งซ่อมบำรุง ซึ่งมักเป็นจุดเริ่มต้นของใบสั่งงาน โดยดึงเวลาจากการสร้างรายการในตาราง QMEL กิจกรรมนี้เชื่อมคำขอที่ส่งเข้ามากับใบสั่งงานที่ใช้ดำเนินการ. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้เป็นจุดเริ่มต้นของกระบวนการซ่อมบำรุงตั้งแต่ต้นจนจบ และช่วยคำนวณเวลาตอบสนองตั้งแต่ตรวจพบปัญหาจนถึงสร้างใบสั่งงาน. แหล่งข้อมูล ตาราง QMEL ฟิลด์ ERDAT (วันที่สร้าง) และ MZEIT (เวลา) เชื่อมกับใบสั่งงานผ่าน QMEL-AUFNR. บันทึก บันทึกเมื่อสร้างรายการในตาราง QMEL ประเภทเหตุการณ์ explicit | |||
คู่มือการสกัดข้อมูล
ขั้นตอน
ระบุช่องทางเข้าถึงแหล่งข้อมูล: กำหนดวิธีเข้าถึงอินเทอร์เฟซ SQL ของ SAP S/4HANA โดยทั่วไปจะใช้ SAP HANA Studio, ABAP Development Tools (ADT) ใน Eclipse หรือสตริงการเชื่อมต่อ DBaaS หากเปิดฐานข้อมูล HANA ให้ชั้นวิเคราะห์ข้อมูลเข้าถึงได้
ตรวจสอบว่ามี CDS View พร้อมใช้งาน: ตรวจสอบว่า Core Data Services (CDS) view มาตรฐานเปิดใช้งานในระบบ S/4HANA ของคุณ มุมมองหลักที่ต้องใช้ ได้แก่ I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation และ I_MeasurementDocument นอกจากนี้ คุณต้องเข้าถึงตารางประวัติสถานะระบบ JCDS และตารางเอกสารการเปลี่ยนแปลง (CDHDR/CDPOS) เพื่อสร้างประวัติเหตุการณ์ทั้งหมด เนื่องจาก CDS view มาตรฐานมักแสดงเฉพาะสถานะปัจจุบัน
เตรียมสภาพแวดล้อม SQL: เปิดเครื่องมือแก้ไข SQL และตรวจสอบว่าบัญชีผู้ใช้มีสิทธิ์ SELECT ในมุมมอง DDL SQL ซึ่งมักอยู่ในสคีมา SAPABAP1 หรือสคีมาที่คล้ายกัน สำหรับรายการข้อมูลข้างต้น
เรียกใช้คิวรีดึงข้อมูล: คัดลอกสคริปต์ SQL ที่ให้ไว้ไปยังเครื่องมือแก้ไข แล้วแทนที่ [Your Client Number] ด้วยรหัส SAP client ของคุณ เช่น 100 หากต้องการกรองตามช่วงวันที่ ให้แก้ไขตัวกรอง EventTimestamp ในเงื่อนไข WHERE
แปลงข้อมูล: คิวรีจัดการการแปลงข้อมูลส่วนใหญ่ เช่น การแปลงชนิดข้อมูลการประทับเวลาและการจับคู่รหัสสถานะกับข้อความที่อ่านเข้าใจได้ อย่างไรก็ตาม หากระบบปลายทางกำหนดไว้ ให้ตรวจสอบว่าคอลัมน์ EventTimestamp อยู่ในรูปแบบ ISO 8601 (YYYY-MM-DDTHH:MM:SS) ขณะส่งออก
ส่งออกผลลัพธ์: เรียกใช้คิวรีแล้วส่งออกผลลัพธ์เป็นไฟล์ CSV หรือ Parquet ตั้งค่าการเข้ารหัสเป็น UTF-8 เพื่อรองรับอักขระพิเศษในชื่อผู้ใช้หรือคำอธิบาย
ตรวจสอบการจับคู่คอลัมน์: เปิดตัวอย่างไฟล์ที่ส่งออก แล้วตรวจสอบว่าคอลัมน์ MaintenanceWorkOrder, Activity และ EventTimestamp มีข้อมูลครบถ้วน ตรวจสอบด้วยว่าคอลัมน์ Activity มีข้อความตามที่ระบุไว้ในข้อกำหนด เช่น Maintenance Order Created และ Goods Issue Posted
อัปโหลดไปยัง ProcessMind: นำเข้าไฟล์แบบแบนที่ตรวจสอบแล้วไปยัง ProcessMind กำหนดคอลัมน์ Activity ให้ตรงกับฟิลด์ Activity ID, MaintenanceWorkOrder ให้ตรงกับฟิลด์ Case ID และ EventTimestamp ให้ตรงกับฟิลด์ Timestamp
การกำหนดค่า
- ตัวกรอง Client: ระบบ SAP รองรับหลาย client ให้กรองด้วย
MANDTหรือClient(เช่น '100') ทุกครั้ง เพื่อป้องกันข้อมูลซ้ำหรือข้อมูลรั่วไหลข้าม client. - ช่วงวันที่: แนะนำให้กรอง
CreationDateของใบสั่งงานบำรุงรักษาให้เหลือช่วง 6 ถึง 12 เดือนล่าสุด การ query ประวัติทั้งหมดในJCDS(สถานะ) หรือCDPOS(เอกสารการเปลี่ยนแปลง) โดยไม่กรองวันที่อาจทำให้ระบบหมดเวลารอ. - รหัสภาษา: ค่าเริ่มต้นของ query คือภาษาอังกฤษ ('E') หากองค์กรใช้ภาษาอื่นเป็นภาษาหลักสำหรับคำอธิบาย ให้ปรับตัวกรองภาษา.
- การเข้าถึงระบบ: ต้องเข้าถึง schema ABAP Core Data Services หรือตาราง HANA ที่เกี่ยวข้อง การเข้าถึงตารางดิบ JCDS และ CDHDR สำคัญต่อการวิเคราะห์ประวัติสถานะ เนื่องจาก CDS view อย่างเดียวมักแสดงข้อมูล ณ เวลาใดเวลาหนึ่ง.
- ประเภทใบสั่งงาน: query จะสกัดข้อมูลใบสั่งงานทุกประเภท หากต้องการวิเคราะห์เฉพาะกรณีบำรุงรักษาบางประเภท ให้กรอง
MaintenanceOrderTypeเช่น PM01 หรือ PM02.
ตัวอย่างคำค้น 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 = ' ' ขั้นตอน
- ยืนยันว่ามีสิทธิ์อ่านข้อมูลโดยตรงจาก AUFK, AFVC, JEST, QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG รวมถึงตารางเอกสารการเปลี่ยนแปลงและเอกสารควบคุมที่เกี่ยวข้อง ตรวจสอบชื่อจริงของตารางและการจับคู่ฟิลด์ในฐานข้อมูล SAP ของคุณ เนื่องจากฟิลด์ที่มีและโครงสร้างตารางที่จำลองแบบอาจแตกต่างกันตามการติดตั้ง
- ตั้งค่าการเชื่อมต่อสำหรับดึงข้อมูล ข้อมูลรับรอง วันที่เริ่มต้นและสิ้นสุดการดึงข้อมูล รวมถึงตัวกรองเฉพาะบริษัท สำหรับการตรวจสอบครั้งแรก ให้ใช้ช่วงย้อนหลัง 3 ถึง 6 เดือน แล้วขยายช่วงเมื่อการตรวจสอบประสิทธิภาพและความครบถ้วนผ่าน
- ดึงแอตทริบิวต์ส่วนหัวของใบสั่งงานจาก AUFK แอตทริบิวต์ของงานปฏิบัติการจาก AFVC และระเบียนสถานะจาก JEST เชื่อมระเบียนที่เกี่ยวข้องกับใบสั่งงานผ่านฟิลด์หมายเลขใบสั่งงานที่ใช้ในสคีมา SAP ของคุณ ใน SAP หลายระบบ JEST เป็นตารางสถานะปัจจุบัน ดังนั้นการประทับเวลาสถานะย้อนหลังจึงต้องใช้แหล่งข้อมูลประวัติสถานะหรือเอกสารการเปลี่ยนแปลง กำหนดค่า [Your status history table] และฟิลด์การประทับเวลาของตาราง หาก JEST ไม่เก็บประวัติการเปลี่ยนสถานะ
- ดึงข้อมูลการสร้างการแจ้งซ่อมจาก QMEL การสร้างส่วนประกอบจาก RESB การสร้างใบขอซื้อจาก EBAN ข้อมูลการเบิกสินค้าออกจาก MSEG และ MKPF การยืนยันงานจาก AFRU ค่าที่อ่านได้จากการวัดจาก IMRG และระเบียนการชำระบัญชีจาก [Your controlling document table] ดึงข้อมูลการเปลี่ยนลำดับความสำคัญจาก [Your order change document table] และ [Your change document item table] ต้องใช้แหล่งข้อมูลเหล่านี้ เพราะ AUFK, AFVC และ JEST เพียงอย่างเดียวไม่สามารถให้ข้อมูลกิจกรรมทั้ง 14 รายการที่ต้องการได้
- ปรับการประทับเวลาจากทุกแหล่งให้อยู่ในเขตเวลาเดียวกันและชนิดข้อมูลการประทับเวลาเดียวกัน แปลงฟิลด์วันที่และเวลาของ SAP หรือฟิลด์การประทับเวลาของฐานข้อมูลเป็น EventTimestamp โดยรักษาความละเอียดของการประทับเวลาต้นทางที่ระบบมี ใช้ช่วงเวลาที่กำหนดสำหรับการดึงข้อมูลกับ EventTimestamp ไม่ใช่เฉพาะวันที่สร้างใบสั่งงาน
- สร้างหนึ่งแถวเหตุการณ์ต่อเหตุการณ์ที่เกิดขึ้นในแต่ละแหล่งข้อมูล อย่าพึ่งให้ ProcessMind อนุมานเหตุการณ์ กำหนดค่า Activity ให้ตรงตามที่ระบุในคิวรีทุกประการ กรอก MaintenanceWorkOrder, EventTimestamp, SourceSystem, LastDataUpdate และแอตทริบิวต์แนะนำที่มี พร้อมเก็บรหัสต้นทางไว้หากจำเป็นต่อการตรวจสอบข้อมูลซ้ำ
- ลบข้อมูลซ้ำเฉพาะเหตุการณ์จากแหล่งเดียวกันที่เหมือนกันทุกประการ โดยใช้คีย์ต้นทางที่คงที่ อย่ารวมการเปลี่ยนสถานะ การยืนยันงาน การเคลื่อนไหวของวัสดุ ค่าที่อ่านได้จากการวัด หรือเอกสารการชำระบัญชีที่เกิดคนละเวลาเข้าด้วยกัน หากระเบียนต้นทางหลายรายการแทนเหตุการณ์ทางธุรกิจเดียวกัน ให้บันทึกหลักเกณฑ์การเลือกแหล่งข้อมูลไว้ในข้อกำหนดการดึงข้อมูล
- ตรวจสอบว่าค่ากิจกรรมทั้ง 14 รายการปรากฏเป็นแถวข้อมูลอย่างชัดเจน ทุกแถวมีรหัสเคสและการประทับเวลา และการประทับเวลาอยู่ในช่วงที่ขอ เปรียบเทียบจำนวนกับรายงาน SAP หรือจำนวนระเบียนในตารางต้นทางที่ใช้ตัวกรองเดียวกัน
- ส่งออกผลลัพธ์เป็นไฟล์ CSV ที่เข้ารหัส UTF-8 หรือรูปแบบบันทึกเหตุการณ์อื่นที่ ProcessMind รองรับ ใช้หนึ่งแถวต่อเหตุการณ์ ใส่คอลัมน์ที่จำเป็นด้วยชื่อที่กำหนดไว้ตรงทุกประการ และคงการประทับเวลา ISO 8601 หากรองรับ จากนั้นอัปโหลดไฟล์หรือตั้งค่าการเชื่อมต่อฐานข้อมูลใน ProcessMind กำหนด MaintenanceWorkOrder เป็นรหัสเคส, Activity เป็นคอลัมน์กิจกรรม และ EventTimestamp เป็นคอลัมน์การประทับเวลา
การกำหนดค่า
- ตารางต้นทางและการจับคู่: AUFK ให้ข้อมูลส่วนหัวของใบสั่งงาน, AFVC ให้ข้อมูลการปฏิบัติงาน และ JEST ให้ข้อมูลสถานะระบบ นอกจากนี้ยังต้องใช้ QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG แหล่งข้อมูลเอกสารการเปลี่ยนแปลง และแหล่งข้อมูลเอกสารควบคุม เพื่อสร้างกิจกรรมทั้ง 14 รายการ ตรวจสอบชื่อฟิลด์จริงในฐานข้อมูล SAP ก่อนเรียกใช้
- คอลัมน์ผลลัพธ์ที่จำเป็น: ทุกแถวเหตุการณ์ต้องมี MaintenanceWorkOrder, Activity, EventTimestamp, SourceSystem และ LastDataUpdate
- คอลัมน์ผลลัพธ์ที่แนะนำ: หากมีข้อมูล ให้กรอก MaintenanceOrderType, MaintenancePriority, EquipmentNumber, FunctionalLocation, MaintenancePlant, ResponsiblePlannerGroup, MainWorkCenter, NotificationNumber, TargetFinishDate, CreatedByUser และ SystemStatus
- ช่วงวันที่: เริ่มจาก 3 ถึง 6 เดือน ใช้วันเริ่มต้นแบบรวมวันนั้น และวันสิ้นสุดแบบไม่รวมวันนั้น เพื่อป้องกันเหตุการณ์ซ้ำระหว่างการดึงข้อมูลแต่ละรอบ หากต้องดึงข้อมูลย้อนหลัง ให้แบ่งตามเดือนหรือช่วงเวลาอื่นที่ฐานข้อมูลรองรับ
- ตัวกรอง: กำหนด [Company Code filter], [Order Type filter], [Maintenance Plant filter], [Notification Type filter] และ [Document Type filter] ตามขอบเขตการรายงาน อย่าใช้ตัวกรองที่ตัดใบสั่งงานซึ่งไม่มีการแจ้งซ่อม งานปฏิบัติการ ส่วนประกอบ ใบขอซื้อ การยืนยันงาน การวัด หรือเอกสารการชำระบัญชีออก
- ประวัติสถานะ: โดยทั่วไป JEST แสดงการกำหนดสถานะ แต่การเปลี่ยนสถานะย้อนหลังอาจต้องใช้ [Your status history table] หรือเอกสารการเปลี่ยนแปลง กำหนดแหล่งข้อมูลที่มีการประทับเวลาการเปลี่ยนสถานะและประวัติการเปลี่ยนสถานะ
- ประวัติลำดับความสำคัญ: การเปลี่ยนลำดับความสำคัญต้องใช้ [Your order change document table] และ [Your change document item table] พร้อมตัวระบุออบเจ็กต์ที่เกี่ยวข้อง ชื่อฟิลด์ ค่าเดิม ค่าใหม่ และเวลาที่เปลี่ยนแปลง
- ค่าระบบต้นทาง: แทนที่ [Your SAP system identifier] ด้วยชื่อระบบต้นทางที่องค์กรของคุณใช้เป็นมาตรฐาน
- การอัปเดตข้อมูลล่าสุด: แทนที่ [Your extraction timestamp] ด้วยการประทับเวลาที่สร้างเมื่อเริ่มหรือสิ้นสุดการดึงข้อมูล และใช้ค่าเดียวกันกับทุกแถวในรอบนั้น
- ประสิทธิภาพ: สร้างดัชนีหรือแบ่งพาร์ทิชันคอลัมน์ที่ใช้เชื่อมและกรองข้อมูลหากทำได้ จำกัดช่วงเวลาที่ดึง เลือกเฉพาะคอลัมน์ที่จำเป็น แบ่งประมวลผลช่วงเวลาขนาดใหญ่เป็นชุด และจัดเก็บข้อมูลต้นทางระหว่างทางเมื่อการเชื่อมข้ามสคีมาโดยตรงทำงานช้า
- ข้อกำหนดเบื้องต้น: ต้องเชื่อมต่อฐานข้อมูลได้ มีสิทธิ์อ่านตารางต้นทางที่กำหนดทั้งหมด เข้าถึงข้อมูล Plant Maintenance, Materials Management, Controlling และข้อมูลการวัดที่เกี่ยวข้องได้ รวมทั้งได้รับอนุมัติให้ดึงข้อมูลการปฏิบัติงาน ตรวจสอบข้อจำกัดด้านการจำลองข้อมูลหรือไลเซนส์ของแพลตฟอร์มฐานข้อมูลด้วย
ตัวอย่างคำค้น 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; พร้อมเริ่มต้นหรือยัง?
ใช้ทรัพยากรเหล่านี้เพื่อเริ่มทำแผนที่เวิร์กโฟลว์การบำรุงรักษาและค้นหาโอกาสลดต้นทุน กรอบการทำงานนี้ช่วยให้คุณเตรียมโครงสร้างข้อมูลที่เหมาะสม เพื่อให้เห็นภาพการปฏิบัติงานได้ชัดเจน.
แก้คอขวดในการบำรุงรักษาสินทรัพย์บน SAP ได้ตั้งแต่วันนี้
เริ่มลดระยะเวลาวงจรการบำรุงรักษาลง 30 เปอร์เซ็นต์ได้ทันที
ไม่ต้องใช้บัตรเครดิต... ตั้งค่าเสร็จใน 5 นาที