Skip to main content

OAM Patch Status Sub Order

Root Cause

  1. Batch OAM_EXPORT_DOCUMENT_COLLECTION_SENT จะพบว่า API เส้น OA07003(/sent-outbound) หากมีการส่งไฟล์ไปยัง SFTP แล้ว ทางระบบจะเปลี่ยน Status(work_status) ของ Sub Order No. ดังกล่าวจาก ASSIGNED -> GENERATED และมีการอัพเดท Event status code เป็น S0071
  2. Batch OAM_EXPORT_DOCUMENT_COLLECTION_SYNC_RESULT ของ API เส้น OA07004(/sync-result-outbound) หากพบว่ารายการที่ส่งออกไปในไฟล์ Outbound ทั้งหมด Success จะมีการอัพเดท Event status code และ order_status ของ Order นั้น เป็น S0071
  3. แต่ถ้า API เส้น OA07004(/sync-result-outbound) หากพบว่ารายการที่ส่งออกไปในไฟล์ Outbound บางรายการ Failed จะมีการอัพเดท Event status code และ order_status ของ Order นั้น เป็น S0090 แล้วต้องให้ทาง IT JAI ทำการปรับปรุงแก้ไขรายการ
  4. จากข้อที่ 3 จะพบว่าระบบ OAM ไม่ได้มีการปรับ Status(work_status) ในกรณีที่รายการไม่สามารถนำเข้าระบบของทาง Outsource PIVOT ได้ ทำให้รายการจะไม่สามารถดำเนินการต่อได้

เงื่อนไขสำหรับการ Patch Data

  1. Batch OAM_EXPORT_DOCUMENT_COLLECTION_SYNC_RESULT มีรายการ Failed
  2. รายการอยู่ใน Status(work_status) -> GENERATED
  3. หมายเลข Sub Order ที่ต้องการ Patch จะต้องประเมินสถานการณ์ของแต่ละรายการก่อน เพื่อสรุปวิธีการ Patch

ขั้นตอนการเตรียมข้อมูล

  1. นำไฟล์ Outbound Response จาก SFTP มาจากทางทีม SRE หรือจากทาง PIVOT
  2. นำรายการ Sub Order No. แต่ละรายการไปตรวจสอบวันที่นัดหมาย และผลที่ไม่สามารถนำเข้าได้
  3. หากรายการเป็น Success วันนัดหมายยังอยู่ใน Period ที่สามารถส่งในวันถัดไปได้ รายการ Sub Order นั้นจะต้อง Patch status = ASSIGNED
  4. หากรายการเป็น Success แต่วันนัดหมายไม่อยู่ใน Period ที่สามารถส่งในวันถัดไปได้ ให้ทาง User ติดต่อลูกค้าเพื่อสอบถามวันนัดหมายใหม่อีกครั้งและ รายการ Sub Order นั้นจะต้อง Patch status = CHECKING เพื่อเข้า Flow Re-Assign
  5. หากรายการเป็น Failed ให้ตรวจสอบเหตุผลข้อผิดพลาด แล้วปรับปรุงรายการ Sub Order นั้นให้ Patch status = CHECKING เพื่อเข้า Flow Re-Assign โดยเบื้องต้นในส่วนของที่ User สามารถติดต่อสอบถามข้อมูลลูกค้าเพื่อช่วยปรับปรุงข้อมูลได้ มีดังนี้
    1. งานที่นัดลูกค้าภายในวันนี้ ไม่อนุญาตให้สั่งงานหลัง 12.00 น.
    2. กรุณาเลือกวันนัดใหม่คุณเลือกวันนัดไม่ถูกต้อง
    3. ไม่อนุญาตให้นัดเกิน 5 วันทำการ
    4. กรุณาเลือกวันนัดใหม่ ระบบไม่เปิดให้นัดวันอาทิตย์ และ วันหยุดนักขัตฤกษ์
    5. นำส่งงานคืนธนาคารเกิน 5 วันทำการแล้ว ไม่สามารถซ่อมงานได้ (กรณีที่เกิน 5 วัน)
    6. งานไม่อยุ่ในสถานะที่สามารถซ่อมได้
    7. หากสั่งงานวันเสาร์หรืออาทิตย์ ไม่สามารถนัดวันจันทร์ได้
    8. หากสั่งงานวันหยุด ไม่สามารถนัดวันถัดไปได้
    9. ที่อยู่ไม่ถูกต้อง กรุณาตรวจสอบข้อมูล
  6. จากในข้อ 5 หากสาเหตุที่ผิดพลาดไม่ได้อยู่ใน Scope นี้ ให้ทาง IT JAI ตรวจสอบปัญหาที่เกิดขึ้นแล้วปรับปรุงรายการให้พร้อมสำหรับการ Patch ให้ Sub Order นั้น มี Status = CHECKING เพื่อเข้า Flow Re-Assign

ขั้นตอนการดำเนินงาน

  1. รับแจ้งจากทีม Incident Management จาก F1
  2. สอบถามและเตรียมข้อมูลรายการที่ต้องการ Patch
  3. แจ้งทางทีม DBA เพื่อ booking เข้า Standard Patch(รอบวันจันทร์ และวันพุธ) พร้อมกับส่งข้อมูล Script ให้
  4. ทางทีม DBA ตรวจสอบ Script ก่อนเข้า Process Patch
  5. ทีม DBA ดำเนินการ Process Patch Data
  6. แจ้งทาง User เพื่อตรวจสอบข้อมูลรายการที่มีการแจ้งให้ Patch Data เพื่อตรวจสอบความถูกต้องบนหน้าจอ

Register Script Patch Data

Script Backup Database

CREATE SCHEMA IF NOT EXISTS backup_<YYYYMM>;
CREATE TABLE IF NOT EXISTS backup_<YYYYMM>.task_order_snapshot_<YYYYMMDD> (LIKE oam_service.task_order_snapshot INCLUDING ALL);

INSERT INTO backup_<YYYYMM>.task_order_snapshot_<YYYYMMDD>
SELECT * FROM oam_service.task_order_snapshot
WHERE snapshot_code = (SELECT snapshot_code
FROM oam_service.task_order_snapshot tos
WHERE tos.task_order_no = '<หมายเลข Sub Order>'
ORDER BY tos.amend_no DESC
LIMIT 1);

Script Verify Data

SELECT task_order_no, snapshot_code, status
FROM oam_service.task_order_snapshot
WHERE snapshot_code = (SELECT tos.snapshot_code
FROM oam_service.task_order_snapshot tos
WHERE tos.task_order_no = '<หมายเลข Sub Order>'
ORDER BY tos.amend_no DESC
LIMIT 1);

Script Patch Data

UPDATE oam_service.task_order_snapshot m_tos
SET status = '<Status ที่ต้องการ Patch>'
WHERE m_tos.snapshot_code = (SELECT tos.snapshot_code
FROM oam_service.task_order_snapshot tos
WHERE tos.task_order_no = '<หมายเลข Sub Order>'
ORDER BY tos.amend_no DESC
LIMIT 1);

Script Rollback Data

UPDATE oam_service.task_order_snapshot m_tos
SET status = '<Status ก่อนการ Patch>'
WHERE m_tos.snapshot_code = (SELECT tos.snapshot_code
FROM oam_service.task_order_snapshot tos
WHERE tos.task_order_no = '<หมายเลข Sub Order>'
ORDER BY tos.amend_no DESC
LIMIT 1);