cancel
Showing results for 
Search instead for 
Did you mean: 

Agentry transmit clears client data during app update

former_member231132
Participant
0 Kudos

I'm writing an Agentry app which has a user requirement to retain certain data on the client when a transmit is performed.  This data must be specifically marked as 'ready to transmit' by the user before it can be sent to the backend, and if it hasn't been designated as such then it should be retained.

Is there a way to work around the way that Agentry clears a module's client data during a transmit when an app update is performed?

Thank you

Tim Sheppard

Accepted Solutions (1)

Accepted Solutions (1)

kevin_hu
Active Participant
0 Kudos

also check this thread see if it is helpful.

https://scn.sap.com/thread/3773368

Answers (1)

Answers (1)

Former Member
0 Kudos

The module's data is only cleared if an updated to the application has been done.  There is a way to clear a just a collection on a transmit. Check your fetch options to make sure the "Clear Collection" isn't checked.

former_member231132
Participant
0 Kudos

Thanks for the quick reply.  I have some collections that are created after data is fetched from the backend.  These are also getting cleared out when an app update is received so I'm not sure the Clear Collection setting would help me.

I'm currently running in development mode.  In dev it seems that any change at all I make to the module (even changing just one character on a label on a screen) will clear all client data in that module.  I've read a few other posts on SCN that indicate that this behavior is a little different when running in production.  Can you point me to a good document that describes the differences between dev and prod when it comes to deleting client data during an app update?

Thanks

Tim Sheppard

Former Member
0 Kudos

Yes when you change anything in a module that whole module will update, or if update a gobal that is used in that module, it will also update it.

As when you go production you shouldn't be publishing version all that often, so this won't be clearing the data.

The reason different on how publishing in production works then development, is if the transactions should be sent before or after the update see:  http://help.sap.com/saphelp_smp303sdk/helpdata/en/7c/1a300370061014b70aff251250df86/content.htm

former_member231132
Participant
0 Kudos

Thanks for the link that's helpful.  This is my first Agentry app so what I'm saying may not be standard practice, but I don't think I'll be using transactions to send data to the backend.  My backend system is proprietary and needs to be updated via an odata web service call.  So my plan is, each time the user performs a transmit I'll search the client for data the user has marked 'ready to transmit' and then pass that data to the odata service.  Client data that hasn't been marked as ready to transmit would need to be retained (even if the transmit performs an app update).  The app update potentially deleting my client data is where my pain point is.  Even though, as you stated, new prod releases won't be frequent, I can still see a scenario where a new prod release will delete my users' client data.

Thanks

Tim Sheppard

mark_pe
Active Contributor
0 Kudos

Tim,

You said: I have some collections that are created after data is fetched from the backend.  These are also getting cleared out when an app update is received so I'm not sure the Clear Collection setting would help me.

We agree with Steve in some way above. The Editor has an option to clear the collection before transmit. This is why Steve is saying to check it.

You said: "but I don't think I'll be using transactions to send data to the backend.  My backend system is proprietary and needs to be updated via an odata web service call.  "

SAP says:

In Agentry Design all updates to the backend is called "Transaction" this can be in SQL, JAVA, HTTPXML or others.  All depends on your interface.

You said: "each time the user performs a transmit I'll search the client for data the user has marked 'ready to transmit' and then pass that data to the odata service. "

SAP says:

In Agentry Design, you can control the way a transmit works.  You can define transmit steps in accordance to your logic.  You may have Agentry rules that will fire or not depending on how you want the transmit to work.

You said: "The app update potentially deleting my client data is where my pain point is."

SAP says:  In deploying an app to a server, the system will automatically try to update the mobile device based on your publishing technique (as stated by Steve above).  If you choose Major publish, the system will do the transaction first before updating the software, choosing minor/modification will update software before processing transaction (At this point you may have cleared your data).  Or if you have clear collection option turned on before transmit, then your data is cleared no matter what.

So hopefully with your new knowledge you can study Agentry design to help you with customization.

Best Regards,

SAP Mobile Support Team.

former_member231132
Participant
0 Kudos

Thanks for the quick reply.  The reason I don't think the Clear Collection setting will help is because it only applies to the collection that is directly receiving the fetched data.  I also have collections that contain data that weren't  directly involved in the fetch (these collections get populated after the fetch is complete).  These are the ones I'm concerned about getting cleared during an app update.

I'll have to look further into using the transaction server update steps to send data to the backend.  Based on what you stated I might be able to use those if they support odata web services.

Thanks

Tim Sheppard

bill_froelich
Product and Topic Expert
Product and Topic Expert
0 Kudos

In development mode when updated definitions are received the client clears all objects and reloads them.  My understand of this in production is that it does not do this unless the object is modified.  Certainly easy enough to test and confirm.


With your current design, how are you planning to call the oData service now to process the data?

In case you didn't know, Agentry did add support oData as a backend connection type so I would think that you could use the Agentry transactions to simply use oData steps to process the events.  Unless you are trying to bundle data together it would seem to be the logical next step.  If you are trying to bundle I would still use Agentry transactions to generate the data and process with the oData steps.

--Bill

former_member231132
Participant
0 Kudos

Thanks that gives me a little more hope that I won't have as many issues as I thought.  If a prod environment app update only removes client objects that have been modified that will be a good thing.  I'll  be able to test that out pretty soon.

And based on your comments  I'm now more hopeful that I'll be able to use transaction update steps to send data to the backend.

Thanks

Tim Sheppard