EP 8 : บันทึกข้อมูลจากเอกสารอัตโนมัติด้วย Form Processing with AI Builder ไปยัง Microsoft Dynamics 365 for Finance and Operations

--

Microsoft Power Platform

AI Builder เป็นความสามารถของ Microsoft Power Platform ที่คุณสามารถใช้งานเครื่องมือประเภทปัญญาประดิษฐ์ได้ โดยไม่ต้องมีความสามารถในด้านการเขียนโปรแกรม หรือเชี่ยวชาญในด้าน data science เลย เช่น Category classification, Object detection หรือการ Prediction ต่างๆ อีกทั้งยังใช้งานร่วมกับ Power Apps และ Power Automate เพื่อเพิ่มศักยภาพทางธุรกิจได้อีกด้วย

ตัวอย่างในบล็อคนี้ จะเป็นการนำ Form Processing ซึ่งเป็นเครื่องมือหนึ่งใน AI Builder มาทำการอ่านข้อมูลจากเอกสารไฟล์ pdf (ไฟล์ขอเบิกค่าเดินทาง) แล้วบันทึกข้อมูลอัตโนมัติ ไปยังโปรแกรม Dynamics 365 for Finance and Operations

และโดยปกติแล้วเรามักจะรับไฟล์มาจาก 2 แหล่งบ่อยๆคือ email หรือ share file แต่ scenario ของบล็อคนี้จะเพิ่มความพิเศษกว่าปกติคือ เราจะสาธิตการรับไฟล์จาก LINE App (แอพแชทสุดฮิตในบ้านเรา) กันครับ

AI Builder

เริ่มต้นจากการสร้างตัว AI มาอ่านไฟล์เอกสารก่อน ซึ่งเมนู AI Builder สามารถเข้าได้ทั้งผ่านทาง Power Automate หรือ Power Apps ก็ได้ (document)
ไปที่เมนู Build ด้านข้าง และเลือกไปที่ Form Processing

ตัวอย่างไฟล์ขอเบิกค่าเดินทาง ซึ่งต้อง save as ให้อยู่ในรูปแบบ format ดังนี้
JPG, PNG, or PDF format (text or scanned)

ขั้นตอนต่อไประบบจะให้เราเพิ่มฟิลไว้ก่อน สำหรับ mapping กับสิ่งที่ AI อ่านได้
(สร้างทั้งฟิล และเทเบิลสำหรับอ่านข้อมูลในรูปแบบตารางด้วย)

ตัว Model จะต้องได้รับการ Train จากไฟล์ตัวอย่างๆน้อย 5 ไฟล์ (ซึ่งต้องเป็นไฟล์ที่มีข้อมูลแตกต่างกัน)

เมื่อตัว Model ถูก Train เสร็จแล้ว เราสามารถ Publish เพื่อนำในใช้งานได้ และสามารถนำไฟล์สำหรับทดสอบมา Quick test ได้เลย

LINE

ในส่วนของการสร้าง API สำหรับรับไฟล์นั้น ต้องเตรียมตัวดังนี้
สร้าง LINE Messaging API ที่ LINE Developers

เปิด mode Bot (เดิมจะเป็น chat สำหรับ LINE Official Account)
เปิด webhook สำหรับส่งออกข้อมูลการแชท (ส่วน URL มาจากการ setup Power Automate)
จำค่า access token สำหรับ call api ไปดึงค่าไฟล์ที่ส่งมาจาก user

ทำความเข้าใจในส่วน JSON message ที่จะถูกส่งข้อมูลออกมาจาก webhook
และวิธีการ call api get Content (จาก link ใต้รูปภาพ)

https://developers.line.biz/en/reference/messaging-api/#get-content

LINE Notify สำหรับ alert message กลับไปเพื่อบอกการทำงานเสร็จสิ้น
https://notify-bot.line.me

ขั้นตอนสุดท้าย ต้องชวนตัว Bot เข้า Line Group เพื่อที่จะรับไฟล์ (Bot จะไม่สามารถรับไฟล์จากการคุยแบบ 1:1 ได้)
ซึ่งในที่นี้ผมให้อยู่กลุ่มเดียวกันกับที่ตั้ง LINE Notify ไว้

Power Automate

เครื่องมือหลักในการทำงานแบบ Automation และความสามารถในการเชื่อมต่อระบบต่างๆ เข้ากับบริการและ Application ของ Microsoft โดยเราจะนำเครื่องมือนี้มาใช้ integration ระหว่าง LINE App, AI Builder และระบบ ERP
https://flow.microsoft.com

Overall Flow

อธิบายการทำงานคร่าวๆของ Flow คือ

  • เริ่มต้นด้วยการ trigger เป็น http request สำหรับตั้งรับค่า webhook จาก bot
  • เช็คเงื่อนไข message ว่าเป็น type file หรือไม่
  • call api get content จาก messageid เพื่อนำไฟล์มาใช้งาน
  • ส่งต่อไฟล์ให้ form processing model ทำการอ่านค่า
  • input ข้อมูลที่ได้ใน ERP (หน้าจอ Pending vendor invoices)
  • notify กลับผ่านทาง LINE

search trigger : Request
เลือก When an HTTP request is received
เลือกสร้าง json format จาก sample ตัวอย่างของ webhook message และนำ url ไป setup ไว้ที่ bot webhook url

search action : condition
เลือกตัวแปร type จาก step ก่อนหน้ามาเป็นเงื่อนไข

search action : HTTP
ระบุค่าตามรูป และนำ access token จาก bot มาระบุด้วย

search action : AI Builder
เลือก Process and save information from forms
ระบุชื่อ model และ file type ที่จะรับค่า

search action : Parse JSON
เพื่อแปลงข้อมูลจาก AI Builder (ในส่วนของ schema อาจจะต้องใช้เวลาในการศึกษาจาก output ของ step AI Builder ซึ่งจะแตกต่างกันไม่ตายตัว ขึ้นอยู่กับการ train)

search action : Dynamics 365 for Fin & Ops
เลือก Create record , Entity name : VendorInvoiceHeaders
ระบุค่าสำหรับรายการที่เป็น invoice header

search action : Apply to each เพื่อวนลูปข้อมูลที่เป็นตาราง

search action : Dynamics 365 for Fin & Ops
เลือก Create record , Entity name : VendorInvoiceLines
ระบุค่าสำหรับรายการที่เป็น invoice lines

search action : HTTP
ระบุค่าตามรูป และนำ token จาก line notify มาระบุด้วย

ทดสอบโดยการโยนไฟล์ pdf ลงไปใน Line Group

จบ…

--

--

Teerapong Mukdapipatkul (Bee) 😄

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