Slow Performance when Validations in Editable Grid

Hi, 

I have an editable grid with 5 columns  with first column has labels which is read only and remaining 4 columns are editable with  more than 50 rows.

There are multiple validations executed on each cell like Totals,Subtotals are calculated, Also each row has a different set of validations executed. All are inline validations.

Performance for few grids less than 20 rows is better, but as the number of rows increases in other grids performance is not good it shows "working....." for few seconds when ever each cell is edited.

Am using expression rules to execute validations, i cannot use decision tables in my use case.

Please suggest any inputs which makes performance better.

 

 

Thanks,

Karthik

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer
    Hi there can be multiple reasons behind slow performance as mention below:

    1. If you server is having too much of load or let's say due to multiple applications, users and requests server is not responding properly, in such case you can restart the server, or can increase its configuration.

    2. Execution of multiple if() or nested if() can also cause performance issue. To avoid this you can perform all these validations on button submit, i.e. form level validation.

    3. Do not query multiple/all rows at a time instead query in batch size of 10, and in Such case you need to create a section, to customise pagination for editable grid, as Appian do not have pagination available OOTB for an editable grid. In fact if you do this, then I believe performing multiple validation on each cell modification, won't impact the performance much.

    4. Try to avoid with() as much as you can

    5. If possible, do not perform db operation in with()

    Hope this will help you to enhance your interface performance
  • Hi Alok,
    Each row in a grid contains different set of validations,so we are performing validations based on Index.Let me know your thoughts on this.
  • 0
    Certified Lead Developer
    in reply to karthikk640
    Hi Karthik, if you validation is based on rows but not on column, then you can do following to avoid multiple times processing while field unfocus over the grid.

    1. On button submit, perform loop over array of rows (editable grid rows)

    2. Check for necessary conditions, if the validation criteria didn't meet, throw a validation message using a!validationmessage()

    In this approach, you can avoid multiple time processing whenever you are done with a particular row. And entire validation will take place at once during the form submit.
Reply
  • 0
    Certified Lead Developer
    in reply to karthikk640
    Hi Karthik, if you validation is based on rows but not on column, then you can do following to avoid multiple times processing while field unfocus over the grid.

    1. On button submit, perform loop over array of rows (editable grid rows)

    2. Check for necessary conditions, if the validation criteria didn't meet, throw a validation message using a!validationmessage()

    In this approach, you can avoid multiple time processing whenever you are done with a particular row. And entire validation will take place at once during the form submit.
Children
No Data