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

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

 

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

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