MyCrop User Profile Query (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการตรวจสอบข้อมูลโปรไฟล์ผู้ใช้งานของระบบ MyCrop ผ่านโมดูล MyChannel ภายในระบบ AIS Virtual Organization (VO)
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: MyCrop Integration / MyChannel Interface
- วัตถุประสงค์: เพื่อใช้ในการนำเข้าข้อมูลคำสั่งซื้อแบบกลุ่ม (Import Batch Order) โดยการตรวจสอบข้อมูลสิทธิ์และสถานที่ปฏิบัติงาน (Location) ของผู้ใช้งานจากระบบ VO
2. รายละเอียด API Interface
- ชื่อ API:
queryUserProfile(MyCrop-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 ตัวอย่างการตอบกลับเมื่อสำเร็จ (Success Response - JSON)
json
{
"status": true,
"code": "100",
"message": "Success",
"aisEmployeeHierarchy": [
{
"subProfile": "Employee",
"userName": "tanisths",
"firstName": "Tanistha",
"lastName": "Subpreecha",
"email": "tanisths@ais.co.th",
"mobileNo": "0800000001",
"period": "",
"startDate": "03/11/2025 08:00:00",
"endDate": "",
"Status": "ACTIVE",
"pinCode": "00000121",
"ascCode": "",
"locationCode": "1011",
"chnSaleCode": "AISSHOP",
"Listposition": [
{
"employeeDivisionType": "Sales",
"positionName": "Sales-Support and Co-Ordination Supervisor",
"positionType": "Supervisor"
}
],
"locationNameTH": "คอปเปอร์เลท-บิซิเนส",
"locationNameEN": "Corporate-Business"
}
]
}3.2 ตัวอย่างการตอบกลับเมื่อไม่พบผู้ใช้งาน (User Not Found Response - JSON)
json
{
"status": false,
"code": "200",
"message": "ERROR: MyChannel: UserName not found",
"aisEmployeeHierarchy": null
}4. สถานการณ์การทดสอบ (Test Scenarios)
4.1 สถานการณ์ทางธุรกิจ (Business Scenarios)
| รหัสสถานการณ์ | รายละเอียด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-001 | Import Batch Order ด้วย Username ที่มีข้อมูลตรงกับ VO แต่พารามิเตอร์ไม่ถูกต้อง | 200 OK / resultCode = 200 (request parameter(s) are invalid) |
| SN-002 | Import Batch Order ด้วย Username ที่มีข้อมูลตรงกับ VO ครบถ้วน | 200 OK / นำเข้าข้อมูลสำเร็จ (Success) |
| SN-003 | Import Batch Order ด้วย Username ที่มีข้อมูลใน VO แต่ไม่มี Location Code | 200 OK / แสดง Error: ไม่พบข้อมูล Location กรุณาขอสิทธิ์เข้าใช้งานระบบ SFF ก่อน |
| SN-004 | Import Batch Order ด้วย Username ที่ไม่มีข้อมูลบน VO | 200 OK / แสดง Error: UserName not found |
4.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-005 | เรียกใช้งาน getAccessToken สำเร็จ | HTTP 200 / resultCode = 100 |
| SN-006 | เรียกใช้งาน queryUserProfile สำเร็จ | HTTP 200 / resultCode = 100 |
| SN-007 | พารามิเตอร์ของคำขอไม่ถูกต้อง | HTTP 200 / resultCode = 200 (Invalid Param) |
| SN-008 | ไม่พบ Resource (Path ไม่ถูกต้อง) | HTTP 404 Not Found |
| SN-009 | Token ไม่ถูกต้องหรือไม่ถูกส่งมา | HTTP 401 Unauthorized |
| SN-011 | Access Token หมดอายุ | HTTP 401 Unauthorized / Token expired |
| SN-012 | ขาดพารามิเตอร์ [userprofile] | HTTP 200 / Required Value Missing [userprofile] |
| SN-013 | ขาดพารามิเตอร์ [username] | HTTP 200 / Required Value Missing [username] |
| SN-014 | เรียกใช้งานด้วย Method 'GET' | HTTP 405 Method Not Allowed |
| SN-015 | เรียกใช้งานด้วย Method 'PUT' | HTTP 405 Method Not Allowed |
| SN-016 | เกิดข้อผิดพลาดภายในระบบ | HTTP 500 Internal Server Error |
| SN-018 | หยุดการทำงานของ Azure Container App | HTTP 404 Not Found / Service Unavailable |
5. การบันทึกข้อมูล (Logging)
- ระบบ MyCrop จะบันทึก Log การเรียก API ลงในตาราง
CCIS_TBL_WS_ACCESS_LOGเมื่อสำเร็จ - หากเกิดข้อผิดพลาด จะบันทึก Log ลงในตาราง
CCIS_TBL_ERROR_LOGพร้อมระบุerror_message