ข้ามไปยังเนื้อหา

Power Automate และ Power Apps

ตัวเชื่อมต่อ (connector) ของ AutomaDoc นำเทมเพลตของคุณเข้าสู่เครื่องมือเวิร์กโฟลว์ของ Microsoft โฟลว์จะส่งค่าของตัวแทนค่าในเทมเพลต (จากรายการในลิสต์ SharePoint แถวใน Dataverse แถวใน Excel หรือคำตอบจากฟอร์ม) แล้วรับเอกสารที่เสร็จสมบูรณ์กลับมา พร้อมบันทึกลงไลบรารีเอกสาร แนบไปกับอีเมล หรือโพสต์ใน Teams

ใช้ได้ใน Power Automate, Power Apps (ผ่านโฟลว์), Azure Logic Apps และ Copilot Studio ตัวเชื่อมต่อสร้างขึ้นบน API เอกสาร ดังนั้นทุกอย่างที่ API ทำกับข้อมูลของคุณ (ชื่อ ลูป รูปภาพ เงื่อนไข) จึงเหมือนกันที่นี่

  1. เทมเพลต สร้างในพอร์ทัลบริษัทที่ เทมเพลต ในส่วนเสริม Excel หรือในส่วนขยาย Lark Base โดยมีตัวแทนค่าอย่าง {Customer}, {Invoice_No} หรือลูป {#Items}…{/Items} ตัวเชื่อมต่อจะแสดงช่องป้อนข้อมูลหนึ่งช่องต่อตัวแทนค่าหนึ่งตัว โดยอ่านจากการอัปโหลดเทมเพลตครั้งล่าสุด
  2. คีย์ API ของบริษัท ผู้ดูแลระบบของบริษัทคุณสร้างได้ในพอร์ทัลบริษัท ที่ บริษัท → คีย์ API คีย์ขึ้นต้นด้วย amk_ และแสดงเพียงครั้งเดียว: คัดลอกเก็บไว้ในที่ปลอดภัย (คีย์ของเทมเพลตเองไม่สามารถแสดงรายการเทมเพลตของคุณได้ ตัวเชื่อมต่อจึงต้องใช้คีย์ของบริษัท)

ระหว่างที่ตัวเชื่อมต่อ AutomaDoc ยังไม่อยู่ในรายการตัวเชื่อมต่อที่ได้รับการรับรอง ให้เพิ่มลงในสภาพแวดล้อมของคุณเป็นตัวเชื่อมต่อแบบกำหนดเอง ทำครั้งเดียวต่อหนึ่งสภาพแวดล้อม Power Platform

  1. รับคำจำกัดความของตัวเชื่อมต่อ ดาวน์โหลด ดาวน์โหลดคำจำกัดความของตัวเชื่อมต่อ หรือใช้ที่อยู่: https://api.automadoc.cc/api/v1/power-platform.swagger.json
  2. ใน Power Automate เปิด Data → Custom connectors (หรือ More → Discover all → Custom connectors) แล้วเลือก New custom connector และเลือก Import an OpenAPI file (ไฟล์ที่ดาวน์โหลด) หรือ Import an OpenAPI from URL (วางที่อยู่) ตั้งชื่อว่า AutomaDoc แล้วเลือก Continue
  3. แท็บ General จะกรอกจากคำจำกัดความให้ (โฮสต์ URL ฐาน และคำอธิบาย) ไม่ต้องเปลี่ยนอะไร
  4. ในแท็บ Security ตรวจสอบว่าประเภทการยืนยันตัวตนเป็น API Key ชื่อพารามิเตอร์ X-Webhook-API-Key และตำแหน่ง Header (มากับคำจำกัดความ) หากป้ายพารามิเตอร์ว่าง ให้พิมพ์ API Key แล้วเลือก Create connector
  5. ในแท็บ Test เลือก New connection วางคีย์ API ของบริษัท แล้วสร้างการเชื่อมต่อ ทดสอบการดำเนินการ ListTemplates ซึ่งจะตอบกลับ 200 พร้อมเทมเพลตของคุณ

ในโฟลว์ ให้เพิ่มการดำเนินการแล้วค้นหา AutomaDoc ซึ่งจะอยู่ในรายการตัวเชื่อมต่อแบบกำหนดเองของคุณ เมื่อตัวเชื่อมต่อที่ได้รับการรับรองเผยแพร่แล้ว ให้ค้นหา AutomaDoc ขณะเพิ่มการดำเนินการ และวางคีย์เมื่อระบบขอการเชื่อมต่อ

หากนโยบายป้องกันข้อมูลรั่วไหล (DLP) ขององค์กรบล็อกตัวเชื่อมต่อแบบกำหนดเอง ผู้ดูแลระบบ Power Platform สามารถอนุญาตตัวเชื่อมต่อนี้ได้จากโฮสต์ api.automadoc.cc หน้า Power Automate ในพอร์ทัลบริษัทมีขั้นตอนเดียวกันและการดาวน์โหลด

ตัวอย่างทีละขั้นตอน: เอกสารสำหรับทุกรายการใหม่ใน SharePoint

หัวข้อที่มีชื่อว่า “ตัวอย่างทีละขั้นตอน: เอกสารสำหรับทุกรายการใหม่ใน SharePoint”

โฟลว์นี้สร้างใบแจ้งหนี้ทุกครั้งที่มีการเพิ่มรายการในลิสต์ SharePoint และบันทึก PDF ลงไลบรารีเอกสาร

  1. ทริกเกอร์ สร้างโฟลว์คลาวด์แบบอัตโนมัติด้วย SharePoint → When an item is created แล้วเลือกไซต์และลิสต์ของคุณ (เช่น Invoices)
  2. สร้างเอกสาร เพิ่ม AutomaDoc → Generate a document
    • Template: เลือกเทมเพลตใบแจ้งหนี้ของคุณจากรายการ
    • ช่องป้อนข้อมูลของเทมเพลตจะแสดงด้านล่าง จับคู่แต่ละช่องจากเนื้อหาไดนามิกของทริกเกอร์: Invoice_No ← Title, Customer ← Customer, Total ← Amount และอื่น ๆ
    • Output Format: pdf ขั้นตอนนี้จะรอจนกว่าเอกสารจะพร้อม แล้วส่ง Document ID, File Name, Status และ Download URL ให้ขั้นตอนถัดไป
  3. ดาวน์โหลด เพิ่ม AutomaDoc → Download document โดยให้ Document ID ← Document ID จากขั้นตอนก่อนหน้า
  4. บันทึก เพิ่ม SharePoint → Create file:
    • Folder Path: ไลบรารีของคุณ เช่น /Shared Documents/Invoices
    • File Name: File Name จาก Generate a document
    • File Content: File Content จาก Download document
  5. บันทึกโฟลว์แล้วเพิ่มรายการในลิสต์ PDF จะปรากฏในไลบรารีภายในไม่กี่วินาที

หากต้องการส่งทางอีเมลแทน ให้ใช้ Office 365 Outlook → Send an email (V2) พร้อมไฟล์แนบ: ชื่อ File Name เนื้อหา File Content

โฟลว์สำเร็จรูปอื่น ๆ สำหรับการอนุมัติ คำตอบจาก Microsoft Forms หรือการแนบไฟล์กลับไปยังรายการ อยู่ในสูตร Power Automate

แถวตาราง {#Items}…{/Items} ในเทมเพลตจะแสดงเป็นช่องป้อนข้อมูลแบบรายการชื่อ Items ที่มีหนึ่งฟิลด์ต่อหนึ่งคอลัมน์ หากต้องการเติมจากลิสต์อื่น (เช่น รายการในใบแจ้งหนี้) ให้สลับช่องป้อนข้อมูลเป็นโหมด entire array แล้วส่งอาร์เรย์ที่อ็อบเจ็กต์ใช้ชื่อคอลัมน์เป็นคีย์ เช่น สร้างด้วย Data Operation → Select จาก Get items:

Select: คีย์ที่จับคู่ ค่า
Product Title
Qty Quantity
Price UnitPrice

ขั้นตอนหลังทริกเกอร์เหมือนเดิม เปลี่ยนเฉพาะทริกเกอร์และเนื้อหาไดนามิก:

  • Dataverse: When a row is added, modified or deleted (ประเภทการเปลี่ยนแปลง Added) แล้วจับคู่คอลัมน์ของแถวกับช่องป้อนข้อมูลของเทมเพลต
  • Excel Online (Business): For a selected row (เรียกใช้จาก Excel) หรือ List rows present in a table ตามด้วย Apply to each: Generate a document หนึ่งครั้งต่อแถวจะได้เอกสารหนึ่งฉบับต่อแถว

เทมเพลตที่ตั้งค่าให้สร้างเอกสารเดียวจากหลายระเบียน (รายการ หนึ่งหน้าต่อระเบียน หรือฉลาก) จะรับรายการแทน: ช่องป้อนข้อมูลคือ Records หนึ่งรายการต่อหนึ่งแถว และขั้นตอนนี้จะสร้างเอกสารฉบับเดียวจากทุกแถว ส่งแถวจาก List rows หรือ Get items ผ่าน Select เหมือนกับรายการสินค้า สูงสุด 500 แถวต่อเอกสาร

สร้างเอกสารในโฟลว์ แล้วเรียกโฟลว์จากแอป:

  1. สร้างโฟลว์คลาวด์แบบทันทีด้วยทริกเกอร์ Power Apps (V2) แล้วเพิ่มช่องป้อนข้อความสำหรับค่าที่แอปส่งมา
  2. เพิ่ม Generate a document แล้วจับคู่ช่องป้อนเหล่านั้น ปิดท้ายด้วย Respond to a Power App or flow ที่ส่งคืน Download URL (หรือบันทึกไฟล์ตามด้านบนแล้วส่งคืนลิงก์ของไฟล์)
  3. ในแอป ให้เรียกจากปุ่ม: Set(doc, GenerateInvoice.Run(txtCustomer.Text, txtTotal.Text)); Launch(doc.downloadurl)

โฟลว์จะรอเอกสาร แอปที่เรียกตัวเชื่อมต่อโดยตรงจะไม่ถูกทำให้รอ: แอปจะได้เอกสารกลับมาขณะที่ยังเป็น processing และต้องเรียก Get document status จนกว่าเอกสารจะเสร็จสมบูรณ์

ตัวเชื่อมต่อเดียวกันใช้ได้ใน Logic Apps (Standard และ Consumption) ด้วยแอคชันเดียวกัน ใน Copilot Studio ให้เพิ่ม Generate a document เป็นเครื่องมือของเอเจนต์: เอเจนต์จะเติมช่องป้อนข้อมูลของเทมเพลตจากบทสนทนา และส่ง Download URL ให้ผู้ใช้ได้

Generate a document ใช้รูปแบบการตรวจสอบเป็นระยะที่เครื่องมือเวิร์กโฟลว์ของ Microsoft ทำเองอยู่แล้ว: คำขอจะได้รับคำตอบ 202 Accepted พร้อมลิงก์สำหรับตรวจสอบ และแพลตฟอร์มจะอ่านลิงก์นั้นทุก 5 วินาทีจนกว่าเอกสารจะเสร็จสมบูรณ์ แล้วจึงทำงานต่อด้วยเอกสารที่เสร็จแล้ว เอกสารที่ล้มเหลวจะทำให้ขั้นตอนล้มเหลว พร้อมเหตุผล (เช่น ลูปที่ไม่ได้ปิด หรือรูปภาพที่ดึงมาไม่ได้) ในผลลัพธ์ของขั้นตอน เอกสารที่ล้มเหลวจะไม่ถูกส่งต่อไปยังขั้นตอนถัดไปเหมือนเป็นไฟล์: Get document status และ Download document ก็จะล้มเหลวเช่นกัน (DOCUMENT_FAILED)

หากคุณปิดการตั้งค่า Asynchronous pattern ของขั้นตอน ขั้นตอนจะคืนค่าทันทีขณะที่เอกสารยังเป็น processing ให้เพิ่ม Get document status พร้อม Document ID: ขั้นตอนนี้จะรอเอกสารในแบบเดียวกัน หากปิด asynchronous pattern ของขั้นตอนนั้นด้วย ขั้นตอนจะตอบทันที ให้รอเองด้วย Do until Status ไม่ใช่ processing โดยภายในมี Delay (5 วินาที) และ Get document status เอกสารที่ล้มเหลวจะทำให้ Get document status ล้มเหลว (422) ลูปจึงหยุดที่ข้อผิดพลาดนั้นและจะไม่ได้อ่านค่า failed เลย: ให้จัดการด้วย Configure run after (has failed) ในขั้นตอนถัดไป หรือใส่ลูปไว้ใน Scope

  • 60 คำขอต่อนาทีต่อเทมเพลต และ 600 เอกสารต่อนาทีต่อบริษัท ใช้ร่วมกับ API เอกสารและ HTTP Trigger การแสดงรายการเทมเพลต 60 ครั้งต่อนาทีต่อบริษัท การอ่านสถานะ 60 ครั้งและการดาวน์โหลด 60 ครั้งต่อนาทีต่อเอกสาร หากเกินขีดจำกัด ขั้นตอนจะตอบ 429 และนโยบายการลองใหม่ของแพลตฟอร์มจะลองอีกครั้ง
  • ช่องป้อนรูปภาพต้องเป็นที่อยู่เว็บสาธารณะ (https:// หรือ http://) ลิงก์ SharePoint หรือ OneDrive ที่ต้องเข้าสู่ระบบจะดึงมาไม่ได้ ให้แชร์รูปภาพด้วยลิงก์สาธารณะหรือโฮสต์ไว้ที่อื่น
  • เอกสารจะถูกเก็บไว้นานเท่ากับที่บริษัทของคุณเก็บเอกสารที่สร้างขึ้น (กำหนดตามแผนของคุณ) ควรดาวน์โหลดไฟล์ในโฟลว์เดียวกันแทนการเก็บลิงก์ไว้
  • การส่งเอกสารให้ลงนามและไฟล์แนบที่รวมเข้าใน PDF ใช้ได้ผ่าน API เอกสาร ไม่มีเป็นช่องป้อนข้อมูลของตัวเชื่อมต่อ
สิ่งที่คุณเห็น สาเหตุ
รายการเทมเพลตว่างเปล่า หรือการเชื่อมต่อล้มเหลวด้วย COMPANY_KEY_REQUIRED การเชื่อมต่อใช้คีย์ของเทมเพลตเอง ให้สร้างการเชื่อมต่อใหม่ด้วยคีย์ API ของบริษัท
ตัวแทนค่าบางตัวไม่มีช่องป้อนข้อมูล ช่องป้อนข้อมูลมาจากการอัปโหลดเทมเพลตครั้งล่าสุด ให้อัปโหลดเทมเพลตอีกครั้ง
QUOTA_EXCEEDED ไม่มีเอกสารเหลือในเดือนนี้ ให้ซื้อแพ็กหรือที่นั่ง
ขั้นตอนล้มเหลวด้วย DOCUMENT_FAILED สร้างเอกสารไม่ได้ ผลลัพธ์ของขั้นตอนจะบอกเหตุผล
Download document ล้มเหลวด้วย DOCUMENT_NOT_READY asynchronous pattern ของขั้นตอนสร้างเอกสารถูกปิด เอกสารจึงยังสร้างไม่เสร็จ ให้เพิ่ม Get document status ก่อนการดาวน์โหลด

การปฏิเสธอื่น ๆ ทั้งหมดแสดงพร้อมเหตุผลไว้ในเอกสารอ้างอิง API เอกสาร