Skip to main content

I'm facing some issues with the synchronization of FSM Mobile.

Mobile Replication from Scheduled process is activated.

I just reduced the time to make it easier to check. After solving this issue we will update it to 1 hour.

Let's analyse first the Sync rule Attribute:

The XML Poster result just to check if there is any problem with the XML:
 


Converting XML to SQL:
 

Total amount of rows from Attribute sync rule

The Mobile should receive 217.691 attributes.

After synching the Mobile database returns:

Mobile database result from Table Attribute

From server database: 217.691

From the mobile database: 200.000

Difference: 217.691-200.000 = 17.691 

 

Sync Rules concept investigation:

From the beginning, I thought by selecting Batch-Delta the system would divide the total amount of rows int packages of max_rows from XML initial query. But If I do it and limite the max_row = 50000 as the advice: 

Doing this the maximum of received amount of data became 50.000. The system was only updating the data from the INITIAL query not inserting the remaining amount. 

So for testing, I decided to remove the max_row parameter from the Sync rule.

The device received more data (200.000) but not all (217.691).

What could I do to send all data and not miss part of the rows ?

Any suggestion? Logs ? 

@RTTATOVAR,

 

did you try to change the initial query to something larger than 200k, like  ‘max_rows = 500000’ ?

 

Also, I suggest you rethink the design as syncing this amount of data will make the initialization process of mobile devices longer and will increase the database size.

 

Maybe using a relationship (like request/task/place) you can limit the data you sync to device significantly. That way device will only have the required data rather than a whole table.


Thank you ​@IniNimesK!

 

The solution max_rows = 500000 worked perfectly to resolve the issue!

 

Could you kindly elaborate on your suggestion regarding limiting synced data using relationships (e.g., request/task/place)? I’d like to understand how this approach would ensure the device only retrieves the necessary data instead of the entire table. Any example or further explanation would be greatly appreciated!


Thank you ​@IniNimesK!

 

The solution max_rows = 500000 worked perfectly to resolve the issue!

 

Could you kindly elaborate on your suggestion regarding limiting synced data using relationships (e.g., request/task/place)? I’d like to understand how this approach would ensure the device only retrieves the necessary data instead of the entire table. Any example or further explanation would be greatly appreciated!

@RTTATOVAR it depends on what you are trying to achieve with the data, for instance if you need some data for a specific task, then you can use the Task sync rule’s related query to sync the data.

 

Baseline example you can look at would be (if i remember correctly) is non_part_usage table. Using the related query in Task, it just syncs only the relevant data.


Thank you ​@IniNimesK !

I will check it.


Reply