Uncaught SyntaxError

Bobby20
Giga Contributor

I have this Business Rule that keeps returning the follower error and I can't figure out what's wrong: 

"Uncaught error: SyntaxError: Unexpected token: u"

Here's the code:
(function executeRule(current, previous /*null when async*/) {

// Add your code here
try {
var r = new sn_ws.RESTMessageV2('x_275105_iplookup.IPInfo', 'GetIPInfo');
r.setStringParameterNoEscape('specific_field', 'geo');
r.setStringParameterNoEscape('ip_address', 'current.address');
// Convert the json formatted string to a JavaScript Object
var responseObj = JSON.parse(responseBody);
//Set the value of the City field on the IPAddressInfo record
current.city = responseObj.city;
gs.info("City = " + current.city);
current.update();
//override authentication profile
//authentication type ='basic'/ 'oauth2'
//r.setAuthentication(authentication type, profile name);

//set a MID server name if one wants to run the message on MID
//r.setMIDServer('MY_MID_SERVER');

//if the message is configured to communicate through ECC queue, either
//by setting a MID server or calling executeAsync, one needs to set skip_sensor
//to true. Otherwise, one may get an intermittent error that the response body is null
//r.setEccParameter('skip_sensor', true);

var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
}
catch(err) {
gs.info("Uncaught error: " + err);
}
})(current, previous);

1 ACCEPTED SOLUTION

Harsh Vardhan
Giga Patron

second point , why are you using current.update() here

 

Updated Code:

 

 

 

(function executeRule(current, previous /*null when async*/) {

 // Add your code here
try { 
 var r = new sn_ws.RESTMessageV2('x_275105_iplookup.IPInfo', 'GetIPInfo');
 r.setStringParameterNoEscape('specific_field', 'geo');
 r.setStringParameterNoEscape('ip_address',current.address);

 

 var response = r.execute();
 var responseBody = response.getBody();
 var httpStatus = response.getStatusCode();

var responseObj = JSON.parse(responseBody);
gs.info('status code is'+httpStatus )
 current.city = responseObj.city;
 gs.info("City = " + current.city);
 current.setWorkflow(false);
 current.update();

}
catch(err) {
 gs.info("Uncaught error: " + err);
}
})(current, previous);

View solution in original post

13 REPLIES 13

Bobby20
Giga Contributor

That helped but now I get this error: "

Uncaught error: TypeError: Cannot read property "address" from null"

so current is null.

what table is the BR on? when does it run (before, after etc...)

put the log and validate are you getting some value in current.address 

 

gs.info('address value is'+current.address);

 

 

 

also share the screenshot of your rest message GetIPInfo method, did you pass the parameter in the end point url on the method ?

I add that and I'm getting the same error: 

Uncaught error: TypeError: Cannot read property "address" from null.