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 users after submission according to user's role

Alon Grod
Tera Expert

Hi,

I have the widget 'SC Catalog Item Req2RITM'. I want to adjust it so after the user clicks submit when creating a new request, he will be redirect according to his role:

1. if the current login user has an 'itil' role, then he will be redirect to:

current_instance_url/now/sow/record/sc_req_item/current sys_id of the ritm
e.g: http://testtest/now/sow/record/sc_req_item/1bb4ca34e822311020d202197b700b30

2. if the current login user does not has itil role, he needs to be redirect to:
current_instance_url/esc?id=standard_ticket&is_new_order=true&table=sc_req_item&current sys_id of ritm

e.g: http://testtest/esc?id=standard_ticket&is_new_order=true&table=sc_req_item&sys_id=878ffb41dc22311020...

Client script:

api.controller=function($scope , $location) {
	/* widget controller */
	var c = this;

	//$sp.service_catalog.cart.submitted - .request_method
	//$sp.sc_cat_item.submitted

	//SC Catalog Item widget emits an event when a record is succesfully submitted
	//Catch the server response and capture a redirect

	$scope.$on("$sp.sc_cat_item.submitted", function($event , $data){

		console.log($event);
		console.log($data);

		//Get Details on the RITM
		if($data.hasOwnProperty('table') && $data.table === "sc_request"){
			$scope.server.get({action: "get_record" , request_id : $data.sys_id}).then(function(response){
				console.log(response.data);
				//Only Redirect to ritm if
				//Global redirect override is enabled
				//Item is configured to redirect
				if(!response.data.error && response.data.ritm_redirect == "true"){
					$location.search("id=" + c.options.page_id + 
													 "&is_new_order=true&table=" + response.data.table + 
													 "&sys_id=" + response.data.ritm_id);
					return;
				} else {
					$location.search('id=sc_request&is_new_order=true&table=sc_request&sys_id=' + $data.sys_id);
				}

			})
		}

		//Handle Record Producers
		if($data.hasOwnProperty('redirect_portal_url') && $data.redirect_portal_url !== ''){
			$location.url(data.redirect_portal_url);
			return;
		}

		//Fallback to a record
		$location.search("id=ticket&is_new_order=true&table=" + $data.table + "&sys_id=" + $data.sys_id);

	})
};




Server Script:

(function() {
 
	var catItemProps = {
		"show_add_cart_button" : options.show_add_cart_button,
		"auto_redirect" : "false"
	}
	
	data.catItemWidget = $sp.getWidget('widget-sc-cat-item-v2' , catItemProps);
	data.systemProperties = {
		"redirect_override" : gs.getProperty('x_295070_req2ritm.redirect_override' , 'false')
	}
	
	if(input && input.action == "get_record"){
		var scReqItemGR = new GlideRecord('sc_req_item');
		scReqItemGR.addQuery('request' , input.request_id);
		scReqItemGR.query();
		if(scReqItemGR.next() && scReqItemGR.getRowCount() == 1){
			data.ritm_id = scReqItemGR.getUniqueValue();
			data.table = scReqItemGR.getTableName();
			data.ritm_redirect = data.systemProperties.redirect_override === 'false' ? scReqItemGR.cat_item.x_295070_req2ritm_redirect + '' : 'true';
			data.error = false;
		} else {
			data.error = true;
		}
		
	}

})();

 

4 REPLIES 4

Alon Grod
Tera Expert

Alon Grod
Tera Expert

Dr Atul G- LNG
Tera Patron
Tera Patron

Hi @Alon Grod 

 

May I know what is reason for different redirection? What value you will get from this. 

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************

@Dr Atul G- LNG this is the requirement