We are currently performing maintenance on Appian Community. As a result, discussions posts and replies are temporarily unavailable. We appreciate your patience.

Dynamic link Action

Certified Senior Developer

I have a dynamic link in my code and I want to increment the link as soon as we click on that link icon and value should display below that icon.

For Example: initially icon link value should be 0 and once I click on that icon link value should get updated to 1.

Can you help me how to achieve this?

a!localVariables(
  local!pagingInfoWell: a!pagingInfo(
    startIndex: 1,
    batchSize: 4,
    sort: a!sortInfo(
      field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
      ascending: false()
    )
  ),
  local!pagingInfoImproved: a!pagingInfo(
    startIndex: 1,
    batchSize: 4,
    sort: a!sortInfo(
      field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
      ascending: false()
    )
  ),
  local!refresh: a!refreshVariable(
    value: cons!RB_RETRO_REFRESH_COUNT,
    refreshAlways: true()
  ),
  local!retroNotesWell: a!refreshVariable(
    value: a!queryRecordType(
      recordType: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note',
      filters: {
        a!queryFilter(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5f705a6f-3227-4951-a62a-97cf0e65058c}sprintId',
          operator: "=",
          value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id'],
          applyWhen: a!isNotNullOrEmpty(
            ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id']
          )
        ),
        a!queryFilter(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{409d2341-43ff-4832-8396-bf239126f79c}type',
          operator: "=",
          value: cons!RB_INT_NOTE_TYPE_ONE
        ),
        a!queryFilter(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{ac904959-69dc-4c3a-9546-fe8e7c7e6bab}engagementId',
          operator: "=",
          value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId'],
          applyWhen: a!isNotNullOrEmpty(
            ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId']
          )
        )
      },
      pagingInfo: local!pagingInfoWell
    ).data,
    refreshOnVarChange: local!refresh
  ),
  local!retroNotesImproved: a!refreshVariable(
    value: a!queryRecordType(
      recordType: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note',
      filters: {
        a!queryFilter(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5f705a6f-3227-4951-a62a-97cf0e65058c}sprintId',
          operator: "=",
          value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id'],
          applyWhen: a!isNotNullOrEmpty(
            ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id']
          )
        ),
        a!queryFilter(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{409d2341-43ff-4832-8396-bf239126f79c}type',
          operator: "=",
          value: cons!RB_INT_NOTE_TYPE_TWO
        ),
        a!queryFilter(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{ac904959-69dc-4c3a-9546-fe8e7c7e6bab}engagementId',
          operator: "=",
          value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId'],
          applyWhen: a!isNotNullOrEmpty(
            ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId']
          )
        )
      },
      pagingInfo: local!pagingInfoImproved
    ).data,
    refreshOnVarChange: local!refresh
  ),
  local!whatWentWellSelections,
  local!rbCount: rule!RB_QR_GetCountByFilters(
    retroId: reject(
      fn!isnull,
      append(
        index(
          local!retroNotesImproved,
          'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
          null
        ),
        index(
          local!retroNotesWell,
          'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
          null
        )
      )
    ),
    engagementId: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId'],
    sprintId: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id']
  ),

a!forEach(
  items: local!retroNotesWell,
  expression: {
    a!cardLayout(
      contents: {
        a!richTextDisplayField(
          value: {
            a!richTextIcon(
              icon: "thumbs-up",
              size: "MEDIUM_PLUS",
              link: a!dynamicLink(
                value: fv!item,
                saveInto: {
                  a!save(
                    local!whatWentWellSelections,
                    if(
                      contains(
                        tointeger(local!whatWentWellSelections),
                        tointeger(
                          fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id']
                        )
                      ),
                      remove(
                        local!whatWentWellSelections,
                        wherecontains(
                          tointeger(
                            fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id']
                          ),
                          tointeger(local!whatWentWellSelections)
                        )
                      ),
                      append(
                        local!whatWentWellSelections,
                        tointeger(
                          fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id']
                        )
                      )
                    )
                  ),

                }
              ),
              linkStyle: "STANDALONE"
            ),
            a!richTextItem(
              text: count(
                index(local!rbCount,
                wherecontains(
                  fv!item.['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id'],
                  tointeger(index(local!rbCount,'recordType!{e41e7a6a-3d1c-489c-b9b3-2393b0c24649}RB Count.fields.{783a6d9f-3247-4c2a-b996-a164b0e3a478}retroId',null))
                ),null))
            ),
            a!richTextItem(
              text: tointeger(index(
                local!rbCount,
                wherecontains(
                  fv!item.['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id'],
                  tointeger(
                    index(
                      local!rbCount,
                      'recordType!{e41e7a6a-3d1c-489c-b9b3-2393b0c24649}RB Count.fields.{783a6d9f-3247-4c2a-b996-a164b0e3a478}retroId'
                    ),
                    null
                  )
                ),
                'recordType!{e41e7a6a-3d1c-489c-b9b3-2393b0c24649}RB Count.fields.{f8b4ae26-9b55-4755-937b-439a600b8f1b}count',
                0
              )) 
            ),
            char(9),
            a!richTextItem(
              text: fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{32600b7b-0598-4d83-aee3-e051f27824c7}comment'],
              color: cons!RB_TXT_PRIMARY_COLOR_HEX_CODE,
              size: "MEDIUM",
              style: "EMPHASIS"
            ),

          },
          align: "CENTER"
        )
      },
      style: "SUCCESS",
      shape: "ROUNDED",
      marginAbove: "STANDARD",
      marginBelow: "LESS",
      showBorder: false(),
      showShadow: true()
    )
  }
),
)

  Discussion posts and replies are publicly visible

Parents Reply Children
  • 0
    Certified Senior Developer
    in reply to Stefan Helzle

    a!localVariables(
      local!pagingInfoWell: a!pagingInfo(
        startIndex: 1,
        batchSize: 4,
        sort: a!sortInfo(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
          ascending: false()
        )
      ),
      local!pagingInfoImproved: a!pagingInfo(
        startIndex: 1,
        batchSize: 4,
        sort: a!sortInfo(
          field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
          ascending: false()
        )
      ),
      local!refresh: a!refreshVariable(
        value: cons!RB_RETRO_REFRESH_COUNT,
        refreshAlways: true()
      ),
      local!retroNotesWell: a!refreshVariable(
        value: a!queryRecordType(
          recordType: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note',
          filters: {
            a!queryFilter(
              field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5f705a6f-3227-4951-a62a-97cf0e65058c}sprintId',
              operator: "=",
              value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id'],
              applyWhen: a!isNotNullOrEmpty(
                ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id']
              )
            ),
            a!queryFilter(
              field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{409d2341-43ff-4832-8396-bf239126f79c}type',
              operator: "=",
              value: cons!RB_INT_NOTE_TYPE_ONE
            ),
            a!queryFilter(
              field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{ac904959-69dc-4c3a-9546-fe8e7c7e6bab}engagementId',
              operator: "=",
              value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId'],
              applyWhen: a!isNotNullOrEmpty(
                ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId']
              )
            )
          },
          pagingInfo: local!pagingInfoWell
        ).data,
        refreshOnVarChange: local!refresh
      ),
      local!retroNotesImproved: a!refreshVariable(
        value: a!queryRecordType(
          recordType: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note',
          filters: {
            a!queryFilter(
              field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5f705a6f-3227-4951-a62a-97cf0e65058c}sprintId',
              operator: "=",
              value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id'],
              applyWhen: a!isNotNullOrEmpty(
                ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id']
              )
            ),
            a!queryFilter(
              field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{409d2341-43ff-4832-8396-bf239126f79c}type',
              operator: "=",
              value: cons!RB_INT_NOTE_TYPE_TWO
            ),
            a!queryFilter(
              field: 'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{ac904959-69dc-4c3a-9546-fe8e7c7e6bab}engagementId',
              operator: "=",
              value: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId'],
              applyWhen: a!isNotNullOrEmpty(
                ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId']
              )
            )
          },
          pagingInfo: local!pagingInfoImproved
        ).data,
        refreshOnVarChange: local!refresh
      ),
      local!whatWentWellSelections,
      local!rbCount: rule!RB_QR_GetCountByFilters(
        retroId: reject(
          fn!isnull,
          append(
            index(
              local!retroNotesImproved,
              'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
              null
            ),
            index(
              local!retroNotesWell,
              'recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id',
              null
            )
          )
        ),
        engagementId: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{8c7bbaa9-a769-43ad-8c66-8f26d232810a}engagementId'],
        sprintId: ri!RB_Sprint['recordType!{2ed51fe2-f404-4c83-9f98-acc7118706b6}RB Sprints.fields.{e1c08089-7001-47b5-acb3-3bc34ed6f430}id']
      ),
      local!finalCount:0,
    
    a!forEach(
      items: local!retroNotesWell,
      expression: {
        a!cardLayout(
          contents: {
            a!richTextDisplayField(
              value: {
                a!richTextIcon(
                  icon: "thumbs-up",
                  size: "MEDIUM_PLUS",
                  link: a!dynamicLink(
                    value: tointeger(local!finalCount) +1,
                    saveInto: { local!finalCount,
                      a!save(
                        local!whatWentWellSelections,
                        if(
                          contains(
                            tointeger(local!whatWentWellSelections),
                            tointeger(
                              fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id']
                            )
                          ),
                          remove(
                            local!whatWentWellSelections,
                            wherecontains(
                              tointeger(
                                fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id']
                              ),
                              tointeger(local!whatWentWellSelections)
                            )
                          ),
                          append(
                            local!whatWentWellSelections,
                            tointeger(
                              fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id']
                            )
                          )
                        )
                      ),
                      
    
                    }
                  ),
                  linkStyle: "STANDALONE"
                ),
                a!richTextItem(
                  text: count(
                    index(local!rbCount,
                    wherecontains(
                      fv!item.['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id'],
                      tointeger(index(local!rbCount,'recordType!{e41e7a6a-3d1c-489c-b9b3-2393b0c24649}RB Count.fields.{783a6d9f-3247-4c2a-b996-a164b0e3a478}retroId',null))
                    ),null))
                ),
                a!richTextItem(
                  text: tointeger(index(
                    local!rbCount,
                    wherecontains(
                      fv!item.['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{5021c120-a5cf-4752-85fe-a3268542bc23}id'],
                      tointeger(
                        index(
                          local!rbCount,
                          'recordType!{e41e7a6a-3d1c-489c-b9b3-2393b0c24649}RB Count.fields.{783a6d9f-3247-4c2a-b996-a164b0e3a478}retroId'
                        ),
                        null
                      )
                    ),
                    'recordType!{e41e7a6a-3d1c-489c-b9b3-2393b0c24649}RB Count.fields.{f8b4ae26-9b55-4755-937b-439a600b8f1b}count',
                    0
                  )) 
                ),
                char(9),
                a!richTextItem(
                  text: fv!item['recordType!{78f32b7c-4150-4c84-baf2-6b2d421a715d}RB Retro Note.fields.{32600b7b-0598-4d83-aee3-e051f27824c7}comment'],
                  color: cons!RB_TXT_PRIMARY_COLOR_HEX_CODE,
                  size: "MEDIUM",
                  style: "EMPHASIS"
                ),
    
              },
              align: "CENTER"
            )
          },
          style: "SUCCESS",
          shape: "ROUNDED",
          marginAbove: "STANDARD",
          marginBelow: "LESS",
          showBorder: false(),
          showShadow: true()
        )
      }
    ),
    )

    I tried the above code by incrementing to +1 . But it's not updating

  • 0
    Certified Lead Developer
    in reply to ankitap9032

    I do not see any obvious reason for it to not work.

    Could it be that you created the local first without assigning a value (zero)? In Appian, trying to add 1 to NULL evaluates to NULL. To make sure this is not the case, refresh the interface by clicking the "TEST" button.

    Simple example:

    a!localVariables(
      local!finalCount: 0,
      a!linkField(
        links: a!dynamicLink(
          label: "+1",
          value: tointeger(local!finalCount) +1,
          saveInto: local!finalCount
        ),
        instructions: local!finalCount
      )
    )