refreshAlways:true in grid is not working .

According to mentioned code it removes Rows (Deactivates some records) but re

a!localVariables(
  local!pagingInfo: a!pagingInfo(
    startIndex: 1,
    batchSize: 5,
    sort: a!sortInfo(field: "userName", ascending: true)
  ),
  local!Members: cast(
    'type!{urn:com:appian:types:WFM}WFM_Test?list',
    rule!WFM_getTestByTestId(testId: ri!testId)
  ),
  {
    a!gridField(
      label: "Member List",
      labelPosition: if(ri!showLabel,"ABOVE","COLLAPSED"),
      data: local!Members,
      refreshAlways: true(),
      refreshAfter: "RECORD_ACTION",
      columns: {
        a!gridColumn(
          label: "Member Name",
          sortField: "userName",
          value: a!forEach(
            items: fv!row.userName,
            expression: rule!OCO_getUserFullNameFromUserName(userName: fv!item)
          )
        ),
       
        a!gridColumn(
          label: "Remove",
          showWhen: not(ri!readOnly),
          value: a!richTextDisplayField(
            value: a!forEach(
              items: fv!row.MemberId,
              expression: a!richTextIcon(
                icon: if(
                  contains(ri!removedMemberIds, tointeger(fv!item)),
                  "check-square-o-alt",
                  "square-o"
                ),
                altText: if(
                  contains(ri!removedMemberIds, tointeger(fv!item)),
                  "Undo Removal",
                  "Mark for Removal"
                ),
                caption: if(
                  contains(ri!removedMemberIds, tointeger(fv!item)),
                  "Undo Removal",
                  "Mark for Removal"
                ),
                link: a!dynamicLink(
                  saveInto: {
                    a!save(
                      ri!removedMemberIds,
                      if(
                        contains(ri!removedMemberIds, tointeger(fv!item)),
                        remove(
                          ri!removedMemberIds,
                          wherecontains(tointeger(fv!item), ri!removedMemberIds)
                        ),
                        append(ri!removedMemberIds, fv!item)
                      )
                    )
                  }
                ),
                color: if(
                  contains(ri!removedMemberIds, tointeger(fv!item)),
                  "NEGATIVE",
                  "SECONDARY"
                ),
                size: "MEDIUM"
              )
            )
          ),
          width: "NARROW",
          align:"CENTER"
        )
      },
      pageSize: local!pagingInfo.batchSize,
      showWhen: a!isNotNullOrEmpty(ri!testId)
    )
  }
)
fresh behaviour is not working .. tried adding refresh always true also but no luck.

  Discussion posts and replies are publicly visible

Parents
  • This may be an interesting one to do some more testing on.  In my recent experience (currently on Appian 21.1), I ran into this scenario - using grid data from a rule would not refresh no matter what I used for settings, when I was trying to refresh it always.  I was forced to essentially duplicate the rule's queryEntity directly in the grid's data parameter (or via local variable with the query directly), to get it to refresh properly.  At the time, I couldn't find anything in the documentation on this behavior.  Wonder if others have run into this also ?

    Due to this, my assumption here is that the below will not work, and you will need to pull the queryEntity into your local var directly.

      local!Members: a!refreshVariable(
        value: cast(
          'type!{urn:com:appian:types:WFM}WFM_Test?list',
          rule!WFM_getTestByTestId(testId: ri!testId)
        ),
        refreshAlways: true,
      ),

Reply
  • This may be an interesting one to do some more testing on.  In my recent experience (currently on Appian 21.1), I ran into this scenario - using grid data from a rule would not refresh no matter what I used for settings, when I was trying to refresh it always.  I was forced to essentially duplicate the rule's queryEntity directly in the grid's data parameter (or via local variable with the query directly), to get it to refresh properly.  At the time, I couldn't find anything in the documentation on this behavior.  Wonder if others have run into this also ?

    Due to this, my assumption here is that the below will not work, and you will need to pull the queryEntity into your local var directly.

      local!Members: a!refreshVariable(
        value: cast(
          'type!{urn:com:appian:types:WFM}WFM_Test?list',
          rule!WFM_getTestByTestId(testId: ri!testId)
        ),
        refreshAlways: true,
      ),

Children