One of our clients wants to be able to use Perspective for manual data entry where there may be spotty or no connection intermittently on their mobile devices, and thus we need some way to store changes the user makes until the connection returns and is stable and then forward these changes to the database. (Edited for clarity)
Is this sort of functionality possible in any Perspective versions at the moment? I found an old thread from 2018 about how this was planned functionality, but couldn’t find much else about offline support in the docs or elsewhere in the forums.
Have ignition edge on a server at their location and it will store and forward the data. I’m not sure on the limitations of edge I.e if it can sync a project or if it will need its own project.
The offline support originally mentioned has not yet been implemented (we’ve seen less demand than anticipated) but as far as I know is still planned.
EDIT: Although a colleague pointed out - there is actually already offline collection (and eventual synchronization) of device-specific data like GPS, accelerometer, barcodes, etc.
EDIT: Although a colleague pointed out - there is actually already offline collection (and eventual synchronization) of device-specific data like GPS, accelerometer, barcodes, etc.
Care to expand on that, please? I can see that if a user is already logged in and on the actual view needed and then there is a loss of connectivity, barcode scanning is possible, and on reconnection, the last code is sent to the gateway. It's quite limited, is there a likelihood of improvements in the near future?
we’ve seen less demand than anticipated
I can't speak for others but if Ignition doesn't support it when a customer asks for it and we can't make a module, then I tend to go elsewhere rather than ask for it from IA, just to keep the customer happy (fortunately it doesn't happen often).
No near future improvements I'm aware of. The original idea of offline support is still planned, to my knowledge, but I'm not actively involved in Perspective development, so I can't offer any insight into timelines.
Unfortunately that sounds offline support is not going to be realized soon. We would also need this functionalty of offline (manual) data entries with a subsequent update if connected again! Just to let you know
I'd like to also push for this functionality to be added. There are many instances that our crews work in less than ideal signal areas and we'd like to be able to distribute work when they have signal, they do work and collect and cache event and form data that can be pushed to the gateway when signal is re-established and new work can be collected.
Hello,
do you have any updates for offline mode support?
We would like to cover scenarios when we lose wifi connection for a short period of time and push data later to the server.
Thank you
If you haven't already, I would suggest upvoting this on the ideas site:
I am unsure if additional votes on already planned features play into how quickly they get completed, but it can't hurt to let them know more people want it
I upvoted the planned feature for Offline Support. We are eagerly awaiting this feature. As of now, when trying to use perspective on mobile devices there are problems in connectivity that make it unusable at times. We put many hours into building a project to monitor systems in the field, and now we can only partially use it because it doesn't work offline or whenever it loses connection with the Gateway.
To echo @pturmel , the planned offline functionality of Perspective is focused primarily on data entry. Project Designers would be able to utilize a new Form component in conjunction with the Native Application available for mobile devices to allow for users to enter data (or many instances of data) while not connected to the Gateway, and then upload all stored data when a connection can be re-established.
If your concern has anything to do with monitoring values at a site where there is questionable or no connection to the Gateway, I am sorry to say there is no way around that; realtime updating of values requires a way to communicate that data.
@cmallonee Right now I have a custom form/page designed for a user to input data (and the page has features to hide fields or highlight fields based on conditions). Using the new Form in the planned upgrade, would I be able to enter the data I collect from the user on my custom page to the Form and save it to sync with the gateway when we get connection again? And monitor the status of what forms/info is waiting to sync or has been synced?
I understand that when there's no gateway connection we won't have live data. By monitoring, I meant general keeping track of data in the field, which we save to a database when the user submits the form. Knowing that when there's no connection, we want to still fill out the forms offline, save them, and sync them with the gateway later when we get connection back.
This part likely won't work if driven by bindings. (Bindings run on the gateway--comms required.) If you do it entirely with CSS and/or injected JS, it probably will work.
That sounds like something that requires comms.
Save them where? Expect to have to keep the app open, so they can be held in memory.
I suppose the function and use will be more clear once the feature is built and available.
If an offline form is filled out, how do we know if it's been submitted/synced with the gateway or not? If there are forms not submitted yet, then we'd want to know so that we don't close the app or sign out and lose the data.
When gateway connection is lost, is it possible to maintain any information last read when there was a gateway connection? For instance if I have a list of products, which I get from a sql database table through the gateway, if I lose connection can I store that list of products locally somehow so I can still view my last reading of it? It obviously wouldn't be up to date then with live changes, but it would be whatever it was when I last had the connection.
Existing forms you have built would have to be re-built using the actual Form component we introduce. This component will allow for specifying form structure (which fields are visible or not) as dependent on values in other fields. It will NOT allow for modifying form structure based on anything outside of the form itself. If you think the word "binding" in regard to the Form component, your approach will not work because the GATEWAY you are not connected to is what is executing those bindings.
Yes. This is the exact use case we're looking to encapsulate with the new component.
Yep. This is what the Form component will allow. HOWEVER, you MUST have opted into the offline mode for the project within the native app and downloaded the relevant resources BEFORE you head out into the field where you could lose connection.
You will be able to do this in the native app, but not in the Perspective Session or Form component itself. By viewing the project configuration in the native app you will see that there are records waiting to be synchronized (uploaded when connection is re-established). There is some question about how much information we provide for each of these "records", as in I can't tell you for sure if you would be able to see the data in the record or if you'd just see that there is a record from ProjectX which was entered on XX/XX/XXXX.
The native app will not need to be kept open - we can store this information on the device itself. Any upload of records would not happen until the native app is re-opened.