Jelly g:evaluate
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-15-2014 01:25 PM
Hi everyone,
I am attempting to create a UI page that will display in a select box a list of approvers for a particular record. I am having issues getting values from my <g:evaluate> statement.
See attached for what I have so far. Any help or advice is greatly appreciated.
Thanks
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:ui_form>
<g:evaluate var="jvar_doc_parent"
expression="RP.getWindowProperties().get('parent')" />
<g:evaluate var="jvar_project_manager"
expression="RP.getWindowProperties().get('project_manager')" />
<g:evaluate var="jvar_approvers" jelly="true" object="true">
var grApprovers = new GlideRecord('sysapproval_approver');
var grProject = new GlideRecord('u_marketing_projects');
var grDoc = new GlideRecord('dms_document');
var grRev = new GlideRecord('dms_document_revision');
grProject.get('jelly.jvar_doc_parent');
gs.log('Project = ' + grProject);
grDoc.addQuery('u_related_project',grProject);
grDoc.query();
while (grDoc.next()) {
gs.log('Doc = ' + grDoc.name);
var query = 'stageINawaiting_review,awaiting_approval^document=' + grDoc.sys_id;
grRev.addEncodedQuery(query);
grRev.query();
while grRev.next() {
gs.log('Rev = ' + grRev.name);
grApprovers.addQuery('document_id',grRev.sys_id});
grApprovers.addQuery('state','IN','requested','not requested');
grApprovers.query();
grApprovers;
}
}
</g:evaluate>
<p>Bypass proofing for:</p>
<select id='approvers'>
<j:while test="${jvar_approvers.next()}">
<option value="${jvar_approvers.getValue('sys_id')}">${jvar_approvers.getValue('approver')}</option>
</j:while>
</select>
<input type="hidden" name="project_manager" value="${jvar_project_manager}" />
<input type="hidden" name="project" value="${grProject}" />
<input type="hidden" name="doc" value="${grDoc}" />
<input type="hidden" name="rev" value="${grRev}" />
<input type="hidden" name="parent" value="${jvar_doc_parent}" />
<br />
<g:dialog_buttons_ok_cancel ok="return true" />
</g:ui_form>
</j:jelly>
- Labels:
-
User Interface (UI)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2014 04:55 AM
I think you have a syntax error:
grRev.query();
while grRev.next() { // you are missing parenthesis
gs.log('Rev = ' + grRev.name);
you forgot to have parenthesis for the while loop condition.
If this doesnt not work. send us the logs that you get
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2014 07:00 AM
Hi, I fixed the syntax error, but my while test is still not returning values. I put a couple of hidden input fields to see what values I am returning, and the fields with ids of 'project', 'doc', 'rev' and 'approval' are only returning the table name. When I put in a value of ${grProject.sys_id} the value is blank. Any ideas what I may be doing wrong?
*Latest code... !
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:ui_form>
<g:evaluate var="jvar_doc_parent"
expression="RP.getWindowProperties().get('parent')" />
<g:evaluate var="jvar_project_manager"
expression="RP.getWindowProperties().get('project_manager')" />
<g:evaluate var="jvar_approvers" jelly="true" object="true" expression="
var grApprovers = new GlideRecord("sysapproval_approver");
var grProject = new GlideRecord("u_marketing_projects");
var grDoc = new GlideRecord("dms_document");
var grRev = new GlideRecord("dms_document_revision");
grProject.get('${jvar_doc_parent}');
gs.log('Project = ' + grProject);
grDoc.addQuery('u_related_project',grProject);
grDoc.query();
while (grDoc.next()) {
gs.log('Doc = ' + grDoc.name);
var query = 'stageINawaiting_review,awaiting_approval^document=' + grDoc.sys_id;
grRev.addEncodedQuery(query);
grRev.query();
while (grRev.next()) {
gs.log('Rev = ' + grRev.name);
grApprovers.addQuery('document_id',grRev.sys_id);
grApprovers.addQuery('state','IN','requested','not requested');
grApprovers.query();
grApprovers;
}
}"
/>
<p>Bypass proofing for:</p>
<select id='approvers'>
<j:while test="${jvar_approvers.next()}">
<option value="${jvar_approvers.getValue('sys_id')}">${jvar_approvers.getValue('approver')}</option>
</j:while>
</select>
<input type="hidden" name="project_manager" value="${jvar_project_manager}" />
<input type="hidden" name="project" value="${grProject}" />
<input type="hidden" name="doc" value="${grDoc}" />
<input type="hidden" name="rev" value="${grRev}" />
<input type="hidden" name="approval" value="${grApprovers}" />
<input type="hidden" name="jelly_approval" value="${jvar_approvers}" />
<input type="hidden" name="parent" value="${jvar_doc_parent}" />
<br />
<g:dialog_buttons_ok_cancel ok="return true" />
</g:ui_form>
</j:jelly>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2014 07:05 AM
Sorry, that's not the current code. This is
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:ui_form>
<g:evaluate var="jvar_doc_parent"
expression="RP.getWindowProperties().get('parent')" />
<g:evaluate var="jvar_project_manager"
expression="RP.getWindowProperties().get('project_manager')" />
<g:evaluate var="jvar_approvers" jelly="true" object="true">
var grApprovers = new GlideRecord("sysapproval_approver");
var grProject = new GlideRecord("u_marketing_projects");
var grDoc = new GlideRecord("dms_document");
var grRev = new GlideRecord("dms_document_revision");
grProject.get('${jvar_doc_parent}');
gs.log('Project = ' + grProject);
grDoc.addQuery('u_related_project',grProject);
grDoc.query();
while (grDoc.next()) {
gs.log('Doc = ' + grDoc.name);
var query = 'stageINawaiting_review,awaiting_approval^document=' + grDoc.sys_id;
grRev.addEncodedQuery(query);
grRev.query();
while (grRev.next()) {
gs.log('Rev = ' + grRev.name);
grApprovers.addQuery('document_id',grRev.sys_id);
grApprovers.addQuery('state','IN','requested','not requested');
grApprovers.query();
grApprovers;
}
}
</g:evaluate>
<p>Bypass proofing for:</p>
<select id='approvers'>
<j:while test="${jvar_approvers.next()}">
<option value="${jvar_approvers.getValue('sys_id')}">${jvar_approvers.getValue('approver')}</option>
</j:while>
</select>
<input type="hidden" name="project_manager" value="${jvar_project_manager}" />
<input type="hidden" name="project" value="${grProject}" />
<input type="hidden" name="doc" value="${grDoc}" />
<input type="hidden" name="rev" value="${grRev}" />
<input type="hidden" name="approval" value="${grApprovers}" />
<input type="hidden" name="jelly_approval" value="${jvar_approvers}" />
<input type="hidden" name="parent" value="${jvar_doc_parent}" />
<br />
<g:dialog_buttons_ok_cancel ok="return true" />
</g:ui_form>
</j:jelly>