FBB User Profile Query (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการตรวจสอบข้อมูลโปรไฟล์ผู้ใช้งานของระบบ FBB (Fixed Broadband) ผ่านโมดูล MyChannel ภายในระบบ AIS Virtual Organization (VO)
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: FBB Integration / MyChannel Interface
- วัตถุประสงค์: เพื่อให้บริการข้อมูล User Profile และข้อมูลสถานที่ปฏิบัติงาน (Location) แก่ระบบ FBB (เช่น FBB Web Register, FBB Sales Digitize) เพื่อใช้ในการตรวจสอบสิทธิ์และประเภทของพนักงาน/คู่ค้า
2. รายละเอียด API Interface
- ชื่อ API:
queryUserProfile(FBB-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": "arnontpr",
"firstName": "Arnont",
"lastName": "Pornpana",
"email": "arnontpr@ais.co.th",
"mobileNo": "099999999",
"period": "Permanent",
"startDate": "25/11/2025 08:00:00",
"endDate": "",
"Status": "ACTIVE",
"pinCode": "00068681",
"ascCode": "",
"locationCode": "1100",
"chnSaleCode": "AISSHOP",
"Listposition": [
{
"employeeDivisionType": "Back Office",
"positionName": "ERM AnonUser",
"positionType": "Supervisor"
}
],
"locationNameTH": "สาขาอาคารเอไอเอส 2",
"locationNameEN": "Shop AIS Tower 2"
}
]
}4. สถานการณ์การทดสอบ (Test Scenarios)
4.1 สถานการณ์ทางธุรกิจ (Business Scenarios)
| รหัสสถานการณ์ | รายละเอียด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-001 | Staff Backoffice ที่ไม่มี Location บน VO | แสดงข้อมูลโปรไฟล์สำเร็จ แต่ Location เป็นค่าว่าง |
| SN-002 | Staff Shop (Not Specialist) | แสดงข้อมูล Location และตำแหน่งงานหน้าร้านถูกต้อง |
| SN-003 | Staff Backoffice (เคสที่มาจาก IDS) | แสดงข้อมูลที่ Sync มาจากระบบ IDS |
| SN-005 | Staff Specialist (Direct Sale, Sale Promoter) | แสดงข้อมูลตำแหน่งงานสายงานขาย (Specialist) |
| SN-006 | Partner (Not Specialist) ที่ไม่ผูก Position | แสดงข้อมูลคู่ค้า แต่ไม่มีข้อมูลตำแหน่งงาน |
| SN-007 | Partner (Not Specialist) ที่ผูก Position | แสดงข้อมูลคู่ค้าพร้อมตำแหน่งงานที่ได้รับมอบหมาย |
| SN-008 | Outsource (ดึงข้อมูล Specialist จาก CCSM) | แสดงข้อมูลพนักงานภายนอกและประวัติจากระบบ CCSM |
| SN-009 | Direct Sale สถานะ Inactive (ยังเป็นพนักงานอยู่) | แสดงสถานะพนักงานปัจจุบัน (เช่น กรณีย้ายสาขา) |
| SN-010 | Direct Sale สถานะ Inactive (ลาออกแล้ว) | แสดงข้อมูลสถานะการลาออก (Resigned) |
4.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-012 | JSON Syntax Error / Format Wrong | HTTP 400 / resultCode = 40000 |
| SN-013 | Parameter Format ไม่ถูกต้อง | HTTP 400 / resultCode = 40002 |
| SN-014 | User ที่ไม่มีในระบบ VO (แต่มีใน IDS) | แสดงข้อมูลตามที่พบในระบบ IDS |
| SN-015 | ขาดพารามิเตอร์ [userprofile] | HTTP 200 / Required value missing |
| SN-016 | ขาดพารามิเตอร์ [username] | HTTP 200 / Required value missing |
| SN-017 | ไม่ได้ใส่ Token (Bearer) | HTTP 401 Unauthorized |
| SN-018 | Token หมดอายุ | HTTP 401 / Access token was expired |
| SN-019 | Endpoint URL ไม่ถูกต้อง | HTTP 404 Not Found |
| SN-020 | เรียกใช้งานด้วย Method 'GET' | HTTP 405 Method Not Allowed |
| SN-022 | เกิดข้อผิดพลาดภายในระบบ | HTTP 500 Internal Server Error |