cancel
Showing results for 
Search instead for 
Did you mean: 

Sync all data the second time

Former Member
0 Kudos

Hi, i have about 50 rows in my DB... I have auto sync.

When sync in the MI´s home i don´t receive all data, i have sync again for receive all. Why?

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

switch on REPETITIVE SYNC and if you need to be informed set the BOs to reqDirectSync=true in the MEREPMETA.xml. This should help you.

Regards,

Oliver

Former Member
0 Kudos

I have reqDirectSync=true in all syncbo and in mobileconfig i have:

MobileEngine.Sync.TimedSyncActive=true

MobileEngine.Sync.TimedSyncTimeInterval=15000

MobileEngine.Security.SynchronizationPasswordHandlingOption=local

MobileEngine.Sync.RepetitiveSyncEnabled=true

MobileEngine.Sync.TimeBetweenRepetitiveSyncs=15000

Is it good? With this, sometimes, i have sync two times.

Is it necessary: MobileEngine.Sync.MaximumNumberOfRepetitiveSyncs ???

Thanks,

Edited by: Victor Capi on Mar 27, 2008 9:52 AM

Former Member
0 Kudos

Hi Victor,

yes, the maxnumber parameter is necessary - then MI syncs several times if data is missing. Without this poarameter it does only one sync and then it tells you: data is missing.

Timebetweenrepetitivesync is necessary as well - cause you want to wait a few secs before you start the new sync - so the backend has some time to change some stats.

Regards,

Oliver

Former Member
0 Kudos

What number you recommend me in maxnumber?

If i write 5 for example, mean that sync 5 times or if before sync all dont sync 5 times?

Thanks,

Former Member
0 Kudos

I have done more tests...

1)

I have write in mobileconfig maxnumber = 10.

I write a new row in a syncbo1 and sync, but not receive all data of syncbo2...

2)

i haven´t write in mobileconfig the parameter maxnumber

I write a new row in a syncbo1 and sync, but not receive all data of syncbo2...

3)

i haven´t write in mobileconfig the parameter maxnumber

I write a new row in a syncbo1 and sync two time, and I receive all data of syncbo2.

When i write a new row, he call the method create and write the row in a table and fill other table (syncbo2).

Why have i sync two times? Can i do the same without sync two times?

Thanks,

Former Member
0 Kudos

Hi Victor,

this is the procedure of MI.

You sync the first time -

You tell MI - here you have a new item for BO1

and you ask MI

hey, is there anything new for BO1 or BO2?

The problem: at this time there is nothing new in the backend in BO1 or BO2. You get the answer for BO1, cause it is Synchronous as you said - but not for BO2 - cause there is no new value at THIS time.

In the next sync there is a new value for BO2 - that is clear.

The problem is: when you sync the first time, there is no new instance for BO2 - that is created just a milli second later

Well, you could check the sequence of the SyncBOs in MEREPMETA.XML.

Repetitive sync does only do a new sync, if one BO tells: hey, I am still waiting for an item. So the max number is only necessary, if you have a BO with a long processing time. In your case it will stop after 1 sync, cause the sync is completed.

Hope that makes it more clear!

Regards,

Oliver

Former Member
0 Kudos

I change the sequence SyncBO in XML but not work...

Are there other way? With cascade solve the problem?

Thanks,

Former Member
0 Kudos

Hi,

no - the first thing is the problem:

At time of request there is no new instance of SyncBO B available. The update of A happens after the request...... So a second sync is necessary as I said previously. This is deep inside MI handling and can not really be influenced by you

But: why do you change BO A and this has effect on BO B? That is unusual.... perhaps it is a better idea to check your design and work with one BO only.

Regards,

Oliver

Edited by: Oliver Kaluscha on Apr 3, 2008 12:38 PM

Former Member
0 Kudos

I insert in SyncBO A the header... so, in SyncBO B insert the positions... What could be the solution?

Thanks,

Former Member
0 Kudos

Well, if header and poisition belong to gether - have a syncBO with child items?

Why not store everything in BO A?

Top Struture

ITEM010 with a few instances for the position?

Former Member
0 Kudos

I have a Syncbo for header and other syncbo for positions...

Regards,

Former Member
0 Kudos

Hi Victor,

Could you please elaborate your Design.

You Can either use one SyncBo with getlist and Get detail FM to get the related data in one synchronization.OR you can define the cascade relation between your SyncBo's.But you should define the parent child relation ship.Please refer to Cascade blog given in Mobile Blogs or give the breif description of what you are trying to do..

Thanks

Regards

Devendra Kumar Phate

Former Member
0 Kudos

My principal problem in getdetail is that i can´t receive details from varios header...

Thanks,

Former Member
0 Kudos

Hi Victor,

Then You should try to use cascade relationship.It wil help younto download the child data along with Parent..wheneven you make any change in the related syncbo data.Data will get downloaded.

Thanks

Regards

Devendra

Former Member
0 Kudos

Hi Victor,

ah - you told it here - one BO for header - one BO for information.....

Put these together on one SyncBO.

Have you ever worked with BOs that have items????

You can have:

TOP: ODERNUMBER, ORDERNAME,STARTDATE, ENDDTE,........

ITEM01: CLIENTs

ITEM02: PARTS

ITEM03: TIMEs

....

Each item can have several instances, so you can have several clients for one order. This is ONE SyncBO - and your problem is solved.

Cascade does not really help you here, cause ... well, at the end it is the same thing. To solve your issue with cascade you have to create items......

Hope that helps!

Oh - it is an ABAP task first - so talk to the backend developer - it is nothing you start on the client

Regards,

Oliver

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi, I have the same problem

When entering a time confirmation on the device it go's to R3 on first sync but message on the device after sync is "Data is Incomplete" but its not. the time is in R3 and still on device and you have to carry out another sync. This sometimes stops the order number being transferred back to the device if creating a new order also. we have increased the mobileengine.sync.timebetweenrepetitivesyncs=45000 to 90000 and the increased the

mobileengine.sync.maximumunumberofrepetitivesyncs=6

But still "Data is incomplete"

Our syncBOID MAM25_001 Order/Oper is S01

our syncBOID MAM25_005 Time Conf is U01

SAP do not recommend to change syncBOID MAM25_005 to S01

Any advice appreciated

Thanks

Steve

Former Member
0 Kudos

Hi,

I guess your situation is a little different from Victors. It seems you have switched on Repetitive sync but the max number of syncs is not recognized. Could you chack in the LOG on the device how many syncs you really process (set the log level to all on the device). This should explain your behaviour in my understanding! xMAM has a very detailed and good designed dataset - so there is most likely no need to adapt it.

Regards,

Oliver

Former Member
0 Kudos

But... GETDETAIL is only for one header... Can i do the GETDETAIL for different headers o i have to return all from GETDETAIL and filter in the app?

Thanks,

Former Member
0 Kudos

Hi Victor,

One getdetail is for one syncbo ... but for that syncBO you have a getlist and this getlis contains all keys of that bo....So you get all relevant items for that BO in one shot - but MI has a limitation if it comes to the download of data to the device. If the amount of data gets to big it just sends what it has and delivers a message: data missing.... so repetitive sends starts the sync again. To avoid that it runs forever, we have the maxnumberofrepetitivesyncs - so you say: after 5 syncs inform the user and if he wants he can sync again - and again - and again..... If you do not want that - set the max number of repetitive syncs to 10000. But I would not do that

Regards,

Oliver