แชร์ผ่าน


การจัดการเส้นทางแหล่งข้อมูล

โปรแกรม M ระบุแหล่งข้อมูลโดยใช้การรวมกันของชนิดและเส้นทาง เมื่อพบแหล่งข้อมูลในระหว่างการประเมินผลคิวรี กลไก M จะพยายามค้นหาข้อมูลประจําตัวที่ตรงกัน ถ้าไม่พบข้อมูลประจําตัว กลไกจัดการส่งกลับข้อผิดพลาดพิเศษที่ส่งผลให้มีการแจ้งข้อมูลประจําตัวใน Power Query

ค่า Kind มาจาก ข้อกําหนดชนิด แหล่งข้อมูล

ค่า Path มาจากพารามิเตอร์ที่จําเป็นของฟังก์ชันแหล่งข้อมูลของคุณ พารามิเตอร์ที่เลือกได้ไม่ได้แยกปัจจัยลงในตัวระบุเส้นทางแหล่งข้อมูล ด้วยเหตุนี้ ฟังก์ชันแหล่งข้อมูลทั้งหมดที่เกี่ยวข้องกับชนิดแหล่งข้อมูลต้องมีพารามิเตอร์เดียวกัน มีการจัดการพิเศษสําหรับฟังก์ชันที่มีพารามิเตอร์ชนิด Uri.Typeเดียว ไปที่ ฟังก์ชัน ด้วยพารามิเตอร์ Uri สําหรับรายละเอียด

คุณสามารถดูตัวอย่างของวิธีการจัดเก็บข้อมูลประจําตัวไว้ ในกล่องโต้ตอบการตั้งค่า แหล่งข้อมูลใน Power BI Desktop ในกล่องโต้ตอบนี้ ชนิด จะแสดงด้วยไอคอน และค่าเส้นทางจะแสดงเป็นข้อความ

สกรีนช็อตของข้อมูลประจําตัวการตั้งค่าแหล่งข้อมูล

หมายเหตุ

ถ้าคุณเปลี่ยนพารามิเตอร์ที่จําเป็นของฟังก์ชันแหล่งข้อมูลของคุณในระหว่างการพัฒนา ข้อมูลประจําตัวที่เก็บไว้ก่อนหน้านี้จะไม่ทํางานอีกต่อไป (เนื่องจากค่าเส้นทางไม่ตรงกันอีกต่อไป) คุณควรลบข้อมูลประจําตัวที่จัดเก็บไว้ทุกครั้งที่คุณเปลี่ยนพารามิเตอร์ฟังก์ชันแหล่งข้อมูลของคุณ ถ้าพบข้อมูลประจําตัวที่เข้ากันไม่ได้ คุณอาจได้รับข้อผิดพลาดขณะทํางาน

รูปแบบเส้นทางของแหล่งข้อมูล

ค่า Path สําหรับแหล่งข้อมูลมาจากพารามิเตอร์ที่จําเป็นของฟังก์ชันแหล่งข้อมูล สามารถแยกพารามิเตอร์ที่จําเป็นออกจากเส้นทางได้โดยการเพิ่ม DataSource.Path = false ไปยังเมตาดาต้าของฟังก์ชัน สําหรับข้อมูลเพิ่มเติม ไปที่ ยกเว้นพารามิเตอร์ที่จําเป็นจากเส้นทางแหล่งข้อมูลของคุณ

ตามค่าเริ่มต้น คุณสามารถดูค่า สตริงจริงในกล่องโต้ตอบการตั้งค่า แหล่งข้อมูลใน Power BI Desktop และในพร้อมท์ข้อมูลประจําตัว ถ้าข้อกําหนดประเภทแหล่งข้อมูลมีค่า Label คุณจะเห็นค่าป้ายชื่อแทน

ตัวอย่างเช่น ฟังก์ชันแหล่งข้อมูลใน ตัวอย่าง HelloWorldWithDocs มีลายเซ็นต่อไปนี้:

HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...

ฟังก์ชันมีพารามิเตอร์เดียวที่จําเป็น (message) ของชนิด textและ ใช้ในการคํานวณเส้นทางแหล่งข้อมูล พารามิเตอร์ที่เลือกได้ (count) จะถูกละเว้น เส้นทางจะแสดงดังต่อไปนี้:

พร้อมท์ข้อมูลประจําตัว

สกรีนช็อตของพรอมต์ข้อมูลประจําตัวที่มีเส้นทาง

UI การตั้งค่าแหล่งข้อมูล

สกรีนช็อตของ UI การตั้งค่าแหล่งข้อมูล

เมื่อมีการกําหนดค่าป้ายชื่อ ค่าพาธของแหล่งข้อมูลจะไม่แสดง:

สกรีนช็อตของการตั้งค่าแหล่งข้อมูลที่มีป้ายชื่อที่กําหนดไว้

หมายเหตุ

ขณะนี้เราขอแนะนําว่าคุณ อย่า รวมป้ายชื่อสําหรับแหล่งข้อมูลของคุณหากฟังก์ชันของคุณมีพารามิเตอร์ที่จําเป็น เนื่องจากผู้ใช้จะไม่สามารถแยกความแตกต่างระหว่างข้อมูลประจําตัวต่างๆ ที่ป้อนไว้ได้ เราหวังว่าจะปรับปรุงสิ่งนี้ในอนาคต (นั่นคือการอนุญาตให้ตัวเชื่อมต่อข้อมูลแสดงเส้นทางของแหล่งข้อมูลแบบกําหนดเองของพวกเขาเอง)

ไม่รวมพารามิเตอร์ที่จําเป็นจากเส้นทางแหล่งข้อมูลของคุณ

ถ้าคุณต้องการกําหนดพารามิเตอร์ฟังก์ชัน แต่ไม่จําเป็นต้องรวมไว้เป็นส่วนหนึ่งของเส้นทางแหล่งข้อมูลของคุณ คุณสามารถเพิ่ม DataSource.Path = false เมตาดาต้าในเอกสารฟังก์ชัน สามารถเพิ่มคุณสมบัตินี้ไปยังพารามิเตอร์อย่างน้อยหนึ่งตัวสําหรับฟังก์ชันของคุณ เขตข้อมูลนี้จะลบค่าจากเส้นทางแหล่งข้อมูลของคุณ (หมายความว่าจะไม่มีการส่งผ่านไปยังฟังก์ชันของคุณ TestConnection อีกต่อไป) ดังนั้นจึงควรใช้สําหรับพารามิเตอร์ที่ไม่จําเป็นในการระบุแหล่งข้อมูลของคุณ หรือแยกความแตกต่างระหว่างข้อมูลประจําตัวของผู้ใช้เท่านั้น

ตัวอย่างเช่น ตัวเชื่อมต่อในตัวอย่าง HelloWorldWithDocs จําเป็นต้องมีข้อมูลประจําตัวที่แตกต่างกันสําหรับค่าที่แตกต่างกันmessage messageการเพิ่มDataSource.Path = falseพารามิเตอร์จะลบออกจากการคํานวณเส้นทางแหล่งข้อมูล ทําให้ตัวเชื่อมต่อเป็น "singleton" อย่างมีประสิทธิภาพ การเรียก HelloWorldWithDocs.Contents ทั้งหมดจะถือว่าเป็นแหล่งข้อมูลเดียวกัน และผู้ใช้มีข้อมูลประจําตัวเพียงครั้งเดียว

HelloWorldType = type function (
    message as (type text meta [
        DataSource.Path = false,
        Documentation.FieldCaption = "Message",
        Documentation.FieldDescription = "Text to display",
        Documentation.SampleValues = {"Hello world", "Hola mundo"}
    ]),
    optional count as (type number meta [
        Documentation.FieldCaption = "Count",
        Documentation.FieldDescription = "Number of times to repeat the message",
        Documentation.AllowedValues = { 1, 2, 3 }
    ]))
    as table meta [
        Documentation.Name = "Hello - Name",
        Documentation.LongDescription = "Hello - Long Description",
        Documentation.Examples = {[
            Description = "Returns a table with 'Hello world' repeated 2 times",
            Code = "HelloWorldWithDocs.Contents(""Hello world"", 2)",
            Result = "#table({""Column1""}, {{""Hello world""}, {""Hello world""}})"
        ],[
            Description = "Another example, new message, new count!",
            Code = "HelloWorldWithDocs.Contents(""Goodbye"", 1)",
            Result = "#table({""Column1""}, {{""Goodbye""}})"
        ]}
    ];

ฟังก์ชันที่มีพารามิเตอร์ Uri

เนื่องจากแหล่งข้อมูลที่มีตัวระบุตาม Uri เป็นเรื่องปกติ จึงมีการจัดการพิเศษใน Power Query UI เมื่อจัดการกับเส้นทางแหล่งข้อมูลที่ใช้ Uri เมื่อพบแหล่งข้อมูลที่ใช้ Uri กล่องโต้ตอบข้อมูลประจําตัวจะมีดรอปดาวน์ ซึ่งช่วยให้ผู้ใช้สามารถเลือกเส้นทางพื้นฐานแทนที่จะเป็นเส้นทางแบบเต็ม (และเส้นทางทั้งหมดในระหว่าง)

ภาพหน้าจอของกล่องโต้ตอบข้อมูลประจําตัวที่แสดงเส้นทางการตั้งค่าที่ใช้ข้อมูลประจําตัว

เนื่องจากUri.Typeเป็นชนิดโดยกําเนิดแทนที่จะเป็นชนิดแรกเริ่มในภาษา M คุณจะต้องใช้ฟังก์ชัน Value.ReplaceType เพื่อระบุว่าพารามิเตอร์ข้อความของคุณควรถือว่าเป็น Uri

shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);