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,
      ),

  • Of course in my scenario, the form is inserting to the DB before trying to refresh, which doesn't appear to be the case here.  But, would still apply if the data in the rule was becoming updated and needed to pull in Upside down

Reply Children
No Data