how to have the Approval related buttons similar to approval.g form in cm3r forms


Currently in our Change Management module, change approvals are implemented and working in such a way, respective approver of the RFC can go to the Approvals tab in cm3r form and clicking the respective approval, it will open another form with name approval.g. There the user can see Approve, Deny, Retract and etc buttons to click the respective button as per need.

Now we ahve a requirement to implement those buttons like Approve, Deny, Retract on main cm3r form also, so that approver no need to go always to the subform(approval.g) and having buttons on main cm3r form he can approve, deny or retract appropriately.

I have challenges in implementing the same as we have to check the values from other table called Approval to check and compare if the user logged in is a valid approver or not and if he already approved then only retract button to show up some thing like that.

can any one suggest how to implement and how to do the validations on cm3r forms for the values in Approval table.

Thanks & Regards,


  • Hi DMK,

    What you are looking to implement is possible but requires to write a lot of code to accomplish it. If you can code using Javascript what you can do is this:

    1- You can create some Script Library records that checks based on the current record and current operator if it's an approval record.

    2- If it's then you can populate some control variables to tell some custom display options for approve, deny or retract if they need to be on or off depending if the operator requires to approve or deny or in case it has been approved or denied to enable the retry button.

    3- If you are able to code the javascript to create the control variable you use those control variable for the display option to be available.

    4- Once the display option are ready you can call the same approval process records used by approval module to perform the approve, deny or retract action.

    This is really advanced tailoring and such functionality probable requires several days of coding and testing.

    SM Support offers technical service days where we can look at this requirement and tell you how much time and effort requires and give you an financial offer. I understand you want to do it yourself and I don't see a problem but this is a really important effort.

    If you agree and you can provide your contact information to me at I'll be glad to engage our support sales team to discuss with you.


  • Actually, this is quite easy to do (less than  15 minutes, really!). No custom code is needed: it's just copy and modify.

    If you look at the More Actions menu of a record in an approval phase, it already includes the display options that you need.

    Users can execute change approval actions by selecting More Actions > Approval > Approve More Actions > Approval > Deny,  or More Actions > Approval > Retract.  There is no need to click on the pending approval item in the record itself; simply making users aware of the More Actions > Approval options may be acceptable as a solution. If not, it is easy to add buttons to the toolbar for the same actions.

    • These options are already filtered by "can you approve", "can you deny", or "can you retract" the displayed record. Note that Change Admins and SysAdmins see all three options based on the out of box conditions; do not test the conditional display when logged in as a Change user wth Admin rights or as a SysAdmin.
    • The individual display option conditions include references to $L.approval.intersect, $L.retract.intersect, and other variables. These are initialized in the display screen at record display and determine if the displayed record can be approved or denied or if a previous approval action can be retracted by the logged in user.
    • You can create a non-nested copy of each approval related display option and assign the new options low enough GUI IDs to display in the toolbar (e.g. 13, 14, 15). That's it. Done. 


    If the Approval options are defined as Workflow Actions in Codeless Mode, you can just copy them to add new ones which are displayed in the toolbar instead of the More Actions Menu. Just call the same actions and copy the conditions.