MO User Profile Query (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการดึงข้อมูลโปรไฟล์ผู้ใช้งานของโมดูล MO (Management Organization) ภายในระบบ AIS Virtual Organization (VO)
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: MO Integration / MyChannel Interface
- วัตถุประสงค์: เพื่อตรวจสอบและดึงข้อมูลโปรไฟล์ผู้ใช้งาน (Location, Position, Division) โดยเปรียบเทียบข้อมูลระหว่างระบบ VO และระบบต้นทาง MO
2. รายละเอียด API Interface
- ชื่อ API:
queryUserProfile - Endpoint URL:
https://sit-virtualorg-api.cdc.ais.th/api/mychannel/queryUserProfile - HTTP Method:
POST - การยืนยันตัวตน (Authentication): Bearer Token (ได้รับจากบริการ
getAccessToken) - Request Headers:
Content-Type: application/jsonAuthorization: Bearer <Access_Token>
3. พารามิเตอร์ขาเข้า (Request Parameters - JSON)
| พารามิเตอร์ | ประเภท | จำเป็น | รายละเอียด |
|---|---|---|---|
username | String | ใช่ | AIS Username ของพนักงานที่ต้องการสอบถามข้อมูล |
userprofile | String | ไม่ | ตัวระบุโปรไฟล์เฉพาะหรือประเภทสำหรับการกรองข้อมูล |
4. ตรรกะทางธุรกิจและสถานการณ์การทดสอบ (Business Logic & Scenarios)
ระบบจะต้องจัดการกับสถานการณ์การเปรียบเทียบข้อมูลที่หลากหลายระหว่างฐานข้อมูล VO และระบบต้นทาง MO
4.1 สถานการณ์การเชื่อมต่อข้อมูล (Integration Scenarios)
| รหัสสถานการณ์ | รายละเอียด |
|---|---|
| SN-001 | Back office ที่มี location บน VO โดย location ของ MO ไม่ตรงกับ VO |
| SN-002 | Back office ที่มี location บน VO โดย location ของ MO ตรงกับ VO |
| SN-003 | Back office ที่มี location บน VO โดย location ของ MO ตรงกับ VO (ไม่ตรงแค่ position) |
| SN-004 | Back office ที่ไม่มี location = Null บน VO |
| SN-005 | AIS Shop ที่มี location บน VO โดย location ของ MO ไม่ตรงกับ VO |
| SN-006 | AIS Shop ที่ไม่มี location บน VO โดย location ของ MO ตรงกับ VO |
| SN-007 | ไม่มี user บน VO (แต่มีที่ MO) |
4.2 สถานการณ์การจัดการข้อผิดพลาด (Error Handling Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง (HTTP Status / Result) |
|---|---|---|
| SN-008 | Invalid Request | 200 OK / resultCode = 200 (Invalid Request) |
| SN-009 | Request parameter(s) are invalid | 200 OK / resultCode = 200 (Invalid Param) |
| SN-010 | UserName not found | 200 OK / resultCode = 200 (UserName not found) |
| SN-011 | Required Value Missing [userprofile] | 200 OK / resultCode = 200 (Missing Param) |
| SN-012 | Required Value Missing [username] | 200 OK / resultCode = 200 (Missing Param) |
| SN-013 | Unauthorized: Access token is missing or invalid | 401 Unauthorized |
| SN-014 | Unknown Command | 404 Not Found / 400 Bad Request |
| SN-015 | The requested resource does not support http method 'GET' | 405 Method Not Allowed |
| SN-016 | The requested resource does not support http method 'PUT' | 405 Method Not Allowed |
| SN-017 | Internal Server Error | 500 Internal Server Error |
| SN-018 | Token timeout | 401 Unauthorized / Token Expired |
| SN-019 | Stop Azure Container App | Service Unavailable / Timeout |
5. สรุปขั้นตอนการทำงาน (Data Flow)
- ระบบรับคำขอ
POSTพร้อมกับusername - ระบบตรวจสอบความถูกต้องของ
Access Token - ระบบสืบค้นข้อมูลจากตาราง
UserMasterและLocationในฐานข้อมูล VO - ระบบเปรียบเทียบข้อมูลกับระบบต้นทาง MO
- ระบบส่งคืนข้อมูลโปรไฟล์ที่รวมกันแล้ว (Position → Division → Location)