Thep Excel

OData.Feedเชื่อมต่อบริการ OData

OData.Feed เชื่อมต่อบริการ OData และดึงข้อมูลจาก OData endpoints ซึ่งมักจะเป็น API ที่มีโครงสร้างมาตรฐาน

fx
=OData.Feed(serviceUri, [headers], [options]) as any

ความนิยม6/10
ความยาก4/10
ประโยชน์6/10

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
serviceUri text URL ของบริการ OData ที่ต้องการเชื่อมต่อ เช่น https://services.odata.org/V4/TripPinService
[headers]ไม่บังคับ record null Headers HTTP เพิ่มเติมสำหรับการส่งคำขอ เช่น authentication headers
[options]ไม่บังคับ record null ตัวเลือกการตั้งค่าเพิ่มเติม เช่น Timeout, ODataVersion, Concurrent เป็นต้น

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

OData.Feed ใช้สำหรับเชื่อมต่อและเรียกข้อมูลจากบริการ OData (Open Data Protocol) ซึ่งเป็นโปรโตคอลมาตรฐานสำหรับการเข้าถึงข้อมูลผ่าน REST API

ฟังก์ชันนี้มีประโยชน์มากเมื่อคุณต้องการดึงข้อมูลจากบริการคลาวด์หรือเซิร์ฟเวอร์ที่รองรับ OData เช่น SAP, Microsoft Dynamics, SharePoint Online หรืออื่น ๆ

ตัวอย่างการใช้งาน:
– เชื่อมต่อ SharePoint Online เพื่อดึงข้อมูลจาก Lists
– ดึงข้อมูลจาก Microsoft Dynamics 365
– เข้าถึง SAP OData services
– เชื่อมต่อ REST API ที่มี OData support

ส่วนตัวผม มักใช้ OData.Feed เมื่อสร้าง Power BI models ที่ต้อง refresh ข้อมูลจากระบบภายนอกอย่างอัตโนมัติ เพราะมันจัดการ authentication และ data transformation ได้ค่อนข้างสะดวก 😎

Examples

เชื่อมต่อ OData service แบบพื้นฐานlet Source = OData.Feed("https://services.odata.org/V4/TripPinService") in Source

ใช้ OData.Feed เพื่อเชื่อมต่อกับ TripPin OData service และได้รับข้อมูลทั้งหมด

fx
let
Source = OData.Feed("https://services.odata.org/V4/TripPinService")
in
Source

ผลลัพธ์ตารางที่แสดงทรัพยากร (resources) ทั้งหมดที่มีใน OData service นั้น
ระบุ OData version และ timeoutlet ServiceUri = "https://services.odata.org/V4/TripPinService", Options = [ ODataVersion = 4, Timeout = 300 ], Source = OData.Feed(ServiceUri, null, Options) i…

ระบุเวอร์ชัน OData และกำหนด timeout เพื่อควบคุมประสิทธิภาพ

fx
let
ServiceUri = "https://services.odata.org/V4/TripPinService",
Options = [
ODataVersion = 4,
Timeout = 300
],
Source = OData.Feed(ServiceUri, null, Options)
in
Source

ผลลัพธ์ตารางข้อมูล OData V4 ที่มี timeout 300 วินาที
เชื่อมต่อด้วย custom headers (authentication)let ServiceUri = "https://api.example.com/odata", Headers = [Authorization = "Bearer eyJhbGc…"], Source = OData.Feed(ServiceUri, Headers, null) in Source

ใช้ custom headers เพื่อส่งผ่าน API token หรือ bearer token สำหรับการยืนยันตัวตน

fx
let
ServiceUri = "https://api.example.com/odata",
Headers = [Authorization = "Bearer eyJhbGc…"],
Source = OData.Feed(ServiceUri, Headers, null)
in
Source

ผลลัพธ์ข้อมูลจาก OData service ที่ต้องการ authentication
เชื่อมต่อ SharePoint Online listlet ServiceUri = "https://tenant.sharepoint.com/sites/sitename/_api/v2.0", Source = OData.Feed(ServiceUri, [#"Authorization" = "Bearer " & token]) in Source

เชื่อมต่อ SharePoint Online เพื่อดึงข้อมูลจาก Lists ผ่าน OData endpoint

fx
let
ServiceUri = "https://tenant.sharepoint.com/sites/sitename/_api/v2.0",
Source = OData.Feed(ServiceUri, [#"Authorization" = "Bearer " & token])
in
Source

ผลลัพธ์ข้อมูลจาก SharePoint Online

FAQs

OData.Feed ต่างจาก Web.Contents ยังไง?+

OData.Feed รองรับ OData protocol โดยเฉพาะ และจัดการ navigation, filtering, sorting อัตโนมัติ ส่วน Web.Contents เป็นเพียง HTTP request ทั่วไป ต้องจัดการ JSON/XML parsing เอง

ต้องใช้ ODataVersion เวอร์ชันไหน?+

OData V4 เป็นเวอร์ชันปัจจุบันที่แนะนำ บางบริการเก่าอาจใช้ V3 ตรวจสอบเอกสาร API ของบริการที่คุณเชื่อมต่อ

Timeout default คือเท่าไหร่?+

600 วินาที (10 นาที) หากต้องการเปลี่ยน ให้ระบุในตัวเลือก options โดยใช้ Timeout parameter

ต้องใช้ authentication ทุกครั้งไหม?+

ขึ้นอยู่กับบริการ OData บางตัวเปิดเข้าถึงได้ทั่วไป บางตัวต้อง API key, Bearer token หรือ credentials

EnableBatch ใช้สำหรับอะไร?+

สำหรับการส่งคำขอหลายตัวในการเรียกเดียว (batch request) จะช่วยเมื่อ URI มีความยาวมากเกินไป หรือต้องการ optimize network traffic

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ OData.Feed จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้OData.FeedAccessing data functions
Accessing data functions (3)
Json.Document

Json.Document ใช้สำหรับแปลง JSON text หรือ binary data ให้เป็น Power Query record ทำให้คุณสามารถเข้าถึง field แต่ละตัวได้อย่างง่ายดาย

MySQL.Database

MySQL.Database เป็นฟังก์ชันตัวเชื่อมต่อ (connector) ที่ใช้ส่งข้อมูลจากฐานข้อมูล MySQL ไปยัง Power Query ช่วยให้คุณสามารถโหลดตารางและมุมมองจากเซิร์ฟเวอร์ MySQL ได้

Web.Contents

Web.Contents เป็นฟังก์ชันสำหรับดาวน์โหลดเนื้อหาจากเว็บไซต์หรือแหล่งข้อมูลบนอินเทอร์เน็ตผ่าน URL และคืนค่าเป็นข้อมูลแบบ binary data ที่สามารถนำไปประมวลผลต่อได้
.
รองรับการเชื่อมต่อและเรียกใช้งาน REST API อย่างครบถ้วนพร้อมระบบการยืนยันตัวตนผ่านทางตัวเลือกต่างๆ เช่น การกำหนดค่า Headers สำหรับส่งข้อมูลเพิ่มเติมในคำขอ การใช้ Query parameters สำหรับการกรองข้อมูลและส่งพารามิเตอร์ และการระบุ ApiKeyName เพื่อจัดเก็บคีย์การเข้าถึงอย่างปลอดภัย
.
เหมาะอย่างยิ่งสำหรับการเชื่อมต่อกับบริการเว็บและจุดเชื่อมต่อ API แบบไดนามิก โดยใช้ความสามารถของ RelativePath และตัวเลือก Query เพื่อสร้าง URL แบบยืดหยุ่นและทำให้กระบวนการรีเฟรชข้อมูลทำงานได้อย่างราบรื่นและมีประสิทธิภาพในระบบ Power BI Service

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่