Script Modification needed

Saib1
Tera Guru

Hi All,

 

I am passing 2 id - test@gmail.com,test1@gmail.com

It is calling the rest message and adding only test@gmail.com.

 

Yes for each userid , restmessage should get looped, As of now it is adding for one user id test@gmail.com

 

Workflow Editor
var user_id = current.variables.user_id.getDisplayValue();
var arrUser = user_id.split(',');
for (var i in arrUser) {
gs.info('arrUser' + arrUser[i]);
var body = {
var r = new sn_ws.RESTMessageV2('User Access Mangement', 'Dev Instance');

'user_id': arrUser[i]

'action_required': current.variables.action_required.getDisplayValue(),

};
}

 

Scripted rest API 

 

(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {

 

var reqbody = request.body;
var reqdata = reqbody.data;
var objt = JSON.stringify(reqdata);
var objt1 = objt.toString();
var incomingData = JSON.parse(objt1);
var roles = incomingData.roles;
var action_required = incomingData.action_required;
var user_id = incomingData.user_id;
var group_s = incomingData.group_s;

var action_required = incomingData.action_required;

if (action_required == "Add a role to user") {
var role = new GlideRecord("sys_user_has_role");
// role.addEncodedQuery('user=' + userSysId + '^role=' + roleSysId);
role.addQuery("role", roleSysId);
role.addQuery("user", userSysId);
role.query();
if (role.next()) {
gs.log('Role Exsists', 'shohaib');
var respbody = {
"message": "Role already exists"
};
response.setContentType('application/json');
response.setStatus(400);
response.setBody(respbody);
} else {
role.initialize();
role.setDisplayValue('user', userSysId);
role.setDisplayValue('role', NameofRole);
role.state = "Active";
role.setWorkflow(false);
role.insert();
var respbody1 = {
"message": "Role added successfully"
};
response.setContentType('application/json');
response.setStatus(200);
response.setBody(respbody1);
}

 

}

 

1 ACCEPTED SOLUTION

Aniket Chavan
Tera Sage
Tera Sage

Hello @Saib1 

Please try the scripts below, where I've made a few changes. Unfortunately, I didn't have time to test them, so let me know how they perform for you.

Workflow Editor:

var user_id = current.variables.user_id.getDisplayValue();
var arrUser = user_id.split(',');

for (var i in arrUser) {
  gs.info('arrUser' + arrUser[i]);
  var body = {
    'user_id': arrUser[i],
    'action_required': current.variables.action_required.getDisplayValue(),
  };

  var r = new sn_ws.RESTMessageV2('User Access Management', 'Dev Instance');
  r.setStringParameter('user_id', body.user_id);
  r.setStringParameter('action_required', body.action_required);

  // Make the REST call
  var response = r.execute();
  var responseBody = response.getBody();
  gs.info('Response: ' + responseBody);
}

 

Scripted REST API:

(function process(/RESTAPIRequest/ request, /RESTAPIResponse/ response) {

  var reqbody = request.body;
  var reqdata = reqbody.data;
  var objt = JSON.stringify(reqdata);
  var objt1 = objt.toString();
  var incomingData = JSON.parse(objt1);
  var roles = incomingData.roles;
  var action_required = incomingData.action_required;
  var user_id = incomingData.user_id;
  var group_s = incomingData.group_s;

  if (action_required == "Add a role to user") {
    var role = new GlideRecord("sys_user_has_role");
    // Assuming roleSysId, userSysId, and NameofRole are properly defined
    role.addQuery("role", roleSysId);
    role.addQuery("user", userSysId);
    role.query();

    if (role.next()) {
      gs.log('Role Exists', 'shohaib');
      var respbody = {
        "message": "Role already exists"
      };
      response.setContentType('application/json');
      response.setStatus(400);
      response.setBody(respbody);
    } else {
      role.initialize();
      role.setDisplayValue('user', userSysId);
      role.setDisplayValue('role', NameofRole);
      role.state = "Active";
      role.setWorkflow(false);
      role.insert();

      var respbody1 = {
        "message": "Role added successfully"
      };
      response.setContentType('application/json');
      response.setStatus(200);
      response.setBody(respbody1);
    }
  }

})(request, response);

 

Let me know your views on this and Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.

 

Regards,

Aniket

 

View solution in original post

5 REPLIES 5

Hi 

 

It did not get updated