Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Redirect Submit to RITM instead request on Service Portal

BenG
Tera Guru

Hi,

When I "Submit" a Service catalog item on service Portal, the request page (sc_request) opens.

I would like a rediction of this submit to ritm page instead sc_request page.

I know I have to modifiy the clone of the widget "SC Catalog Item" but I don't know how.

Any idea ?

Thanks for your help,

1 ACCEPTED SOLUTION

oharel
Kilo Sage

Hi there,

I am not sure it is relevant for you anymore, but still, in case someone else needs it, this is what worked for me:

1. Clone the SC Catalog Item widget

2. change the client script:

(look for "$location.search('id=sc_request&is_new_order..." around line 510)

 

//$location.search('id=sc_request&is_new_order=true&table=sc_request&sys_id=' + a.sys_id); //--> we do not want to redirect to the sc_request page
c.data.myrequest = a.sys_id;
c.server.update();
setTimeout(function(){
var ritmid = c.data.ritmId;
								$location.search('id=form&table=sc_req_item&view=ess&sys_id=' + ritmid);
}, 400);
}

3. and in the server script, arounbd line 11, right after return;, add

if(input) {
if(input.myrequest != undefined) {
   var ritm = new GlideRecord('sc_req_item');
   ritm.addQuery('request',input.myrequest); //from line 514 in the client script ritm.query();
//If exactly one RITM is returned, pass to the Client Controller to redirect user
  if(ritm.next()) {
	data.ritmId = ritm.getUniqueValue();
 }
}

That's it.

harel

 

View solution in original post

20 REPLIES 20

Shane J
Tera Guru

I think you just need to change this line in the Server portion:

options.url = options.url || "?id=my_history";

 

This is mine (ie already modified).  Replace the "?id=my_history" with the link you'd rather have it use instead.

dvp
Mega Sage

Try the solution describe in the below link

https://community.servicenow.com/community?id=community_question&sys_id=daaf216adb976300b1b102d5ca9619db

 

oharel
Kilo Sage

Hi there,

I am not sure it is relevant for you anymore, but still, in case someone else needs it, this is what worked for me:

1. Clone the SC Catalog Item widget

2. change the client script:

(look for "$location.search('id=sc_request&is_new_order..." around line 510)

 

//$location.search('id=sc_request&is_new_order=true&table=sc_request&sys_id=' + a.sys_id); //--> we do not want to redirect to the sc_request page
c.data.myrequest = a.sys_id;
c.server.update();
setTimeout(function(){
var ritmid = c.data.ritmId;
								$location.search('id=form&table=sc_req_item&view=ess&sys_id=' + ritmid);
}, 400);
}

3. and in the server script, arounbd line 11, right after return;, add

if(input) {
if(input.myrequest != undefined) {
   var ritm = new GlideRecord('sc_req_item');
   ritm.addQuery('request',input.myrequest); //from line 514 in the client script ritm.query();
//If exactly one RITM is returned, pass to the Client Controller to redirect user
  if(ritm.next()) {
	data.ritmId = ritm.getUniqueValue();
 }
}

That's it.

harel

 

Hi Harel,

Can you please help me how to user this Widget after that?

Regards,

Monika