Refresh data in editable grid coming from reord Type (data base)

a!localVariables(
 local!refreshVar:1,
  local!loggedInUser: loggedInUser(),
  local!now: now(),
  local!isLevelOneApproval: /*if(a!isUserMemberOfGroup(
    username: local!loggedInUser,
    groups: cons!AMS_DG_GP_ADMINISTRATORS,
  ),true(),false()),*/ false(),
  local!departmentId: if(
    a!isUserMemberOfGroup(
      username: local!loggedInUser,
      groups: {
        cons!AMS_DG_GP_SURGICAL_DEPARTMENT,
        cons!AMS_DG_GP_GENERAL_DEPARTMENT
      },
      matchAllGroups: true()
    ),
    {
      cons!AMS_DG_DB_DEPARTMENT_ID[1],
      cons!AMS_DG_DB_DEPARTMENT_ID[2]
    },
    if(
      a!isUserMemberOfGroup(
        username: local!loggedInUser,
        groups: cons!AMS_DG_GP_SURGICAL_DEPARTMENT,
        
      ),
      cons!AMS_DG_DB_DEPARTMENT_ID[1],
      cons!AMS_DG_DB_DEPARTMENT_ID[2]
    )
  ),
 
  local!appointmentInfo: a!refreshVariable(
    value: if(
    or(local!isLevelOneApproval),
    rule!AMS_DG_GetAppointmentInfo(
      isDS: false,
      fields: {
        {
          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment',
          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName',
  
        }
      },
      statusIdArray: {
        cons!AMS_DG_DB_STATUS_ID[1],
        cons!AMS_DG_DB_STATUS_ID[8]
      }
    ),
    rule!AMS_DG_GetAppointmentInfo(
      isDS: false,
      fields: {
        'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment',
        'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName'
      },
      statusIdArray: cons!AMS_DG_DB_STATUS_ID[2],
      deptIdArray: local!departmentId
    )
  ),
  refreshOnVarChange: local!refreshVar),
  local!approvedOrRejectedAppointments,
  a!formLayout(
    label: "Approve Appointments",
    contents: {
      {
        a!gridLayout(
          label: "Pending for approval",
          labelPosition: cons!AMS_DG_LABEL_POSITION[1],
          headerCells: {
            a!gridLayoutHeaderCell(label: "Appointment Id"),
            a!gridLayoutHeaderCell(label: "Patient Name"),
            a!gridLayoutHeaderCell(label: "Gender"),
            a!gridLayoutHeaderCell(label: "Age"),
            a!gridLayoutHeaderCell(label: "Doctor Name"),
            a!gridLayoutHeaderCell(label: "Appointment Date"),
            a!gridLayoutHeaderCell(label: "Session"),
            a!gridLayoutHeaderCell(label: "Created On"),
            a!gridLayoutHeaderCell(label: "Total appointments",showWhen: not(or(local!isLevelOneApproval))),
            a!gridLayoutHeaderCell(label: ""),
            a!gridLayoutHeaderCell(label: "Comment")
          },
          columnConfigs: {
            a!gridLayoutColumnConfig(width: "DISTRIBUTE")
          },
          rows: {
            a!forEach(
              items: local!appointmentInfo,
              expression: a!gridRowLayout(
                contents: {
                  a!integerField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{274539be-ac91-4f4c-95ed-69bd50175dae}appointmentId',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!textField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{ebbdfb59-46f0-4749-95d2-4ae5866a0b43}patientName',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!textField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{6467d9c9-119e-43b6-834f-4ae90ff83f2e}patientGender',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!integerField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0f20356b-2a82-464a-b422-aa713158404b}patientAge',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!textField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!dateField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{5026132f-9111-432f-bd37-6df4c30723f4}appointmentDate',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!textField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0097e5d1-71d8-4930-bf32-7f36dbcdfa4a}session',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!dateField(
                    value: index(
                      fv!item,
                      'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{19a1f573-e088-4dd7-bc12-285695cf99c0}createdOn',
                      null
                    ),
                    readOnly: true()
                  ),
                  a!textField(
                    showWhen: not(or(local!isLevelOneApproval)),
                    helpTooltip: "Total number of appointment already exist for perticular day, doctor and session",
                    value: rule!AMS_DG_GetAppointmentInfo(
                      isDS: true(),
                      statusIdArray: cons!AMS_DG_DB_STATUS_ID[3],
                      deptIdArray: local!departmentId,
                      sessionArray: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0097e5d1-71d8-4930-bf32-7f36dbcdfa4a}session',null),
                      doctorIdArray: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{09414ca6-3f27-44c9-8aa8-b2316ed8319c}doctorId',null),
                      appointmentDate: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{5026132f-9111-432f-bd37-6df4c30723f4}appointmentDate',null)
                      
                    ).totalCount,
                    readOnly: true()
                  ),
                  a!radioButtonField(
                    choiceLabels: cons!AMS_DG_CHOICE_LABEL,
                    choiceValues: if(or(local!isLevelOneApproval), { 2, 4 }, { 3, 4 }),
                    value: if(
                      or(
                        contains(
                          {
                            cons!AMS_DG_DB_STATUS_ID[1],
                            cons!AMS_DG_DB_STATUS_ID[8]
                          },
                          fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                        ),
                        and(
                          {
                            cons!AMS_DG_DB_STATUS_ID[2] = fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                          },
                          not(or(local!isLevelOneApproval))
                        )
                      ),
                      {},
                      index(
                        fv!item,
                        'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',
                        null
                      )
                    ),
                    saveInto: {
                      fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId'],
                      a!save(fv!item,remove(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment'))
                      
                    }
                  ),
                  a!textField(
                    value: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{a8163266-6e90-4df8-b1bf-f5cf7c1a8d01}comment',null),
                    required: or(index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',null)=cons!AMS_DG_DB_STATUS_ID[4]),
                    disabled: or(index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',null)<>cons!AMS_DG_DB_STATUS_ID[4]),
                    saveInto: {
                      fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{a8163266-6e90-4df8-b1bf-f5cf7c1a8d01}comment'],
                      a!save(fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{651fe152-a76b-40cd-9799-459ad44bc666}commentedBy'],local!loggedInUser),
                      a!save(fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{d4431660-082a-4388-90d0-46ce685714d8}commentedOn'],local!now)
                      }
                  )
                }
              )
            )
          },
          selectionSaveInto: {},
          validations: {},
          shadeAlternateRows: true
        )
      }
    },
    buttons: a!buttonLayout(
      primaryButtons: {
        a!buttonWidget(
          label: "Submit",
          value: true,
          saveInto: {
            a!save(
              local!approvedOrRejectedAppointments,
              (
                remove(
                  local!appointmentInfo,
                  wherecontains(
                    1,
                    local!appointmentInfo['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                  )
                )
              )
            ),
            a!startProcess(
              processModel: cons!AMS_DG_PM_APPROVE,
              processParameters: {
                approvedOrRejectedAppointments: local!approvedOrRejectedAppointments,
                loggedInUser: local!loggedInUser,
                now: local!now,
                approvedId: if(
                  or(local!isLevelOneApproval),
                  cons!AMS_DG_DB_STATUS_ID[2],
                  cons!AMS_DG_DB_STATUS_ID[3]
                )
              }
            ),
            a!save(local!refreshVar,mod(local!refreshVar+1,2))
          },
          submit: true,
          style: cons!AMS_DG_SUBMIT_STYLE[1],
          loadingIndicator: true
        )
      },
      secondaryButtons: {
        a!buttonWidget(
          label: "Cancel",
          value: true,
          saveInto: {},
          submit: true,
          style: cons!AMS_DG_CANCEL_STYLE[1],
          validate: false
        )
      }
    )
  )
)

I am working on editable grid. Grid shows multiple rows, user can select any row using radio button as ( approved, reject ). After that approved rows goes in DB and make status as approved while rejected rows goes in DB and make status as rejected. After clicking on submit button this scenario takes place for that I have used a!startProcessModel. The requirement is after clicking on submit  button fresh data should come from DB. I have also used refreshAfterOnVarChange  but approved rows doesn't filter out.

Any help will be appriciated.

  Discussion posts and replies are publicly visible

  • 0
    Certified Senior Developer

    Check the following conditions met.

    1.Activity chaining till Write records node

    2.refresh condition on local variable.

    I checked your code ,you are trying to save local!refreshvar on button click itself and you used it in refresh condition. Save it onSuccess of startprocess

  • 0
    Certified Senior Developer

    I would check Activity chaining and also the make use of onSuccess as Venky has mentioned. Also as a precautionary you can make the grid as readOnly when the submit button is clicked and display a button to force refresh as well as a fail safe.

  • 0
    Certified Senior Developer

    Hello  

    While implementing Smart service follows activity-chaining, completing only when the activity chain is complete or broken. The smart service then returns the process variables as of the completion of activity chaining through the processInfo.pv output.

    In your case you might be missing chaining till WriteToDataStore entity node.

  • I have used the activity chaining and modified the code as suggested. But still not working

    a!localVariables(
     local!refreshVar:1,
      local!loggedInUser: loggedInUser(),
      local!now: now(),
      local!isLevelOneApproval: a!isUserMemberOfGroup(
        username: local!loggedInUser,
        groups: cons!AMS_DG_GP_ADMINISTRATORS,
      ), 
      local!departmentId: if(
        a!isUserMemberOfGroup(
          username: local!loggedInUser,
          groups: {
            cons!AMS_DG_GP_SURGICAL_DEPARTMENT,
            cons!AMS_DG_GP_GENERAL_DEPARTMENT
          },
          matchAllGroups: true()
        ),
        {
          cons!AMS_DG_DB_DEPARTMENT_ID[1],
          cons!AMS_DG_DB_DEPARTMENT_ID[2]
        },
        if(
          a!isUserMemberOfGroup(
            username: local!loggedInUser,
            groups: cons!AMS_DG_GP_SURGICAL_DEPARTMENT,
            
          ),
          cons!AMS_DG_DB_DEPARTMENT_ID[1],
          cons!AMS_DG_DB_DEPARTMENT_ID[2]
        )
      ),
     
      local!appointmentInfo: a!refreshVariable(
        value: if(
        or(local!isLevelOneApproval),
        rule!AMS_DG_GetAppointmentInfo(
          isDS: false,
          fields: {
            {
              'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment',
              'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName',
      
            }
          },
          statusIdArray: {
            cons!AMS_DG_DB_STATUS_ID[1],
            cons!AMS_DG_DB_STATUS_ID[8]
          }
        ),
        rule!AMS_DG_GetAppointmentInfo(
          isDS: false,
          fields: {
            'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment',
            'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName'
          },
          statusIdArray: cons!AMS_DG_DB_STATUS_ID[2],
          deptIdArray: local!departmentId
        )
      ),
      refreshOnVarChange: local!refreshVar),
      local!approvedOrRejectedAppointments,
      a!formLayout(
        label: "Approve Appointments",
        contents: {
          {
            a!gridLayout(
              label: "Pending for approval",
              labelPosition: cons!AMS_DG_LABEL_POSITION[1],
              headerCells: {
                a!gridLayoutHeaderCell(label: "Appointment Id"),
                a!gridLayoutHeaderCell(label: "Patient Name"),
                a!gridLayoutHeaderCell(label: "Gender"),
                a!gridLayoutHeaderCell(label: "Age"),
                a!gridLayoutHeaderCell(label: "Doctor Name"),
                a!gridLayoutHeaderCell(label: "Appointment Date"),
                a!gridLayoutHeaderCell(label: "Session"),
                a!gridLayoutHeaderCell(label: "Created On"),
                a!gridLayoutHeaderCell(label: "Total appointments",showWhen: not(or(local!isLevelOneApproval))),
                a!gridLayoutHeaderCell(label: ""),
                a!gridLayoutHeaderCell(label: "Comment")
              },
              columnConfigs: {
                a!gridLayoutColumnConfig(width: "DISTRIBUTE")
              },
              rows: {
                a!forEach(
                  items: local!appointmentInfo,
                  expression: a!gridRowLayout(
                    contents: {
                      a!integerField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{274539be-ac91-4f4c-95ed-69bd50175dae}appointmentId',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{ebbdfb59-46f0-4749-95d2-4ae5866a0b43}patientName',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{6467d9c9-119e-43b6-834f-4ae90ff83f2e}patientGender',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!integerField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0f20356b-2a82-464a-b422-aa713158404b}patientAge',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!dateField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{5026132f-9111-432f-bd37-6df4c30723f4}appointmentDate',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0097e5d1-71d8-4930-bf32-7f36dbcdfa4a}session',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!dateField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{19a1f573-e088-4dd7-bc12-285695cf99c0}createdOn',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        showWhen: not(or(local!isLevelOneApproval)),
                        helpTooltip: "Total number of appointment already exist for perticular day, doctor and session",
                        value: rule!AMS_DG_GetAppointmentInfo(
                          isDS: true(),
                          statusIdArray: cons!AMS_DG_DB_STATUS_ID[3],
                          deptIdArray: local!departmentId,
                          sessionArray: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0097e5d1-71d8-4930-bf32-7f36dbcdfa4a}session',null),
                          doctorIdArray: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{09414ca6-3f27-44c9-8aa8-b2316ed8319c}doctorId',null),
                          appointmentDate: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{5026132f-9111-432f-bd37-6df4c30723f4}appointmentDate',null)
                          
                        ).totalCount,
                        readOnly: true()
                      ),
                      a!radioButtonField(
                        choiceLabels: cons!AMS_DG_CHOICE_LABEL,
                        choiceValues: if(or(local!isLevelOneApproval), { 2, 4 }, { 3, 4 }),
                        value: if(
                          or(
                            contains(
                              {
                                cons!AMS_DG_DB_STATUS_ID[1],
                                cons!AMS_DG_DB_STATUS_ID[8]
                              },
                              fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                            ),
                            and(
                              {
                                cons!AMS_DG_DB_STATUS_ID[2] = fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                              },
                              not(or(local!isLevelOneApproval))
                            )
                          ),
                          {},
                          index(
                            fv!item,
                            'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',
                            null
                          )
                        ),
                        saveInto: {
                          fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId'],
                          a!save(fv!item,remove(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment'))
                          
                        }
                      ),
                      a!textField(
                        value: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{a8163266-6e90-4df8-b1bf-f5cf7c1a8d01}comment',null),
                        required: or(index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',null)=cons!AMS_DG_DB_STATUS_ID[4]),
                        disabled: or(index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',null)<>cons!AMS_DG_DB_STATUS_ID[4]),
                        saveInto: {
                          fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{a8163266-6e90-4df8-b1bf-f5cf7c1a8d01}comment'],
                          a!save(fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{651fe152-a76b-40cd-9799-459ad44bc666}commentedBy'],local!loggedInUser),
                          a!save(fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{d4431660-082a-4388-90d0-46ce685714d8}commentedOn'],local!now)
                          }
                      )
                    }
                  )
                )
              },
              selectionSaveInto: {},
              validations: {},
              shadeAlternateRows: true
            )
          }
        },
        buttons: a!buttonLayout(
          primaryButtons: {
            a!buttonWidget(
              label: "Submit",
              value: true,
              saveInto: {
                a!save(
                  local!approvedOrRejectedAppointments,
                  (
                    remove(
                      local!appointmentInfo,
                      wherecontains(
                        1,
                        local!appointmentInfo['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                      )
                    )
                  )
                ),
                a!startProcess(
                  processModel: cons!AMS_DG_PM_APPROVE,
                  processParameters: {
                    approvedOrRejectedAppointments: local!approvedOrRejectedAppointments,
                    loggedInUser: local!loggedInUser,
                    now: local!now,
                    approvedId: if(
                      or(local!isLevelOneApproval),
                      cons!AMS_DG_DB_STATUS_ID[2],
                      cons!AMS_DG_DB_STATUS_ID[3]
                    )
                  },
                  onSuccess:  a!save(local!refreshVar,mod(local!refreshVar+1,2))
                ),
               
              },
              submit: true,
              style: cons!AMS_DG_SUBMIT_STYLE[1],
              loadingIndicator: true
            )
          },
          secondaryButtons: {
            a!buttonWidget(
              label: "Cancel",
              value: true,
              saveInto: {},
              submit: true,
              style: cons!AMS_DG_CANCEL_STYLE[1],
              validate: false
            )
          }
        )
      )
    )

  • I have used activity chaining and updated code as mentioned.

    a!localVariables(
     local!refreshVar:1,
      local!loggedInUser: loggedInUser(),
      local!now: now(),
      local!isLevelOneApproval: a!isUserMemberOfGroup(
        username: local!loggedInUser,
        groups: cons!AMS_DG_GP_ADMINISTRATORS,
      ), 
      local!departmentId: if(
        a!isUserMemberOfGroup(
          username: local!loggedInUser,
          groups: {
            cons!AMS_DG_GP_SURGICAL_DEPARTMENT,
            cons!AMS_DG_GP_GENERAL_DEPARTMENT
          },
          matchAllGroups: true()
        ),
        {
          cons!AMS_DG_DB_DEPARTMENT_ID[1],
          cons!AMS_DG_DB_DEPARTMENT_ID[2]
        },
        if(
          a!isUserMemberOfGroup(
            username: local!loggedInUser,
            groups: cons!AMS_DG_GP_SURGICAL_DEPARTMENT,
            
          ),
          cons!AMS_DG_DB_DEPARTMENT_ID[1],
          cons!AMS_DG_DB_DEPARTMENT_ID[2]
        )
      ),
     
      local!appointmentInfo: a!refreshVariable(
        value: if(
        or(local!isLevelOneApproval),
        rule!AMS_DG_GetAppointmentInfo(
          isDS: false,
          fields: {
            {
              'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment',
              'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName',
      
            }
          },
          statusIdArray: {
            cons!AMS_DG_DB_STATUS_ID[1],
            cons!AMS_DG_DB_STATUS_ID[8]
          }
        ),
        rule!AMS_DG_GetAppointmentInfo(
          isDS: false,
          fields: {
            'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment',
            'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName'
          },
          statusIdArray: cons!AMS_DG_DB_STATUS_ID[2],
          deptIdArray: local!departmentId
        )
      ),
      refreshOnVarChange: local!refreshVar),
      local!approvedOrRejectedAppointments,
      a!formLayout(
        label: "Approve Appointments",
        contents: {
          {
            a!gridLayout(
              label: "Pending for approval",
              labelPosition: cons!AMS_DG_LABEL_POSITION[1],
              headerCells: {
                a!gridLayoutHeaderCell(label: "Appointment Id"),
                a!gridLayoutHeaderCell(label: "Patient Name"),
                a!gridLayoutHeaderCell(label: "Gender"),
                a!gridLayoutHeaderCell(label: "Age"),
                a!gridLayoutHeaderCell(label: "Doctor Name"),
                a!gridLayoutHeaderCell(label: "Appointment Date"),
                a!gridLayoutHeaderCell(label: "Session"),
                a!gridLayoutHeaderCell(label: "Created On"),
                a!gridLayoutHeaderCell(label: "Total appointments",showWhen: not(or(local!isLevelOneApproval))),
                a!gridLayoutHeaderCell(label: ""),
                a!gridLayoutHeaderCell(label: "Comment")
              },
              columnConfigs: {
                a!gridLayoutColumnConfig(width: "DISTRIBUTE")
              },
              rows: {
                a!forEach(
                  items: local!appointmentInfo,
                  expression: a!gridRowLayout(
                    contents: {
                      a!integerField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{274539be-ac91-4f4c-95ed-69bd50175dae}appointmentId',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{ebbdfb59-46f0-4749-95d2-4ae5866a0b43}patientName',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{6467d9c9-119e-43b6-834f-4ae90ff83f2e}patientGender',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!integerField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0f20356b-2a82-464a-b422-aa713158404b}patientAge',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{960b6dcd-9533-4ba9-b203-341ccc7e3abe}doctor.fields.{191b8c9e-b56e-4953-9bb3-cfb4f097a858}doctorName',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!dateField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{5026132f-9111-432f-bd37-6df4c30723f4}appointmentDate',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0097e5d1-71d8-4930-bf32-7f36dbcdfa4a}session',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!dateField(
                        value: index(
                          fv!item,
                          'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{19a1f573-e088-4dd7-bc12-285695cf99c0}createdOn',
                          null
                        ),
                        readOnly: true()
                      ),
                      a!textField(
                        showWhen: not(or(local!isLevelOneApproval)),
                        helpTooltip: "Total number of appointment already exist for perticular day, doctor and session",
                        value: rule!AMS_DG_GetAppointmentInfo(
                          isDS: true(),
                          statusIdArray: cons!AMS_DG_DB_STATUS_ID[3],
                          deptIdArray: local!departmentId,
                          sessionArray: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{0097e5d1-71d8-4930-bf32-7f36dbcdfa4a}session',null),
                          doctorIdArray: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{09414ca6-3f27-44c9-8aa8-b2316ed8319c}doctorId',null),
                          appointmentDate: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{5026132f-9111-432f-bd37-6df4c30723f4}appointmentDate',null)
                          
                        ).totalCount,
                        readOnly: true()
                      ),
                      a!radioButtonField(
                        choiceLabels: cons!AMS_DG_CHOICE_LABEL,
                        choiceValues: if(or(local!isLevelOneApproval), { 2, 4 }, { 3, 4 }),
                        value: if(
                          or(
                            contains(
                              {
                                cons!AMS_DG_DB_STATUS_ID[1],
                                cons!AMS_DG_DB_STATUS_ID[8]
                              },
                              fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                            ),
                            and(
                              {
                                cons!AMS_DG_DB_STATUS_ID[2] = fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                              },
                              not(or(local!isLevelOneApproval))
                            )
                          ),
                          {},
                          index(
                            fv!item,
                            'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',
                            null
                          )
                        ),
                        saveInto: {
                          fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId'],
                          a!save(fv!item,remove(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment'))
                          
                        }
                      ),
                      a!textField(
                        value: index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{a8163266-6e90-4df8-b1bf-f5cf7c1a8d01}comment',null),
                        required: or(index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',null)=cons!AMS_DG_DB_STATUS_ID[4]),
                        disabled: or(index(fv!item,'recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId',null)<>cons!AMS_DG_DB_STATUS_ID[4]),
                        saveInto: {
                          fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{a8163266-6e90-4df8-b1bf-f5cf7c1a8d01}comment'],
                          a!save(fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{651fe152-a76b-40cd-9799-459ad44bc666}commentedBy'],local!loggedInUser),
                          a!save(fv!item['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.relationships.{e99aa21c-4dbe-4cb9-943d-e453d2021ea6}comment.fields.{d4431660-082a-4388-90d0-46ce685714d8}commentedOn'],local!now)
                          }
                      )
                    }
                  )
                )
              },
              selectionSaveInto: {},
              validations: {},
              shadeAlternateRows: true
            )
          }
        },
        buttons: a!buttonLayout(
          primaryButtons: {
            a!buttonWidget(
              label: "Submit",
              value: true,
              saveInto: {
                a!save(
                  local!approvedOrRejectedAppointments,
                  (
                    remove(
                      local!appointmentInfo,
                      wherecontains(
                        1,
                        local!appointmentInfo['recordType!{5746f330-8c31-4ea7-9807-cbbd2fd557eb}AMS_DG Appointment.fields.{b78dde74-0103-4f5c-9980-6c1cc18db8a2}statusId']
                      )
                    )
                  )
                ),
                a!startProcess(
                  processModel: cons!AMS_DG_PM_APPROVE,
                  processParameters: {
                    approvedOrRejectedAppointments: local!approvedOrRejectedAppointments,
                    loggedInUser: local!loggedInUser,
                    now: local!now,
                    approvedId: if(
                      or(local!isLevelOneApproval),
                      cons!AMS_DG_DB_STATUS_ID[2],
                      cons!AMS_DG_DB_STATUS_ID[3]
                    )
                  },
                  onSuccess:  a!save(local!refreshVar,mod(local!refreshVar+1,2))
                ),
               
              },
              submit: true,
              style: cons!AMS_DG_SUBMIT_STYLE[1],
              loadingIndicator: true
            )
          },
          secondaryButtons: {
            a!buttonWidget(
              label: "Cancel",
              value: true,
              saveInto: {},
              submit: true,
              style: cons!AMS_DG_CANCEL_STYLE[1],
              validate: false
            )
          }
        )
      )
    )