MyChannel User Profile Query (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการตรวจสอบและดึงข้อมูลโปรไฟล์ผู้ใช้งานของระบบ MyChannel (MC) ภายในระบบ AIS Virtual Organization (VO)
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: MyChannel Integration
- วัตถุประสงค์: เพื่อให้บริการข้อมูล User Profile, Position และ Location แก่ระบบ MyChannel สำหรับการตรวจสอบสิทธิ์และแสดงข้อมูลผู้ใช้งานให้ถูกต้องตามประเภทพนักงาน (AIS Shop, 3BB Shop, Direct Sale)
2. รายละเอียด API Interface
- ชื่อ API:
queryUserProfile(MyChannel) - Endpoint URL:
https://sit-virtualorg-api.cdc.ais.th/api/MyChannel/QueryUserProfile - HTTP Method:
POST - การยืนยันตัวตน (Authentication): Bearer Token (ได้รับจากบริการ
getAccessToken)
3. โครงสร้างข้อมูล (Data Structure)
3.1 พารามิเตอร์ขาเข้า (Request Body - JSON)
| พารามิเตอร์ | ประเภท | จำเป็น | รายละเอียด |
|---|---|---|---|
username | String | ใช่ | AIS Username ของพนักงานที่ต้องการสอบถามข้อมูล |
userprofile | String | ไม่ | ตัวระบุโปรไฟล์เฉพาะหรือประเภทสำหรับการกรองข้อมูล |
3.2 ตัวอย่างการตอบกลับเมื่อสำเร็จ (Success Response - JSON)
json
{
"status": true,
"code": "100",
"message": "Success",
"aisEmployeeHierarchy": [
{
"subProfile": "Employee",
"userName": "chiraphr",
"firstName": "chiraphan",
"lastName": "rawangwong",
"email": "chiraphr@ais.co.th",
"mobileNo": "0895004537",
"period": "",
"startDate": "01/08/2008 00:00:00",
"endDate": "",
"Status": "ACTIVE",
"pinCode": "23440",
"ascCode": "",
"locationCode": "1100",
"chnSaleCode": "AISSHOP",
"Listposition": [
{
"employeeDivisionType": "Outlet",
"positionName": "ST2 Serenade Officer",
"positionType": "Officer"
}
],
"locationNameTH": "สาขาอาคารเอไอเอส 2",
"locationNameEN": "Shop AIS Tower 2"
}
]
}4. ตรรกะการประมวลผล (Processing Logic)
- การตรวจสอบสิทธิ์: ระบบตรวจสอบ Access Token ที่แนบมาใน Header
- การดึงข้อมูล: ค้นหาข้อมูลจาก
UserMaster,Location, และPositionโดยใช้username - การจัดการประเภทพนักงาน:
- AIS Shop: คืนค่า
locationCode,locationName,positionTypeตามจริง - 3BB Shop: คืนค่าข้อมูลตำแหน่งและสถานที่ของ 3BB หากมีข้อมูลในระบบ
- Direct Sale: แสดงข้อมูล
positionTypeและรายละเอียดที่เกี่ยวข้อง
- AIS Shop: คืนค่า
- กรณีไม่พบข้อมูล: หากไม่พบ User ในระบบ VO แต่มีในระบบอื่น หรือไม่มีข้อมูลเลย ให้คืนค่า Error ตามที่กำหนด
5. สถานการณ์การทดสอบ (Test Scenarios)
5.1 สถานการณ์ทางธุรกิจ (Business Scenarios)
| รหัสสถานการณ์ | รายละเอียด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-001 | AIS Shop (Officer) | แสดงข้อมูล Location (1100), Position (Officer) ถูกต้อง |
| SN-002 | 3BB Shop (Manager) | แสดงข้อมูล Location, Position (Manager) ถูกต้อง |
| SN-003 | ไม่มี User ในระบบ VO | HTTP 200 / Error: UserName not found |
| SN-004 | 3BB Shop (ไม่มีข้อมูลฝั่ง AIS) | แสดงข้อมูล 3BB Shop ถูกต้อง |
| SN-005 | Direct Sale (Officer) | แสดงข้อมูล Direct Sale ถูกต้อง |
| SN-006 | Direct Sale ลาออกจาก Shop (ยังเป็น Employee) | แสดงสถานะและข้อมูลปัจจุบันถูกต้อง |
5.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-007 | เรียกใช้งาน getAccessToken สำเร็จ | HTTP 200 / resultCode = 100 |
| SN-008 | คำขอไม่ถูกต้อง (Invalid Request) | HTTP 200 / resultCode = 200 |
| SN-009 | พารามิเตอร์ไม่ถูกต้อง (Invalid Param) | HTTP 200 / resultCode = 200 |
| SN-010 | ไม่พบชื่อผู้ใช้งาน | HTTP 200 / resultCode = 200 (UserName not found) |
| SN-011 | ขาดพารามิเตอร์ userprofile | HTTP 200 / Required Value Missing |
| SN-012 | ขาดพารามิเตอร์ username | HTTP 200 / Required Value Missing |
| SN-013 | Token ไม่ถูกต้อง/หาย | HTTP 401 Unauthorized |
| SN-014 | Token หมดอายุ | HTTP 401 Unauthorized / Token expired |
| SN-015 | URL ผิด (Unknown Command) | HTTP 404 Not Found |
| SN-016 | ใช้ Method GET | HTTP 405 Method Not Allowed |
| SN-017 | ใช้ Method PUT | HTTP 405 Method Not Allowed |
| SN-018 | ข้อผิดพลาดภายในระบบ | HTTP 500 Internal Server Error |