Yes this could have an impact on system performance. The sync process on the server will run 24 hours per day for all users/devices that are active - regardless of if the device has connected recently or not.
From the list of entities you propose to change here I would question the logic. These are Push & Batch sync’d entities so the data should be being pushed in almost real time out to the devices via the Push process. The reason we sync these entities on a Batch basis is to catch any data/configuration changes that might have exposed additional data to the end user that wasn’t picked up via the Push process.
Example 1, Transfer a WO on site A to mobile user A - user has access to site A. This will happen via the Push process, the nightly Batch sync will not result in any data changes as everything is handled via the Push process.
Example 2, Transfer a WO on site B to mobile user A - user doesn’t have access to site B. The push process will not kick-in in this scenario as the user doesn’t have access to the WO. Now grant access to site B to mobile user A. Again the push process will not kick-in as no data changes have occurred on the WO. The nightly Batch sync will result in sending the WO data to the mobile user as the WO on site B is now visible to mobile user A.
You can read more about the Sync Rules here: Synchronization Rules (ifs.com) and Mobile Framework Synchronization Guide (ifs.com)
As for primary keys, the mobile FW manages this with transferring client/server keys within the transactions. This is required as the MWO apps are offline capable so cannot generate server keys when creating new records.
Cheers
James
Thanks for answer, James!
I've already read all the information about the Sync Rules from appropriate Help pages.
As for the question logic I can mention the situation with client temporary/server generated keys issues while creation of Work Task from mobile.
Creating the Task from mobile, we have the temporary client keys (for Work Order, Work Task and so on).
Then, client sends all the information about newly created Task to server and gets back the server generated keys putting the received data to the CLIENT_KEYS_MAP table.
But local mobile client Work Order and Work Task tables are not updated with server keys staying with temporary ones.
And data rows for created and sent Task from these tables also not deleted.
Refresh of this information occurs only after Batch sync, which triggers once a day at night.
So, if we send this Task back to this user/device before Batch sync and start working with it, we have all the transactions using client temporary keys instead of server keys.
Furthermore, it gives us the issues with failed transactions when system cannot find the right mapping with server keys (for example, like "Work Assignment doesn't exists...”).
We would like to avoid situations with failed transactions and resend operations with them.
And here, as the possible solution we see changes in data exchange schedules, minimizing the sync interval.
Also, the reasonable question about the primary keys update.
Does system delete the data about created and sent Task from mobile client only after the Batch sync?
And is the Push process not involved in this operation?
Thanks again!
BR,
DANMI
This sound more like a bug to me with referenced keys. Could you raise this as a ticket please so it can be investigated further? When the WO records are removed the corresponding temp keys should also be removed so on re-transferring it should appear in the app with the real keys the second time.
Cheers
James