Tabs feature Process Modeler/Chrome in Appian UI

Certified Senior Developer

We have a requirement where user wants to show the summary details in a new tab (same chrome tab) on the same interface when a link is clicked.

Currently, we are passing the data of a particular row in the grid to the form using a process model. I mean running a process model to show the read only summary view but that's shown in same tab overriding the current view.

But, they want that a new tab open on same UI (same chrome tab) like in process modeler in Appian to show the summary.

Is it achievable in Appian?

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    If you're meaning the tabs that are within Appian, so that you have one Chrome tab showing multiple Appian tabs, I think something like what you want could be possible with some rigging.

    So, when your process is done and you're kicked back to the same screen, you need to update one of the parameters (you could also possibly manage with local variables) that tells the interface to display the other tab instead.

    If you're doing a!startProcess, you have the option of starting the process first, then changing the variable that says which interface tab is showing.  That happens right away, so it's almost inevitable that you will show the screen before the data is updated.  In that case you would assuredly need a refresh, possibly automatic and manual.

      You can also configure it to attempt a query or two in sequence that will likely take just longer than the process you called, and at the end of the chain of localVariable updates, the last one in the chain is the variable that determines which "tab" is showing on your interface.  That might be a good approach if you happen to need all the data you're querying to display on the new "tab" anyway.

  • 0
    Certified Senior Developer
    in reply to Dave Lewis

    I am little confused with updating variables, let's say first approach, user clicks the link, process model kicks and flow moves to User input task, I can send a flag as true, something called, "clickedOnLink". And then pass the clickedOnLink to UI, then how can I tell interface that rather than overriding the current view and then showing in the same tab, create a new tab in same interface next to the one in which you have that data grid, and open the summary details UI in that new tab. Like image I attached in  comment

Reply
  • 0
    Certified Senior Developer
    in reply to Dave Lewis

    I am little confused with updating variables, let's say first approach, user clicks the link, process model kicks and flow moves to User input task, I can send a flag as true, something called, "clickedOnLink". And then pass the clickedOnLink to UI, then how can I tell interface that rather than overriding the current view and then showing in the same tab, create a new tab in same interface next to the one in which you have that data grid, and open the summary details UI in that new tab. Like image I attached in  comment

Children
  • +1
    Certified Lead Developer
    in reply to varunbawa

    a!startProcessLink(), if that's even what you want to go with, does not necessarily involve having an interface at all.  It just runs in the background, however long it takes.  The user interface is completely unaware of it and just moves on before it's done.  Who even knows when it's done?

    The interface just goes to the next line of your saveInto,

    a!save(local!showFirstForm, false)

    a!save(local!showSecondForm, true)

    The rest is up to the showWhen parameters of your sections, or however you choose to lay out your interface.  In this way, you really never DO leave the same bit of SAIL.  It's always the same bit of SAIL the user is looking at; just within that different parts displayed or not displayed which mimics navigation.

  • 0
    Certified Senior Developer
    in reply to Dave Lewis

    yeah correct. I tried implementing the same way and it worked. thanks. But only issue is with closing of tab now. Can we achieve this functionality that we can have a small X button in the corner of tab to close the current active or any inactive tab?

    Couldn't figure out a way to achieve this. Tabs are opening but no way to close them.

    Thanks for help. Really appreciate it.

  • +1
    Certified Lead Developer
    in reply to varunbawa

    That's going to need a few variables.

    You could have a list of tabs that show, then forEach( items: list of Tabs, expression: doohickie at the top of the page)

    The doohickie at the top of the page (really laying on the technical jargon today) could feature a red X rich text with a dynamicLink that removes the one at this index from list of tabs.

    Then you would possibly need separate variable to store which index on the list is currently being displayed.  That doohickie might be shaded or blue or something when that's set, and that Section will have it's showWhen true.

    Next, you need to account for what happens when the user deletes the tab they're looking at right now.  Maybe the X is gray and they can't while they're looking.  Maybe you find the tab to the immediate left and select that and display it.  Maybe none of the tabs are selected and you display nothing.  If you don't deliberately decide the edge case now, what you're bound to get is a pink box.

  • 0
    Certified Senior Developer
    in reply to Dave Lewis

    For now we have created a close tab button in the form itself to close the current tab with the logic you mentioned above.

    But, I am still curious if can add an X in the corner like image attached rather than having a button on form.

    When I make card as clickable link it it is clicked as whole single button not like other tab functionality like closing on X and activating the tab on clicking on remaining portion.