Skip to main content


Hi Experts,

The synchronization rules contains the Entity for related to specific application and version. For an example if we take ServiceEngApp, 1.7. Each entity has a default delivery method and will select a batch entity "MobileClientSecurity".

 

Sync Rules

 

For the above entity the default schedule is that it will sync for every 30 minutes interval.
 

The Batch schedule for the ServiceEngApp 1.7 is every 15 minutes.
 

Batch Schedule

Lets Imagine that the batch schedule ran at 12:00 (Batch-1) and MobileClientSecurity entity has been synced in this batch schedule. The next schedule will run on 12:15 (Batch-2). But during Batch-2 the MobileClientSecurity entity should not sync as its default interval is 30 mins. When the Batch-3 runs (at 12:30) then the delta of MobileClientSecurity will be synced.

The question I am having is that, how will the application will track that only some specific batch entities should be synced when it is executed ?( In above example, Batch-1 and Batch-3 will sync the delta of the specified entity but Batch-2 will not sync  the delta of the specified entity)  

Best Regards,
Atheeq

When the Batch job for the app executes, it looks for all batch entities which has data collected and ready to be sent to mobile. So in your example, when the Batch-1 runs, MobileClientSecurity might have data collected as per its sync schedule so those will be picked by the batch job. When the Batch-2 runs, entity will not have any data collected as per sync schedule so batch job has nothing to pick from it. 

Under the “Synchronized entities” tab on mobile user details, you can see the entities’ last synced time and the predicted next sync time per user/app/device. 

Tagging @kathlk for further clarifications/corrections


Hi @skullk 

Thanks for the reply. Still I want to clarify how can we know the delta data collected for the

MobileClientSecurity ? Can we see those records through any tab in the application or is there any specific database table in which these delta has been stored?

I have one more clarification, whether there will be any background jobs created for the default schedule of MobileClientSecurity ?  As I could not find any background job in core environment with description as "%MobileClientSecurity%".

Best Regards
Atheeq


Hi

 

I will try to answer the questions as below. Please let me know if you need further clarifications. 

 

Next Sync Time: First I can clarify the timing. Each sync rule has their own frequency. Also the main Task Shedule has it’s own frequency. Final sync time for an entity is derived from both values. If you have high frequent syncing entity like ‘MobileClientSecurity’ then next sync time is actually a range like MIN value is equals to sync rule frequency and MAX is  sync rule Frequency + Task Shedule Frequency. So MobileClientSecurity can sync range of every 30 or 45 min gap. 

 

Background jobs: Native mobile only have a signal Task Shedule  per App and it take care of all entities. That’s’  why we need to consider task scheduler’s frequency when calculates actual next sync time. This will be automatically calculates and shows in the ‘Synchronized Entities’ screen where you can see what’s the next estimated sync time of particular batch entity. 

 

MobileClientSecurity: Data is fetched from the security cache. So Delta is not visible directly but data source is based on few tables in fndbas which holds security details. 

Thanks

Kapila

 


Hi @kathlk  ,

Thanks for explaining the process in detailed. So we wont be able to see any background jobs created for the default schedule of batch entity and we could only check the delta of the specific entity by viewing the out messages in the explore mobile user window.  Can you confirm whether my understanding on this matter is correct or not.

Best Regards,
Atheeq


Hi @Atheeq Maharoof 

Let me explain it.

Each native app has one Scheduled Db process which take care of all batch entities. This DB scheduler creates a IFS BG job (by default every 15 min) and BG job manipulate all batch entities and creates required sync tasks based on the next sync time of each entity. Then sync task executes and find the delta and write out messages if it find new updates. You will not see out messages as device sign them and downloads as soon as it’s connected to the server. 


Hi Atheeq,

In addition to @kathlk ‘s response, if you want to see the delta, you can turn off device network so that the device will not download the out messages. Then you can go to Out Message screen and check the data ready to be synced to the mobile but due to no network it is still available. You can check the relevant entities and the changed data. Please correct me if I am wrong @kathlk .

Best Regards,
Ibrahim


Hi @kathlk & @Ibrahim Naazir,


Thanks for helping out to get a proper understanding regarding the schedules. The process said by @Ibrahim Naazir ​ can be used to check the delta of the entity data.

Best Regards,
Atheeq​​​​​​

 


Hi Atheeq,

Also maybe if you have time you can look at the background job that is running the batch sync and you will see the method used to exeucte in PLSQL. The method is Mobile_Batch_Sys.Send_Batch_Data_ and if you take a look at that function you can see a cursor. 

If you look indepth to that cursor you can see it is taking data from those entities based on the timing and if it does not exist in mobile_sync_data_tab. You can take a look as well to get a better understanding.

Best Regards,
Ibrahim