ต้องสร้างการบันทึกเวลา (Time Entries) จากข้อมูลที่เก็บไว้ในตารางของ App Sheet สำหรับการเชื่อโยงระบบนี้ เพื่อใช้ในการสร้างการบันทึกเวลา personNumber / startTime / stopTime / TIME_IN_LOCATION / TIME_OUT_LOCATION ในส่วนของ TIME_IN_LOCATION and TIME_OUT_LOCATION สามารถมีค่าได้เพียงสองค่าคือ ON SITE และ OFF SITE
รูปที่ 1 การออกแบบโครงสร้างการเชื่อมต่อข้อมูลกับระบบ (Architecture Diagram)
ตาราง 1 ตารางอธิบายการทำงานรูปที่ 1
ลำดับ |
คำอธิบาย |
1 |
อุปกรณ์การลงเวลาเข้าปฏิบัติงาน(เข้า-ออก) เดิมส่งข้อมูลการลงเวลามายังระบบ Appsheet ส่งข้อมูลผ่าน API ไปยังระบบ HCM |
2 |
ผู้ใช้งานลงเวลาปฏิบัติงาน(เข้า-ออก) ใช้งานระบบ Appsheet ส่งข้อมูลผ่าน API ไปยังระบบ HCM |
3 |
การรับข้อมูลระหว่างระบบลงเวลาปฏิบัติงาน (Appsheet) ส่งข้อมูลไปที่ระบบบริหารจัดการทรัพยากรบุคคล (Human Capital Management : HCM) โดยใช้การเชื่อมต่อรูปแบบ API |
4 |
ระบบ Appsheet ส่งสำเร็จจะได้รับการตอบสนองจากระบบ HCM / ส่งไม่สำเร็จจะตอบสนองจากระบบ HCM และระบบ Appsheet จะส่งอีกครั้ง |
5 |
การรับข้อมูลตามเงื่อนไขที่กำหนดไว้ ผู้ใช้งานกด(App drive) |
HTTP Method |
POST |
Endpoint |
https://iaajtj-test.fa.ocs.oraclecloud.com/hcmRestApi/resources/11.13.18.05/timeRecordEventRequests |
Headers |
|
Content-Type |
Application/json |
grant_type |
client_credentials |
Request Body |
|
{ "info": { "_postman_id": "af9aa540-8545-44a1-8e07-be8d42702fdc", "name": "HCM TIme Card", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "20443652" }, "item": [ { "name": "Appsheet Timecard Entry", "request": { "auth": { "type": "basic", "basic": [ { "key": "password", "value": "", "type": "string" }, { "key": "username", "value": "hcmserviceuser", "type": "string" } ] }, "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"processInline\": \"Y\",\n \"processMode\": \"TIME_ENTER\",\n \"timeRecordEvent\": [\n {\n \"startTime\": \"2024-09-14T06:00:00.000Z\",\n \"stopTime\": \"2024-09-14T14:00:00.000Z\",\n \"reporterIdType\": \"PERSON\",\n \"reporterId\": \"140000\",\n \"comment\": \"FROM integration\",\n \"changeReason\": \"ORA_CA_REASON_MTE_PROC\",\n \"operationType\": \"ADD\",\n \"timeRecordEventAttribute\": [\n {\n \"attributeName\": \"PayrollTimeType\",\n \"attributeValue\": \"Regular Hours\"\n },\n {\n \"attributeName\": \"TIME_IN_LOCATION\",\n \"attributeValue\": \"ON SITE\"\n },\n {\n \"attributeName\": \"TIME_OUT_LOCATION\",\n \"attributeValue\": \"OFF SITE\"\n }\n ]\n }\n ]\n}", "options": { "raw": { "language": "json" } } }, "url": { "protocol": "https", "host": [ "iaajtj-test", "fa", "ocs", "oraclecloud", "com" ], "path": [ "hcmRestApi", "resources", "11.13.18.05", "timeRecordEventRequests" ] } }, "response": [] } ] } |
ลำดับ |
ชื่อรายการภาษาอังกฤษ |
ชื่อรายการภาษาไทย |
Value |
1 |
startTime |
เวลาเข้า |
2024-09-14T06:00:00.000Z |
2 |
stopTime |
เวลาออก |
2024-09-14T14:00:00.000Z |
3 |
PERSON |
หมายเลขพนักงาน |
140000 |
4 |
TIME_IN_LOCATION |
สถานะตำแหน่งที่อยู่การเข้างานภายในระยะที่กำหนด |
ON SITE |
5 |
TIME_OUT_LOCATION |
สถานะตำแหน่งที่อยู่เข้างานอยู่ภายนอกระยะที่กำหนด |
OFF SITE |