SaveData, LoadData ve ClearData işlevleri

Şunlar için geçerlidir: Tuval uygulamaları

Uygulama ana bilgisayarının depolama alanından bir koleksiyonu kaydeder ve yeniden yükler.

Not

Bu işlevler artık bir web tarayıcısında bir uygulama yürütülürken deneysel özellik olarak kullanılabilir. Bu özellik varsayılan olarak devre dışıdır. Etkinleştirmek için Ayarlar>Yakında kullanıma sunulacak özellikler>Deneysel>Web oynatıcısında SaveData, LoadData, ClearData işlevlerini etkinleştirin bölümüne gidin ve anahtarı açın. Bu deneysel özellikle ilgili geri bildirim göndermek için Power Apps topluluk forumuna gidin.

Açıklama

SaveData işlevi, bir koleksiyonu daha sonra kullanılmak üzere belirtilen adla kaydeder.

LoadData işlevi, daha önceden SaveData işleviyle kaydedilmiş olan bir koleksiyonu ada göre yeniden yükler. Bu işlevi, başka bir kaynaktan koleksiyon yüklemek için kullanamazsınız.

ClearData işlevi, belirli bir ada sahip depolama alanını temizler veya ad sağlanmamışsa uygulamayla ilişkilendirilmiş tüm depolama alanlarını temizler.

Not

  • SaveData, LoadData ve ClearDataarasında paylaşılan ad bir dosya adı değil, anahtardır. Adlar, her uygulama için benzersiz olduğundan ve ad çakışması tehlikesi bulunmadığından karmaşık olması gerekmez. Ad, şu karakterlerden hiçbirini içermemelidir: *".?:\<>|/.
  • SaveData işlevi, Teams üzerinde ve bir web tarayıcısında çalışan Power Apps için 1 MB veriyle sınırlıdır. Bir mobil oynatıcıda çalışan Power Apps için sabit bir sınır yoktur ancak aşağıda açıklanan pratik sınırlandırmalar bulunur.
  • Gizli verileri webde depolamak için SaveData kullanmayın, çünkü düz metin olarak depolanır.

Uygulama başlatma performansını aşağıdaki yollarla iyileştirmek için bu işlevleri kullanın:

  • İlk çalıştırmada App.OnStart formülündeki verileri önbelleğe alarak.
  • Sonraki çalıştırmalarda, yerel önbelleği yeniden yükleyerek.

Bu işlevleri, uygulamanıza basit çevrimdışı özellikler eklemek için de kullanabilirsiniz.

Aşağıdaki durumlarda, bu işlevleri tarayıcıda kullanamazsınız:

  • Uygulamayı Power Apps Studio uygulamasında yazma.

Uygulamanızı, test etmek için bir iPhone veya Android cihazındaki Power Apps Mobile'da çalıştırın.

Bu işlevler, bellek içi koleksiyonda çalıştıklarından kullanılabilir uygulama belleği miktarıyla sınırlıdır. Kullanılabilir bellek, aşağıdaki gibi faktörlere göre değişebilir:

  • Cihaz ve işletim sistemi.
  • Power Apps oynatıcısının kullandığı bellek.
  • Uygulamanın, ekranlar ve denetimler ile olan karmaşık yapısı.

Uygulamanızı; büyük miktarda veri depolarken çalışmasını beklediğiniz cihaz türlerinde, beklenen senaryolarla test edin. Genel olarak, 30 MB ile 70 MB arasında kullanılabilir bellek olmasını bekleyin.

Bu işlevler, koleksiyonun Collect veya ClearCollect ile dolaylı olarak tanımlanmasına bağlıdır. Verileri tanımlamak için koleksiyona veri yükleyerek Collect veya ClearCollect işlevlerini çağırmanız gerekmez. Bu, önceki SaveData işlevinden sonra LoadData işlevi kullanılırken yaygın görülen bir durumdur. Koleksiyonun yapısını dolaylı olarak tanımlamak için bu işlevlerin bir formülde bulunması yeterli olacaktır. Daha fazla bilgi edinmek için bkz. değişken oluşturma ve kaldırma.

Yüklenen veriler koleksiyona eklenir. Boş bir koleksiyonla başlamak istiyorsanız LoadData'yı çağırmadan önce Clear işlevini kullanın.

Veri güvenliği

SaveData ile depolanan verilerin yalıtım ve şifreleme işlemlerini dikkatle inceleyin ve özellikle cihazlar birden çok kullanıcı tarafından paylaşılıyorsa bu işlemlerin gereksinimlerinize uygun olup olmadığına karar verin.

SaveData ile depolanan veriler Power Apps yürütücüleri tarafından diğer Power Apps uygulamalarından yalıtılır. Veriler, uygulamanın Uygulama Kimliğine göre depolanır ve SaveData ad alanı Power Apps uygulamaları arasında otomatik olarak yalıtılır.

İşletim sistemi ve tarayıcı, verileri Power Apps ile bir cihazdaki diğer uygulamalar ve web siteleri arasında yalıtmaktan sorumludur. Örneğin, Microsoft Outlook'ta depolanan verileri Power Apps'te depolanan verilerden ve bu verileri Bing.com veya PowerApps.com gibi web sitelerinden yalıtmak da işletim sisteminin sorumluluğundadır. İşletim sisteminin yerleşik uygulama korumalı alan özellikleri, genellikle kullanıcı tarafından erişilemeyen veya gizlenemeyen SaveData depolaması için kullanılır.

Aynı uygulama kullanılırken işletim sistemi ve tarayıcı, farklı işletim sistemi düzeyindeki kullanıcılar arasındaki verilerin yalıtılmasından da sorumludur. Örneğin, iki farklı kullanıcı bir bilgisayarı paylaşıyorsa ve iki farklı Windows oturum açma kimlik bilgisi kullanıyorsa işletim sistemi iki Windows kullanıcısı arasındaki verileri yalıtmaktan sorumludur.

İşletim sistemi kullanıcısı aynıysa veriler farklı Power Apps kullanıcıları arasında yalıtabilir ya da yalıtılmayabilir. Her Power Apps yürütücüsü aynı şekilde davranmaz. Örneğin, Power Apps yürütücüsünde aynı Windows kullanıcısı olarak oturum açıldığında kullanıcı, Power Apps oturumunu kapatır ve farklı bir Power Apps kullanıcısı olarak oturum açar. Power Apps kullanıcısı değiştirilmeden önce bir uygulamada depolanan verilere aynı uygulama içindeki ikinci Power Apps kullanıcısı tarafından erişilebilir. Ayrıca veriler kaldırılabilir ve ilk Power Apps kullanıcısı artık bu verilere erişemeyebilir. Bu davranışlar Power Apps yürütücüleri arasında değişiklik gösterir.

Ayrıca işletim sistemi, verileri şifreleyebilir veya Microsoft Intune gibi bir mobil cihaz yönetim aracı kullanabilirsiniz. Web tarayıcısında bir uygulama yürütülürken depolanan veriler şifrelenmez.

Sözdizimi

SaveData( Koleksiyon, Ad )
LoadData( Koleksiyon, Ad [, IgnoreNonexistentFile ])

  • Koleksiyon: Gerekli. Depolanacak veya yüklenecek koleksiyon.
  • Ad - Gerekli. Depolama alanının adı. Aynı veri kümesini kaydetmek ve yüklemek için adın aynı olması gerekir. Ad alanı diğer uygulamalarla paylaşılmaz. Adlar, şu karakterlerden hiçbirini içermemelidir: *".?:\<>|/.
  • IgnoreNonexistentFile - İsteğe bağlı. Dosya önceden yoksa ne yapılacağını gösteren bir Boole değeri. Hata döndürmek için yanlış (varsayılan) ve hatayı bastırmak için doğru kullanın.

ClearData( [Ad] )

  • Ad: İsteğe Bağlı. Daha önce SaveData ile kaydedilen depolama alanının adı. Ad sağlanmamışsa, uygulamayla ilişkilendirilmiş tüm depolama temizlenir.

Örnekler

Formül Açıklama Sonuç
SaveData( LocalCache, "MyCache" ) LocalCache koleksiyonunu, daha sonra LoadData işleviyle çağırmaya uygun olarak, "MyCache" adıyla kullanıcının cihazına kaydedin. Veriler uygulama ana bilgisayarına "MyCache" adıyla kaydedilir.
LoadData( LocalCache, "MyCache" ) Daha önce kullanıcının cihazında, SaveData işlevi ile saklanan "MyCache" adlı LocalCache koleksiyonunu yükler. Veriler uygulama ana bilgisayarından "MyCache" adıyla yüklenir.
ClearData( "MyCache" ) "MyCache" adındaki depolama alanını temizler. Bu ad altında depolanan verilere artık LoadData aracılığıyla erişilemez. Veriler uygulama ana bilgisayarından "MyCache" adıyla kaldırılır.
ClearData() Bu uygulamayla ilişkilendirilmiş tüm depolama alanını temizleyin. Diğer uygulamalar tarafından depolanan veriler etkilenmez. Tüm veriler uygulama ana bilgisayarından kaldırılır.

Basit çevrimdışı örnek

Aşağıdaki basit örnek, çevrimdışıyken günlük öğelerin adlarını ve resimlerini yakalar ve saklar. Daha sonra kullanmak üzere, bilgileri cihazın yerel deposunda saklar. Bu, uygulamanın kapatılmasına veya cihazın veri kaybetmeden yeniden başlatılmasına olanak tanır.

Not

Bu örnek, görüntüleri yakalamak için bir camera denetimi kullanır. Teams üzerinde veya bir web tarayıcısında yürütülen SaveData işlevi 1 MB veri ile sınırlı olduğundan bu örnek birkaç resimden fazlasıyla çalışmaz. Ayrıca kullanılan kamera özelliklerine bağlı olarak tek bir görüntüyle bile çalışmayabilir. Bu eksiksiz örnek üzerinde çalışmak için bir cihaz kullanın veya Teams uygulamasında ya da bir web tarayıcısında çalışmak üzere bu örneğin camera denetimini ve fotoğraf bölümünü kaldırın.

  1. Tablet düzeniyle boş bir tuval uygulaması oluşturun. Daha fazla bilgi için şablondan uygulama oluşturma bölümünü okuyun ve Boş uygulama altında Tablet düzeni'ni seçin.

  2. Text input denetimi ve Camera denetimi ekleyin ve gösterildiği gibi kabaca düzenleyin:

    Boş bir ekrana text input ve camera denetimi eklendi.

  3. Button denetimi ekleyin.

  4. Düğme metnini Öğe Ekle olarak değiştirmek için button denetimine çift tıklayın (veya Text özelliğini değiştirin).

  5. Button denetiminin OnSelect özelliğini, koleksiyonumuza bir öğe ekleyecek olan bu formüle ayarlayın:

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

  6. Başka bir Button denetimi ekleyin.

  7. Düğme metnini Veri Kaydet olarak değiştirmek için button denetimine çift tıklayın (veya Text özelliğini değiştirin).

  8. Koleksiyonumuzu yerel cihaza kaydetmek için button denetiminin OnSelect özelliğini bu formüle ayarlayın:

    SaveData( MyItems, "LocalSavedItems" )
    

    Hiçbir şeyi etkilemediği için düğmeyi test etmek faydalıdır. Ancak bir web tarayıcısında yazarken yalnızca bir hata görürsünüz. Bu formülü test etmek için sonraki adımları uygulamadan önce uygulamayı kaydedin ve bir cihazda açın:

  9. Üçüncü bir Button denetimi ekleyin.

  10. Düğme metnini Veri Yükle olarak değiştirmek için button denetimine çift tıklayın (veya Text özelliğini değiştirin).

  11. Koleksiyonumuzu yerel cihazdan yüklemek için button denetiminin OnSelect özelliğini bu formüle ayarlayın:

    LoadData( MyItems, "LocalSavedItems" )
    

  12. Resim ve metin alanları içeren bir Dikey düzen ile Gallery denetimi ekleyin:

    Galeri çeşidi seçimi, görüntü ve metin alanlarıyla

  13. İstendiğinde, bu galeri için veri kaynağı olarak MyItems koleksiyonunu seçin. Bu, Gallery denetiminin Items özelliğini ayarlayacaktır:

    Veri kaynağı galeri seçimi. Galeri şablonundaki resim denetimi, Image özelliğini varsayılan olarak ThisItem.Picture değeri ile ayarlamalıdır ve label denetimlerinin ikisi de varsayılan olarak Text özelliklerini ThisItem.Item değeri ile ayarlamalıdır. Takip eden adımlarda öğe ekledikten sonra galeri içinde herhangi bir şey görmüyorsanız bu formülleri kontrol edin.

  14. Denetimi, diğer denetimlerin sağına yerleştirin:

    Galeri, ekranın sağında yeniden konumlandırıldı.

  15. Uygulamanızı kaydedin. İlk kez kaydedildiyse yayımlamanız gerekmez. İlk kez değilse kaydettikten sonra uygulamayı yayımlayın.

  16. Uygulamanızı telefon veya tablet gibi bir cihazda açın. SaveData ve LoadData Studio'da veya web tarayıcısında kullanılamaz. Uygulamanızı hemen görmüyorsanız uygulama listenizi yenileyin, uygulamanın cihazınızda görünmesi birkaç saniye sürebilir. Hesabınızda, oturumunuzu kapatıp tekrar açmak da yardımcı olabilir.

    Öğe eklenmemiş olarak çalışan uygulama. Uygulamanız indirildikten sonra ağ bağlantısını kesebilir ve uygulamayı çevrimdışı çalıştırabilirsiniz.

  17. Ad girin ve bir öğenin fotoğrafını çekin.

  18. Öğe Ekle düğmesini seçin. Koleksiyonunuzu yüklemek için birkaç kez öğe eklemeyi yineleyin.

    Eklenen üç öğeyle çalışan uygulama.

  19. Veri Kaydet düğmesini seçin. Bu, koleksiyonunuzdaki verileri yerel cihazınıza kaydeder.

  20. Uygulamayı kapatın. Bellekteki koleksiyonunuz, tüm öğe adları ve resimler dahil olmak üzere kaybolacak ancak yine de cihazın depolama alanında yer alacaktır.

  21. Uygulamayı tekrar başlatın. Bellekteki koleksiyon, yine galeride boş olarak görünür.

    Hiçbir öğe eklenmeden uygulama yeniden çalışıyor.

  22. Veri Yükle düğmesini seçin. Koleksiyon, cihazınızda depolanan veriler ile yeniden doldurulur ve öğeleriniz tekrar galeride yer alır. Bu düğme LoadData işlevini çağırmadan önce koleksiyon boştu; verileri depolama alanından yüklemeden önce Collect veya ClearCollect işlevini çağırmanız gerekmez.

    LoadData işlevi çağrıldıktan sonra geri yüklenen üç öğeyle çalışan uygulama.

  23. Veri Yükle düğmesini tekrar seçin. Depolanan veriler, koleksiyonun sonuna eklenir ve galeride bir kaydırma çubuğu görünür. Eklemek yerine değiştirmek isterseniz LoadData işlevini çağırmadan önce koleksiyonu temizlemek için önce Clear işlevini kullanın.

    LoadData işlevi iki kez çağrıldıktan geri yüklenen altı öğeyle çalışan uygulama.

Daha gelişmiş çevrimdışı örnek

Ayrıntılı bir örnek için basit çevrimdışı özellikler hakkındaki makaleye bakın.