Jelly g:evaluate

amkatulak
Giga Expert

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>

3 REPLIES 3

santoshsahoonis
Kilo Guru

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


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>


amkatulak
Giga Expert

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>