The CreatorCon Call for Content is officially open! Get started here.

How to created related attachment related list on change request table that should contain the attachment attached on approval request

rupali18
Kilo Contributor

I want to create the related list(Relationship) on change table as approval-attachment and it should shows the attachments attached while approving and rejecting the change request. 




1 ACCEPTED SOLUTION

this worked for me

CHG -> has 1 file

Approval record has 1 file

Total 2 records shown in related list

(function refineQuery(current, parent) {

	// Add your code here, such as current.addQuery(field, value);

	// get the approval records for this CHG
	var app = [];
	var gr = new GlideRecord("sysapproval_approver");
	gr.addQuery("sysapproval", parent.getUniqueValue());
	gr.addQuery("source_table", "change_request");
	gr.query();
	while(gr.next()) {
		app.push(gr.getUniqueValue());
	}

	app.push(parent.sys_id.toString());
	current.addQuery("table_sys_id" ,"IN", app.toString());

})(current, parent);

find_real_file.png

find_real_file.png

 

find_real_file.png

Please mark my response as correct and close the thread

Regards
Ankur

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

View solution in original post

16 REPLIES 16

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

attachments are added to sysapproval_approver records? can you share screenshots?

If yes then you would require to create relationship between sysapproval_approver and change_request table

Did you start on that?

Regards
Ankur

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

yes I have created the relationship.
Below is the code written in relationship.

 

var queryString = "table_nameINchange_request^table_sys_idIN" + parent.getValue("sysapproval") +","+parent.getValue("sys_id");


//queryString="table_nameINsc_request,sc_req_item,sc_task^table_sys_idIN"+parent.getValue("sysapproval") +","+parent.getValue("sys_id");
var gr = new GlideRecord("change_request");
gr.addQuery("number", 'sysapproval');
gr.query();
while (gr.next()) {
queryString += "," + gr.sys_id.toString();
}
current.addEncodedQuery(queryString);

Can you share configuration image?

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

something like this

(function refineQuery(current, parent) {

	// Add your code here, such as current.addQuery(field, value);
	var queryString = "table_nameINchange_request^table_sys_idIN" + parent.getUniqueValue();

	// get the approval records for this CHG
	var app = [];
	var gr = new GlideRecord("sysapproval_approver");
	gr.addQuery("sysapproval", parent.getUniqueValue());
	gr.query();
	while(gr.next()) {
		app.push(gr.getUniqueValue());
	}

	current.addQuery(queryString).addOrCondition("table_sys_id" ,"IN", app.toString());

})(current, parent);

find_real_file.png

Regards
Ankur

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