แชร์ผ่าน


ทำความเข้าใจแหล่งข้อมูลสำหรับแอปพื้นที่ทำงาน

ใน Power Apps แอปพื้นที่ทำงานส่วนใหญ่ใช้ข้อมูลภายนอกที่จัดเก็บไว้ในบริการระบบคลาวด์ที่เรียกว่า แหล่งข้อมูล ตัวอย่างทั่วไปคือตารางในไฟล์ Excel ที่จัดเก็บไว้ใน OneDrive แอปจะเข้าถึงแหล่งข้อมูลเหล่านี้โดยใช้ การเชื่อมต่อ

บทความนี้อธิบายถึงชนิดต่าง ๆ ของแหล่งข้อมูลและวิธีการทำงานกับแหล่งข้อมูลตาราง

เป็นเรื่องง่ายเมื่อต้องสร้างแอปที่อ่านและเขียนแหล่งข้อมูลอย่างไม่ซับซ้อน แต่ในบางครั้ง คุณต้องการควบคุมวิธีที่ข้อมูลโฟลว์เข้าและออกจากแอปของคุณได้มากขึ้น บทความนี้อธิบายวิธีที่ฟังก์ชัน Patch, DataSourceInfo, Validate และ Errors มอบการควบคุมเพิ่มเติม

ชนิดของแหล่งข้อมูล

แหล่งข้อมูลสามารถเชื่อมต่อไปยังบริการระบบคลาวด์ หรือสามารถเชื่อมต่อจากภายในเครื่องไปยังแอป

แหล่งข้อมูลที่เชื่อมต่ออยู่

แหล่งข้อมูลธรรมดาที่สุดคือ ตาราง ซึ่งคุณสามารถใช้ในการรับและจัดเก็บข้อมูลได้ คุณสามารถใช้ การเชื่อมต่อ กับแหล่งข้อมูลเพื่ออ่าน และเขียนข้อมูลในเวิร์กบุ๊ก Microsoft Excel รายการที่สร้างโดยใช้ Microsoft Lists ไลบรารี SharePoint ตาราง SQL และรูปแบบอื่นๆ มากมาย ซึ่งสามารถจัดเก็บในบริการระบบคลาวด์เช่น OneDrive, DropBox และ SQL Server

มีแหล่งข้อมูลอื่นที่นอกเหนือจากตารางรวมถึงอีเมล ปฏิทิน Twitter และการแจ้งเตือน แต่บทความนี้ไม่พูดถึงแหล่งข้อมูลเหล่านี้

แหล่งข้อมูลภายในเครื่อง

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

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

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

ชนิดของตาราง

ตารางที่อยู่ภายในแอปเป็นค่าคงที่ เหมือนกับที่ตัวเลขหรือสตริงเป็นค่า ตารางภายในจะไม่ถูกเก็บไว้ที่ใดๆ เพียงแค่มีอยู่ในหน่วยความจำของแอปของคุณ คุณไม่สามารถแก้ไขโครงสร้างและข้อมูลของตารางได้โดยตรง สิ่งที่คุณสามารถทำได้คือ สร้างตารางใหม่ผ่านสูตร: คุณใช้สูตรเพื่อทำสำเนาของตารางต้นฉบับที่ถูกปรับเปลี่ยน

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

เมื่อต้องการเรียนรู้เพิ่มเติม ดูที่ การทำงานกับตาราง เกี่ยวกับตารางภายใน แต่ก็สามารถใช้ได้กับตารางภายนอกที่อยู่ในบริการระบบคลาวด์ได้ด้วย

การทำงานกับตาราง

คุณสามารถใช้แหล่งข้อมูลตารางแบบเดียวกับที่คุณใช้ตาราง Power Apps ภายในได้ เช่นเดียวกับตารางภายใน เแหล่งข้อมูลแต่ละแหล่งจะมี เรกคอร์ดคอลัมน์ และคุณสมบัติที่คุณสามารถใช้ในสูตรได้ นอกจากนี้:

  • แหล่งข้อมูลมีชื่อคอลัมน์และชนิดข้อมูลเดียวกับตารางต้นแบบในการเชื่อมต่อ

    หมายเหตุ

    สำหรับแหล่งข้อมูล SharePoint และ Excel ที่มีชื่อคอลัมน์ที่มีช่องว่าง Power Apps แทนที่ช่องว่างด้วย "_x0020_" ตัวอย่างเช่น "ชื่อคอลัมน์" ใน SharePoint หรือ Excel จะปรากฏเป็น "Column_x0020_Name" ใน Power Apps เมื่อแสดงในเค้าโครงข้อมูลหรือใช้ในสูตร

  • แหล่งข้อมูลถูกโหลดจากบริการโดยอัตโนมัติเมื่อโหลดแอป คุณสามารถบังคับให้ข้อมูลรีเฟรชได้ โดยใช้ฟังก์ชัน รีเฟรช

  • ขณะที่ผู้ใช้เรียกใช้แอป พวกเขาสามารถสร้าง แก้ไข และลบเรกคอร์ด และผลักการเปลี่ยนแปลงเหล่านั้นกลับไปยังตารางต้นแบบในบริการได้

    • สามารถสร้างเรกคอร์ได้ด้วยฟังก์ชัน Patch และ Collect ได้
    • สามารถปรับเปลี่ยนเรกคอร์ดด้วยฟังก์ชัน Patch, Update และ UpdateIf ได้
    • สามารถลบเรกคอร์ดด้วยฟังก์ชัน Remove และ RemoveIf ได้
    • ข้อผิดพลาดเมื่อทำงานกับแหล่งข้อมูลจะพร้อมใช้งานผ่านฟังก์ชัน Errors
  • ฟังก์ชัน DataSourceInfoDefaults และ Validate มีข้อมูลเกี่ยวกับแหล่งข้อมูลที่คุณสามารถใช้ปรับประสบการณ์การใช้งานของผู้ใช้ให้เหมาะสมได้

การสร้างแหล่งข้อมูล

Power Apps ไม่สามารถใช้เพื่อสร้างแหล่งข้อมูลที่เชื่อมต่อ หรือปรับเปลี่ยนโครงสร้างของแหล่งข้อมูลได้ แหล่งข้อมูลต้องมีอยู่ในบริการอยู่แล้ว ตัวอย่างเช่น เมื่อต้องสร้างตารางในเวิร์กบุ๊ก Excel ที่จัดเก็บบน OneDrive ก่อนอื่นให้คุณใช้ Excel Online บน OneDrive เพื่อสร้างเวิร์กบุ๊ก ถัดไป ให้คุณสร้างการเชื่อมต่อจากแอปของคุณ

อย่างไรก็ตาม แหล่งข้อมูลของคอลเลกชัน สามารถ ถูกสร้างและปรับเปลี่ยนภายในแอป แต่เพียงแค่ชั่วคราวเท่านั้น

แสดงหนึ่งเรกคอร์ดหรือมากกว่า

โฟลว์ของข้อมูลเมื่อแอปอ่านข้อมูลในแหล่งข้อมูล

แผนผังนี้แสดงโฟลว์ของข้อมูลเมื่อแอปอ่านข้อมูลในแหล่งข้อมูล:

  • ข้อมูลจะถูกจัดเก็บและแชร์ผ่านบริการจัดเก็บข้อมูล (ในกรณีนี้คือ Microsoft Lists หรือ SharePoint ออนไลน์)
  • การเชื่อมต่อทำให้ข้อมูลนี้พร้อมใช้งานสำหรับแอป การเชื่อมต่อดูแลการรับรองความถูกต้องของผู้ใช้ในการเข้าถึงข้อมูล
  • เมื่อแอปเริ่มต้นหรือฟังก์ชัน Refresh ถูกกด ข้อมูลจะถูกดึงจากการเชื่อมต่อลงในแหล่งข้อมูลในแอปสำหรับการใช้งานภายในเครื่อง
  • สูตรถูกใช้เพื่ออ่านข้อมูลและแสดงในตัวควบคุมที่ผู้ใช้สามารถเห็นได้ คุณสามารถแสดงเรกคอร์ดของแหล่งข้อมูลโดยใช้แกลเลอรีบนหน้าจอและการเชื่อมโยงคุณสมบัติ Items ไปยังแหล่งข้อมูล: แกลเลอรี.Items = DataSource ได้ คุณเชื่อมโยงตัวควบคุมภายในแกลเลอรี ไปยังแกลเลอรี โดยใช้คุณสมบัติ Default ของตัวควบคุม
  • แหล่งข้อมูลยังเป็นตารางด้วย ดังนั้น คุณสามารถใช้ฟังก์ชัน FilterSortAddColumns และฟังก์ชันอื่น ๆ เพื่อปรับปรุงและเพิ่มแหล่งข้อมูลก่อนใช้ทั้งหมด คุณยังสามารถใช้ฟังก์ชัน LookupFirstLast และฟังก์ชันอื่นๆ เพื่อทำงานกับเรกคอร์ดส่วนบุคคลได้

ปรับเปลี่ยนเรกคอร์ด

ลูกศรในแผนภาพก่อนหน้าเป็นลูกศรทางเดียว การเปลี่ยนแปลงไปยังแหล่งข้อมูลไม่ได้ย้อนกลับผ่านสูตรเดียวกันกับที่ใช้ดึงข้อมูล แต่สูตรใหม่จะถูกใช้แทน บ่อยครั้งที่หน้าจออื่นถูกใช้สำหรับการแก้ไขเรกคอร์ดแทนที่จะเป็นการเรียกดูเรกคอร์ด โดยเฉพาะอย่างยิ่งบนอุปกรณ์เคลื่อนที่

หากต้องการปรับเปลี่ยนเรกคอร์ดที่มีอยู่ของแหล่งข้อมูล เรกคอร์ดจะต้องมีที่มาจากแหล่งข้อมูล เรกคอร์ดอาจแสดงในแกลเลอรี ตัวแปรบริบท และจำนวของสูตรใดๆ ก็ได้ แต่แหล่งที่มาควรตามกลับไปยังแหล่งข้อมูลได้ ข้อมูลเพิ่มเติมที่มาพร้อมกับเรกคอร์ดที่ระบุโดยเฉพาะ ทำให้แน่ใจว่าคุณปรับเปลี่ยนเรกคอร์ดที่ถูกต้อง

โฟลว์ของข้อมูลเพื่ออัปเดตแหล่งข้อมูล แผนภาพนี้แสดงโฟลว์ของข้อมูลสำหรับอัปเดตแหล่งข้อมูล:

  • ตัวควบคุม แก้ไขฟอร์ม มีคอนเทนเนอร์สำหรับการ์ดการป้อนข้อมูลเข้า ซึ่งถูกสร้างขึ้นจากตัวควบคุมการป้อนข้อมูลผู้ใช้ เช่น ตัวควบคุม การป้อนข้อความ หรือตัวเลื่อน คุณสมบัติ DataSource และ Item ถูกใช้เพื่อระบุเรกคอร์ดที่จะแก้ไข
  • การ์ดการป้อนข้อมูลแต่ละใบมีคุณสมบัติ ค่าเริ่มต้น ซึ่งถูกตั้งค่าเป็นฟิลด์ของเรกคอร์ด ThisItem ของฟอร์ม ตัวควบคุมภายในการ์ดสำหรับป้อนข้อมูลจะนำค่าที่ป้อนมาจาก ค่าเริ่มต้น โดยปกติแล้ว คุณไม่จำเป็นต้องแก้ไขค่าเริ่มต้นนี้
  • การ์ดการป้อนข้อมูลเข้าแต่ละใบจะมีคุณสมบัติ Update คุณสมบัตินี้จะแมปข้อมูลป้อนเข้าของผู้ใช้ลงในฟิลด์ที่เฉพาะเจาะจงของเรกคอร์ดสำหรับการเขียนกลับไปยังแหล่งข้อมูล โดยปกติแล้ว คุณไม่จำเป็นต้องแก้ไขคุณสมบัตินี้
  • ตัวควบคุมปุ่มหรือรูปบนหน้าจอช่วยให้ผู้ใช้บันทึกการเปลี่ยนแปลงไปยังเรกคอร์ด สูตร OnSelect ของตัวควบคุมเรียกฟังก์ชัน SubmitForm ให้ทำงานนี้ SubmitForm อ่านคุณสมบัติ Update ทั้งหมดของการ์ด และเขียนกลับไปยังแหล่งข้อมูล
  • บางครั้งอาจมีปัญหา การเชื่อมต่อเครือข่ายอาจขัดข้อง หรือการตรวจสอบความถูกต้องกระทำโดยบริการที่แอปไม่ทราบ คุณสมบัติ ข้อผิดพลาด และ ErrorKind ของตัวควบคุมฟอร์มทำให้ข้อมูลนี้พร้อมใช้งาน คุณจึงสามารถแสดงให้ผู้ใช้ได้

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

การตรวจสอบความถูกต้อง

ก่อนคุณทำการเปลี่ยนแปลงเรกคอร์ด แอปควรตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงจะได้รับการยอมรับ มีสองสาเหตุสำหรับการตรวจสอบ:

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

Power Apps มอบเครื่องมือสำหรับตรวจสอบความถูกต้องสองเครื่องมือ:

  • แหล่งข้อมูลสามารถให้ข้อมูลเกี่ยวกับสิ่งที่ถูกต้องและไม่ถูกต้องได้ ตัวอย่างเช่น ตัวเลขอาจมีค่าสูงสุดและค่าต่ำสุดได้ และจำเป็นต้องมีรายการอย่างน้อยหนึ่งรายการหรือมากกว่า คุณสามารถเข้าถึงข้อมูลนี้โดยใช้ฟังก์ชัน DataSourceInfo
  • ฟังก์ชัน Validate ใช้ข้อมูลเดียวกันเพื่อตรวจสอบค่าของคอลัมน์เดี่ยวหรือเรกคอร์ดทั้งหมด

การจัดการข้อผิดพลาด

เมื่อคุณตรวจสอบเรกคอร์ดของคุณแล้ว ให้อัปเดตเรกคอร์ดนั้นด้วย Patch

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

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

ถ้าข้อผิดพลาดเกิดขึ้นเมื่อมีการสร้างเรกคอร์ดด้วยโดย Patch หรือ Collect จะไม่มีเรกคอร์ดเกี่ยวข้องกับข้อผิดพลาด ในกรณีนี้ ว่างเปล่า จะถูกส่งกลับมาโดย Patch และสามารถใช้เป็นเรกคอร์ดอาร์กิวเมนต์ต่อ Errors ได้ ข้อผิดพลาดในการสร้างจะถูกล้างออกด้วยการดำเนินการถัดไป

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

การทำงานกับแหล่งข้อมูลขนาดใหญ่

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

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

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

คอลเลกชัน

คอลเลกชันเป็นแหล่งข้อมูลชนิดพิเศษ คอลเลกชันเหล่านี้อยู่ในแอปและไม่ได้รับการสนับสนุนโดยการเชื่อมต่อกับบริการในระบบคลาวด์ ดังนั้นจึงไม่สามารถแชร์ข้อมูลข้ามอุปกรณ์สำหรับผู้ใช้รายเดียวกันหรือระหว่างผู้ใช้ได้

คอลเลกชันทำงานเหมือนกับแหล่งข้อมูลอื่น โดยมีข้อยกเว้นบางอย่าง:

  • สามารถสร้างคอลเลกชันได้แบบไดนามิกด้วยฟังก์ชัน Collect ได้ คอลเลกชันไม่จำเป็นต้องถูกสร้างล่วงหน้าเหมือนกับแหล่งข้อมูลที่อาศัยการเชื่อมต่อ
  • คอลัมน์ของคอลเลกชันสามารถปรับเปลี่ยนเมื่อใดก็ได้โดยใช้ฟังก์ชัน Collect
  • คอลเลกชันอนุญาตให้มีเรกคอร์ดที่ซ้ำกันได้ สำเนาของเรกคอร์ดเดียวกันมากกว่าหนึ่งรายการสามารถอยู่ในคอลเลกชันได้ ฟังก์ชัน เช่น Remove ทำงานในการจับคู่ครั้งแรกที่พบ เว้นแต่จะมีการใช้อาร์กิวเมนต์ ทั้งหมด
  • คุณสามารถใช้ฟังก์ชัน SaveData และ LoadData เมื่อต้องบันทึกและโหลดสำเนาของคอลเลกชันอีกครั้งได้ ข้อมูลถูกเก็บไว้ในตำแหน่งที่ตั้งส่วนตัวที่ผู้ใช้อื่น แอปอื่น หรืออุปกรณ์อื่น ๆ ไม่สามารถเข้าถึงได้
  • คุณสามารถใช้ตัวควบคุม ส่งออก และ นำเข้า เมื่อต้องบันทึกและโหลดสำเนาของคอลเลกชันไปยังไฟล์ที่ผู้ใช้สามารถใช้งานได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานโดยมีคอลเลกชันเป็นแหล่งข้อมูล ดู สร้างและอัปเดตคอลเลกชัน

ตามปกติคอลเลกชันจะใช้เพื่อจัดเก็บสถานะส่วนกลางสำหรับแอป ดู การทำงานกับตัวแปร สำหรับตัวเลือกที่พร้อมใช้งานสำหรับการจัดการสถานะ