SyntaxError: Unexpected token: E (sys_script_include.d2426c9ec0a8016501958bf2ac79c775.script; line 155

Arkesh Kumar
Giga Guru

Hi,

 

I am getting "SyntaxError: Unexpected token: E (sys_script_include.d2426c9ec0a8016501958bf2ac79c775.script; line 155" error in workflow for few tickets,Is there any issue with my script?

 

var tok = '';
var resp = '';
var stat;
var when = new GlideDateTime();
var delay = new GlideTime();
delay.setValue("00:00:02");
when.add(delay);
var smm = new sn_ws.RESTMessageV2('SAVE Token', 'Save Tok');
smm.setHttpTimeout(120000);
respon = smm.execute();
stat = respon.getStatusCode();
gs.log('token status' + stat);
if (stat == 200) {
//resp = respon.haveError() ? respon.getErrorMessage() : respon.getBody();
var requestBody1 = smm.getRequestBody();
gs.log('Request Body for Request Creation::: ' + requestBody1);
resp = respon.getBody();
gs.log("respon for request Creation:::" + resp);
tok = JSON.parse(resp).access_token;
gs.log(tok);
gs.log("token for request creation::::" + tok);
	
	var requestBody;
var responseBody;
var status;
var r;
var res;
var ret;
var role;
var smtp = "SMTP:";
var email = current.variables.please_enter_external_email_address;
var proxyaddresses;

if (current.variables.ext_user == 'contractor_no_mail') {
    proxyaddresses = smtp + email;
} else {
    proxyaddresses = '';
}
gs.log("check the smtp" + proxyaddresses);
var lis_type = current.variables.license_type;
if (lis_type == 'internal_user_mobile') {
    role = current.variables.internal_user_mobile.getDisplayValue();
} else if (lis_type == 'internal_user_stationary') {
    role = current.variables.internal_user_stationary.getDisplayValue();
} else if (lis_type == 'ext_user') {
    role = current.variables.ext_user.getDisplayValue();
} else if (lis_type == 'other_account') {
    role = current.variables.other_account.getDisplayValue();
}

try {
    r = new sn_ws.RESTMessageV2('New AD Account', 'post');
    r.setStringParameter("token", tok);
    r.setHttpTimeout(120000); //In milliseconds. Wait at most 10 seconds for response from http request.
    r.setStringParameterNoEscape('Employee Number', current.variables.ccba_employee_number);
    r.setStringParameterNoEscape('Title', current.variables.ccba_job_title);
    r.setStringParameterNoEscape('First Name', current.variables.ccba_first_name);
    


    r.setHttpTimeout(120000);

    response = r.execute();
    responseBody = response.haveError() ? response.getErrorMessage() : response.getBody();
    status = response.getStatusCode();
} catch (ex) {
    responseBody = ex.getMessage();
    status = '500';
} finally {
    requestBody = r ? r.getRequestBody() : null;
}
res = response.getBody();
ret = JSON.parse(res).RequestId;
gs.log(ret);
gs.log("passing the ticket number::::" + ret);
current.u_vendor_ticket_number = ret;
gs.info("Request Body for New AD: " + current.number + requestBody);
gs.info("Response for for New AD " + current.number + responseBody);
gs.info("HTTP Status for New AD" + current.number + status);

if (status == 200) {
    //if(responseBody.indexOf('success')>-1){
    activity.result = 'success';
} else {
    activity.result = 'Method failed';
    current.work_notes = "New AD user account" + ' ' + current.number + ' ' + 'has been cancelled.' + "Reason: The user already exists / the employee number provided is incorrect.";
}
}
else{
	activity.result = 'rollback';
}


 

Thank You,

Arkesh

8 REPLIES 8

Hi Christoph,

May I know how to resolve this?

Thank you,

Arkesh

-O-
Kilo Patron
Kilo Patron

You are giving JSON a potentially undefined value to parse. Probably that is where the u in the error comes from: it tries to parse string 'undefined'.

In lines (~85-86)

res = response.getBody();
ret = JSON.parse(res).RequestId;

response will be undefined if the call fails (response is only set if the call succeeded) and as a result res remains undefined - which will not be parsed by JSON.

Hi Janos,

 

May I know how to resolve this?

Thank you,

Arkesh

The easiest is to move the code that uses variables under the same block where the variables are set. That the lines after the try block inside it.