เทมเพลตข้อมูลการบำรุงรักษาสินทรัพย์ของคุณ
เทมเพลตข้อมูลการบำรุงรักษาสินทรัพย์ของคุณ
- ฟิลด์ข้อมูลสำคัญสำหรับบันทึกงานบำรุงรักษา
- หมุดหมายมาตรฐานของกระบวนการและขั้นตอนของใบสั่งงาน
- วิธีดึงข้อมูลทางเทคนิคจาก Hexagon EAM
แอตทริบิวต์การบำรุงรักษาสินทรัพย์
| ชื่อ | คำอธิบาย | ||
|---|---|---|---|
| กิจกรรม ActivityName | งานหรือเหตุการณ์เปลี่ยนสถานะที่เกิดขึ้น. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุขั้นตอนที่กำลังดำเนินการ เช่น 'สร้างใบสั่งงาน' หรือ 'เบิกวัสดุ' โดยได้มาจากประวัติการเปลี่ยนสถานะหรือเหตุการณ์ธุรกรรมที่บันทึกไว้ในใบสั่งงาน. เหตุผลที่สำคัญ ใช้กำหนดลำดับในบันทึกเหตุการณ์ เพื่อสร้างภาพขั้นตอนของกระบวนการและวิเคราะห์คอขวด. แหล่งข้อมูล ตาราง R5EVENTHISTORY ใน Hexagon EAM ฟิลด์ EVH_STATUS (จับคู่กับคำอธิบาย) หรือบันทึกการตรวจสอบ ตัวอย่าง สร้างใบสั่งงานจัดตารางใบสั่งงานทำใบสั่งงานเสร็จเบิกวัสดุ | |||
| ใบสั่งงานซ่อมบำรุง WorkOrderNumber | รหัสเฉพาะของใบสั่งงานซ่อมบำรุง. | ||
| คำอธิบาย แอตทริบิวต์นี้เป็นคีย์หลักที่ไม่ซ้ำกันของเคสซ่อมบำรุง ใช้ติดตามใบสั่งงานตั้งแต่คำขอเริ่มต้น ผ่านการวางแผนและดำเนินงาน จนถึงการปิดบัญชีการเงินขั้นสุดท้าย และใช้เป็นรหัสเคสหลักสำหรับเชื่อมโยงบันทึกกิจกรรม ชั่วโมงแรงงาน และการใช้วัสดุ. เหตุผลที่สำคัญ ใช้ระบุรายการของกระบวนการซ่อมบำรุงแต่ละรายการ ทำให้ติดตามเวลาตั้งแต่ต้นจนจบและรูปแบบกระบวนการได้. แหล่งข้อมูล ตาราง R5EVENTS ใน Hexagon EAM ฟิลด์ EVT_CODE ตัวอย่าง WO-100234WO-100235WO-100236104592 | |||
| ระบบต้นทาง SourceSystem | ชื่อระบบที่เป็นแหล่งที่มาของข้อมูล. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุระบบหลักที่ใช้บันทึกข้อมูล ในกรณีนี้จะกำหนดชื่อระบบ EAM ไว้โดยตรง เพื่อแยกข้อมูลออกจากข้อมูลเดิมหรือระบบของผู้รับเหมาภายนอก. เหตุผลที่สำคัญ ช่วยให้ตรวจสอบที่มาของข้อมูลได้ชัดเจน โดยเฉพาะเมื่อนำข้อมูลจากระบบซ่อมบำรุงหลายระบบมารวมกัน. แหล่งข้อมูล ค่าที่กำหนดไว้โดยตรง ตัวอย่าง Hexagon EAMInfor EAMDatastream 7i | |||
| เวลา EventTimestamp | วันที่และเวลาที่กิจกรรมเกิดขึ้น. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกเวลาที่เหตุการณ์หรือการเปลี่ยนสถานะถูกบันทึกลงในระบบอย่างแม่นยำ ใช้คำนวณระยะเวลาระหว่างกิจกรรมและเวลารวมของวงจรใบสั่งงาน. เหตุผลที่สำคัญ การบันทึกเวลาที่แม่นยำจำเป็นต่อการวิเคราะห์ระยะเวลาดำเนินงาน ระบุความล่าช้า และคำนวณการปฏิบัติตาม SLA. แหล่งข้อมูล ตาราง R5EVENTHISTORY ใน Hexagon EAM ฟิลด์ EVH_DATE ตัวอย่าง 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| อัปเดตข้อมูลล่าสุด LastDataUpdate | เวลาที่ดึงหรือรีเฟรชระเบียนครั้งล่าสุด. | ||
| คำอธิบาย แอตทริบิวต์นี้ติดตามเวลาที่ดึงข้อมูลจากระบบต้นทางครั้งล่าสุด ช่วยให้นักวิเคราะห์ทราบว่าข้อมูลเป็นปัจจุบันเพียงใด และระบุความล่าช้าที่อาจเกิดขึ้นในขั้นตอนจัดเตรียมรายงาน. เหตุผลที่สำคัญ ช่วยให้มั่นใจว่าการวิเคราะห์ใช้ข้อมูลปัจจุบัน และช่วยตรวจสอบปัญหาการซิงก์ข้อมูล. แหล่งข้อมูล เวลาของระบบขณะดึงข้อมูล ตัวอย่าง 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| ชั่วโมงแรงงานจริง ActualLaborHours | จำนวนชั่วโมงรวมที่บันทึกไว้ในใบสั่งงาน. | ||
| คำอธิบาย แอตทริบิวต์นี้รวมเวลาที่ช่างเทคนิคบันทึกไว้ในใบสั่งงาน ใช้วัดประสิทธิภาพการทำงาน คำนวณค่าแรง และวิเคราะห์ความแตกต่างจากชั่วโมงที่ประเมินไว้. เหตุผลที่สำคัญ ข้อมูลนี้เป็นแหล่งข้อมูลหลักของแดชบอร์ดประสิทธิภาพการทำงานของช่างเทคนิคและ KPI ความแตกต่างของชั่วโมงแรงงาน. แหล่งข้อมูล ตาราง R5BOOKEDHOURS ของ Hexagon EAM, ฟิลด์ BOO_HOURS (รวมตามใบสั่งงาน) ตัวอย่าง 2.54.012.00.5 | |||
| ประเภทใบสั่งงาน WorkOrderType | จัดประเภทใบสั่งงานเป็นงานป้องกัน งานแก้ไข หรือเหตุฉุกเฉิน. | ||
| คำอธิบาย แอตทริบิวต์นี้จัดประเภทลักษณะของงานซ่อมบำรุง ใช้วิเคราะห์สัดส่วนระหว่างงานซ่อมบำรุงเชิงป้องกันตามแผนกับงานซ่อมฉุกเฉินที่เกิดขึ้นเมื่อมีปัญหา ซึ่งเป็นตัวชี้วัดสำคัญด้านสภาพสินทรัพย์และความพร้อมในการบริหารจัดการ. เหตุผลที่สำคัญ ใช้กับแดชบอร์ดวิเคราะห์สัดส่วนงานซ่อมบำรุงเชิงป้องกัน และช่วยระบุโอกาสในการลดงานแก้ไขที่เกิดขึ้นโดยไม่คาดคิด. แหล่งข้อมูล ตาราง R5EVENTS ใน Hexagon EAM ฟิลด์ EVT_TYPE ตัวอย่าง PPMCOREMGPRJ | |||
| ผู้ใช้ UpdatedBy | รหัสผู้ใช้ของผู้ที่ดำเนินกิจกรรม. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกรหัสเข้าสู่ระบบของผู้ที่เปลี่ยนหรืออัปเดตสถานะ ใช้วิเคราะห์ภาระงานของทีม ระบุความต้องการด้านการฝึกอบรม และตรวจสอบการปฏิบัติตามข้อกำหนดของกระบวนการ. เหตุผลที่สำคัญ ข้อมูลนี้ช่วยวิเคราะห์พฤติกรรมของผู้ใช้และการใช้ทรัพยากรตลอดวงจรการบำรุงรักษา. แหล่งข้อมูล ตาราง R5EVENTHISTORY ของ Hexagon EAM, ฟิลด์ EVH_USER ตัวอย่าง JSMITHADAVISSYSTEMMGR_USR | |||
| แผนก MaintenanceDepartment | แผนกหรือศูนย์งานที่รับผิดชอบดำเนินงาน. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุทีมงานหรือหน่วยซ่อมบำรุงที่ได้รับมอบหมายให้ทำใบสั่งงาน เช่น งานไฟฟ้า งานเครื่องกล หรืออาคารสถานที่ ช่วยเปรียบเทียบผลการดำเนินงานระหว่างทีมช่างแต่ละทีม. เหตุผลที่สำคัญ ข้อมูลนี้ใช้กับแดชบอร์ดประสิทธิภาพการทำงานของช่างเทคนิค และช่วยจัดสรรทรัพยากรให้เหมาะสมระหว่างสายงานต่างๆ. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_MRC ตัวอย่าง หน่วยงานไฟฟ้าหน่วยซ่อมบำรุงเครื่องกลอาคารสถานที่บริการยานพาหนะ | |||
| ระดับความสำคัญ PriorityCode | ระดับความเร่งด่วนที่กำหนดให้กับใบสั่งงาน. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุความสำคัญของใบสั่งงาน ตั้งแต่งานทั่วไปจนถึงงานฉุกเฉิน ใช้กำหนดการจัดตารางทรัพยากร และมีความสำคัญต่อการติดตามการปฏิบัติตาม SLA และตรวจจับการปรับระดับความสำคัญโดยไม่เหมาะสม. เหตุผลที่สำคัญ แดชบอร์ดการยกระดับความสำคัญและตรวจสอบการใช้ทรัพยากรช่วยให้มั่นใจว่างานสำคัญได้รับการจัดลำดับความสำคัญอย่างเหมาะสม. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_PRIORITY ตัวอย่าง วิกฤตสูงปานกลางต่ำ | |||
| วันที่กำหนดแล้วเสร็จ TargetCompletionDate | กำหนดเวลาที่วางแผนไว้สำหรับใบสั่งงาน. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุวันที่คาดว่างานบำรุงรักษาจะเสร็จสิ้น การเปรียบเทียบวันที่นี้กับวันที่เสร็จจริงเป็นข้อมูลหลักในการคำนวณการปฏิบัติตาม SLA และการทำงานเสร็จตรงเวลา. เหตุผลที่สำคัญ ข้อมูลนี้จำเป็นสำหรับแดชบอร์ดติดตามการปฏิบัติตาม SLA ของผู้รับเหมา และใช้ประเมินความแม่นยำในการวางแผน. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_TARGET ตัวอย่าง 2023-11-012023-11-152023-12-01 | |||
| สินทรัพย์ AssetCode | รหัสเฉพาะของอุปกรณ์หรือสถานที่ที่ได้รับการบำรุงรักษา. | ||
| คำอธิบาย แอตทริบิวต์นี้เชื่อมใบสั่งงานกับอุปกรณ์หรือสถานที่เฉพาะ ช่วยวิเคราะห์ความถี่ของการขัดข้องในแต่ละสินทรัพย์ และระบุอุปกรณ์ที่มีปัญหาซ้ำหรือควรเปลี่ยนใหม่. เหตุผลที่สำคัญ ข้อมูลนี้เป็นพื้นฐานในการคำนวณตัวชี้วัดความน่าเชื่อถือของสินทรัพย์ และทำความเข้าใจว่าทุ่มเทงานบำรุงรักษาไปที่จุดใด. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_OBJECT ตัวอย่าง PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| การยกระดับเป็นงานฉุกเฉิน EmergencyEscalationFlag | ตัวบ่งชี้ว่ามีการปรับลำดับความสำคัญเป็นงานฉุกเฉินหลังจากสร้างใบสั่งงานหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์แบบค่าจริง/เท็จนี้ระบุใบสั่งงานที่เริ่มต้นด้วยลำดับความสำคัญต่ำกว่า แต่ภายหลังถูกปรับเป็นงานฉุกเฉิน หากเกิดขึ้นบ่อย อาจบ่งชี้ว่าคัดแยกงานตั้งแต่แรกไม่เหมาะสม หรือมีการปรับสถานะเพื่อให้ได้รับบริการเร็วขึ้น. เหตุผลที่สำคัญ ข้อมูลนี้ใช้กับแดชบอร์ดการยกระดับความสำคัญและตรวจสอบการใช้ทรัพยากร รวมถึง KPI อัตราการยกระดับเป็นงานฉุกเฉิน. แหล่งข้อมูล คำนวณจากประวัติการตรวจสอบฟิลด์ Priority ตัวอย่าง truefalse | |||
| ต้นทุนจริงรวม TotalActualCost | ต้นทุนทางการเงินรวมที่บันทึกไว้สำหรับใบสั่งงาน. | ||
| คำอธิบาย แอตทริบิวต์นี้รวมต้นทุนค่าแรง วัสดุ และบริการ จำเป็นต่อการวิเคราะห์การปิดบัญชีทางการเงิน และทำความเข้าใจผลกระทบด้านต้นทุนของการบำรุงรักษาฉุกเฉินเมื่อเทียบกับการบำรุงรักษาเชิงป้องกัน. เหตุผลที่สำคัญ ข้อมูลนี้ใช้กับแดชบอร์ดการปิดบัญชีทางการเงินและระยะเวลาปิดงาน และช่วยประกอบการตัดสินใจโดยพิจารณาจากต้นทุน. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_ACTCOST (หรือคอลัมน์สรุปที่ใกล้เคียง) ตัวอย่าง 150.002500.5075.25 | |||
| เป็นงานแก้ไขซ้ำ IsRework | ตัวบ่งชี้ว่าใบสั่งงานมีงานด้านเทคนิคที่ต้องทำซ้ำหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์ที่คำนวณนี้ระบุกรณีที่กระบวนการย้อนจากการตรวจสอบคุณภาพหรือสถานะเสร็จสิ้นกลับไปยังสถานะกำลังดำเนินงาน ช่วยระบุปัญหาด้านคุณภาพและช่องว่างในการฝึกอบรม. เหตุผลที่สำคัญ ข้อมูลนี้ใช้กับแดชบอร์ดงานแก้ไขซ้ำด้านเทคนิคและการควบคุมคุณภาพ รวมถึง KPI อัตราการแก้ไขงานซ้ำในการบำรุงรักษา. แหล่งข้อมูล คำนวณจากการทำกิจกรรมซ้ำ ตัวอย่าง truefalse | |||
| เป็นงานบำรุงรักษาเชิงป้องกัน IsPreventive | ตัวบ่งชี้ว่าใบสั่งงานเป็นงานบำรุงรักษาเชิงป้องกันหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์แบบค่าจริง/เท็จนี้ช่วยกรองและจัดหมวดหมู่ใบสั่งงานได้ง่ายขึ้น อีกทั้งช่วยคำนวณ KPI สัดส่วนการบำรุงรักษาเชิงป้องกัน โดยแยกงานเชิงรุกออกจากงานซ่อมแก้ไข. เหตุผลที่สำคัญ ข้อมูลนี้เป็นเกณฑ์แบ่งกลุ่มหลักสำหรับแดชบอร์ดวิเคราะห์สัดส่วนการบำรุงรักษาเชิงป้องกัน. แหล่งข้อมูล คำนวณจาก WorkOrderType ตัวอย่าง truefalse | |||
| ผ่านการควบคุมคุณภาพ QualityControlPassed | ตัวบ่งชี้ว่ามีการบันทึกขั้นตอนตรวจสอบคุณภาพไว้หรือไม่. | ||
| คำอธิบาย แอตทริบิวต์แบบค่าจริง/เท็จนี้ตรวจสอบว่ากิจกรรมควบคุมคุณภาพหรือรายการตรวจสอบที่กำหนดถูกทำเครื่องหมายว่าเสร็จสิ้นแล้วหรือไม่ ช่วยให้มั่นใจว่าปฏิบัติตามกฎความปลอดภัยและมาตรฐานภายใน. เหตุผลที่สำคัญ ข้อมูลนี้ใช้คำนวณ KPI อัตราการปฏิบัติตามข้อกำหนดด้านการควบคุมคุณภาพ และสนับสนุนแดชบอร์ดการปฏิบัติตามข้อกำหนดและความถูกต้องของเอกสาร. แหล่งข้อมูล คำนวณจากตารางรายการตรวจสอบหรือประวัติกิจกรรม ตัวอย่าง truefalse | |||
| ระดับความสำคัญของสินทรัพย์ AssetCriticality | คะแนนที่บ่งบอกความสำคัญของสินทรัพย์ต่อการปฏิบัติงาน. | ||
| คำอธิบาย แอตทริบิวต์นี้บ่งบอกว่าสินทรัพย์มีความสำคัญต่อการดำเนินธุรกิจเพียงใด มักใช้ตรวจสอบว่าใบสั่งงานที่มีลำดับความสำคัญสูงเกี่ยวข้องกับอุปกรณ์สำคัญจริงหรือไม่ และช่วยชี้ให้เห็นการใช้กระบวนการในทางที่ผิด. เหตุผลที่สำคัญ ข้อมูลนี้ช่วยให้แดชบอร์ดการยกระดับความสำคัญและตรวจสอบการใช้ทรัพยากรเปรียบเทียบลำดับความสำคัญกับมูลค่าของสินทรัพย์ได้. แหล่งข้อมูล ตาราง R5OBJECTS ของ Hexagon EAM, ฟิลด์ OBJ_CRITICALITY (ต้องเชื่อมตารางด้วย EVT_OBJECT) ตัวอย่าง A - สำคัญยิ่งB - วิกฤตC - รองลงมาD - ต่ำ | |||
| รายละเอียดใบสั่งงาน WorkOrderDescription | สรุปงานบำรุงรักษาโดยย่อ. | ||
| คำอธิบาย แอตทริบิวต์นี้มีหัวข้อหรือคำอธิบายสั้นๆ ของปัญหา ช่วยให้ผู้วิเคราะห์เข้าใจบริบทเมื่อตรวจสอบกรณีที่มีปัญหาโดยเฉพาะ หรือค้นหารูปแบบจากข้อความที่ไม่มีโครงสร้าง. เหตุผลที่สำคัญ ข้อมูลนี้ให้บริบทที่จำเป็นสำหรับการตรวจสอบข้อมูลกระบวนการโดยผู้ใช้. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_DESC ตัวอย่าง ซ่อมซีลปั๊มที่รั่วตรวจสอบระบบ HVAC ประจำเดือนเปลี่ยนสายพานลำเลียง | |||
| วันที่ขอเบิกวัสดุ MaterialRequisitionDate | วันที่ขออะไหล่. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกเวลาที่ส่งคำขอวัสดุไปยังคลังสินค้าหรือฝ่ายจัดซื้อ การวิเคราะห์ระยะเวลาตั้งแต่วันที่นี้จนถึงวันที่จ่ายวัสดุช่วยให้เห็นประสิทธิภาพของห่วงโซ่อุปทาน. เหตุผลที่สำคัญ ข้อมูลนี้จำเป็นสำหรับแดชบอร์ดระยะเวลาจัดซื้ออะไหล่. แหล่งข้อมูล ตาราง R5REQUISITIONS ของ Hexagon EAM หรือตารางธุรกรรมที่เชื่อมโยง ตัวอย่าง 2023-10-012023-10-05 | |||
| วันที่สร้าง DateCreated | วันที่สร้างใบสั่งงานครั้งแรก. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุจุดเริ่มต้นของวงจรใบสั่งงาน ใช้เป็นข้อมูลตั้งต้นในการคำนวณเวลาเฉลี่ยในการวางแผนและอายุของงานค้าง. เหตุผลที่สำคัญ ข้อมูลนี้จำเป็นสำหรับแดชบอร์ดความรวดเร็วในการวางแผนงานบำรุงรักษาและ KPI อายุงานค้าง. แหล่งข้อมูล ตาราง R5EVENTS ของ Hexagon EAM, ฟิลด์ EVT_CREATED ตัวอย่าง 2023-09-012023-09-15 | |||
| สถานะ SLA SLAState | ระบุว่าใบสั่งงานเป็นไปตามข้อตกลงระดับการให้บริการหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์ที่คำนวณนี้เปรียบเทียบวันที่เสร็จจริงกับวันที่กำหนดแล้วเสร็จ โดยจัดประเภทกรณีเป็น “อยู่ใน SLA” หรือ “เกินกำหนด” เพื่อให้รายงานผลการดำเนินงานของผู้รับเหมาและทีมภายในได้ง่ายขึ้น. เหตุผลที่สำคัญ ข้อมูลนี้เป็นแหล่งข้อมูลโดยตรงสำหรับ KPI อัตราการปฏิบัติตาม SLA. แหล่งข้อมูล คำนวณ: วันที่สิ้นสุดจริง <= วันที่กำหนด ตัวอย่าง อยู่ใน SLAเกินกำหนดเปิดอยู่ | |||
กิจกรรมการบำรุงรักษาสินทรัพย์
| กิจกรรม | คำอธิบาย | ||
|---|---|---|---|
| ทำใบสั่งงานเสร็จ | งานด้านเทคนิคเสร็จสิ้นและช่างเทคนิคระบุว่างานเสร็จแล้ว สินทรัพย์กลับมาให้บริการได้. | ||
| เหตุผลที่สำคัญ หมุดหมายสำคัญสำหรับวัดระยะเวลาตั้งแต่ต้นจนจบและเวลาเฉลี่ยในการซ่อม ช่วยหยุดนับเวลาหยุดทำงาน. แหล่งข้อมูล r5statuslog ใน Hexagon EAM เปลี่ยนสถานะเป็น 'C' (Completed) หรือ 'F' (Finished). บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรมใน r5statuslog ประเภทเหตุการณ์ explicit | |||
| บันทึกชั่วโมงแรงงาน | ช่างเทคนิคบันทึกชั่วโมงทำงานในใบสั่งงาน กิจกรรมนี้อาจเกิดขึ้นหลายครั้งในแต่ละเคส. | ||
| เหตุผลที่สำคัญ เป็นข้อมูลพื้นฐานสำหรับแดชบอร์ด Labor Hour Variance และ Technician Labor Productivity ช่วยให้เห็นชั่วโมงทำงานจริงเทียบกับแผน. แหล่งข้อมูล ตาราง r5booklabor ใน Hexagon EAM แต่ละแถวคือรายการลงเวลาทำงานของ WO. บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรม INSERT ใน r5booklabor ประเภทเหตุการณ์ explicit | |||
| เบิกวัสดุ | เบิกอะไหล่จากคลังและบันทึกค่าใช้จ่ายลงในใบสั่งงาน ซึ่งแสดงถึงการใช้วัสดุ. | ||
| เหตุผลที่สำคัญ เป็นจุดสิ้นสุดสำหรับวัดระยะเวลารอวัสดุ ช่วยระบุความล่าช้าในกรณีที่เริ่มงานแล้วต้องหยุดเพราะอะไหล่ไม่ครบ. แหล่งข้อมูล ตาราง r5translines ใน Hexagon EAM ประเภทธุรกรรม 'I' (Issue) ที่เชื่อมโยงกับใบสั่งงาน. บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรม INSERT ใน r5translines ประเภทเหตุการณ์ explicit | |||
| ปิดใบสั่งงาน | ล็อกข้อมูลทางการเงินและเก็บใบสั่งงานเข้าคลังแล้ว จะไม่สามารถบันทึกต้นทุนหรือชั่วโมงแรงงานเพิ่มเติมได้. | ||
| เหตุผลที่สำคัญ สิ้นสุดกระบวนการ สำคัญต่อการวิเคราะห์การชำระบัญชีขั้นสุดท้ายและการยืนยันต้นทุนสุดท้าย. แหล่งข้อมูล r5statuslog ใน Hexagon EAM เปลี่ยนสถานะเป็น 'C' (Closed) หรือ 'L' (Locked/Closed). บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรมใน r5statuslog ประเภทเหตุการณ์ explicit | |||
| เริ่มงานตามใบสั่งงาน | ช่างเทคนิคเริ่มลงมือทำงานกับสินทรัพย์จริง โดยมักระบุด้วยการเปลี่ยนสถานะเป็น In Progress หรือเวลาบันทึกชั่วโมงแรงงานครั้งแรก. | ||
| เหตุผลที่สำคัญ เป็นจุดสิ้นสุดสำหรับคำนวณงานค้างและจุดเริ่มต้นสำหรับวัดเวลาที่ช่างใช้ลงมือซ่อมจริง สำคัญต่ออัตราการปฏิบัติตาม SLA. แหล่งข้อมูล r5statuslog ใน Hexagon EAM เปลี่ยนสถานะเป็น 'In Progress' (มักใช้รหัสสถานะ 'I' หรือ 'IP'). บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรมใน r5statuslog ประเภทเหตุการณ์ explicit | |||
| สร้างใบสั่งงาน | การสร้างระเบียนใบสั่งงานซ่อมบำรุงในระบบเป็นครั้งแรก เหตุการณ์นี้เริ่มต้นเคสและบันทึกเวลาเริ่มต้นของวงจรการซ่อมบำรุงทั้งหมด. | ||
| เหตุผลที่สำคัญ ระบุจุดเริ่มต้นของกระบวนการและใช้เป็นฐานวัดเวลาตั้งแต่เริ่มจนแก้ไขเสร็จ มีความสำคัญต่อการคำนวณอายุของงานค้าง. แหล่งข้อมูล ตาราง r5events ใน Hexagon EAM บันทึกเมื่อมีการเพิ่มระเบียนใหม่ที่มี evt_code. บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรม INSERT ใน r5events ประเภทเหตุการณ์ explicit | |||
| อนุมัติใบสั่งงาน | การเปลี่ยนสถานะที่ระบุว่าใบสั่งงานผ่านการตรวจสอบแผนและการประเมินแล้ว หมายความว่าได้รับอนุญาตให้ดำเนินงานต่อ. | ||
| เหตุผลที่สำคัญ ใช้วิเคราะห์ความรวดเร็วในการวางแผนซ่อมบำรุง โดยระบุจุดสิ้นสุดของขั้นตอนวางแผน และตรวจสอบการแบ่งแยกหน้าที่. แหล่งข้อมูล ตาราง r5statuslog ใน Hexagon EAM ค้นหาการเปลี่ยนสถานะเป็น 'A' (Approved) หรือสถานะที่เทียบเท่าในระบบ. บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรมใน r5statuslog ประเภทเหตุการณ์ explicit | |||
| จัดตารางใบสั่งงาน | กำหนดวันเริ่มงานตามตารางหรือทรัพยากรเฉพาะให้กับใบสั่งงาน ทำให้ใบสั่งงานออกจากรายการงานค้างและเข้าสู่ตารางงานที่กำลังดำเนินการ. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการวิเคราะห์ผลิตภาพแรงงานของช่างเทคนิคและประสิทธิภาพการจัดสรรทรัพยากร. แหล่งข้อมูล ตาราง r5events ใน Hexagon EAM (อัปเดต evt_schedstart) หรือ r5statuslog (เปลี่ยนสถานะเป็น 'S' สำหรับ Scheduled). บันทึก เปรียบเทียบฟิลด์สถานะก่อนและหลัง หรือดูการอัปเดต evt_schedstart ประเภทเหตุการณ์ inferred | |||
| ตรวจสอบรายการในเช็กลิสต์แล้ว | ระบุว่างานหรือขั้นตอนตรวจสอบเฉพาะในใบสั่งงานเสร็จสมบูรณ์แล้ว แสดงความคืบหน้าของงานในระดับย่อย. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการปฏิบัติตามข้อกำหนดและความครบถ้วนของเอกสาร เพื่อยืนยันว่ามีการบันทึกการตรวจสอบความปลอดภัยในระบบ. แหล่งข้อมูล ตาราง r5checklist หรือ r5activities ใน Hexagon EAM การเปลี่ยนสถานะของรายการกิจกรรมหรืองานเฉพาะ. บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรม UPDATE ใน r5checklist ประเภทเหตุการณ์ explicit | |||
| ผ่านการควบคุมคุณภาพ | หัวหน้างานหรือผู้ตรวจสอบทบทวนงานที่เสร็จแล้วและอนุมัติคุณภาพ ขั้นตอนนี้ใช้ตรวจสอบงานซ่อมก่อนปิดใบสั่งงาน. | ||
| เหตุผลที่สำคัญ ใช้ติดตาม KPI อัตราการปฏิบัติตามข้อกำหนดด้านการควบคุมคุณภาพ หากกระบวนการย้อนกลับจากขั้นตอนนี้ แสดงว่าอาจต้องแก้งานทางเทคนิค. แหล่งข้อมูล r5statuslog ใน Hexagon EAM (เปลี่ยนสถานะเป็น 'Review' หรือ 'QC') หรือ r5audittrail สำหรับตรวจสอบ UDF ที่ระบุ. บันทึก เปรียบเทียบฟิลด์สถานะก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| สร้างใบขอเบิกวัสดุ | เชื่อมโยงคำขออะไหล่หรือวัสดุกับใบสั่งงาน เพื่อเริ่มกระบวนการย่อยด้านซัพพลายเชน. | ||
| เหตุผลที่สำคัญ จุดเริ่มต้นสำหรับวัดระยะเวลาจัดซื้ออะไหล่ หากมีรายการจำนวนมากในขั้นตอนนี้ แสดงว่ากระบวนการพึ่งพาความพร้อมของสินค้าคงคลัง. แหล่งข้อมูล ตาราง r5requisitions ใน Hexagon EAM เชื่อมโยงผ่าน req_evt (รหัสใบสั่งงาน). บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรม INSERT ใน r5requisitions ประเภทเหตุการณ์ explicit | |||
| อนุมัติปิดใบสั่งงาน | โดยทั่วไปต้องได้รับอนุมัติทางธุรการขั้นสุดท้ายเพื่อปฏิบัติตามข้อกำหนดหรือจ่ายเงินให้ผู้รับเหมา และยืนยันว่าข้อมูลทั้งหมดถูกต้อง. | ||
| เหตุผลที่สำคัญ ใช้ติดตามการวิเคราะห์รอบเวลาการอนุมัติใบสั่งงาน ความล่าช้าในขั้นตอนนี้ส่งผลต่อความเร็วในการชำระบัญชี. แหล่งข้อมูล r5statuslog ใน Hexagon EAM (เปลี่ยนสถานะเป็น 'Signed Off') หรือบันทึกการลงนามอิเล็กทรอนิกส์. บันทึก เปรียบเทียบฟิลด์สถานะก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| อัปเดตระดับความสำคัญ | ระดับความสำคัญของใบสั่งงานเปลี่ยนแปลงหลังจากสร้างครั้งแรก โดยบันทึกเวลาและค่าระดับความสำคัญใหม่. | ||
| เหตุผลที่สำคัญ จำเป็นสำหรับแดชบอร์ด Priority Escalation and Resource Audit เพื่อระบุการปรับระดับความสำคัญโดยไม่เหมาะสมหรือการขยายขอบเขตงาน. แหล่งข้อมูล Hexagon EAM r5audittrail (หากเปิดใช้การตรวจสอบ) หรืออนุมานจากสแนปชอต โดยมักดึงจากบันทึกการตรวจสอบของฟิลด์ evt_priority. บันทึก บันทึกเมื่อมีการเรียกใช้ธุรกรรม UPDATE ใน evt_priority ประเภทเหตุการณ์ explicit | |||
คู่มือการดึงข้อมูล
ขั้นตอน
- เข้าสู่ระบบแอปพลิเคชัน Hexagon EAM ด้วยบัญชีผู้ใช้ที่มีสิทธิ์ Advanced Reporting Authoring.
- ไปที่โมดูล Reports ซึ่งมักอยู่ในเมนู Administration หรือ Reports แล้วเปิดอินเทอร์เฟซ Advanced Reporting ซึ่งมักเป็น Cognos หรือเครื่องมือสร้างรายงาน SQL ในตัว.
- เริ่มตัวช่วยสร้างรายงานใหม่ แล้วเลือก 'SQL' หรือ 'Free-hand SQL' เป็นประเภทแหล่งข้อมูล วิธีนี้ช่วยให้ query ฐานข้อมูลได้โดยตรง แทนการใช้โมเดล business object มาตรฐาน.
- คัดลอกสคริปต์ SQL ในส่วน Query ด้านล่าง แล้ววางลงในหน้าต่างกำหนดชุดข้อมูล.
- แทนค่าตัวอย่าง เช่น [Your Organization Code] และช่วงวันที่ ด้วยค่าที่ตรงกับระบบของคุณ.
- ตรวจสอบไวยากรณ์ของ query ในตัวแก้ไข เพื่อให้แน่ใจว่าฐานข้อมูล Oracle หรือ SQL Server รองรับคำสั่ง union.
- จับคู่คอลัมน์ผลลัพธ์กับรายการเค้าโครงรายงาน และตรวจสอบให้แน่ใจว่ามองเห็น WorkOrderNumber, ActivityName และ EventTimestamp ได้ชัดเจน.
- ตั้งค่ารายงานให้ส่งออกเป็น CSV หรือ Excel โดยเฉพาะ เพื่อให้ข้อมูลอยู่ในรูปแบบตาราง ไม่มีเซลล์ผสานหรือหัวตารางที่จัดรูปแบบไว้.
- เรียกใช้รายงานกับข้อมูลช่วงหนึ่งเพื่อตรวจสอบ เช่น ใบสั่งงาน 100 รายการล่าสุด แล้วตรวจสอบโครงสร้างข้อมูล.
- เมื่อตรวจสอบเรียบร้อยแล้ว ให้ตั้งเวลารายงานให้ทำงานซ้ำตามกำหนด หรือเรียกใช้รายงานเพื่อดึงข้อมูลตลอดช่วงเวลาที่ต้องการ.
- ดาวน์โหลดไฟล์ผลลัพธ์และตรวจสอบรูปแบบวันที่ หากทำได้ ให้ระบุวินาทีในเวลาประทับเพื่อจัดลำดับได้อย่างแม่นยำ.
- นำเข้าไฟล์ CSV ที่ได้ไปยัง ProcessMind โดยกำหนดคอลัมน์ SourceSystem เป็นแอตทริบิวต์ของเคส และ ActivityName เป็นตัวจำแนกกิจกรรม.
การกำหนดค่า
- ช่วงวันที่: แนะนำให้กรองตาม EVT_DATE (วันที่สร้าง) โดยใช้ช่วงย้อนหลัง 6 ถึง 12 เดือน เพื่อให้ query ทำงานได้มีประสิทธิภาพ.
- ตัวกรององค์กร: Hexagon EAM มักรองรับหลายองค์กร ตรวจสอบให้แน่ใจว่า query กรองด้วยรหัสองค์กรของคุณ เพื่อไม่ให้ข้อมูลจากหน่วยธุรกิจอื่นปะปนกัน.
- ไวยากรณ์ฐานข้อมูล: query ด้านล่างใช้ SQL มาตรฐาน ANSI เท่าที่ทำได้ แต่ Hexagon EAM มักทำงานบน Oracle หรือ SQL Server จึงอาจต้องปรับฟังก์ชันวันที่เล็กน้อย เช่น SYSDATE หรือ GETDATE.
- การกำหนดสถานะ: การจับคู่รหัสสถานะ เช่น 'A', 'C', 'R' กับชื่อกิจกรรม เช่น 'Work Order Approved' ต้องตรงกับการตั้งค่าสถานะในระบบของคุณ.
- สิทธิ์: บัญชีผู้ใช้ที่เรียกใช้รายงานต้องมีสิทธิ์อ่านตาราง R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS และ R5AUDITVALUES.
ตัวอย่างคำค้น sql
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' ขั้นตอน
- ระบุการเชื่อมต่อฐานข้อมูล: ตรวจสอบว่าคุณมีข้อมูลรับรองสำหรับอ่านข้อมูล ซึ่งโดยทั่วไปเป็นบัญชีบริการ สำหรับฐานข้อมูล Oracle หรือ SQL Server ที่ Hexagon EAM ใช้งานอยู่
- ค้นหาตารางหลัก: ยืนยันว่าคุณเข้าถึง R5EVENTS (ส่วนหัวใบสั่งงาน), R5STATUS (ประวัติสถานะ), R5BOOKEDHOURS (ชั่วโมงแรงงาน), R5TRANSACTIONS (วัสดุ) และ R5AUDITVALUES (บันทึกการตรวจสอบ) ได้
- จับคู่รหัสสถานะ: Hexagon EAM ใช้รหัสสถานะที่กำหนดค่าได้ เช่น A, C, O และ R ตรวจสอบการตั้งค่าระบบของคุณที่หน้าจอ Administration -> Codes เพื่อจับคู่รหัส 1 หรือ 2 อักขระของระบบกับกิจกรรม อนุมัติแล้ว, กำหนดเวลาแล้ว, เริ่มแล้ว, เสร็จสมบูรณ์, ผ่านการตรวจสอบคุณภาพ, ลงนามรับรองแล้ว และปิดแล้ว
- ตั้งค่าคิวรี: เปิดสคริปต์ SQL ด้านล่าง แล้วแทนที่รหัสสถานะตัวอย่าง เช่น 'APPR', 'SCHD' และ 'COMP' ด้วยรหัสที่ใช้จริงในระบบของคุณ
- กำหนดช่วงวันที่: แก้ส่วน
WHEREเพื่อกรองตาม EVT_DATE หรือ TRN_DATE และเลือกช่วงเวลาที่ต้องการ โดยทั่วไปใช้ข้อมูลย้อนหลัง 12 เดือน เพื่อให้คิวรีทำงานได้มีประสิทธิภาพ - เรียกใช้การดึงข้อมูล: เรียกใช้คิวรีในไคลเอ็นต์ SQL เช่น SQL Developer, SSMS หรือ Toad
- ตรวจสอบข้อมูลการตรวจสอบ: หากกิจกรรม 'อัปเดตลำดับความสำคัญ' ไม่มีแถวข้อมูล ให้ตรวจสอบว่าเปิดใช้ฟังก์ชัน Audit สำหรับตาราง R5EVENTS ในการตั้งค่าระบบ EAM แล้วหรือไม่
- ตรวจสอบข้อมูลรายการตรวจสอบ: ตรวจสอบว่า R5CHECKLISTVALUES เป็นตารางที่ถูกต้องสำหรับเวอร์ชันของคุณหรือไม่ เวอร์ชันเก่าอาจใช้ R5ACTIVITIES สำหรับบันทึกการทำงานระดับงาน
- ส่งออกข้อมูล: บันทึกผลลัพธ์เป็นไฟล์ CSV หรือ Parquet ตั้งค่าคอลัมน์ Timestamp เป็น ISO 8601 (
YYYY-MM-DD HH:MM:SS) เพื่อป้องกันข้อผิดพลาดในการอ่านข้อมูล - นำเข้า ProcessMind: อัปโหลดไฟล์ข้อมูลแบบแบนไปยังอินเทอร์เฟซ ProcessMind แล้วจับคู่ WorkOrderNumber กับรหัสเคส, ActivityName กับกิจกรรม และ EventTimestamp กับการประทับเวลา
การกำหนดค่า
- ตัวกรองช่วงเวลา: ขณะนี้ query เลือกข้อมูลทั้งหมด แนะนำอย่างยิ่งให้เพิ่มตัวกรอง เช่น WHERE EVT_DATE >= SYSDATE - 365 (Oracle) หรือ GetDate() - 365 (SQL Server) ใน CTE หลักหรือแต่ละบล็อก SELECT.
- การจับคู่รหัสสถานะ: แทนค่าข้อความใน SQL เช่น 'APPR', 'COMP', 'QC' ด้วยรหัสจริงที่กำหนดไว้ในชุด R5STATUS.
- การตั้งค่า Audit: การดึงกิจกรรม 'Priority Updated' อาศัยตาราง R5AUDITVALUES หากปิดการตรวจสอบสำหรับคอลัมน์ EVT_PRIORITY กิจกรรมนี้จะไม่มีในผลลัพธ์.
- องค์กร/ผู้เช่า: หากระบบ EAM ของคุณรองรับหลายองค์กร ให้เพิ่มตัวกรอง EVT_ORG หรือ EVT_MRC (แผนก) เพื่อไม่ให้ข้อมูลจากแต่ละองค์กรปะปนกัน.
- ภาษา: query ตั้งสมมติฐานว่าชื่อคอลัมน์เป็นภาษาอังกฤษมาตรฐาน หากฐานข้อมูลใช้ชื่อคอลัมน์ที่แปลเป็นภาษาอื่น ให้ปรับตามนั้น.
ตัวอย่างคำค้น sql
/* 1. Work Order Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
E.EVT_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
E.EVT_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
WHERE E.EVT_TYPE IN ('JOB', 'PPM') -- Filter for Standard and Preventive WOs
UNION ALL
/* 2. Priority Updated (From Audit Log) */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
A.AUD_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
A.AUD_VALUE AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
A.AUD_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5AUDITVALUES A ON E.EVT_CODE = A.AUD_KEY1
WHERE A.AUD_TABLE = 'R5EVENTS'
AND A.AUD_FIELD = 'EVT_PRIORITY'
UNION ALL
/* 3. Work Order Approved */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Approved' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'APPR' -- Replace with your Approved status code
UNION ALL
/* 4. Material Requisition Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
R.REQ_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
R.REQ_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5REQUISITIONS R ON E.EVT_CODE = R.REQ_EVENT
UNION ALL
/* 5. Work Order Scheduled */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Scheduled' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SCHD' -- Replace with your Scheduled status code
UNION ALL
/* 6. Work Order Started */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Started' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS IN ('STRT', 'INPRG') -- Replace with your Started/In Progress status codes
UNION ALL
/* 7. Material Issued */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Issued' AS ActivityName,
T.TRN_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
T.TRN_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5TRANSACTIONS T ON E.EVT_CODE = T.TRN_EVENT
WHERE T.TRN_TYPE = 'ISSUE' -- Indicates material issue from store
UNION ALL
/* 8. Labor Hours Recorded */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
B.BOO_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
B.BOO_PERSON AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
B.BOO_HOURS AS ActualLaborHours
FROM R5EVENTS E
JOIN R5BOOKEDHOURS B ON E.EVT_CODE = B.BOO_EVENT
UNION ALL
/* 9. Checklist Item Verified */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
C.CKV_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
C.CKV_ENTEREDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5CHECKLISTVALUES C ON E.EVT_CODE = C.CKV_EVENT
WHERE C.CKV_COMPLETED = '+' -- Assuming '+' indicates checked/complete
UNION ALL
/* 10. Work Order Completed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Completed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'COMP' -- Replace with your Completed status code
UNION ALL
/* 11. Quality Control Passed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Quality Control Passed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'QC' -- Replace with your QC Passed status code
UNION ALL
/* 12. Work Order Signed Off */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Signed Off' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SIGNOFF' -- Replace with your Sign Off status code
UNION ALL
/* 13. Work Order Closed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Closed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'CLOS' -- Replace with your Closed status code ขั้นตอน
- ยืนยันว่าติดตั้งและมีไลเซนส์ Hexagon EAM Databridge Outbound แล้ว และได้รับอนุญาตให้ใช้กับข้อมูลใบสั่งงานบำรุงรักษาที่ต้องการดึง ตรวจสอบการตั้งค่าธุรกรรมขาออก ปลายทาง ความสามารถในการตั้งเวลา และสิทธิ์เข้าถึงตารางหรือวิวต้นทาง ใช้ [Configure based on your system] เพื่อดูเส้นทางเมนูการดูแลระบบที่เกี่ยวข้อง เนื่องจากชื่อเมนูและรหัสธุรกรรมแตกต่างกันตามรุ่น EAM.
- ระบุตารางหรือวิวหลักใน Hexagon EAM สำหรับส่วนหัวใบสั่งงาน ประวัติสถานะใบสั่งงาน ประวัติความสำคัญ ใบขอวัสดุ การเบิกวัสดุ รายการแรงงาน ผลรายการตรวจสอบหรือการตรวจสอบ การมอบหมายงานตามกำหนดการ การอนุมัติคุณภาพ การลงนาม และการปิดงาน แทนที่ตัวอย่าง [Your ... table name] ใน query ด้วยออบเจ็กต์ที่ตรงกับระบบของคุณ อย่าคิดว่าส่วนหัวใบสั่งงานปัจจุบันมีประวัติการเปลี่ยนแปลงครบถ้วน.
- ตั้งค่า Databridge Outbound ให้ส่งธุรกรรม XML หรือ CSV ทุกครั้งที่มีการบันทึกการเปลี่ยนแปลงใบสั่งงานที่เกี่ยวข้อง ระบุหมายเลขใบสั่งงาน ประเภทเหตุการณ์ เวลาประทับเหตุการณ์ ผู้ใช้ต้นทาง ความสำคัญ ประเภทใบสั่งงาน แผนก วันที่กำหนดเสร็จ สินทรัพย์ ชั่วโมงแรงงานจริง และเวลาที่รีเฟรชหรือดึงข้อมูล ตั้งค่าการจับคู่ข้อมูลขาออกแยกกัน หากโครงสร้างธุรกรรมต้นทางของสถานะ แรงงาน วัสดุ รายการตรวจสอบ การจัดกำหนดการ คุณภาพ การลงนาม หรือการปิดงานแตกต่างกัน.
- ตั้งค่า payload ขาออกให้บันทึกเหตุการณ์ทางธุรกิจแต่ละครั้งเป็นระเบียนเหตุการณ์แยกกัน อย่าส่งเฉพาะสถานะล่าสุดของใบสั่งงาน สำหรับรายการแรงงาน การเบิกวัสดุ รายการตรวจสอบ การเปลี่ยนความสำคัญ หรือเหตุการณ์ที่เกิดซ้ำอื่นๆ ให้ส่งหนึ่งระเบียนต่อเหตุการณ์ จับคู่ประเภทเหตุการณ์ Databridge กับค่า ActivityName ที่จำเป็น 13 ค่า.
- บันทึกไฟล์ XML หรือ CSV จาก Databridge ไว้ในพื้นที่ staging ที่ควบคุมการเข้าถึง จากนั้นโหลดข้อมูลลงในออบเจ็กต์ฐานข้อมูลที่ query อ้างอิง หรือเปลี่ยนแหล่งข้อมูลของ query ให้ใช้ตาราง staging เก็บรหัสเหตุการณ์ต้นฉบับ หมายเลขใบสั่งงาน เวลาประทับเหตุการณ์ ผู้ใช้ต้นทาง และ LastDataUpdate ไว้ หาก Databridge ส่ง XML ให้แยกโหนดเหตุการณ์ที่เกิดซ้ำออกเป็นแถวก่อนจับคู่กิจกรรม หากส่ง CSV ให้ตรวจสอบตัวคั่น เครื่องหมายอัญประกาศ การเข้ารหัส และรูปแบบเวลาประทับ.
- แทนที่ตัวอย่างใน query สำหรับออบเจ็กต์การเชื่อมต่อ พารามิเตอร์วันที่ และตัวกรองบริษัท query ใช้แหล่งเหตุการณ์ที่ปรับให้อยู่ในรูปแบบมาตรฐานสำหรับแต่ละกิจกรรม แล้วรวมผลลัพธ์ด้วย UNION ALL ตรวจสอบว่าชนิดข้อมูลของคอลัมน์ต้นทางในแต่ละบล็อกเข้ากันได้ หากแหล่งข้อมูลไม่มีแอตทริบิวต์ที่แนะนำ ให้ส่งค่า NULL สำหรับแอตทริบิวต์นั้นแทนการสร้างค่าขึ้นเอง.
- เรียกใช้ query กับข้อมูลช่วงเริ่มต้นประมาณสามถึงหกเดือน ตรวจสอบว่าผลลัพธ์มีคอลัมน์ที่จำเป็น ได้แก่ WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem และ LastDataUpdate รวมถึงแอตทริบิวต์ที่แนะนำเมื่อมีข้อมูล เรียงผลลัพธ์ตาม WorkOrderNumber, EventTimestamp และ ActivityName โดยเก็บแถวซ้ำไว้เมื่อเป็นเหตุการณ์ต้นทางคนละรายการ.
- กระทบยอดจำนวนแถวที่ดึงได้กับจำนวนการส่งข้อมูลจาก Databridge จำนวนธุรกรรมต้นทาง และตัวอย่างใบสั่งงานใน Hexagon EAM ตรวจสอบประวัติสถานะที่ขาดหาย การส่งข้อมูลซ้ำ เวลาประทับที่ไม่ถูกต้อง และเหตุการณ์นอกช่วงวันที่ที่เลือก ใช้กฎลบข้อมูลซ้ำที่คงที่เฉพาะเมื่อมีการส่งเหตุการณ์ต้นทางเดียวกันมากกว่าหนึ่งครั้ง.
- ส่งออกผลลัพธ์สุดท้ายเป็นไฟล์ UTF-8 CSV หรือรูปแบบบันทึกเหตุการณ์อื่นที่ ProcessMind รองรับ ให้หนึ่งเหตุการณ์อยู่ในหนึ่งแถว ใช้รูปแบบเวลาประทับที่สอดคล้องกันและจัดการเขตเวลาให้ถูกต้อง กำหนด WorkOrderNumber เป็นรหัสเคส, ActivityName เป็นกิจกรรม และ EventTimestamp เป็นเวลาประทับเหตุการณ์ อัปโหลดไฟล์ไปยัง ProcessMind แล้วตรวจสอบว่ามีกิจกรรมทั้ง 13 ชื่อในโมเดลเหตุการณ์.
การกำหนดค่า
- ตั้งค่า Hexagon EAM Databridge Outbound ให้ส่งข้อมูลระดับเหตุการณ์ในรูปแบบ XML หรือ CSV ชื่อธุรกรรม หน้าจอการดูแลระบบ และเส้นทางเมนูที่แน่นอนขึ้นอยู่กับรุ่น Hexagon EAM ที่ติดตั้ง ให้ใช้ [Configure based on your system] แทนการคาดเดาเส้นทางเมนูของรุ่นใดรุ่นหนึ่ง.
- กำหนด WorkOrderNumber เป็นรหัสเคสของ ProcessMind, ActivityName เป็นฟิลด์กิจกรรม และ EventTimestamp เป็นเวลาประทับเหตุการณ์ ระบุ Hexagon EAM ใน SourceSystem และใช้ LastDataUpdate เพื่อบันทึกเวลาที่ดึงหรือรีเฟรชข้อมูล.
- ตั้งค่าการจับคู่ข้อมูลขาออกสำหรับกิจกรรมทั้ง 13 รายการ ได้แก่ Work Order Created, Priority Updated, Work Order Approved, Material Requisition Created, Work Order Scheduled, Work Order Started, Material Issued, Labor Hours Recorded, Checklist Item Verified, Work Order Completed, Quality Control Passed, Work Order Signed Off และ Work Order Closed.
- เก็บเหตุการณ์ย้อนหลังไว้ ฟิลด์สถานะปัจจุบันเพียงอย่างเดียวไม่สามารถสร้างประวัติการเปลี่ยนสถานะ การปรับความสำคัญ รายการแรงงาน การเบิกวัสดุ การตรวจสอบรายการ การอนุมัติ หรือการลงนามได้ครบถ้วน.
- ใช้ช่วงวันที่สามถึงหกเดือนสำหรับการดึงข้อมูลครั้งแรก สำหรับการโหลดข้อมูลเพิ่ม ให้ใช้เครื่องหมายบอกตำแหน่งจากการส่งข้อมูลของ Databridge หรือ LastDataUpdate และเผื่อช่วงเวลาซ้อนทับเล็กน้อยเพื่อรองรับธุรกรรมที่มาถึงล่าช้า.
- ใช้ตัวกรองบริษัท สถานที่ องค์กร ประเภทใบสั่งงาน แผนก และสถานะเฉพาะเมื่อจำเป็นต่อการวิเคราะห์ ใช้ [Your company filter] หรือ [Configure based on your system] สำหรับข้อจำกัดเฉพาะองค์กร.
- รวมใบสั่งงานที่ปิดแล้วเมื่อวิเคราะห์วงจรงานทั้งหมด การกรองให้เหลือเฉพาะใบสั่งงานที่ยังเปิดอยู่จะทำให้กิจกรรมการทำงานเสร็จ การตรวจสอบคุณภาพ การลงนาม และการปิดงานหายไป.
- ตั้งค่าการจัดการเขตเวลาให้ชัดเจน แปลงเวลาประทับจากทุกแหล่งเป็นเขตเวลาเดียวกันก่อนอัปโหลดไปยัง ProcessMind และเก็บเขตเวลาหรือค่าออฟเซ็ตต้นฉบับไว้เมื่อมีข้อมูล.
- สำหรับชุดข้อมูลขนาดใหญ่ ให้กรองข้อมูลที่ต้นทาง จำกัดช่วงเวลาที่ดึงข้อมูล ทำดัชนีหรือแบ่งพาร์ติชันตามเวลาประทับเหตุการณ์และหมายเลขใบสั่งงาน แล้วจัดเก็บไฟล์ Databridge ในพื้นที่ staging ก่อนแปลงข้อมูล หลีกเลี่ยงการแยกวิเคราะห์ payload XML ย้อนหลังทั้งหมดซ้ำหลายครั้ง.
- ข้อกำหนดเบื้องต้น ได้แก่ การใช้งาน Databridge Outbound การได้รับอนุญาตให้อ่านข้อมูล EAM ที่เกี่ยวข้อง การเข้าถึงปลายทางขาออกหรือฐานข้อมูล staging และการเข้าถึงข้อมูลใบสั่งงาน สถานะ วัสดุ แรงงาน รายการตรวจสอบ การจัดกำหนดการ การอนุมัติ คุณภาพ การลงนาม และการปิดงาน.
- หากธุรกรรม Databridge ไม่มีเหตุการณ์ทางธุรกิจที่จำเป็น ให้ตั้งค่าวิวต้นทางหรือการแปลงข้อมูลใน staging เพื่อสร้างแถวเหตุการณ์ที่ระบุไว้อย่างชัดเจน ProcessMind ไม่อนุมานกิจกรรมที่ขาดหายจากแถวข้อมูลอื่น.
ตัวอย่างคำค้น sql
WITH
created_events AS (
SELECT
CAST(c.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Created' AS VARCHAR(100)) AS ActivityName,
CAST(c.[CreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(c.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(c.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(c.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(c.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(c.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(c.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(c.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(c.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order creation table or view] c
WHERE c.[CreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND c.[CreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
priority_events AS (
SELECT
CAST(p.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Priority Updated' AS VARCHAR(100)) AS ActivityName,
CAST(p.[PriorityChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(p.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(p.[NewPriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(p.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your priority history table or view] p
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = p.[WorkOrderNumber]
WHERE p.[PriorityChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND p.[PriorityChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
approved_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Approved' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your approved status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
requisition_events AS (
SELECT
CAST(r.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Requisition Created' AS VARCHAR(100)) AS ActivityName,
CAST(r.[RequisitionCreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(r.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(r.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material requisition table or view] r
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = r.[WorkOrderNumber]
WHERE r.[RequisitionCreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND r.[RequisitionCreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
scheduled_events AS (
SELECT
CAST(a.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Scheduled' AS VARCHAR(100)) AS ActivityName,
CAST(a.[ScheduledTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(a.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(a.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(a.[ScheduledStartDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order scheduling table or view] a
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = a.[WorkOrderNumber]
WHERE a.[ScheduledTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND a.[ScheduledTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
started_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Started' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] IN ('[Your in progress status value]', '[Your started status value]')
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
issued_events AS (
SELECT
CAST(i.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Issued' AS VARCHAR(100)) AS ActivityName,
CAST(i.[IssueTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(i.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(i.[IssuedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material issue table or view] i
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = i.[WorkOrderNumber]
WHERE i.[IssueTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND i.[IssueTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
labor_events AS (
SELECT
CAST(l.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Labor Hours Recorded' AS VARCHAR(100)) AS ActivityName,
CAST(l.[LaborEntryTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(l.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(l.[RecordedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(l.[LaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your labor transaction table or view] l
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = l.[WorkOrderNumber]
WHERE l.[LaborEntryTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND l.[LaborEntryTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
checklist_events AS (
SELECT
CAST(k.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Checklist Item Verified' AS VARCHAR(100)) AS ActivityName,
CAST(k.[VerifiedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(k.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(k.[VerifiedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your checklist verification table or view] k
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = k.[WorkOrderNumber]
WHERE k.[VerifiedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND k.[VerifiedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
completed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Completed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your completed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
quality_events AS (
SELECT
CAST(q.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Quality Control Passed' AS VARCHAR(100)) AS ActivityName,
CAST(q.[QualityApprovalTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(q.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(q.[ApprovedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your quality approval table or view] q
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = q.[WorkOrderNumber]
WHERE q.[QualityResult] = '[Your quality passed value]'
AND q.[QualityApprovalTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND q.[QualityApprovalTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
signoff_events AS (
SELECT
CAST(f.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Signed Off' AS VARCHAR(100)) AS ActivityName,
CAST(f.[SignOffTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(f.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(f.[SignedOffBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order sign-off table or view] f
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = f.[WorkOrderNumber]
WHERE f.[SignOffTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND f.[SignOffTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
closed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Closed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your closed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
)
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM created_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM priority_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM approved_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM requisition_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM scheduled_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM started_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM issued_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM labor_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM checklist_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM completed_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM quality_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM signoff_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM closed_events
ORDER BY WorkOrderNumber, EventTimestamp, ActivityName; พร้อมเริ่มต้นหรือยัง?
ใช้เทมเพลตนี้เปลี่ยนข้อมูลการบำรุงรักษาให้เป็นข้อมูลเชิงลึกที่นำไปใช้ได้ ทีมงานของเราพร้อมช่วยตอบคำถามทางเทคนิคระหว่างเตรียมข้อมูล.
ลดความล่าช้าในการบำรุงรักษาสินทรัพย์และเพิ่มประสิทธิภาพได้ตั้งแต่วันนี้
ลดระยะเวลารอบงานลง 30 เปอร์เซ็นต์และขจัดคอขวดที่ซ่อนอยู่.
ไม่ต้องใช้บัตรเครดิต ตั้งค่าเสร็จในไม่กี่นาที.