Facing calling UI Page from UI Action

Afifa2
Tera Expert

I have created a custom UI Action "Compliance Certificate" on Entity Type. This UI action should pull all the entities, its controls, compliant controls and Non-Compliant controls in a pdf format.

My UI Page :

 

 

 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<!-- Header -->
  <p>To,</p>
  <p>The Compliance Reviewer,</p>

  <!-- Compliance Report Information -->
  <p>COMPLIANCE REPORT FOR THE PERIOD QTR-1 (January-2024 to Feb-2024)</p>

  <!-- Confirmation Statement -->
  <p>I am in adherence to applicable statutory / regulatory obligations owned by me</p>
<p>A summary of the compliance report covering partial and non-compliance controls are given below</p>
<j:set var="jvar_doc_id" value="${RP.getParameterValue('sysparm_sys_id')}"/>

   <g:evaluate var="jvar_now_entity" object="true">
       var eng=new GlideRecord('sn_grc_m2m_profile_profile_type');
       eng.addEncodedQuery('profile_type=${jvar_doc_id}');
	   eng.query();
	   eng;
   </g:evaluate>
   <div align="center">
   <table align="center" style="border:none;margin-left:auto;margin-right:auto;width: 70%;">
       <tbody>
           <tr style="height:0pt;">
               <td style="border:solid#000000 1pt;vertical-align:top;background-color:#4472c4;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#ffffff;background-color:transparent;font-weight:700;">Compliance Verticle</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;background-color:#4472c4;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#ffffff;background-color:transparent;font-weight:700;">Control Number</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;background-color:#4472c4;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#ffffff;background-color:transparent;font-weight:700;">Complaint Control</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;background-color:#4472c4;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#ffffff;background-color:transparent;font-weight:700;">Non-Compliant Control </p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;background-color:#4472c4;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#ffffff;background-color:transparent;font-weight:700;">Compliance Score</p>
               </td>
               
               </tr>


<j:while test="${jvar_now_entity.next()}">
<g:evaluate var="jvar_now_entity_id" jelly="true" object="true">
var id=jelly.jvar_now_entity.sys_id;
var first_gr=new GlideRecord('sn_grc_m2m_profile_profile_type');
first_gr.get(id)
var control_gr=new GlideRecord('sn_grc_profile');
control_gr.get(first_gr.profile);
control_gr
</g:evaluate>

<g:evaluate var="jvar_now_control_no" jelly="true" object="true">
var id=jelly.jvar_now_entity_id.sys_id;
var control_gr=new GlideRecord('sn_compliance_control');
control_gr.addEncodedQuery('profile='+id);
control_gr.query();
control_gr.getRowCount();
</g:evaluate>
<g:evaluate var="jvar_now_control_no_comp" jelly="true" object="true">
var id=jelly.jvar_now_entity_id.sys_id;
var control_gr=new GlideRecord('sn_compliance_control');
control_gr.addEncodedQuery('profile='+id+'^status=compliant');
control_gr.query();
control_gr.getRowCount();
</g:evaluate>
<g:evaluate var="jvar_now_control_no_non_comp" jelly="true" object="true">
var id=jelly.jvar_now_entity_id.sys_id;
var control_gr=new GlideRecord('sn_compliance_control');
control_gr.addEncodedQuery('profile='+id +'^status=non_compliant');
control_gr.query();
control_gr.getRowCount();
</g:evaluate>
           <tr style="height:0pt;">
               <td style="border:solid#000000 1pt;vertical-align:top;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#000000;background-color:transparent;">${jvar_now_entity_id.getValue('name')}</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#000000;background-color:transparent;">${jvar_now_control_no}</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#000000;background-color:transparent;">${jvar_now_control_no_comp}</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#000000;background-color:transparent;">${jvar_now_control_no_non_comp}</p>
               </td>
               <td style="border:solid#000000 1pt;vertical-align:top;padding:5pt;">
                   <p style="font-size:11pt;font-family:Calibri,sans-serif;color:#000000;background-color:transparent;">${jvar_now_entity_id.getValue('compliance_score')}</p>
               </td>
		   </tr>
</j:while>
</tbody>
   </table>
   </div>

   <p>Yours Sincerely,</p>
  <p>Compliance Owner</p>

</j:jelly>

 

 

 

 

My UI Action:

 

 

 

 

function openCustomPage() {
var url ='sn_compliance_compliance_report.do?sysparm_sys_id='+g_form.getUniqueValue();
top.window.open(url);

 

 

 

}
Currently its not calling the UI page .
Also please let me know if I am missing anything else to generate the details mentioned in UI page in pdf format.
1 ACCEPTED SOLUTION

Afifa2
Tera Expert

My script was fine I got it sorted I was not calling the function properly in my UI action

 

View solution in original post

2 REPLIES 2

Danish Bhairag2
Tera Sage
Tera Sage

Hi @Afifa2 ,

 

Plz check this post on how to call a UI page from UI action

https://www.servicenow.com/community/itsm-forum/code-to-call-ui-page-from-ui-action-button/m-p/51738...

 

  1. function popupDispList() {
  2. var gdw = new GlideDialogWindow('UI page name');
  3. gdw. setTitle('Incidents');
  4. gdw. setPreference('table', 'incident_list');
  5. gdw. setPreference('sysparm_view', 'default');
  6. gdw. render();

 

Thanks,

Danish

Afifa2
Tera Expert

My script was fine I got it sorted I was not calling the function properly in my UI action