June 2, 2012

Grant access to an action menu or toolbar button conditionally

This entry is part of the Conditional Expressions HowTo.

In Maximo/TPAE menu items are granted per security group in the Security Groups application. Every option available for an application has a corresponding signature option (aka sigoption) record in the SIGOPTION table. Those SigOptions can be configured in the Application Designer.

In this article I will show how is it possible to hide an action menu or a toolbar button conditionally for a specific security group using a conditional expression and a signature option.
As an example I will demonstrate how to hide the 'View History' action menu entry for all purchase orders that have a total cost higher than 100.
Note that the same procedure can be used to show or hide a toolbar button.

Define conditional expression

First of all we need to define conditional expression to implement our business rule. Open Conditional Expression Manager application and Create the following conditional expression.
  • Condition: COST100
  • Description: Total cost is less than 100
  • Expression: totalcost<100

Identify the Signature Option

Understand what SigOption is associated with the action menu entry or toolbar button we want to control. Launch Application Designer and open the PO application. From the action menu select the Add/Modify Select Action Menu and locate the correct row. This could be a little tricky however keep in mind that these rows are listed in the same order as the menu entries. The View History' action menu entry is the second from the list and has a Key Value: VIEWHIST.


If you now close this dialog and open the Add/Modify Signature Options menu entry and locate the SigOption named VIEWHIST. Tate note of the description (View History) and ensure that Visible flag is selected.


Assign the Signature Option to Security Groups

Now is the time to tell Maximo what are the groups that have access to the 'View History' action menu entry in the PO application and what is the business rule that must be satisfied to enable it.
For this example we will apply this rule on MAXADMIN group that typically has access to all applications and options.
Open the Security Groups applications, choose MAXADMIN group, go under Applications tab and search for Purchase Orders application. In the Options for Purchase Orders sections search for 'View History' than set the condition to COST100.


In this way we are telling that the VIEWHIST sigoption must be granted to MAXADMIN group only if the PO cost is less than 100.
Signout of Maximo and login back to force the reload of security settings for MAXADMIN user. Launch the Purchase Orders application and open a PO with a total cost higher than 100 and you will see that the 'View History' action menu entry is not visible.

5 comments:

  1. Hi,

    I was trying to hide the "New" icon for a particular application, but it is not working. The condition I have used is :&PERSONID& IN (SELECT personid FROM XXX_TABLE).

    I put this condition in the security group, but the new icon is still enabled. Even tried restarting the server, but didn't work.

    Am I missing something?

    Thanks & Regards,
    PK

    ReplyDelete
  2. Hi,

    Can you explain the requirement? For which person/ group , the new icon should be hidden?
    And how have you configured in security groups application?

    Regards,
    Aparna

    ReplyDelete
  3. Hi, I wanted to hide Initiate Workorder button from List tab in work order tracking application for few sites. how to achieve it ?

    I tried creating condition exp and associated it to security group, but it is restricting in all other tabs in workorder not in List tab.

    ReplyDelete
  4. Hello Bruno,

    We would like to hide the user interface option to Select Owner, but still let the user use it when a specific workflow is routed. Is this possible? I keep getting the error "BMXAA029E - You are not authorized to perform this action..."

    ReplyDelete
  5. How can we apply sig option for direct print/browser view icons(report) in the toolbar?

    ReplyDelete