ฟังก์ชัน SaveData LoadData และ ClearData

ใช้กับ: แอปพื้นที่ทำงาน

บันทึกและโหลด คอลเลกชัน จากพื้นที่เก็บข้อมูลของโฮสต์แอป

หมายเหตุ

ขณะนี้สามารถใช้ฟังก์ชันเหล่านี้ได้เมื่อเล่นแอปในเว็บเบราว์เซอร์เป็น คุณลักษณะทดลอง คุณลักษณะนี้จะปิดใช้งานโดยค่าเริ่มต้น หากต้องการเปิดใช้งาน ให้ไปที่ การตั้งค่า>คุณลักษณะที่กําลังจะมาถึง>ทดลอง>เปิดใช้งาน SaveData, LoadData, ClearData บนโปรแกรมเล่นเว็บ" และเปิดสวิตช์ หากต้องการส่งข้อคิดเห็นเกี่ยวกับคุณลักษณะทดลองนี้ ให้ไปที่ ฟอรัมชุมชน Power Apps

รายละเอียด

ฟังก์ชัน SaveData จัดเก็บคอลเลกชันภายใต้ชื่อไว้ใช้ในภายหลัง

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

ฟังก์ชัน ClearData ล้างที่เก็บข้อมูลภายใต้ชื่อเฉพาะหรือล้างที่เก็บข้อมูลทั้งหมดที่เกี่ยวข้องกับแอปหากไม่มีการระบุชื่อ

หมายเหตุ

  • ชื่อที่ใช้ร่วมกันระหว่าง SaveData, LoadData และ ClearData คือคีย์ ไม่ใช่ชื่อไฟล์ ไม่จำเป็นต้องมีความซับซ้อน เนื่องจากชื่อจะไม่ซ้ำกันสำหรับแต่ละแอปและไม่มีอันตรายจากความขัดแย้งของชื่อ ชื่อต้องไม่มีอักขระเหล่านี้: *".?:\<>|/
  • SaveData จำกัดข้อมูล 1 MB สำหรับ Power Apps ทำงานใน Teams และในเว็บเบราว์เซอร์ ไม่มีขีดจำกัดสำหรับการเรียกใช้ Power Apps ในเครื่องเล่นมือถือ แต่มีข้อจำกัดในทางปฏิบัติที่กล่าวถึงด้านล่าง
  • อย่าใช้ SaveData เพื่อเก็บข้อมูลสำคัญในเว็บ เพราะจะเก็บเป็นข้อความธรรมดา

ใช้ฟังก์ชันเหล่านี้เพื่อปรับปรุงประสิทธิภาพการเริ่มต้นแอป โดย:

  • กำลังแคชข้อมูล ในสูตร App.OnStart ในการรันครั้งแรก
  • โหลดแคชภายในเครื่องอีกครั้ง

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

คุณไม่สามารถใช้ฟังก์ชันเหล่านี้ภายในเบราว์เซอร์ เมื่อ:

  • การสร้างแอปใน Power Apps Studio

การทดสอบแอปของคุณ ให้รันใน Power Apps มือถือ บนเครื่อง iPhone หรือ Android

ฟังก์ชันเหล่านี้ถูกจำกัดด้วยจำนวนหน่วยความจำแอปที่มีอยู่ เพราะฟังก์ชันทำงานในคอลเลกชันในหน่วยความจำ หน่วยความจำที่มีอยู่อาจแตกต่างกันไปขึ้นอยู่กับปัจจัยต่างๆ เช่น:

  • อุปกรณ์ และระบบปฏิบัติการ
  • หน่วยความจำที่ตัวเล่น Power Apps ใช้
  • ความซับซ้อนของแอปกับหน้าจอ และตัวควบคุม

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

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

ข้อมูลที่โหลดจะถูกผนวกเข้ากับคอลเลกชัน ใช้ฟังก์ชัน Clear ก่อนที่จะเรียก LoadData ถ้าคุณต้องการเริ่มต้นด้วยคอลเลกชันที่ว่างเปล่า

การรักษาความปลอดภัยข้อมูล

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

ข้อมูลที่จัดเก็บด้วย SaveData ถูกแยกออกจาก Power Apps โดยโปรแกรมเล่น Power Apps อื่น ข้อมูลจะถูกจัดเก็บตาม ID ของแอป โดยแยกช่องว่างชื่อ SaveData ระหว่าง Power Apps โดยอัตโนมัติ

ระบบปฏิบัติการและเบราว์เซอร์มีหน้าที่แยกข้อมูลระหว่าง Power Apps กับแอปอื่นๆ บนอุปกรณ์และกับเว็บไซต์ ตัวอย่างเช่น ระบบปฏิบัติการมีหน้าที่แยกข้อมูลที่จัดเก็บไว้ใน Microsoft Outlook จากข้อมูลที่จัดเก็บไว้ใน Power Apps และยังแยกข้อมูลนั้นออกจากเว็บไซต์ เช่น Bing.com หรือ PowerApps.com สิ่งอำนวยความสะดวกแซนด์บ็อกซ์แอปในตัวของระบบปฏิบัติการใช้สำหรับพื้นที่เก็บข้อมูล SaveData ซึ่งโดยปกติแล้วผู้ใช้จะไม่สามารถเข้าถึงได้หรือซ่อนไว้

เมื่อใช้แอปเดียวกัน ระบบปฏิบัติการและเบราว์เซอร์มีหน้าที่แยกข้อมูลระหว่างผู้ใช้ระดับระบบปฏิบัติการที่แตกต่างกัน ตัวอย่างเช่น หากผู้ใช้ที่แตกต่างกันสองคนใช้คอมพิวเตอร์ร่วมกันและใช้ข้อมูลรับรองการเข้าสู่ระบบ Windows สองรายการที่แตกต่างกัน ระบบปฏิบัติการจะรับผิดชอบในการแยกข้อมูลระหว่างผู้ใช้ Windows สองคน

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

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

ไวยากรณ์

SaveData( Collection, Name )
LoadData( Collection, Name [, IgnoreNonexistentFile ])

  • Collection – จำเป็นต้องมี คอลเลกชันที่จะจัดเก็บหรือโหลด
  • Name -จำเป็นต้องมี ชื่อของที่เก็บข้อมูล ชื่อต้องเหมือนกันเพื่อบันทึกและโหลดชุดข้อมูลเดียวกัน ไม่ได้แชร์พื้นที่ของชื่อกับแอปอื่น ชื่อต้องไม่มีอักขระเหล่านี้: *".?:\<>|/
  • IgnoreNonexistentFile - ไม่บังคับ ค่าบูลีนที่ระบุว่าต้องทำอย่างไรหากไฟล์นั้นไม่มีอยู่ ใช้ เท็จ (ค่าเริ่มต้น) เพื่อส่งคืนข้อผิดพลาดและ จริง เพื่อระงับข้อผิดพลาด

ClearData( [ชื่อ] )

  • ชื่อ - ไม่จำเป็น ชื่อของที่เก็บข้อมูลที่บันทึกไว้ก่อนหน้านี้ด้วย SaveData ถ้า ชื่อ ไม่ได้จัดเตรียมไว้ พื้นที่เก็บข้อมูลทั้งหมดที่เกี่ยวข้องกับแอปจะถูกล้าง

ตัวอย่าง

สูตร รายละเอียด ผลลัพธ์
SaveData (LocalCache, "MyCache") บันทึกคอลเลกชัน LocalCache ไปยังอุปกรณ์ของผู้ใช้ ภายใต้ชื่อ "MyCache" เหมาะสำหรับ LoadData เพื่อดึงในภายหลัง ข้อมูลจะถูกบันทึกลงในโฮสต์แอปภายใต้ชื่อ "MyCache"
LoadData( LocalCache, "MyCache" ) โหลดคอลเลกชัน LocalCache จากอุปกรณ์ของผู้ใช้ ภายใต้ชื่อ "MyCache" ซึ่งถูกจัดเก็บไว้ก่อนหน้าด้วยการเรียกไปยัง SaveData ข้อมูลจะถูกโหลดจากในโฮสต์แอปภายใต้ชื่อ "MyCache"
ClearData( "MyCache" ) ล้างที่เก็บข้อมูลภายใต้ชื่อ "MyCache" ข้อมูลใด ๆ ที่จัดเก็บภายใต้ชื่อนี้จะไม่สามารถใช้ได้อีกต่อไป LoadData ข้อมูลจะถูกลบจากในโฮสต์แอปภายใต้ชื่อ "MyCache"
ClearData() ล้างที่เก็บข้อมูลทั้งหมดที่เกี่ยวข้องกับแอปนี้ ข้อมูลที่จัดเก็บโดยแอปอื่นจะไม่ได้รับผลกระทบ ข้อมูลทั้งหมดจะถูกลบออกจากโฮสต์ของแอป

ตัวอย่างออฟไลน์แบบง่าย

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

หมายเหตุ

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

  1. สร้างแอปพื้นที่ทำงานเปล่าด้วยเค้าโครงแท็บเล็ต สำหรับรายละเอียดเพิ่มเติม อ่าน สร้างแอปจากเทมเพลต และเลือก เค้าโครงแท็บเล็ต ภายใต้ แอปที่ว่างเปล่า

  2. เพิ่มตัวควบคุม การป้อนข้อความ และตัวควบคุม กล้อง และจัดเรียงคร่าวๆ ดังที่แสดง:

    เพิ่มตัวควบคุมการป้อนข้อความและการควบคุมกล้องในหน้าจอว่าง

  3. เพิ่ม ตัวควบคุม ปุ่ม

  4. ดับเบิลคลิกที่ตัวควบคุมปุ่ม เพื่อเปลี่ยนข้อความของปุ่มเป็น เพิ่มรายการ (หรือแก้ไขคุณสมบัติ Text)

  5. ตั้งค่าคุณสมบัติ OnSelect ของตัวควบคุมปุ่มเป็นสูตรนี้ ที่จะเพิ่มรายการในคอลเลกชันของเรา:

    Collect( MyItems, { Item: TextInput1.Text, Picture: Camera1.Photo } )
    

    เพิ่มตัวควบคุมปุ่มด้วยข้อความ

  6. เพิ่ม ตัวควบคุม ปุ่ม อีก

  7. ดับเบิลคลิกที่ตัวควบคุมปุ่ม เพื่อเปลี่ยนข้อความของปุ่มเป็น บันทึกข้อมูล (หรือแก้ไขคุณสมบัติ Text)

  8. ตั้งค่าคุณสมบัติ OnSelect ของตัวควบคุมปุ่มเป็นสูตรนี้ เพื่อที่จะบันทึกคอลเลกชันของเราไปยังอุปกรณ์ภายใน:

    SaveData( MyItems, "LocalSavedItems" )
    

    เพิ่มตัวควบคุมปุ่มด้วยข้อความ

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

  9. เพิ่ม ตัวควบคุม ปุ่ม ที่สาม

  10. ดับเบิลคลิกที่ตัวควบคุมปุ่ม เพื่อเปลี่ยนข้อความของปุ่มเป็น โหลดข้อมูล (หรือแก้ไขคุณสมบัติ Text)

  11. ตั้งค่าคุณสมบัติ OnSelect ของตัวควบคุมปุ่มเป็นสูตรนี้ เพื่อที่จะโหลดคอลเลกชันของเราจากอุปกรณ์ภายใน:

    LoadData( MyItems, "LocalSavedItems" )
    

    เพิ่มตัวควบคุมปุ่มด้วยข้อความ

  12. เพิ่มตัวควบคุม แกลเลอรี ด้วยเค้าโครงแนวตั้ง ที่มีรูปภาพและพื้นที่ข้อความ:

    การเลือกความหลากหลายของแกลเลอรี่เลือก

  13. เมื่อได้รับแจ้ง ให้เลือกคอลเล็กชัน MyItems เป็นแหล่งข้อมูล สำหรับแกลเลอรีนี้ นี้จะตั้งค่าคุณสมบัติ Items ของตัวควบคุม แกลเลอรี:

    การเลือกแกลลอรีของแหล่งข้อมูล ตัวควบคุมรูปภาพในเทมเพลตแกลเลอรีควรตั้งคุณสมบัติ Image ค่าเริ่มต้นเป็น ThisItem.Picture และตัวควบคุมป้ายชื่อควรตั้งค่าทั้งคุณสมบัติ Text ค่าเริ่มต้นเป็น ThisItem.Item ตรวจสอบสูตรเหล่านี้หากหลังจากเพิ่มรายการในขั้นตอนต่อไปนี้คุณไม่เห็นอะไรเลยในแกลเลอรี

  14. วางตำแหน่งตัวควบคุมไว้ทางด้านขวาของตัวควบคุมอื่น

    แกลเลอรี่จะเปลี่ยนตำแหน่งไปทางขวาของหน้าจอ

  15. บันทึกแอปของคุณ หากเป็นครั้งแรกที่มีการบันทึก ไม่จำเป็นต้องเผยแพร่ หากไม่ใช่ครั้งแรก ให้เผยแพร่แอปหลังจากที่คุณบันทึก

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

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

  17. ป้อนชื่อและถ่ายรูปของรายการ

  18. เลือกปุ่ม เพิ่มรายการ ทำซ้ำเพิ่มรายการสองสามครั้งเพื่อโหลดคอลเลกชันของคุณ

    แอปที่รันพร้อมกับสามรายการที่เพิ่ม

  19. เลือกปุ่ม บันทึกข้อมูล การทำเช่นนี้จะบันทึกข้อมูลในคอลเลกชันลงในอุปกรณ์ของคุณ

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

  21. เปิดใช้แอปอีกครั้ง คอลเลกชันในหน่วยความจำจะแสดงอีกครั้งว่าว่างเปล่าในแกลเลอรี่

    แอปที่รันอีกครั้งโดยไม่มีรายการที่เพิ่ม

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

    แอปที่รันด้วยสามรายการที่คืนค่าหลังจากเรียกใช้ฟังก์ชัน LoadData

  23. เลือกปุ่ม โหลดข้อมูล อีกครั้ง ข้อมูลที่เก็บไว้จะถูกผนวกเข้ากับส่วนท้ายของคอลเลกชัน และแถบเลื่อนจะปรากฏบนแกลเลอรี หากคุณต้องการแทนที่ แทนที่จะใช้ผนวก ให้ใช้ฟังก์ชัน Clear ก่อน เพื่อล้างคอลเลกชัน ก่อนเรียกฟังก์ชัน LoadData

    แอปที่รันด้วยหกรายการที่คืนค่าหลังจากเรียกใช้ฟังก์ชัน LoadData สองครั้ง

ตัวอย่างออฟไลน์ขั้นสูงเพิ่มเติม

สำหรับตัวอย่างโดยละเอียด ดูบทความใน ความสามารถออฟไลน์แบบง่าย