cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
blue_lotus
Level: Powered On

cached data, offline capabilities

Hi,

 

I have built an app to mostly work offline during the data, and then in the evening when I am connected, send the data to my Sharepoint list.

 

However i have noticed that when ii save the data in the cache, the problem is that if the app is closed and does not work in the background anymore, then the cache is emptied.

 

This makes working offline very dangerous and almost imppossible.

 

Has anyone come up with a solution to avoid this problem?

 

Thanks for your help

11 REPLIES 11
Super User
Super User

Re: cached data, offline capabilities

Could you describe what you are doing to cache the data? Are you using the SaveData function to do this?

 

I have been doing offline PowerApps development for a bit now and have a decently successful method that I would be happy to share. If you wouldn't mind describing a bit of what you are doing I think we can get you where you want to be!

blue_lotus
Level: Powered On

Re: cached data, offline capabilities

yes I am using the savedata function.

and then I used loaddata


that would be great if you could help me with that!

Super User
Super User

Re: cached data, offline capabilities

What are you using for the SaveData and LoadData portions? Could you post some of your code as well as where that code is located (i.e. in the OnStart or OnVisible properties, in the OnSelect of a button, etc.)? That will help me to work with what you have. I could just ramble about what I do but that might not be so helpful to you. Smiley Happy 

 

blue_lotus
Level: Powered On

Re: cached data, offline capabilities

ok, so I have a form in which I enter my data.

I test if I am online, if not, I Collect (offline records{,..})

then SaveData(offline_records,"offline_records_local_storage");
Navigate(screen_welcome,Transition.None))

then, on the onstart property of the screen_welcome, I have:
LoadData(offline_records,"offline_records_local_storage",false)

Super User
Super User

Re: cached data, offline capabilities

And when you close and open the app nothing is loading into the offline_records collection, yes? 

 

Your method seems like it should be working. Is there a reason you are using the false variable in your LoadData function? This will give errors if you don't have anything in the "offline_records_local_storage" cache (like when a new user opens the app for the first time). Setting this to true will ignore if there is no such cache.

 

This may not be the issue, but I noticed in your Collect example you had offline records (no underscore) and in the SaveData you have offline_records (with an underscore). You might double check to make sure those names match. If you go to View -> Collections you can view the first 5 items of your collection as well as see what collections you have.

 

A good test could be to mimic being offline, maybe by just by having a temporary button that does the Collect/SaveData part of your code. Then check the View -> Collections area to make sure the record was collected properly. Then, with another temporary button, mimic closing and loading your data by using the Clear function on your collection and then LoadData to get it back. Checking View -> Collections after this should tell you if it is working.

 

So in code form:

 

// Offline mimic button, in the OnSelect property
Collect(offline_records, {...});
SaveData(offline_records, "offline_records_local_storage")

// OnStart mimic button, again in the OnSelect property
// Note: here the false in the LoadData will help to see if something is going wrong somewhere
Clear(offline_records);
LoadData(offline_records, "offline_records_local_storage", false)

Also, it should be noted that the SaveData and LoadData functions don't work in a web browser or in the web studio, so you will need to test this on a device running the PowerApps app (Win10, iOS, Android).

 

Maybe try this and let me know what result you get? Like I said, your method seems solid so there is probably some small issue like a name being off or something like that.

blue_lotus
Level: Powered On

Re: cached data, offline capabilities

my method works but the app always has to be running in the background,

if power apps is completely closed then the cache is emptied and all my offline records are gone.

 

that's the problem

Super User
Super User

Re: cached data, offline capabilities

Yes, that is the reason for the testing I described. The SaveData function takes data and makes a locally stored version that persists after the app closes. Collections don't persist and are lost when the app is closed. If your data is being lost when the app is closed, it means it is still in a collection and not being saved or that what has been saved is not being loaded. Both of these scenarios are easier to sort out when each step is examined along the way.

 

One other thing you can do is to put a temporary data table in your app that is tied to the offline_collection, which is easier than viewing the collection with the View -> Collections method and allows you to see more than 5 entries, which is nice. But at any rate, if you aren't checking to see what is happening with each step in the process you will be hard-pressed to find the cause of the issue you are experiencing. I would recommend you start there and see what you find. Best of luck to you with figuring this out!

blue_lotus
Level: Powered On

Re: cached data, offline capabilities

Hi,

 

I created the buttons and I wrote the code, but I end up having the same problem.

 

It is working well. The data is collected and saved, it appears in the collection gallery.

 

BUT when I close Power Apps or if I turn off my phone and re-start it, then the data sitting in the cache is lost.

 

 

blue_lotus
Level: Powered On

Re: cached data, offline capabilities

I realised that also get an error message on my phone that says:
"there was insufficient memoryto dave your data; please reduce the amouht of data you are attempting to save"

It is really weird because I am only trying to save 6 fields, which are 1 date, 2 words, 3 numbers.

i don't know this can be too much?

Helpful resources

Announcements
firstImage

Microsoft Business Applications Virtual Launch Event

Join us for an in-depth look at the new innovations across Dynamics 365 and the Microsoft Power Platform.

firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

Top Kudoed Authors
Users Online
Currently online: 261 members 5,485 guests
Please welcome our newest community members: