Why I just can not get the field value from UI Macro

James100
Kilo Expert

Hi,

I have a field ('name') and a UI Macro on a form.

The UI Macro is just to get the field value and display it. The code is like below.

-----------------

<?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:evaluate var="jvar_user" object="true">
        ${ref_parent}.getValue("name");
    </g:evaluate>
    
    <div>name=${jvar_user}</div>

</j>

-----------------

Below is the page I'm getting. saying there is a reference error. I'm not familiar with Jelly and have no idea what's wrong. Can you help me out?

find_real_file.png

1 ACCEPTED SOLUTION

Hi James,

below worked for me in my instance; you need to use <g2:evaluate> tag; phase 2 jelly tags

I believe using phase 1 jelly i.e. <g:evaluate> it doesn't get the value

<g2:evaluate var="jvar_user" object="true">
        var value = current.name;

        gs.info('Value is: ' + value);
        value;
    </g2:evaluate>
    
    <div>name=$[jvar_user]</div>

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

17 REPLIES 17

Hi James,

try adding logs

<g:evaluate var="jvar_user" object="true">
        var value = current.name;

        gs.info('Value is: ' + value);
        value;
    </g:evaluate>
    
    <div>name=${jvar_user}</div>

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

James100
Kilo Expert

Hi,

I used ${jvar_user} but it still didn't work. And there's nothing in application logs.

Are you sure this works in your instance?

Hi James,

below worked for me in my instance; you need to use <g2:evaluate> tag; phase 2 jelly tags

I believe using phase 1 jelly i.e. <g:evaluate> it doesn't get the value

<g2:evaluate var="jvar_user" object="true">
        var value = current.name;

        gs.info('Value is: ' + value);
        value;
    </g2:evaluate>
    
    <div>name=$[jvar_user]</div>

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Swapnil Soni1
Giga Guru

Hi James,

Please refer to this link it might be useful for you

https://community.servicenow.com/community?id=community_question&sys_id=808e0b21dbdcdbc01dcaf3231f96...

Mark helpful or correct if this helps.

Thanks

Swapnil

asifnoor
Kilo Patron

Hi James,

Here is how your script should look like.

<?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:evaluate var="jvar_user" object="true">
        var value = ${ref_parent}.name; 
        gs.log(""Value is "+value);
        value;
    </g:evaluate>
    
    <div>name="${jvar_user}"</div>

</j:jelly> 

If it still does not work, then go to system logs->All and check for this line

value is

Kindly mark the comment as a correct answer and helpful if it helps to solve your problem.

Regards,
Asif
2020 ServiceNow Community MVP