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
  • +1
    Certified Lead Developer

    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?

  • +1
    Certified Lead Developer
    in reply to albertob5031

    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"
              )
            )
          )
        }
      )
    )

  • 0
    Certified Associate Developer
    in reply to Mike Schmitt

    follow this idea and the process model has a startup form and when that cancel button is clicked it left the underneath Temp page open, is there a way to do a clean close and return back to the gridField component in interface where the process model is started from? I tried using both linkSyles STANDALONE and INLINE and both has the same residual effect. How do I clean close the process model when it terminated getting back to the original interface without adding another User Input Task pointing back to the original interface. 

Reply
  • 0
    Certified Associate Developer
    in reply to Mike Schmitt

    follow this idea and the process model has a startup form and when that cancel button is clicked it left the underneath Temp page open, is there a way to do a clean close and return back to the gridField component in interface where the process model is started from? I tried using both linkSyles STANDALONE and INLINE and both has the same residual effect. How do I clean close the process model when it terminated getting back to the original interface without adding another User Input Task pointing back to the original interface. 

Children