Managing Sync Performance



1 Introduction

The size of your company database has a direct impact on the amount of time required to synchronize data to the mobile application and on the application performance itself.

The following document outlines the scope of impact by database volume and device, how database volume can be viewed, and actions that can be taken to improve data usage, sync performance, and application performance.


1.1 Device Database Size Recommendations

The following table represents the recommended and maximum database size and business object counts for optimal synchronization time performance:

  Database Size Number of Objects
Recommended 400 MB 10,000 objects of any given object (see list below)
Maximum 600 MB 20,000 objects of any given object (see list below)

1.1.1 High Impact Business Objects

The data objects that have the greatest impact on synchronization performance are:

  • Activity
  • Attachment
  • Batch
  • BatchQuantity
  • BusinessPartner
  • Equipment
  • Person
  • ReservedMaterial
  • SalesOpportunity
  • SalesOrder
  • SalesQuotation
  • ServiceCall

1.2 Differences in Devices

The following chart shows data synchronization time in minutes:seconds (mm:ss) at different volume loads of Activities.

1.2.1 Time to Synchronize by Device (iOS / Android)

  5k Activities 10k Activities 20k Activities 50k Activities 100k Activities
Older Android Device 1:02 2:44 5:23 16:59 43:58
Newer Android Device 0:53 2:22 4:30 12:05 29:42
Older iPad 1:07 5:05 12:10 32:17 65:10
Newer iPad 0:23 0:48 01:21 04:43 11:21
Older iPhone 1:28 7:48 16:00 41:04 89:05
Newer iPhone 0:19 1:19 1:34 5:26 13:46

1.2.1.1 Device Details
Note: iOS is faster than the equivalent Android device when performing a sync, as iOS uses a proprietary binary format which is more efficient.
Type Device OS
Older iPhone iPhone 4S (MC918LL/A) iOS 9.3.2
Older iPad iPad 3 64GB (MC707FD/A) iOS 9.3.2
Newer iPhone iPhone 6S (MKQT2ZD/A) iOS 10.2
Newer iPad iPad Pro (MLMN2TY/A) iOS10.1.1
Older Android Sony Xperia Z5 Compact 6.0.1
Newer Android Google Pixel 7.1.1

1.2.2 Time to Synchronize by Device (Windows)

The following chart shows data synchronization time in minutes:seconds (mm:ss) at different volume loads of Activities.

  5k Activities 10k Activities 20k Activities 50k Activities 100k Activities
Newer Desktop 0:05 0:10 0:20 0:40 1:20
Newer Laptop 0:07 0:15 0:20 0:50 1:40
Older Laptop 0:05 0:15 0:25 1:05 2:35

1.2.2.1 Device Details
Type Device OS
Newer Desktop Desktop 2015 i5-4690k SSD Windows 10 64-bit
Newer Laptop Laptop 2012 i5-2520m NO SSD Windows 10 64-bit
Older Laptop Laptop 2011 i7-2620m SSD Windows 10 64-bit

1.3 Background Apps and Performance

Background apps and processes running on a device will impact full-sync performance. This generally includes apps such as maps, navigation systems, music players, etc.


2 Establishing a Baseline

In order to determine the efficacy of remediate action, you will need to establish a baseline.


2.1 Viewing Object Count from Mobile

Business object counts can be viewed from the mobile app by completing the following steps:

  1. Navigate to Settings and select Contact Support from the action menu (⋮).
  2. The application will display the business object counts for high impact business objects and other business objects in the body of an email:


  3. If you don’t wish to send an email to Coresystems Support, select the Cancel option from the top.
Note: Business object counts viewed from the mobile applicaiton take into account both user permission settings and relevant company settings.

2.2 Viewing Company Object Count

Company business object counts can be viewed using the Query API tool located in the Admin Module.

The following query can serve as a template for returning a maximum count for business objects that could be sent to the mobile application:

SELECT COUNT(a.id) FROM Activity a



Here, Activity can be replaced by another business object to return a count (example: BusinessPartner).

Note: To return a count for a specific account (such as a technician), you could use an API management tool such as Postman and pass the account credentials into the request sent to the Query API.

3 Taking Action

The following actions can be taken to improve performance and synchronization times.

Permissions
Permissions can be applied to users and business objects to further customize behavior and improve performance. For example, a user could be assigned Read permissions for their Own Activities, filtering out activites that are assigned to other employees.
Data Sync Rules
Data Sync Rules can be applied to determine what data is stored in the mobile app when in "offline" mode.

3.1 Permissions Management

Permissions and permission groups are viewed and managed in the Coresuite Store.

3.1.1 Operation Permissions

Operation Permissions determine what records users can CREATE, READ, UPDATE, and/or DELETE.

Option Description
All By selecting, the permissions settings will be available for all users associated with the given permission group. For example, if you applied Read on Attachments and assigned it to All, you would be able to read/view all attachments.
Own By selecting, the permissions settings (example Update on Activity) will be available for all users associated with the given permission group. For example, if you applied Update on Activity and assigned it to Own, you would be able to update your own activities.
None By selecting, the permissions settings (example Delete on Quotations) will be available for no users associated with the given permission group. For example, if you applied Delete on Quotations and assignted it to None, you would be unable to delete quotations.

3.1.2 Business Objects

User Group permissions can be applied to individual business objects to customize behavior. The following business objects have the greatest impact on synchronization performance:


3.2 Data Sync Rules

In the User Groups tab of the Admin module, you can view and manage the User Groups and Data Sync Rules for your company.

Data Sync Rules are used to control what information is stored in the mobile application for offline use.

The benefits of using data sync rules are:

They can decrease bandwidth used while syncing technician devices.
They can decrease application memory usage on mobile devices.
They can improve equipment and item search, as less irrelevant data is filtered out.
They can help streamline communication between technicians and the back-office, and ensure that technicians only receive the data they need, when they need it.
Attention: Please note that Data Sync Rules do NOT represent a security measure, as they do not impact the web-based applications and the Data API. They are merely used to improve performance and data integrity for the mobile application.

3.2.1 Applying Data Sync Rules

The following data sync rules can be applied to a company:

Data Object Data Sync Rule What is Synced
Item
R01 Items used as Reserved Materials on Service Calls where the technician has been responsible / assigned.
R13 Sync only Items that belong to a branch the current user is assigned to.
R23 Sync only Warehouse that belong to a branch the current user is assigned to.
Business Partner
RO2 Business Partners that are associated with Activities and/or Service Calls where the technician has been responsible / assigned.
RO2a Addresses that are associated with Activities and/or Service Calls where the technician has been responsible / assigned.
RO2b Contacts that are associated with Activities and/or Service Calls where the technician has been responsible / assigned.
RO3 Business Partners for own Branches.

A Business Partner is sent to the mobile, only if:
  • the current user has READ permission on it,
  • and, it has a common branch shared with him.
R41 Business Partners for activities for the technician's team

A Business Partner is sent to the mobile, only if:
  • linked to an activity for the technician’s team…
    • where the technician is responsible / has been assigned
    • OR where the technician belongs to the same team which is linked to the project of the activity
Equipment
R04 Equipment that is associated with Activities and/or Service Calls where the technician has been responsible / assigned.
R14 All Equipment of Business Partners for own Activities and/or Service Calls.

Sync only Equipment that belong to a Customer who has issued at least on Service call, or one Activity, for which the current user is the responsible.
R39 Equipment including related children and parent equipment for activities for the technician’s team and skills. Sync equipment records which are:
  • directly linked to an activity for the technician’s team and skills
    • where the technician is responsible / has been assigned
    • OR where the technician belongs to the same team which is linked to the project of the activity
    • AND where the technician has all valid skills required for the activity
  • OR which is the the parent (up to 10 levels up) and child (up to 10 levels down) of an equipment that is linked to an activity for the technician’s team and skills
R40 Equipment including related children for activities for the technician’s team and skills. Sync equipment records which are:
  • directly linked to an activity for the technician’s team and skills
    • where the technician is responsible / has been assigned
    • OR where the technician belongs to the same team which is linked to the project of the activity
    • AND where the technician has all valid skills required for the activity
  • OR which is the the parent (up to 10 levels up) and child (up to 10 levels down) of an equipment that is linked to an activity for the technician’s team and skills
Sales or Service Documents
R15 Sync only sales opportunities associated with the business partner belongs to a branch the current user is assigned to.
R16 Sync only Incidents issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R17 Sync only Defects issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R18 Sync only Payment Terms issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R19 Sync only Sales Opportunities issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R20 Sync only Sales Quotations issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R21 Sync only Sales Orders issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R22 Sync only Service Contracts issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R24 Sync only Sales Quotations for which the Business Partner belongs to a branch the current user is assigned to..
R25 Sync only Sales Orders issued by Business Partners that belong to a branch the current user is assigned to.
R26 Sync only Service Contracts issued by Business Partners that belong to a branch the current user is assigned to.
R27 Sync only Sales Orders that do NOT meet the following criteria:
  • its status is Closed,
  • and, the number of days between NOW and its last change date is bigger than a configurable number.
R28 Sync only Sales Opportunities issued by Business Partners for which at least one Activity and/or Service Call has the current user set as responsible.
R28 Sync only Invoices that do NOT meet the following criteria:
  • its status is Closed,
  • and, the number of days between NOW and its last change date is bigger than a configurable number
.
R29 Sync only Invoices that do NOT meet the following criteria:
  • its status is Closed,
  • and, the number of days between NOW and its last change date is bigger than a configurable number
.
R30 Sync only Invoices that do NOT meet the following criteria:
  • its status is either:
    • won,
    • or lost,
  • and, the number of days between NOW and its last change date is bigger than a configurable number.
R32 Invoices for own branches.

An Invoice is sent to the mobile, only if:
  • the current user has READ permission on it,
  • and, it has a common branch shared with him.
R33 Sales Quotations for own Branches.

A Sales Quotation is sent to the mobile, only if:
  • the current user has READ permission on it,
  • and, it has a common branch shared with him.
R34 Sales Orders for own Branches.

A Sales Order is sent to the mobile, only if:
  • the current user has READ permission on it,
  • and, it has a common branch shared with him.
R36 Own Invoices and Territory invoices.

An Invoice is synced to the mobile only if the current user:
  • is its responsible Sales Person,
  • is its creator,
  • or, shares a common Territory with the Business Partner that issued it.
Service Call
R06 Previous Service Calls open for Equipment on which technician is currently assigned to work, providing a service history (historical data of work completed on Equipment).This enables the technician to view relevant Equipment service details without needing to sort through past Service Call records.
R07 Service Calls handled in the last six (6) months, where the technician was responsible / had previously been assigned.
R08 Service Calls where the technician is responsible / has been assigned.
Activity
R09 All Activities that are associated with Service Calls where the technician has been responsible / assigned.
R10 Previous Activities performed on Equipment for which technician is currently responsible / assigned to work, providing a service history (historical data of work completed on Equipment).This enables the technician to view relevant Equipment service details without needing to sort through past Service Call records.
R11 Activities performed within the last six (6) months, where the technician was responsible / has previously been assigned.
R12 Activities where the technician is responsible / has been assigned.
R37 Activities for the technician's team.

  • where the technician is responsible / has been assigned.
  • OR where the technician belongs to the same team which is linked to the project of the activity.
R38 Activities for the technician's team and skills.

  • where the technician is responsible / has been assigned
  • OR where the technician belongs to the same team which is linked to the project of the activity
  • AND where the technician has all valid skills required for the activity
Warehouse
R23 All Activities that are associated with Service Calls where the technician has been responsible / assigned.
Checklist Instance
R42 Own warehouse/s.

A warehouse is synced to the mobile device only if:
  • the current user has READ permission on it,
  • and, it has a common branch shared with him.
R51 Checklist Instances on Activities for the technician.

Reduces the volume of Checklist instances sent to the device. Checklist instances on activities will only be sent where the person is responsible / assigned for checklist instances, activities or associated service calls.
R43 People who are linked to the same team(s) as the technician's team(s).
R50 Attachments on Activities for the technician.

Reduces the volume of attachments sent to the device. Attachments on Activities will only be sent where the person is responsible / assigned for Activities or associated service calls. Attachments not linked to an activity will not be affected by this rule, they will be downloaded based on permissions.
R52 Addresses on Activities for the technician.

Reduces the volume of Addresses sent to the device. Addresses on Activities will only be sent where the person is responsible / assigned for Activities or associated service calls.
R53 Contacts on activities / service calls for the technician.

Reduces the volume of Contacts sent to the device. Contacts on Activities / Service Calls will only be sent where the person is responsible / assigned for activities or associated service calls.