- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:21 AM
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);
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:31 AM
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);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:34 AM
That helped but now I get this error: "
Uncaught error: TypeError: Cannot read property "address" from null"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:41 AM
so current is null.
what table is the BR on? when does it run (before, after etc...)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:44 AM
put the log and validate are you getting some value in current.address
gs.info('address value is'+current.address);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:47 AM
also share the screenshot of your rest message GetIPInfo method, did you pass the parameter in the end point url on the method ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2019 05:51 AM
I add that and I'm getting the same error:
Uncaught error: TypeError: Cannot read property "address" from null.