How to use record links in a paging grid?

Hello,

I am trying to build a paging grid based on a data store entity. So far I have been successful in populating the grid and everything is working as expected. A new requirement was made and now the reqeust name (which is the first column of the grid) should be a link to the record it correspond to (i.e. I click on the request name and I should navigate to the summary view of that record). I've tried a few different approached but haven't been able to get a working solution. Any help will be appreciated. Thanks in advance.

 

Approach #1:

(Only creates a link in the first item in the grid and when clicked navigates to records but errors out "An Error Has Occurred An error was encountered while processing your request. ")

a!gridTextColumn(
              label: "Name",
              field: "contributionRequestName",
              data: index(
                local!datasubset.data,
                "contributionRequestName",
                null
              ),
              links: a!recordLink(
                label: index(
                  local!datasubset.data,
                  "contributionRequestName",
                  null
                ),
                recordType: cons!SCP_CONTRIBUTION_REQUEST_RECORD_TYPE,
                identifier: index(
                  local!datasubset.data,
                  "contributionRequestName",
                  null
                )
              )
            )

Approach #2:

(Only creates a link in the first item in the grid and when clicked navigates to records but errors out "An Error Has Occurred The record data does not exist, has been deleted, or you do not have sufficient privileges to access it.")

a!gridTextColumn(
              label: "Name",
              field: "contributionRequestName",
              data: index(
                local!datasubset.data,
                "contributionRequestName",
                null
              ),
              links: a!recordLink(
                label: index(
                  local!datasubset.data,
                  "contributionRequestName",
                  null
                ),
                recordType: cons!SCP_CONTRIBUTION_REQUEST_RECORD_TYPE,
                identifier:local!datasubset.data.id
              )
            )

  Discussion posts and replies are publicly visible

Parents
  • Hi Oscar,

    You're almost there - you want to use a looping function to display your link for every row. Try using a!forEach() around the recordLink. Additionally, your identifier should then be the fv!item.id so as to link you to the specific record for the row. Currently, you're identifier is a list of ids.

    For more information around the a!forEach function, check this out: docs.appian.com/.../fnc_looping_a_foreach.html
  • Thank you, I think I am getting closer. As you mentioned, adding the looping function did create a link for every row, however I think the identifier portion is not working as expected as they all get redirected to environment.url/.../summary which results in the following error: "An Error Has Occurred The record data does not exist, has been deleted, or you do not have sufficient privileges to access it." This is the code I used. Thanks again. 

     

    a!gridTextColumn(
                  label: "Name",
                  field: "contributionRequestName",
                  data: index(
                    local!datasubset.data,
                    "contributionRequestName",
                    null
                  ),
                  links: a!forEach(
                    items: local!datasubset.data,
                    expression: a!recordLink(
                      label: index(
                        local!datasubset.data,
                        "contributionRequestName",
                        null
                      ),
                      recordType: cons!SCP_CONTRIBUTION_REQUEST_RECORD_TYPE,
                      identifier: fv!item.id
                    )
                  )
                )

  • Hello Oscar,

    I added some comments  to the Code

    1) since you are in a for each you need to change this for each item, with "fv!item" that way you will get the value. 

    2) From the cdt what you are displaying, please make sure that the primary key is "id" and not other field. 

    to do this open the CDT and check which filed has the "yellow key" on it, if  the fields is not "id" then please change it in the code "fv!item.idField" or use index as you did with the data [index(fv!item,"idField",null)]

    I hope this still help you. 

     

    a!gridTextColumn(
      label: "Name",
      field: "contributionRequestName",
      data: index(
        local!datasubset.data,
        "contributionRequestName",
        null
      ),
      links: a!forEach(
        items: local!datasubset.data,
        expression: a!recordLink(
          label: index(
            fv!item, /*(1)*/
            "contributionRequestName",
            null
          ),
          recordType: cons!SCP_CONTRIBUTION_REQUEST_RECORD_TYPE,
          identifier: fv!item.id /* (2)*/
        )
      )
    )

     

    Jose

  • Thank you all, it was all of great help! I finally got it working.
Reply Children
No Data