ACIM User Profile Query (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการดึงข้อมูลโปรไฟล์ผู้ใช้งานที่ถูกสร้างหรือปรับปรุงใหม่ (Incremental Update) เพื่อให้ระบบ ACIM นำไปใช้ปรับปรุงข้อมูลในระบบ
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: ACIM Integration
- วัตถุประสงค์: เพื่อให้บริการข้อมูล User Profile ที่มีการเปลี่ยนแปลง (Create/Update) ในวันที่ระบุ และมีสถานะเป็น 'Active' เท่านั้น สำหรับการทำ Synchronization ข้อมูลไปยังระบบ ACIM
2. รายละเอียด API Interface
- ชื่อ API:
queryUserAllActiveProfile - Endpoint URL:
https://sit-virtualorg-api.cdc.ais.th/api/acim/queryUserAllActiveProfile - HTTP Method:
POST - การยืนยันตัวตน (Authentication): Bearer Token (ได้รับจากบริการ
getAccessToken)
3. โครงสร้างข้อมูล (Data Structure)
3.1 พารามิเตอร์ขาเข้า (Request Body - JSON)
| พารามิเตอร์ | ประเภท | จำเป็น | รายละเอียด |
|---|---|---|---|
ModifiedOn | String | ใช่ | วันที่ที่มีการแก้ไขข้อมูลในรูปแบบ DD/MM/YYYY (เช่น "17/12/2025") |
3.2 ตัวอย่างการตอบกลับเมื่อสำเร็จ (Success Response - JSON)
json
{
"status": true,
"code": "100",
"message": "success",
"userAllActiveProfile": [
{
"userName": "somjateh",
"firstNameEn": "Somjate",
"lastNameEn": "Homsakmongkol",
"employeeEmailID": "somjateh@ais.co.th",
"locationCode": "1100",
"locationNameEN": "Shop AIS Tower 2",
"divisionCode": "1-DG2-74",
"divisionName": "Shop AIS Tower 2",
"positionCode": "1-2CKTKZ1",
"positionName": "ST2 Serenade Supervisor",
"positionType": "Supervisor",
"ascPositionName": "ST2 Serenade Supervisor",
"ascStatus": "Active",
"createdOn": "08/11/2022 02:54:15",
"modifiedOn": "17/12/2025 15:46:39"
}
]
}4. ตรรกะการประมวลผล (Processing Logic)
- ระบบจะค้นหาข้อมูลผู้ใช้งานที่มีการ Create หรือ Update ในวันที่ระบุผ่านพารามิเตอร์
ModifiedOn - กรองเฉพาะผู้ใช้งานที่มีสถานะเป็น Active เท่านั้น
- ข้อมูลที่ระบบ ACIM จะนำไป Update ได้แก่:
locationCode,locationNameEN,divisionCode,divisionName,positionCode,positionName,positionType,ascPositionName,ascStatus
- ข้อมูลที่จะ ไม่มีการ Update (ใช้เพื่อการตรวจสอบ):
userName,firstNameEn,lastNameEn
5. สถานการณ์การทดสอบ (Test Scenarios)
5.1 สถานการณ์ทางธุรกิจ (Business Scenarios)
| รหัสสถานการณ์ | รายละเอียด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-001 | ใส่วันที่ที่ถูกต้องตามรูปแบบ DD/MM/YYYY | 200 OK / ข้อมูลแสดงถูกต้องตามวันที่ระบุ |
| SN-003 | ใส่วันที่ที่ไม่มีข้อมูลการเปลี่ยนแปลง | 200 OK / resultCode = 100 (No modified User found) |
| SN-004 | ใส่วันที่ล่วงหน้า | 200 OK / resultCode = 100 (No modified User found) |
| SN-005 | ใส่วันที่ผิดรูปแบบ (Wrong Format) | 200 OK / resultCode = 200 (Invalid Request) |
| SN-006 | ใส่วันที่ที่เป็นค่าว่างหรือ Null | 200 OK / resultCode = 200 (Required Value Missing) |
5.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-007 | คำขอไม่ถูกต้อง (Invalid Request) | HTTP 200 / resultCode = 200 |
| SN-011 | Token ไม่ถูกต้องหรือไม่ถูกส่งมา | HTTP 401 / resultCode = 900 (Unauthorized) |
| SN-012 | Access Token หมดอายุ | HTTP 401 / resultCode = 900 (Unauthorized) |
| SN-013 | URL ผิด (Unknown Command) | HTTP 404 / resultCode = 900 |
| SN-014 | เรียกใช้งานด้วย Method 'GET' | HTTP 405 / resultCode = 900 |
| SN-015 | เรียกใช้งานด้วย Method 'PUT' | HTTP 405 / resultCode = 900 |
| SN-016 | เกิดข้อผิดพลาดภายในระบบ | HTTP 500 / resultCode = 900 |
| SN-017 | หยุดการทำงานของ Azure Container App | HTTP 404 Not Found |