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
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
ServiceNow Employee

Credits?


Hit like and mark it helpful..