Populate UI page with User name field value

Shiva Kumar8
Kilo Guru

Hi Community,

I'm using a UI page on user record, the UI page has a field called user name, when the UI page is opened I want to populate the username with the current user record name. any help in script.

Thanks in advance.

Please find the attached screen shot for reference

1 ACCEPTED SOLUTION

now it should work

we are sending userFullName from UI action; so update as this

<g:evaluate var="jvar_name" expression="RP.getWindowProperties().get('userFullName')" />
                
                <p>full name ${jvar_name}</p>

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

View solution in original post

20 REPLIES 20

Hi,

from UI action send the record sysId

I have highlighted the changes in bold; you need to use body onload function to set the value in <g:ui_reference>

function addConsumable(){
    var dialog = new GlideDialogWindow("user_consumable_dialog");
    dialog.setTitle(getMessage("Add Consumables"));
    dialog.setPreference("sysId", g_form.getUniqueValue());
    dialog.setPreference("username",g_form.getValue('name'));
    dialog.setPreference("stockroom",g_form.getValue('stockroom'));
    dialog.setPreference("model",g_form.getValue('model'));
    dialog.setPreference("model_category",g_form.getValue('model_category'));
    dialog.setPreference("catalog_category",g_form.getValue('catalog_category'));
    dialog.setPreference("installDate",g_form.getValue('installDate'));
    dialog.setPreference("Consumablequantity",g_form.getValue('Consumablequantity'));
    dialog.setWidth("500");
    dialog.render();

}

Update UI page

HTML:

<?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>
        <html>
            <body onload="setDefaultValue();">
                
                <g:evaluate var="jvar_sysId" expression="RP.getWindowProperties().get('sysId')" />
                <input type="hidden" name="userSysId" id="userSysId" value="${jvar_sysId}"/>
                
                <g:evaluate var="jvar_name" expression="RP.getWindowProperties().get('username')" />
                <input type="hidden" name="userFullName" id="userFullName" value="${jvar_name}"/>
                
                <input type="hidden" name="start_error" id="start_error" value="false" />
                <input type="hidden" name="end_error" id="end_error" value="false" />        
                <!--<j:set var="jvar_name" value="${RP.getWindowProperties().get('user_name')}" />-->
                <style>
                    select {
                    width: 270px;
                    margin: 5px;
                    height: 30px;
                    }
                </style>
                <table style="border-spacing:0 5px">
                    <tr>
                        <g:evaluate  var="jvar_request" jelly="true">
                            var UserName = jelly.jvar_name;
                            var gr = new GlideRecord("sys_user");
                            gr.addQuery('sys_id' current_sys_id);    
                            gr.query();
                            gr.next();
                            gr;
                        </g:evaluate>
                        <td>User name:</td>
                        <j:if test="${gr.sys_id !=''}">
                            <td><g:ui_reference name="user" id="user" completer="AJAXTableCompleter"/></td>
                        </j:if>
                    </tr>
                    <tr>
                        <td>Stockroom:</td>
                        <td> <g:ui_reference name="stockroom" id="stockroom" table="alm_stockroom" completer="AJAXTableCompleter" onchange="fetchModels()"/></td>
                    </tr>
                    <tr>
                        <td>Model:</td>
                        <td>
                            <g:ui_reference name="model" id="model" table="alm_consumable"/></td>
                    </tr>
                    <tr>
                        <td>Model category:</td>
                        <td> <g:ui_reference name="model_category" id="modelCategory" table="cmdb_model_category" query="sys_created_by!=system^name=consumable"/></td>
                    </tr>
                    <tr>
                        <g:evaluate jelly="true" object="true">
                            var rec = new GlideRecord('sys_choice');
                            rec.addQuery('table', 'alm_consumable');
                            rec.addQuery('element', 'u_catalog_category');
                            rec.query();
                            rec;
                        </g:evaluate>
                        <td>Catalog category: </td>
                        <td> <select name="catalog_category" id="catalogCategory">
                            <option value="">-- Select --</option>
                            <j:while test="${rec.next()}">
                                <option value="${rec.value}">${rec.label}</option>
                            </j:while>
                            </select></td>
                    </tr>
                    <tr>
                        <td>Installed date:</td>
                        <td> <g:ui_date_time name="installDate" id="installDate" table='alm_comsumable' field='install_date'/></td>
                    </tr>
                    <tr>
                        <td>Quantity:</td>
                        <td> <input type="text" id="quantity" name="Consumablequantity"
                                    table="alm_consumable" /></td>
                        <!--<g:ui_date_time name="Quantity" id="Quantity" table='alm_comsumable' displayValue="$[quantity]"/>-->
                    </tr>                                                    </table>

                <br/>
                <tr>
                    <td><g:dialog_button id="cancel" title="${gs.getMessage('Cancel')}" type="${jvar_cancel_type}"
                                         style_class="btn btn-default" onclick="return cancelConvert();" style="min-width: 5em;" >${gs.getMessage('Cancel')}</g:dialog_button>

                        <g:dialog_button id="submit_for_review" title="${gs.getMessage('submitting')}"
                                         type="${jvar_cancel_type}" style_class="btn btn-primary" onclick="return cancelSubmit();"
                                         style="min-width: 5em;">&#160;${gs.getMessage('Submit')}</g:dialog_button></td>
                </tr>
            </body>
        </html>
    </g:ui_form>
</j:jelly>

Client Script:

function setDefaultValue(){
	gel('user').value = gel('userSysId').value;
	gel('sys_display.user').value = gel('userFullName').value;
	gel('userLINKreplace').style.display = "";
}

Regards
Ankur

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

Hi Ankur,

Thanks for the response,

I tried the solution you provided, but the reference field was lost(please find the screenshot)

I also used the client script provided by you.

the HTML code used 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>
		<html>
			<body onload="setDefaultValue();">
                
                <g:evaluate var="jvar_sysId" expression="RP.getWindowProperties().get('sysId')" />
                <input type="hidden" name="userSysId" id="userSysId" value="${jvar_sysId}"/>
                
                <g:evaluate var="jvar_name" expression="RP.getWindowProperties().get('username')" />
                <input type="hidden" name="userFullName" id="userFullName" value="${jvar_name}"/>
						  
				<input type="hidden" name="hold_or_submit" id="hold_or_submit" value="" />
				<input type="hidden" name="start_error" id="start_error" value="false" />
				<input type="hidden" name="end_error" id="end_error" value="false" />		
				<style>
    select {
        width: 270px;
        margin: 5px;
	    height: 30px;
    }
</style>
				<table style="border-spacing:0 5px">
					<tr> 
				<g:evaluate  var="jvar_request" jelly="true">
							var UserName = jelly.jvar_name;
							var gr = new GlideRecord("sys_user");
                            gr.addQuery('sys_id' current_sys_id);	
							gr.query();
							gr.next();
							gr;
  </g:evaluate>
						<td>User name:</td>
					<j:if test="${gr.sys_id !=''}">
                            <td><g:ui_reference name="user" id="user" completer="AJAXTableCompleter"/></td>
						</j:if>
					</tr>
					<tr>
						<td>Stockroom:</td>
						<td> <g:ui_reference name="stockroom" id="stockroom" table="alm_stockroom" completer="AJAXTableCompleter" onchange="fetchModels()"/></td>
					</tr>
					<tr>
						<td>Model:</td>
						<td>
							<g:ui_reference name="model" id="model" table="alm_consumable"/></td>
					</tr>
					<tr>
						<td>Model category:</td>
						<td> <g:ui_reference name="model_category" id="modelCategory" table="cmdb_model_category" query="sys_created_by!=system^name=consumable"/></td>
					</tr>
					<tr>
						<g:evaluate jelly="true" object="true">
						var rec = new GlideRecord('sys_choice');
						rec.addQuery('table', 'alm_consumable');
						rec.addQuery('element', 'u_catalog_category');
						rec.query();
						rec;
						</g:evaluate>
						<td>Catalog category: </td>
							<td> <select name="catalog_category" id="catalogCategory">
							<option value="">-- Select --</option>
								<j:while test="${rec.next()}">
							<option value="${rec.value}">${rec.label}</option>
							</j:while>
								</select></td>
					</tr>
					<tr>
						<td>Installed date:</td>
						<td> <g:ui_date_time name="installDate" id="installDate" table='alm_comsumable' field='install_date'/></td>
					</tr>
					<tr>
						<td>Quantity:</td>
						<td> <input type="text" id="quantity" name="Consumablequantity"
									table="alm_consumable" /></td>
						<!--<g:ui_date_time name="Quantity" id="Quantity" table='alm_comsumable' displayValue="$[quantity]"/>-->
					</tr>													</table>

				<br/>
			<tr>
				<td><g:dialog_button id="cancel" title="${gs.getMessage('Cancel')}" type="${jvar_cancel_type}"
										 style_class="btn btn-default" onclick="return cancelConvert();" style="min-width: 5em;" >${gs.getMessage('Cancel')}</g:dialog_button>

				<g:dialog_button id="submit_for_review" title="${gs.getMessage('submitting')}"
										 type="${jvar_cancel_type}" style_class="btn btn-primary" onclick="return cancelSubmit();"
									 style="min-width: 5em;">&#160;${gs.getMessage('Submit')}</g:dialog_button></td>
					</tr>
			</body>
		</html>
	</g:ui_form>
</j:jelly>

The Ui action code is

function addConsumable(){
	var dialog = new GlideDialogWindow("user_consumable_dialog");
	dialog.setTitle(getMessage("Add Consumables"));
	dialog.setPreference("sysId", g_form.getUniqueValue());
	dialog.setPreference("userFullName",g_form.getValue('name'));
	dialog.setPreference("stockroom",g_form.getValue('stockroom'));
	dialog.setPreference("model",g_form.getValue('model'));
	dialog.setPreference("model_category",g_form.getValue('model_category'));
	dialog.setPreference("catalog_category",g_form.getValue('catalog_category'));
	dialog.setPreference("installDate",g_form.getValue('installDate'));
	dialog.setPreference("Consumablequantity",g_form.getValue('Consumablequantity'));
	dialog.setWidth("500");
	dialog.render();
	
}

Hi Ankur,

Any update on this?

Thanks.

Hi,

Similar solution has worked for me in past.

try this in HTML; no need to query sys_user table

<?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>
		<html>
			<body onload="setDefaultValue();">

				<g:evaluate var="jvar_sysId" expression="RP.getWindowProperties().get('sysId')" />
				<input type="hidden" name="userSysId" id="userSysId" value="${jvar_sysId}"/>

				<g:evaluate var="jvar_name" expression="RP.getWindowProperties().get('username')" />
				<input type="hidden" name="userFullName" id="userFullName" value="${jvar_name}"/>

				<input type="hidden" name="start_error" id="start_error" value="false" />
				<input type="hidden" name="end_error" id="end_error" value="false" />        
				<!--<j:set var="jvar_name" value="${RP.getWindowProperties().get('user_name')}" />-->
				<style>
					select {
					width: 270px;
					margin: 5px;
					height: 30px;
					}
				</style>
				<table style="border-spacing:0 5px">
					<tr>
						<td>User name:</td>
						<td><g:ui_reference name="user" id="user" completer="AJAXTableCompleter"/></td>
					</tr>
					<tr>
						<td>Stockroom:</td>
						<td> <g:ui_reference name="stockroom" id="stockroom" table="alm_stockroom" completer="AJAXTableCompleter" onchange="fetchModels()"/></td>
					</tr>
					<tr>
						<td>Model:</td>
						<td>
							<g:ui_reference name="model" id="model" table="alm_consumable"/></td>
					</tr>
					<tr>
						<td>Model category:</td>
						<td> <g:ui_reference name="model_category" id="modelCategory" table="cmdb_model_category" query="sys_created_by!=system^name=consumable"/></td>
					</tr>
					<tr>
						<g:evaluate jelly="true" object="true">
							var rec = new GlideRecord('sys_choice');
							rec.addQuery('table', 'alm_consumable');
							rec.addQuery('element', 'u_catalog_category');
							rec.query();
							rec;
						</g:evaluate>
						<td>Catalog category: </td>
						<td> <select name="catalog_category" id="catalogCategory">
							<option value="">-- Select --</option>
							<j:while test="${rec.next()}">
								<option value="${rec.value}">${rec.label}</option>
							</j:while>
							</select></td>
					</tr>
					<tr>
						<td>Installed date:</td>
						<td> <g:ui_date_time name="installDate" id="installDate" table='alm_comsumable' field='install_date'/></td>
					</tr>
					<tr>
						<td>Quantity:</td>
						<td> <input type="text" id="quantity" name="Consumablequantity"
									table="alm_consumable" /></td>
						<!--<g:ui_date_time name="Quantity" id="Quantity" table='alm_comsumable' displayValue="$[quantity]"/>-->
					</tr>                                                    </table>

				<br/>
				<tr>
					<td><g:dialog_button id="cancel" title="${gs.getMessage('Cancel')}" type="${jvar_cancel_type}"
										 style_class="btn btn-default" onclick="return cancelConvert();" style="min-width: 5em;" >${gs.getMessage('Cancel')}</g:dialog_button>

						<g:dialog_button id="submit_for_review" title="${gs.getMessage('submitting')}"
										 type="${jvar_cancel_type}" style_class="btn btn-primary" onclick="return cancelSubmit();"
										 style="min-width: 5em;">&#160;${gs.getMessage('Submit')}</g:dialog_button></td>
				</tr>
			</body>
		</html>
	</g:ui_form>
</j:jelly>

Regards
Ankur

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

Hi Ankur,

If I don't query the user table, data is not showing up in reference field.