EP 9 : Microsoft Dynamics 365 for Finance and Operations เชื่อมต่อข้อมูลอัตราแลกเปลี่ยนอัตโนมัติ ด้วย Power Automate

--

(รูปจาก https://www.bot.or.th/)

ปัจจุบันมีเครื่องมือหลายตัวที่นำมาช่วยในการทำงานด้าน RPA (Robotic Process Automation) และหนึ่งในเคสตัวอย่างสุดคลาสสิค ที่มักจะถูกมานำเสนอนั้นคือเคสการดึงข้อมูลอัตราแลกเปลี่ยนจากเว็บไซต์ธนาคาร

ตัวอย่างในบล็อคนี้ จะเป็นการนำ Microsoft Power Automate ซึ่งเป็นเครื่องมือหนึ่งใน Microsoft Power Platform มาทำ clound integration เพื่อดึงข้อมูลอัตราแลกเปลี่ยนจากเว็บไซต์ธนาคาร มาบันทึกข้อมูลอัตโนมัติ ไปยังโปรแกรม Dynamics 365 for Finance and Operations

ซึ่งข้อดีของวิธีการนี้ สำหรับผู้ที่มี License Microsoft Dynamics 365 จะสามารถใช้งานได้ฟรี และการทำรูปแบบ Cloud Flow Integration ไม่จำเป็นต้องเตรียมคอมพิวเตอร์(หรือเซิฟเวอร์) ไว้สำหรับ run ตัว RPA อีกด้วย

BOT API Services

เป็น API (Application Programming Interface) ของธนาคารแห่งประเทศไทย (ธปท.) สำหรับนักพัฒนาระบบในการดึงข้อมูลอัตราแลกเปลี่ยน

ก่อนอื่นต้องลงทะเบียนและ Create App ที่
https://apiportal.bot.or.th/bot/public/application
ส่วนของรายละเอียด API ที่จะใช้ในตัวอย่างนี้
https://apiportal.bot.or.th/bot/public/node/504

*คัดลอก Client ID ไว้ใช้ในการ call API

Microsoft Power Automate

ขั้นตอนคือ เข้าไปที่ https://flow.microsoft.com และ Sign in
จากนั้นไปที่ My flows -> New -> Scheduled cloud flow

ตั้งเวลารอบการทำงานในส่วนที่เป็น trigger ตัวอย่างในรูปคือ ทำงานทุกวันๆละ 1 ครั้ง เวลา 7 โมงเช้า (เพื่อสำหรับดึงอัตราแลกเปลี่ยนของเมื่อวาน)

Add action -> Dynamics Fin & Ops -> Lists items present in table (เพื่อดึงสกุลเงินในระบบ)
Instance : URL ของ Microsoft Dynamice
Entity name : Currencies
ในส่วนของ Filter Query จะใส่หรือไม่ใส่ก็ได้ แต่ในตัวอย่างนี้ focus สกุลเงินเฉพาะที่เป็น USD และ JPY เท่านั้น

Add action -> HTTP (เพื่อ call API ดึงอัตราแลกเปลี่ยน)
Method : GET
URI : https://apigw1.bot.or.th/bot/public/Stat-ExchangeRate/v2/DAILY_AVG_EXG_RATE/?start_period={start_date}&end_period={end_date}&currency={currencycode}
Headers : x-ibm-client-id และตามด้วย Client ID ที่เราลงทะเบียนไว้

{currencycode} คือค่าที่รับมาจากการดึงสกุลเงินในขั้นตอนก่อนหน้า
{start_date},{end_date}
คือวันที่ๆต้องการข้อมูลอัตราแลกเปลี่ยน ซึ่งในที่นี้เราจะใส่เป็นค่าวันที่เมื่อวาน ด้วย expression
formatDateTime(addDays(utcNow(),-1),’yyyy-MM-dd’)

Add action -> Data Operation -> Parse JSON (เพื่อสำหรับแปลงข้อมูลที่ api return มา ใส่ค่าตัวแปร)
กดปุ่ม Generate from sample และ copy response API ที่อยู่หน้าเว็บของ BOT มาวาง

Add action -> Dynamics Fin & Ops -> Create record (เพื่อบันทึกอัตราแลกเปลี่ยนในระบบ)
Instance : URL ของ Microsoft Dynamice
Entity name : ExchangeRates
Exchange rate type : ค่า type ที่ใช้ในระบบ
From currency : ค่าที่รับมาจากการดึงสกุลเงิน
To currency : THB
Exchange rate : ตัวแปร selling price จากขั้นตอนก่อนหน้า
Conversion factor : Hundred
Start date : ตัวแปร period จากขั้นตอนก่อนหน้า

ตัวอย่าง Overall Flow เป็นอันเสร็จสิ้น

หลังจาก setup Power Automate เรียบร้อย และตัว flow ถูก run อัตโนมัติทุกๆวัน ผลการทำงานเข้าระบบดูได้ที่ General ledger -> Currencies -> Currency exchange ratyes

จบ…

--

--

Teerapong Mukdapipatkul (Bee) 😄

Microsoft Dynamics 365 Developer at QUICK ERP and Co-Founder at Analytic Business Solutions linkedin.com/in/teerapong-muk