how to Load data from an email attachment and create an incident and associate the new incident record with loaded data

____39
Tera Contributor

I want to load data via email attachment, and create an incident at the same time while loading data, but how to associate the new incident record with loaded data?  Thank you!

2 ACCEPTED SOLUTIONS

Hi,

can you print what came in source.sys_import_set.number?

try this

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

    // Add your code here
    var gr = new GlideRecord("incident");
    gr.initialize();
    gr.short_description = import_set.number;
    gr.insert();

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

Similarly update the onAfter

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

    // Add your code here
    var gr = new GlideRecord("incident");
    gr.addQuery("short_description", "LIKE", import_set.number);
    gr.query();
    if (gr.next()) {
        target.fieldName = gr.getUniqueValue(); // if target field is reference to incident

        // OR

        // target.fieldName = gr.number; // if target field is string
    }

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

Regards
Ankur

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

View solution in original post

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

18 REPLIES 18

Thank you ! I got you, but I have a issue, once use this script , when load data next time ,you have to change the After script, If dont change ,the incident number still last incident number,but it isn't what I want. Thank you!

Hi,

to make it dynamic you can do this

1) use onStart transform script and in that create the incident

2) include the import set number in short_description of the incident

3) then when you query you can search with that import set number

onStart:

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

	// Add your code here
	var gr = new GlideRecord("incident");
	gr.initialize();
	gr.short_description = source.sys_import_set.number;
	gr.insert();

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

onAfter:

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

	// Add your code here
	var gr = new GlideRecord("incident");
	gr.addQuery("short_description", "LIKE", source.sys_import_set.number);
	gr.query();
	if (gr.next()) {
		target.fieldName = gr.getUniqueValue(); // if target field is reference to incident

		// OR

		// target.fieldName = gr.number; // if target field is string
	}

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

I hope I have answered your question.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards
Ankur

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

Hi,I use your code,but below code didn't go well, new created incident short description is empty. why? thank you!

gr.short_description = source.sys_import_set.number;

find_real_file.png

Hi,

where did you write the script for incident creation?

What debugging you performed?

Regards
Ankur

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

Hi,

i write onStart transform script like below. Thank you!

find_real_file.png