- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2025 12:31 PM
On the KBA edit page, I have a UI action with the following:
function openAttestationWindow() {
var dialog = new GlideDialogWindow("attestation_window");
dialog.setWidth(400);
dialog.setTitle("Article Attestation");
dialog.setPreference("sysparm_sys_id", g_form.getUniqueValue()); // Pass sysparm_sys_id correctly
dialog.setPreference("resizable", true);
dialog.render();
}
This correctly opens my UI page where I have script that prints some HTML, but none of the control code seems to work. Even something as simple as this:
<g:evaluate var="kbSysId" expression="sysparm_sys_id ? sysparm_sys_id : 'No sys_id found'"/>
<g:out var="kbSysId"/>
This should print SOMETHING, but prints nothing. I have it sandwiched between text so I know that the text is working, but the jelly code is just ignored. Same for this:
<g:evaluate var="articleOwnerStatus" expression="current.article_owner ? 'Complete' : 'Incomplete'"/>
<li style="color: ${articleOwnerStatus == 'Complete' ? 'green' : 'orange'};">${articleOwnerStatus == 'Complete' ? '✔' : '✘'} Has an Article Owner (Dept) value</li>
I get the LI bullet with text, but no color and no check/x. What is going on?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2025 03:46 PM
Apparently g:out does not work for unknown reasons, but I was able to finally get this working using the following:
<g:evaluate var="kbRecord" jelly="true" object="true">
var kbRecordGr = new GlideRecord("kb_knowledge");
kbRecordGr.get(RP.getParameterValue("sysparm_sys_id"));
kbRecordGr;
</g:evaluate>
${kbRecordGr.short_description}<br/>
${kbRecordGr.cmdb_ci.name}<br/>
${kbRecordGr.u_article_owner.name}<br/>
<j:if test="${kbRecordGr.flagged}">
<p>flagged</p>
</j:if>
<j:if test="${!kbRecordGr.flagged}">
<p>Noteflagged</p>
</j:if>
The first thing is that I needed to do a direct glide lookup with the sys_id passed from before. Then I can just check the values, but for NO REASON, I have to use the kbRecordGr value from the evaluate and not kbRecord itself. It's incredibly weird, but it finally works.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2025 03:43 PM
Okay, can you please try this:
<?xml version="1.0" encoding="utf-8"?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide">
<div style="padding: 10px;">
<h3>Article Attestation</h3>
<!-- Test if Jelly is working -->
<div style="color: gray; font-size: 0.9em;">
<g:out>✅ Jelly Engine Active</g:out>
</div>
<!-- Display KB Article Sys ID -->
<div>
<strong>Article Sys ID:</strong>
<g:evaluate var="kbSysId" expression="sysparm_sys_id ? sysparm_sys_id : 'No sys_id provided'"/>
<g:out var="kbSysId"/>
</div>
<!-- Fetch KB Article Record -->
<g:evaluate var="current" expression="new GlideRecord('kb_knowledge').get('${sysparm_sys_id}')"/>
<!-- Display Article Owner Status (no colors) -->
<div>
<strong>Article Ownership Status:</strong>
<g:choose>
<g:when test="${current.article_owner}">
✓
<em>${current.article_owner.getDisplayValue()}</em>
</g:when>
<g:otherwise>
✗
No article owner assigned
</g:otherwise>
</g:choose>
</div>
<!-- Add spacing for readability -->
<hr style="border: none; height: 20px;">
</div>
</j:jelly>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2025 03:46 PM
Apparently g:out does not work for unknown reasons, but I was able to finally get this working using the following:
<g:evaluate var="kbRecord" jelly="true" object="true">
var kbRecordGr = new GlideRecord("kb_knowledge");
kbRecordGr.get(RP.getParameterValue("sysparm_sys_id"));
kbRecordGr;
</g:evaluate>
${kbRecordGr.short_description}<br/>
${kbRecordGr.cmdb_ci.name}<br/>
${kbRecordGr.u_article_owner.name}<br/>
<j:if test="${kbRecordGr.flagged}">
<p>flagged</p>
</j:if>
<j:if test="${!kbRecordGr.flagged}">
<p>Noteflagged</p>
</j:if>
The first thing is that I needed to do a direct glide lookup with the sys_id passed from before. Then I can just check the values, but for NO REASON, I have to use the kbRecordGr value from the evaluate and not kbRecord itself. It's incredibly weird, but it finally works.