Refresh Variable Not Refreshing

I have the following code snippet from an interface expression that is not updating the refresh variables. I have confirmed that local!refresh updates on record action as it is supposed to, but I cannot get local!selected_tasks or local!expired_tasks. I have tried multiple different configurations of the refresh parameters inside a!refreshVariable() as you can see from all the commented out portions, but none of them seem to work.

I removed all of the record type references in the code, but I assure you they are there in my actual expression.

Any insight would be greatly appreciated.

local!refresh: a!refreshVariable(
  value: rand(),
  refreshAfter: "RECORD_ACTION"
),
  local!selected_process_ids: if(
    a!isNotNullOrEmpty(ri!clientSignOffProcess),
    ri!clientSignOffProcess[],
    null()
  ),
  local!selected_workflow: ri!clientSignOffProcess[],
  local!selected_tasks: a!refreshVariable(
    value: a!queryRecordType(
      recordType: ,
      fields: {
      },
      filters: {
        a!queryFilter(
          field: ,
          operator: "=",
          value: ri!clientSignOffProcess[]
        ),
        a!queryFilter(
          field: ,
          operator: "=",
          value: cons!WSP_WORKFLOW_STATUS_WAITING_ON_CLIENT_SIGNOFF_ID
        )
      },
      pagingInfo: a!pagingInfo(startIndex: 1, batchSize: 50)
    ).data,
    refreshOnVarChange: local!refresh,
    /*refreshAfter: "RECORD_ACTION",*/
    /*refreshAlways: true()*/
  ),
  local!expired_tasks: a!refreshVariable(
    value: a!forEach(
      items: local!selected_tasks,
      expression: if(
        rule!WSP_UTIL_checkIfPacketIsExpiredByWorkflowId(
          fv!item[]
        ),
        fv!item[],
        0
      )
    ),
    /*refreshAfter: "RECORD_ACTION",*/
    refreshAlways: true(),
    /*refreshOnVarChange: local!refresh*/
  ),

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    Doesn’t inherently cascade refreshes each dependent variable must declare what triggers it. So link refreshOnVarChange at each layer, ensuring refresh propagation across local!refresh -> local!selected_tasks -> local!expired_tasks.

    local!refresh: a!refreshVariable(
      value: rand(),
      refreshAfter: "RECORD_ACTION"
    ),
    local!selected_tasks: a!refreshVariable(
      value: a!queryRecordType(...).data,
      refreshOnVarChange: local!refresh
    ),
    local!expired_tasks: a!refreshVariable(
      value: a!forEach(...),
      refreshOnVarChange: local!selected_tasks
    )

Reply
  • 0
    Certified Lead Developer

    Doesn’t inherently cascade refreshes each dependent variable must declare what triggers it. So link refreshOnVarChange at each layer, ensuring refresh propagation across local!refresh -> local!selected_tasks -> local!expired_tasks.

    local!refresh: a!refreshVariable(
      value: rand(),
      refreshAfter: "RECORD_ACTION"
    ),
    local!selected_tasks: a!refreshVariable(
      value: a!queryRecordType(...).data,
      refreshOnVarChange: local!refresh
    ),
    local!expired_tasks: a!refreshVariable(
      value: a!forEach(...),
      refreshOnVarChange: local!selected_tasks
    )

Children
No Data