Question on script for pop up window to create a new record

Nic Omaha
Tera Guru

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! 

find_real_file.png

<?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>
1 REPLY 1

Claude DAmico
Kilo Sage