1 person found this helpful
To push updates to the client I would use messaging, and would use remoting to push updates from the client to the server.
I would also look at our new LCDS SAP connector, it should dramatically streamline your development.
Finally, our recently pusblished article should of interest to you : http://www.adobe.com/devnet/flex/articles/project-hendrix.html.
You'll have there a glimpse at the architecture of one of our past project where sap lcds and flex were involved.
Thanks already for the useful information.
The architecture I would like to use looks partially like the link you gave of project Hendrix. I am also using SAP JCO for connecting the LCDS server application to the SAP backend.
You are suggesting to use messaging for pushing updates to the client. On the internet I found a examples that implement a custom service adaptor that pushes on certain intervals data to all its subscribed clients.
In those examples I saw that there was always a thread waiting for a certain amount of time before pushing again an update to the registered clients.
However, how can I determine on the LCDS middleware when such a new push needs to be done ? Is there a way to sent from the SAP backend an event that data has been changed in SAP and needs to be read again from SAP ?
Or is it maybe advisable to program on the LCDS Java middleware to select all the data in SAP on certain intervals (for instance 1 minute) and push it to the subscribed clients ?
=> How did you manage that in the Hendrix application suite ? The JCO query is invoked from the middleware to the SAP backend, and does not know when something is changed in the backend. I am missing something ?
Btw, I already saw some video about the SAP Connector on the tv.adobe.com website... I can't wait until this comes available.
ADEP (just reeleased) actually has the Data Services and SAP Connector that Francois mentions. It can make building SAP-backed RIA's very easy (see brief demo here:
The Connector is actually sophisticated model-driven Java JCO code generation and by default creates Remoting endpoints for SAP RFM's, does all the marshalling of types, etc, and allows you to very quickly build SAP-backed Flex, AIR and AIR Mobile apps.
You can also use the code generated by the SAP Connector facility to create your own Data Management assemblers if you like. And of course, with Data Management, you get paging, client-client sync, etc. ANd there is a server-side Java API called DataServiceTransaction() that allows your to notify any connected clients that data has changed and Data Services will push the updates to them directly.
Or, depending on the nature of your updates, you could use the default Remoting destinations, but setup a separate Messaging channel that each client subscribes to for important ABAP events, and have the client simply refresh it's SAP data it got from the generated Remoting destination when notified of some event.
Check Chapter 9 of the ADEP Developers Guide for more details here:
Hope that helps!
Hi François & Damon,
I understand know what you mean with your "messaging" suggestions. Problem was I did not know that we can use JCO in both ways, also to notify the LCDS middleware (Java) from the SAP ERP Backend.