Attachment mandatory not working in Serviceportal

salu
Mega Guru

Hello All,

I am trying to make attachment mandatory in catalog item and service portal. Below script working in catalog item but not working in serviceportal.

 

We are using Add to cart button in service portal.

 

function onSubmit() {
//Works in non-portal ui
try {
var attachments = document.getElementById('header_attachment_list_label');
if (attachments.style.visibility == 'hidden' || attachments.style.display == 'none') {
alert('You must attach the completed form before submitting this request.');
return false;
}
}
//For Service Portal
catch (e) {
var count = getSCAttachmentCount();
if (count <= 0) {
alert('You must attach the completed form before submitting this request.');
return false;
}
}
}

Can some please help??

 

Thanks

Saranya

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@salu

Refer blog below

Verify Mandatory Attachments Count on Catalog Item

Sharing the steps and script here

Script: onSubmit

UI Type - ALL

Applies to Catalog Item - True

Note: Ensure Isolate Script field is set to False for this Catalog Client Script to ensure DOM manipulation works

function onSubmit() {
	//Type appropriate comment here, and begin script below

var countRequired = 1;
	if(window == null){
		// portal
		if(this.document.getElementsByClassName('get-attachment').length != countRequired) {
			alert('You must attach the completed form before submitting this request.');
			return false;
		}
	}
	else{
		// native view
         var length = $j("li.attachment_list_items").find("span").length;
		if(length != countRequired){
			alert('You must attach the completed form before submitting this request.');
			return false;
		}
	}
}

Isolate Script: Set to False

image

 

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

21 REPLIES 21

 

I would suggest to not use any script for portal . 

 

Updated client script and set UI Type as "Desktop"

 

function onSubmit() {
//Works in non-portal ui

var attachments = document.getElementById('header_attachment_list_label');
if (attachments.style.visibility == 'hidden' || attachments.style.display == 'none') {
alert('You must attach the completed form before submitting this request.');
return false;
}


}

 

For Portal , open your catalog form and set "Mandatory Attachment" as true . 

 

find_real_file.png

 

 

I don't want the whole catalog item for attachment mandatory. When ever user need access request,then add manager approval like.

 

I need a confirm message if the user "Is this request a Access request?" If yes attachment is mandatory if no then able to submit the form

 

Got it. Did you follow the same step which has mentioned in below thread. Please confirm, 

Browser console error indicating you missed something in script, either UI Scripts or some method . Please check the below thread and confirm . 

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

You are right.This is the error.

find_real_file.png

I am not able to find any script include with this name

This is UI Scripts method name.