Question on script for pop up window to create a new record
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-14-2022 12:19 PM
Hello,
So we followed the instructions found here
https://www.servicenowguru.com/system-ui/ui-macros/adding-referenced-records-leaving-form/
To create a button on sc_catalog_tasks to create a new time card. We wanted to allow the user to stay on the form instead of having to use a related list. The pop up works great however Im having trouble editing the script to pass over the task number into the new record. Below is the UI Macro script. Any suggestions would be appreciated!
<?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_is_itil" expression="gs.hasRole('itil')" />
<j:if test="${jvar_is_itil == true }">
<g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" />
<j:set var="jvar_n" value="cf_add_edit_user_${jvar_guid}:${ref}"/>
<a>
<span id="${jvar_n}" onclick="addEditUserPop('${ref}')"
class="btn btn-default icon-add-circle"
title="${gs.getMessage('Add User')}"
alt="${gs.getMessage('Add User')}">
</span>
</a>
<script>
//OnClick function for UI macro
function addEditUserPop(reference){
var s = reference.split('.');
var referenceField = s[1];
var v = g_form.getValue(referenceField);
//If user field is empty then pop open an 'Add User' dialog
if(v == ''){
var dialog = new GlideDialogForm('Add Time Card', 'time_card', setUserField);
dialog.setSysID('-1'); //Pass in -1 to create a new record
}
//Else pop open an 'Edit User' dialog for the populated user record
else{
var dialog = new GlideDialogForm('Edit Time Card', 'time_card', setUserField);
dialog.setSysID(v); //Pass in reference sys_id to edit record
}
dialog.addParm('sysparm_view', 'Default view'); //Specify a form view
dialog.addParm('sysparm_form_only', 'true'); //Remove related lists
dialog.render(); //Open the dialog
//Callback function executed from dialog submit
function setUserField(action, sys_id, table, displayValue){
//Set the user field with the popup user
g_form.setValue(referenceField, sys_id);
}
}
</script>
</j:if>
</j:jelly>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-16-2022 10:48 AM
This thread might be of use to you: https://community.servicenow.com/community?id=community_question&sys_id=322fb269db58dbc01dcaf3231f96...