How to improve overall application performance, maintainability, supportability and reliability

Prev

Calculations


Try to avoid the use of calculation fields as much as possible. Every time a dependent property is changed, the calculation will be recalculated in the background resulting in a longer waiting time for background actions. In some cases it is better to calculate a value by using an after save action instead of using a calculation.

Actions


  • Skip triggered actions if they are not of use in that case
    Every time you do a create or update event in an action, you can specify which triggered actions should be skipped. Try to skip as many as possible if they are not of use in that specific create or update event.

Workflow


  • Reverse transitions: Ensure that you build reverse workflow transitions when required rather than making a workflow's status field editable to change an item's status. For example, if an item is in Closed state but needs to be Reopened, create a transition from Closed to Reopened and select any required actions to run during the transition.

  • Edit in field usage for status fields: For status fields linked to workflows, do not enable Edit in field usage for these fields and instead rely on Workflow to perform such updates.

  • Include status field used in workflow template in the field template used in transition

  • Copy to module: Do not allow users to perform a workflow transition with an enabled copy to the module for which the user does not have to create access.

Menu elements


  • Ensure that all Menu Elements per module have different sorting numbers and use a sequence with large values e.g. 10, 20, 30, 40 so that it is easy to change sort order if required.


Field usage


Try to minimize the number of columns in a module view (Spreadsheet, Split, Gallery and Timeline) especially when fields from other modules via module links are shown as well. Each other module will result in another database join.

Export PDF


  • Enable export pdf functionality and don’t create templates (except temporarily enabling just to get default config for admins only)