is it possible to send attachment through transform map?

jobin1
Tera Expert

Hi All

My requirement is business will be encoding the attachment and sending that encoded value in excel format and the same we need to decode and transfer to ritm form via transform map.

So is it possible to do so? if yes how?. what transform script we need to use to achieve this functionality 

1 ACCEPTED SOLUTION

Hi,

So you can use this in global scope

(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {
	// Add your code here
	var fileName = source.u_file_name;
	var fileContentType = source.u_content_type; // such as image/jpeg or application/pdf
	var fileData = source.u_base64_data;

	var ecc = new GlideRecord('ecc_queue');
	ecc.initialize();
	ecc.agent = "AttachmentCreator";
	ecc.topic = "AttachmentCreator";
	ecc.name = fileName + ":" + fileContentType;
	ecc.source = target.sys_class_name + ":" + target.sys_id;
	ecc.payload = fileData;
	ecc.insert();

})(source, map, log, target);

Regards
Ankur

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

View solution in original post

32 REPLIES 32

@jobin 

Glad to know.

I think you should mark this response of mine as correct so that it helps future readers

find_real_file.png

Please mark response helpful as well.

Regards
Ankur

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

@Ankur Bawiskar  Done.

@Ankur Bawiskar  I am attaching the attachment which is got attached to RITM but conversion is not happening when I download the file it is still in encoded format. Please find the screen shots
find_real_file.png

attached attachment.
find_real_file.png

 

 

While opening attachment /still in encoded format.

 

find_real_file.png

 

Data which we uploaded.

find_real_file.png

do this

use writeBase64() method instead of write()

(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {


	// Add your code here
	var fileName = source.u_file_name;
	var fileContentType = source.u_content_type; // such as image/jpeg or application/pdf
	var fileData = source.u_base64_data;
	var sa = new GlideSysAttachment();
	sa.writeBase64(target, fileName, fileContentType, fileData);

})(source, map, log, target);

Regards
Ankur

 

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

@Ankur Bawiskar  Its not working. its still not decoding