How to change 'My approval' fields for Change management module

mdsannavulla
Kilo Guru

Hi All,

 

For change management module we are using OOTB UI macro 'approval_summarizer_default' for showing fields in My approvals.

 

Now I want to add some more fields to that My approvals for that where I have to change in UI macro?

 

Below is the OOTB code for that

 

<?xml version="1.0" encoding="utf-8" ?>

<j:jelly trim="true" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

  <g:evaluate var="jvar_has_source" >

      var flag = !${ref}.sysapproval.nil() || !${ref}.source_table.nil();

      flag;

  </g:evaluate>

  <j:if test="${jvar_has_source}">

      <g:evaluate var="jvar_ni" expression="

      var gr = null;

              if ( !${ref}.source_table.nil()) {

                    gr = new GlideRecord(${ref}.source_table);

                                      gr.get( ${ref}.document_id);

                              } else {

                                      gr = new GlideRecord('task');

                                      gr.get(${ref}.sysapproval);

                              }

              " />

      <g:evaluate>

              g_approval_form_request = true; // this global is checked in ACLs

      </g:evaluate>

      <g:evaluate var="jvar_my_form">

              var gc =   new GlideController();

              var p =   new GlidePopup(gc, "${gr.sys_class_name}");

              p.putParameter("sys_id", "${gr.sys_id}");

              p.putParameter("sysparm_view", "approval");

              var rp = p.getRenderProperties();

              rp.setSmallCaption(true);

              var s = p.getPopup();

              s;

      </g:evaluate>

      <tr id="approval_summary_row">

              <td width="100%" colspan="2">

                      <j2:if test="${gs.getProperty('glide.security.use_csrf_token')}" >

  <input type="HIDDEN" name="sysparm_ck" value="$[gs.getSessionToken()]"/>

        </j2:if>

                      <div id="approval_summary" style="padding-top:8px;display:none;">

                <div class="caption" style="padding:4px;">${gs.getMessage('Summary of Item being approved')}</div>

                <div style="padding-left:2px;"><g:no_escape>${jvar_my_form}</g:no_escape></div>

                      </div>

  </td>

      </tr>

      <g:evaluate>

              delete g_approval_form_request; // removes the global

      </g:evaluate>

      <script>

              addRenderEvent(moveSummaryForm);

              function moveSummaryForm() {

                      var e = $("approval_summary");

                      var form = $("sysapproval_approver.do");

                      var formParent = form.parentNode;

                      formParent.appendChild(e);

                      e.show();

              }

      </script>

  </j:if>

</j:jelly>

 

 

See the below screen shot

 

41.png

 

Here I want to add and remove some fields.For that where I have to change in that UI macro

1 ACCEPTED SOLUTION

You can use an if statement in the g:evaluate block where the p.putParameter("sysparm_view", "approval"); line is. Just use the gr object to check the user selected value on the change request and pass in the view name for approval.


View solution in original post

23 REPLIES 23

Brad Tilton
ServiceNow Employee
ServiceNow Employee

The macro is actually calling the approval view of the change request table, so to add or remove fields you would just need to edit that form view and it should be reflected on the approval. You can edit the form view by going to the change request table, right clicking on the header, and choosing Personalize -> Form Layout.


Actually we are having two views for change management module.The fields are different in two views and approvals also different.



In that case how can i differentiate for both the views so that corresponding fields only visible in 'My appovals'


This is the line that is pulling the view:


p.putParameter("sysparm_view", "approval");



You could add a conditional statement that tests something on your change record and then sets the correct view accordingly.


How can i write for default view show the fields in approval view and for other view show the fields in approval 1 view.