RFC Approvers are not able to override the approvals and few buttons are not visible


We have upgraded our SM from SM9.3 to SM9.40.0022 version. Before migration security roles and permissions use to work perfectly in our SM. After migrating to SM9.40.0022 many of the security roles and areas in Change Management is not working as expected. For an example, though the user is having permission to override the approvals per his change profile definition, he is not able to override the approvals. becasue the override button and some other buttons itself not coming up though he is having permission to override as per his Change Profile.(Under Approvals\Groups tab of Change management profile Can override approvals is checked in).

For the same issue we have raised an Service Manager case#4652484509 which has been pending for a longer period by now. If have access please review the above mentioned ticket for full length information.

Please check and provide the solution, i was thing the issue is some where in security roles and security areas related to change mangement in 9.40. Please let know if any further information required or let us know to demo the issue lively if available.



  • Hello DMK,


    I have contacted the enginner assigned to your case and they will get back to you on this topic.

    Please, keep in mind that the community forum is not the place to discuss open incidents.

    Should you consider the investigation progress inadequate, please open a DM request.

    Thank you,


  • Hi,

    When you upgraded to SM9.40. Do you have Process Designer enabled now?

    There are some differences betweein previous versions SM without Process Designer and new versions with it


  • Thanks for your information.

    Please can you atleast explain the security roles & security areas working in SM9.40 and how they are overriting the profile definitions that we have defined at change profile level?



  • Hi Ikerb,

    Sorry, please can you help me how to check whether process designer enable or not in my system? and how it is related ot my issue?

    Thanks in advance.



  • Hi,

    If you didn't do anything during the upgrade, probably your system has Process Designer enabled by now.

    There are several changes in regards to approvals (and other parts as well). As an example, see Unable to configure operators for override approvals

    I suggest you to take a look at the documentation. Here's a useful link where you can find several manuals and other guides SM documentation set


  • In classic mode, the ChM Profile included a dedicated checkbox for Approval Override authority. 

    In Codeless, several legacy profile rights were combined in the Expert and Admin security role options. Override authority was rolled into Admin. If the user is assigned the Admin right in the change security role, they will have override authority. 

  • Hello John Stagaman,

    Actually we dont want to give admin right to every users security role, and we would need to acheive the need by not giving the admin right. It should work simply by checking the checkbox of Approval Override authority in Chm profiles like you have mentioned in classic.

    Thanks & Regards,




  • DMK,

    Well, it doesn't work like it did in Classic, but you can tailor an alternative method. You could:

    1. Add a setting to the change security role for override authority.
    2. Update the display options and/or the workflow action conditions to reference your custom setting instead of the Admin setting in the change role. 

    There may be a few other steps, but it should be tailorable. 

  • Note that the environment variable is generated in the SetupCm3Environment script library record. You could update that you use another input (other than Admin) to control override. You would want to update this if you add a new setting for override.

    vars.$G_cm3r_environment["approve.override"] = cm3r_admin;
    _getRights = lib.security.getRights;
    _val = system.functions.val;
    vars.$G_legacy_change=_val(lib.settings.getSettingValue("Change", "legacy"), 4);
    function cm3rEnvironment(){
    vars.$G_cm3r_environment["name"] = "Change Environment";
    vars.$G_cm3r_environment["area"] = "r";
    cm3r_new = _val(_getRights("Change", "new"),4);
    cm3r_expert = _val(_getRights("Change", "expert"),4);
    cm3r_admin = _val(_getRights("Change", "admin"),4);
    cm3r_update = _getRights("Change", "update");
    cm3r_close = _getRights("Change", "delete")!=null && _getRights("Change", "delete")!="never";
    cm3r_view = _val(_getRights("Change", "view"),4);
    vars.$G_cm3r_environment["alert"] = cm3r_expert;
    vars.$G_cm3r_environment["apprdism"] = cm3r_expert;
    vars.$G_cm3r_environment["approve.mass"] = cm3r_expert;
    vars.$G_cm3r_environment["approve.override"] = cm3r_admin;
    vars.$G_cm3r_environment["clear"] = cm3r_view;
    vars.$G_cm3r_environment["close"] = cm3r_close ;
    vars.$G_cm3r_environment["closed.update"] = cm3r_expert;
    vars.$G_cm3r_environment["count"] = cm3r_view;
    vars.$G_cm3r_environment["cpyopn"] = cm3r_new;
    vars.$G_cm3r_environment["db.complex"] = cm3r_expert;
    vars.$G_cm3r_environment["db.template"] = cm3r_expert;
    vars.$G_cm3r_environment["duplicates"] = cm3r_expert;
    vars.$G_cm3r_environment["fill"] = cm3r_view;
    vars.$G_cm3r_environment["find"] = cm3r_view;
    vars.$G_cm3r_environment["irquery"] = cm3r_view;
    vars.$G_cm3r_environment["new"] = cm3r_new;
    vars.$G_cm3r_environment["new.category"] = cm3r_admin;
    vars.$G_cm3r_environment["notify"] = cm3r_view;
    vars.$G_cm3r_environment["open"] = cm3r_new;
    vars.$G_cm3r_environment["pagelist"] = cm3r_expert;
    vars.$G_cm3r_environment["phase.sel"] = cm3r_admin;
    vars.$G_cm3r_environment["query.window"] = cm3r_expert;
    vars.$G_cm3r_environment["show.parent"] = cm3r_view;
    vars.$G_cm3r_environment["tasks"] = cm3r_view;
    vars.$G_cm3r_environment["update"] = cm3r_update;
    vars.$G_cm3r_environment["view"] = cm3r_view;
    vars.$G_cm3r_environment["views"] = cm3r_view;
    vars.$G_cm3r_environment["approval.groups"] =vars.$G_myGroups.approver_of;
    vars.$G_cm3r_environment["groups"] = vars.$G_myGroups.member_of;
    vars.$G_cm3r_environment["manager.group"] = vars.$G_myGroups.member_of;
    vars.$G_cm3r_environment["allowed.cats"] = _getRights("Change", "allowedCategory");
    vars.$G_cm3r_environment["allowedStatus"] = _getRights("Change", "allowedStatus");
    vars.$G_cm3r_environment["append.query"] = _getRights("Change", "append.query");
    vars.$G_cm3r_environment["approvals"] = _val(_getRights("Change", "approvals"),4);
    vars.$G_cm3r_environment["approve.delegate"] = _val(_getRights("Change", "approve.delegate"),4);
    vars.$G_cm3r_environment["default.category"] = _getRights("Change", "default.category");
    vars.$G_cm3r_environment["default.task.category"] = _getRights("Change", "default.task.category");
    vars.$G_cm3r_environment["initial.fmt"] = _getRights("Change", "initial.format");
    vars.$G_cm3r_environment["initial.request.inbox"] = _getRights("Change", "initial.request.inbox");
    vars.$G_cm3r_environment["initial.task.inbox"] = _getRights("Change", "initial.task.inbox");
    vars.$G_cm3r_environment["modifyTemplate"] = _val(_getRights("Change", "modifyTemplate"),4);
    vars.$G_cm3r_environment["partial.key"] = _val(_getRights("Change", "partial.key"),4);
    vars.$G_cm3r_environment["qbe.format"] = _getRights("Change", "qbe.format");
    vars.$G_cm3r_environment["reopen"] = _val(_getRights("Change", "reopen"),4);
    vars.$G_cm3r_environment["request.manage.format"] = _getRights("Change", "request.manage.format");
    vars.$G_cm3r_environment["skip.warning"] = _val(_getRights("Change", "skip.warning"),4);
    vars.$G_cm3r_environment["task.manage.format"] = _getRights("Change", "task.manage.format");
    /**start cm3r tailoring fields**/
    /**end cm3r tailoring fields**/
    function cm3tEnvironment(){
    vars.$G_cm3t_environment["name"] = "Change Environment";
    vars.$G_cm3t_environment["area"] = "t";
    cm3t_new = _val(_getRights("Change Tasks", "new"),4);
    cm3t_expert = _val(_getRights("Change Tasks", "expert"),4);
    cm3t_admin = _val(_getRights("Change Tasks", "admin"),4);
    cm3t_update = _getRights("Change Tasks", "update");
    cm3t_close = _getRights("Change Tasks", "delete")!=null && _getRights("Change Tasks", "delete")!="never";
    cm3t_view = _val(_getRights("Change Tasks", "view"),4);
    vars.$G_cm3t_environment["alert"] = cm3t_expert;
    vars.$G_cm3t_environment["apprdism"] = cm3t_expert;
    vars.$G_cm3t_environment["approve.mass"] = cm3t_expert;
    vars.$G_cm3t_environment["approve.override"] = cm3t_admin;
    vars.$G_cm3t_environment["clear"] = cm3t_view;
    vars.$G_cm3t_environment["close"] = cm3t_close;
    vars.$G_cm3t_environment["closed.update"] = cm3t_expert;
    vars.$G_cm3t_environment["count"] = cm3t_view;
    vars.$G_cm3t_environment["cpyopn"] = cm3t_new;
    vars.$G_cm3t_environment["db.complex"] = cm3t_expert;
    vars.$G_cm3t_environment["db.template"] = cm3t_expert;
    vars.$G_cm3t_environment["duplicates"] = cm3t_expert;
    vars.$G_cm3t_environment["fill"] = cm3t_view;
    vars.$G_cm3t_environment["find"] = cm3t_view;
    vars.$G_cm3t_environment["irquery"] = cm3t_view;
    vars.$G_cm3t_environment["new"] = cm3t_new;
    vars.$G_cm3t_environment["new.category"] = cm3t_admin;
    vars.$G_cm3t_environment["notify"] = cm3t_view;
    vars.$G_cm3t_environment["open"] = cm3t_new;
    vars.$G_cm3t_environment["pagelist"] = cm3t_expert;
    vars.$G_cm3t_environment["phase.sel"] = cm3t_admin;
    vars.$G_cm3t_environment["query.window"] = cm3t_expert;
    vars.$G_cm3t_environment["show.parent"] = cm3t_view;
    vars.$G_cm3t_environment["tasks"] = cm3t_view;
    vars.$G_cm3t_environment["update"] = cm3t_update;
    vars.$G_cm3t_environment["view"] = cm3t_view;
    vars.$G_cm3t_environment["views"] = cm3t_view;
    vars.$G_cm3t_environment["approval.groups"] =vars.$G_myGroups.approver_of;
    vars.$G_cm3t_environment["groups"] = vars.$G_myGroups.member_of;
    vars.$G_cm3t_environment["allowed.cats"] = _getRights("Change Tasks", "allowedCategory");
    vars.$G_cm3t_environment["allowedStatus"] = _getRights("Change Tasks", "allowedStatus");
    vars.$G_cm3t_environment["append.query"] = _getRights("Change Tasks", "append.query");
    vars.$G_cm3t_environment["approvals"] = _val(_getRights("Change Tasks", "approvals"),4);
    vars.$G_cm3t_environment["approve.delegate"] = _val(_getRights("Change Tasks", "approve.delegate"),4);
    vars.$G_cm3t_environment["default.category"] = _getRights("Change Tasks", "default.category");
    vars.$G_cm3t_environment["default.task.category"] = _getRights("Change Tasks", "default.task.category");
    vars.$G_cm3t_environment["initial.fmt"] = _getRights("Change Tasks", "initial.format");
    vars.$G_cm3t_environment["initial.request.inbox"] = _getRights("Change Tasks", "initial.request.inbox");
    vars.$G_cm3t_environment["initial.task.inbox"] = _getRights("Change Tasks", "initial.task.inbox");
    vars.$G_cm3t_environment["modifyTemplate"] = _val(_getRights("Change Tasks", "modifyTemplate"),4);
    vars.$G_cm3t_environment["partial.key"] = _val(_getRights("Change Tasks", "partial.key"),4);
    vars.$G_cm3t_environment["qbe.format"] = _getRights("Change Tasks", "qbe.format");
    vars.$G_cm3t_environment["reopen"] = _val(_getRights("Change Tasks", "reopen"),4);
    vars.$G_cm3t_environment["request.manage.format"] = _getRights("Change Tasks", "request.manage.format");
    vars.$G_cm3t_environment["skip.warning"] = _val(_getRights("Change Tasks", "skip.warning"),4);
    vars.$G_cm3t_environment["task.manage.format"] = _getRights("Change Tasks", "task.manage.format");
    /**start cm3t tailoring fields**/
    /**end cm3t tailoring fields**/


  • Verified Answer

    Hi All,

    I got the solution to my problem by adding Admin check box in Change Profile records.

    And controlling the change approval conditions based on that added Admin check box resolved my problem.