cancel
Showing results for 
Search instead for 
Did you mean: 

MBO Cache Problem or Other ?

Former Member
0 Kudos

Hi all,

I establish connection from iOS application to SUP and SUP connects to SAP ECC via RFC. Function module is coded for getting some data from tables. Now when I consume FM from MBO I can debug FM code. First consume is succesful, everything works fine. But second time when I consume MBO from iOS App I see empty values in import values for FM. And empty data comes to my device. And the third time when I consume MBO import parameters for FM is not empty and works great. I want online data which is coming from EIS.

Any ideas?

Accepted Solutions (0)

Answers (1)

Answers (1)

D_Olderdissen
Advisor
Advisor
0 Kudos

You could create a separate Sync Group for your MBO and set the cache to "On Demand". That should cause the CDB to pull the data from the EIS whenever the device requests it.

But make sure, you understand the impact on your backend, sync times, etc. And, please check the docs about the "On Demand" function, as I am not a developer and I am not using this feature.

If you have not done so already, I highly recommend the MBO Best practice white paper. This session is also available as webcast.

http://scn.sap.com/docs/DOC-22310

Crap, the editor does not allow me to create hyper links 😞

Former Member
0 Kudos

hi,

You mean Cache Group? Because sync option is in Cache Group not in Sync Group.

D_Olderdissen
Advisor
Advisor
0 Kudos

Ups, you are right. A cache refresh on a Sync group is silly. My bad.

I wanted to express, read up to it. And keep in mind that an MBO in refresh, can not be synced. So you may want to check if partitioning the cache (user individual cache) would help you around that. For that same reason make sure you do not refresh on demand unnecessary MBO, it is a costly operation, after all.

Former Member
0 Kudos

Hi,

Ok, I created a new Cache Group and put mbo to in it and set to on demand for 90 seconds. Now when I want to sync I see a parameters filled. But I got SUPPersistenceException only for this MBO now.

Here is the server side log: http://pastebin.com/0iy2DHiH

D_Olderdissen
Advisor
Advisor
0 Kudos

Not being a developer I can not help you with that one. Make sure your new cache group obeys referential integrity during the update - naturally depends on your data model. I recommend working your way through the MBO design best practices, the implications of On-Demand are covered there as well.

Former Member
0 Kudos

Hi Dirk,

I already read doc. But no way, I couldnt achieve to get data properly. Still SUP consumes FM and gets no data in second attempt.

Former Member
0 Kudos

Could you fix this problem? We have a similar problem and can't find an answer, we are executing a web service and the first time everything works great and after that, every time we execute the web service we get the same old values.

Any ideas as to what could be happening with cache on iOS?

Former Member
0 Kudos

No. But you can try to restart server. It may help sometimes.

D_Olderdissen
Advisor
Advisor
0 Kudos

OK, I believe you are aware of the cache on demand settings - with the 90 secs you configured, all repeated syncs of this MBO inside the 90 sec time window will be served out of the cache without checking with the RFC first. After the 90 sec, the data coming from the RFC call will be sent directly to the device.

As this behavior and your cache settings should not return emtpy values, some other places will need to be researched.

ESI-Side: Have you been able to qualify, if SUP does successfully pull data from the backend? Maybe check the logs? Not that the data your RFC call returns, has all of the sudden unexpected complexities that SUP is unprepared to consume. But you should receive an error on the client as well, as SUP can not deliver the requested data.

Client Side: What exactly do you mean with "FM" - After the sync you have data in the local DB that you can pull (consume) with the ObjectAPI calls. Those calles do return empty values? If yes, maybe the data inside your MBO structure is not as you expect it so you query fails (returns empty values)?