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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    หมายเหตุ

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

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

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

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

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

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

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

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

โฟลว์ของข้อมูลเมื่อแอปอ่านข้อมูลในแหล่งข้อมูล ไดอะแกรมด้านบนแสดงโฟลว์ของข้อมูลเมื่อแอปอ่านข้อมูลในแหล่งข้อมูล:

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

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

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

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

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

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

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

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

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

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

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

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

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

ยอดเยี่ยม คุณตรวจสอบความถูกต้องของเรกคอร์ดของคุณแล้ว ได้เวลาปรับปรุงเรกคอร์ดนั้นด้วย Pathc แล้ว!

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

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

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

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

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

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

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

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

คอลเลกชัน

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

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

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

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