- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-27-2024 01:05 AM
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);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-27-2024 02:45 AM
My script was fine I got it sorted I was not calling the function properly in my UI action
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-27-2024 01:11 AM - edited 02-27-2024 01:11 AM
Hi @Afifa2 ,
Plz check this post on how to call a UI page from UI action
- function popupDispList() {
- var gdw = new GlideDialogWindow('UI page name');
- gdw. setTitle('Incidents');
- gdw. setPreference('table', 'incident_list');
- gdw. setPreference('sysparm_view', 'default');
- gdw. render();
Thanks,
Danish
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-27-2024 02:45 AM
My script was fine I got it sorted I was not calling the function properly in my UI action