CCSM Sales Person Profile Update (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการสร้างและปรับปรุงข้อมูลพนักงานขาย (ASC Profile) จากระบบ CCSM เข้าสู่ระบบ AIS Virtual Organization (VO)
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: CCSM Integration
- วัตถุประสงค์: เพื่อรับข้อมูลพนักงานขาย (ASC - Authorized Sales Channel) ทั้งกลุ่ม Partner และกลุ่ม Employee (Direct Sale, Sale Promoter) เพื่อนำมาสร้างหรือปรับปรุงข้อมูลในระบบ VO ให้เป็นปัจจุบัน
2. รายละเอียด API Interface
- ชื่อ API:
updateASCSalesPersonProfile - Endpoint URL:
https://sit-virtualorg-api.cdc.ais.th/api/ccsm/updateASCSalesPersonProfile - HTTP Method:
POST - การยืนยันตัวตน (Authentication): Bearer Token (ได้รับจากบริการ
getAccessToken)
3. โครงสร้างข้อมูล (Data Structure)
3.1 พารามิเตอร์ขาเข้า (Request Body - JSON)
json
{
"LocationCode": "40551",
"LocationName": "Rungsuriya",
"RegionCode": "RONE",
"SubRegionCode": "XU",
"ListSalePerson": [
{
"PersonType": "ASC",
"PersonCode": "604931",
"FirstNameTH": "ธนกฤต",
"LastNameTH": "พรหมมา",
"FirstNameEN": "Thanakrit",
"LastNameEN": "Phromma",
"ASCCatagory": "Partner Online",
"ASCPosition": "sale Online",
"ASCMobile": "0800000001",
"ASCStatus": "ACTIVE",
"EfftiveDT": "20260218_123000",
"ResignDT": null,
"Username": null,
"UserRole": null,
"PinCode": null
}
]
}3.2 รายละเอียดฟิลด์ใน ListSalePerson
| ฟิลด์ | ประเภท | รายละเอียด |
|---|---|---|
PersonType | String | ประเภทบุคคล (เช่น ASC) |
PersonCode | String | รหัสพนักงาน (Key หลัก) |
FirstNameTH / LastNameTH | String | ชื่อ-นามสกุล ภาษาไทย |
ASCCatagory | String | หมวดหมู่ ASC (เช่น Partner Online, DS - Mass) |
ASCPosition | String | ตำแหน่งงาน ASC |
ASCStatus | String | สถานะ (ACTIVE / INACTIVE) |
EfftiveDT | String | วันที่มีผล (รูปแบบ YYYYMMDD_HHMMSS) |
Username | String | AIS Username (ถ้ามี) |
4. ตรรกะการประมวลผล (Processing Logic)
- กรณีพนักงานกลุ่ม Partner (ไม่มี Username):
- ระบบจะสร้างข้อมูลในตาราง
UsermasterโดยกำหนดFromCCSM = "Y"และUserType = "Partner" - สร้างข้อมูลในตาราง
AscProfile
- ระบบจะสร้างข้อมูลในตาราง
- กรณีพนักงานกลุ่ม Employee (มี Username จาก OM):
- ระบบจะตรวจสอบข้อมูลใน
Usermaster(ที่ถูกสร้างโดย OM) - ปรับปรุงค่า
FromCCSM = "Y"และUserType = "Employee" - สร้างหรือปรับปรุงข้อมูลในตาราง
AscProfile
- ระบบจะตรวจสอบข้อมูลใน
- การบันทึก Log:
- บันทึกประวัติการเปลี่ยนแปลงในตาราง
LogAudit - บันทึกรายละเอียดการประมวลผลในตาราง
LogBatch
- บันทึกประวัติการเปลี่ยนแปลงในตาราง
5. สถานการณ์การทดสอบ (Test Scenarios)
5.1 สถานการณ์ทางธุรกิจ (Business Scenarios)
| รหัสสถานการณ์ | รายละเอียด |
|---|---|
| SN-001 | สร้าง UserMaster และ AscProfile สำหรับกลุ่ม Partner ใหม่ |
| SN-002 | สร้าง AscProfile สำหรับกลุ่ม Employee (Direct Sale/Sale Promoter) ที่มีข้อมูลจาก OM อยู่แล้ว |
| SN-003 | ปรับปรุงข้อมูลพนักงานกลุ่ม Partner |
| SN-004 | ปรับปรุงข้อมูลพนักงานกลุ่ม Employee |
| SN-006 | ปิดการใช้งาน (Inactive) พนักงานกลุ่ม Partner |
| SN-007 | ปิดการใช้งาน (Inactive) พนักงานกลุ่ม Employee |
| SN-008 | เปิดการใช้งาน (Set Active) พนักงานกลุ่ม Partner ที่เคย Inactive |
| SN-009 | เปิดการใช้งาน (Set Active) พนักงานกลุ่ม Employee ที่เคย Inactive |
5.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-010 | ประมวลผลสำเร็จ | HTTP 200 / resultCode = 100 |
| SN-011 | คำขอไม่ถูกต้อง (Invalid Request) | HTTP 200 / resultCode = 200 |
| SN-013 | ขาดข้อมูลที่จำเป็น (Required Value Missing) | HTTP 200 / resultCode = 200 |
| SN-015 | Token ไม่ถูกต้องหรือไม่ถูกส่งมา | HTTP 401 / resultCode = 900 (Unauthorized) |
| SN-017 | URL ผิด (Unknown Command) | HTTP 404 / resultCode = 900 |
| SN-018 | เรียกใช้งานด้วย Method 'GET' | HTTP 405 / resultCode = 900 |
| SN-020 | เกิดข้อผิดพลาดภายในระบบ | HTTP 500 / resultCode = 900 |