We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

create record in backend form from service catalog request

tiyasa
Giga Expert

Hello,

I have a Catalog to submit a request for Hardware. User can select New or Existing. This is a reference to backend table. I want to create a new record in alm_hardware.do when user selects new and update an existing request .

To achieve this, I have a client script for each condition , new and existing , sample as below. Unfortunately, it doesn't work. Can someone please show me a direction . Thanks in Advance.

function onSubmit() {

  var select = g_form.getValue('en_select');

  var gr = new GlideRecord('alm_hardware');

  while(select == 'existing'){

  gr.addQuery('model_category','=','en_model_category');

  gr.addQuery('model','=','en_model');

  gr.addQuery('asset_tag','=','en_asset_tag');

  gr.query();

  if(gr.next()){

  gr.model_category = en_model_category;

  gr.model = en_model;

  gr.asset_tag = en_asset_tag;

  gr.location = en_location;

  gr.company = en_company;

  gr.u_hier2 = en_division;

  gr.u_hier4 = en_hier4;

  gr.update();

  }

  }

}

1 ACCEPTED SOLUTION

Maybe you want to do something like this:



function onSubmit() {


  var select = g_form.getValue('en_select');


  if(select == 'existing'){


  var gr = new GlideRecord('alm_hardware');


  gr.addQuery('model_category','=',g_form.getValue('en_model_category'));


  gr.addQuery('model','=',g_form.getValue('en_model'));


  gr.addQuery('asset_tag','=',g_form.getValue('en_asset_tag'));


  gr.query();


  if(gr.next()){


  gr.location = g_form.getValue('en_location');


  gr.company = g_form.getValue('en_company');


  gr.u_hier2 = g_form.getValue('en_division');


  gr.u_hier4 = g_form.getValue('en_hier4');


  gr.update();


  }


  }


}



Thanks,


Deepak


Hit Like, Helpful or Correct based upon the impact of the response


View solution in original post

15 REPLIES 15

Yes , they are reference variables in my catalog.


deepakgarg
ServiceNow Employee

function onSubmit() {


  var select = g_form.getValue('en_select');


  if(select == 'existing'){


  var gr = new GlideRecord('alm_hardware');


//********replace 'en_model_category' also with g_form.getValue('en_model_category'), if you want to query records with variables' current value and for rest also.


  gr.addQuery('model_category','=','en_model_category');


  gr.addQuery('model','=','en_model');


  gr.addQuery('asset_tag','=','en_asset_tag');


  gr.query();


  if(gr.next()){


  gr.model_category = g_form.getValue('en_model_category');


  gr.model = g_form.getValue('en_model');


  gr.asset_tag = g_form.getValue('en_asset_tag');


  gr.location = g_form.getValue('en_location');


  gr.company = g_form.getValue('en_company');


  gr.u_hier2 = g_form.getValue('en_division');


  gr.u_hier4 = g_form.getValue('en_hier4');


  gr.update();


  }


  }


}


Maybe you want to do something like this:



function onSubmit() {


  var select = g_form.getValue('en_select');


  if(select == 'existing'){


  var gr = new GlideRecord('alm_hardware');


  gr.addQuery('model_category','=',g_form.getValue('en_model_category'));


  gr.addQuery('model','=',g_form.getValue('en_model'));


  gr.addQuery('asset_tag','=',g_form.getValue('en_asset_tag'));


  gr.query();


  if(gr.next()){


  gr.location = g_form.getValue('en_location');


  gr.company = g_form.getValue('en_company');


  gr.u_hier2 = g_form.getValue('en_division');


  gr.u_hier4 = g_form.getValue('en_hier4');


  gr.update();


  }


  }


}



Thanks,


Deepak


Hit Like, Helpful or Correct based upon the impact of the response


Thank you deepakgarg. I am new to ServiceNow, still getting used to it. Its working and creating records now. I can polish the rest myself. Thanks a lot for the help.


deepakgarg
ServiceNow Employee

Credits?


Hit like and mark it helpful..