Select specific row from only read grid and passing information in process model

Hi all,
I have created an interface from which I can click on a field and access the detail view of the record type used in the interface. From this detail page I have created buttons to perform certain operations from process model, passing the data of the selected row of the record to the process. I would like to do the exact same operations but from the home page, without having to access the detail page, as in the attached screenshot. Maybe even including some related actions. is it possible to do this, and if so, how? I thank everyone in advance

  Discussion posts and replies are publicly visible

Parents
  • There are 2 common (and both fairly easy) approaches for this:

    1, and more "officially" supported, is to use a Record Action on the grid row in question.

    2, more manual (but slightly more flexible, as in doesn't *have* to be tied to a configured Related Action), is to define a column on the grid as a link (i usually like using a Rich Text Icon in a narrow column), which invokes the Start Process Link upon click, passing in the information for that row.

  • Thanks Mike, do you have some example in the documentation to show me please?

  • I didn't find a recipe within the Appian Docs but this is a very simple use case - I just wrote this by hand (taking about 3 minutes) to give you a working example of the second approach:

    a!localVariables(
      
      local!data: {
        a!map(id: 1, name: "Mike"),
        a!map(id: 2, name: "Alberto")
      },
      
      a!gridField(
        data: local!data,
        columns: {
          a!gridColumn(
            label: "Name",
            value: fv!row.name
          ),
          a!gridColumn(
            label: "Id",
            value: fv!row.id
          ),
          a!gridColumn(
            label: "",
            align: "CENTER",
            helpTooltip: "Edit Row Contents",
            width: "ICON_PLUS",
            value: a!richTextDisplayField(
              value: a!richTextItem(
                text: {
                  a!richTextIcon(icon: "Edit", size: "MEDIUM", caption: "Edit Row")
                },
                link: a!startProcessLink(
                  processModel: 1234,  /* replace with a constant which points to your process model */
                  processParameters: {
                    dataPv: fv!row  /* replace "dataPv" with the name of the PV holding an instance of the row CDT */
                  }
                ),
                linkStyle: "STANDALONE"
              )
            )
          )
        }
      )
    )

Reply
  • I didn't find a recipe within the Appian Docs but this is a very simple use case - I just wrote this by hand (taking about 3 minutes) to give you a working example of the second approach:

    a!localVariables(
      
      local!data: {
        a!map(id: 1, name: "Mike"),
        a!map(id: 2, name: "Alberto")
      },
      
      a!gridField(
        data: local!data,
        columns: {
          a!gridColumn(
            label: "Name",
            value: fv!row.name
          ),
          a!gridColumn(
            label: "Id",
            value: fv!row.id
          ),
          a!gridColumn(
            label: "",
            align: "CENTER",
            helpTooltip: "Edit Row Contents",
            width: "ICON_PLUS",
            value: a!richTextDisplayField(
              value: a!richTextItem(
                text: {
                  a!richTextIcon(icon: "Edit", size: "MEDIUM", caption: "Edit Row")
                },
                link: a!startProcessLink(
                  processModel: 1234,  /* replace with a constant which points to your process model */
                  processParameters: {
                    dataPv: fv!row  /* replace "dataPv" with the name of the PV holding an instance of the row CDT */
                  }
                ),
                linkStyle: "STANDALONE"
              )
            )
          )
        }
      )
    )

Children