Get user's sys id from the catalog variable

Manish Singh
Kilo Expert

Hi All,

I have a workflow where I need to capture the sysid of user from the configured variable "term_user" which is referencing to "sys_user" table. If requester specify the user name then

script should capture the user value & get it's sys id.

Condition: If user is active then it should return true else false.

find_real_file.png

I have created the below script but it's always returning "no" as value. Can someone have a look & let me know the reason.

----------------------------------------------------------------------

//Script to check whether user is active or not.

answer = ifScript();

function ifScript() {

var t_user = current.variables.term_user.sys_id;   //term_user is a variable where user is providing the user information

var user = new GlideRecord('sys_user');

user.addQuery(t_user);

user.query();

while (user.next())

        {

                  if (user.active == true)

                            {

                                      answer = 'yes';

                              }

        else

                              {

                                      answer = 'no';

                            }

          }

-----------------------------------------------------------------------------------

Thanks in advance!

Kind regards,

Manish

1 ACCEPTED SOLUTION

Manish Singh
Kilo Expert

Thanks every one, by the below query I am able to get the proper result in workflow.



var t_user = current.variables.term_user;


var gr = new GlideRecord('sys_user');


gr.addQuery('sys_id', t_user);


gr.query();




if (gr.next())


{


if (gr.active == true)


{


answer = true;


}


}


View solution in original post

20 REPLIES 20

SanjivMeher
Kilo Patron
Kilo Patron

Hi Manish,



Please use the below code.



//Script to check whether user is active or not.


answer = ifScript();


function ifScript() {



var t_user = current.variables.term_user.sys_id+'';   //term_user is a variable where user is providing the user information


var user = new GlideRecord('sys_user');


user.addQuery('sys_id',t_user);


user.query();



if (user.next())


        {


                  if (user.active == 'true')


                            {


                                      answer = 'yes';


                              }


        else


                              {


                                      answer = 'no';


                            }


          }



Please mark this response as correct or helpful if it assisted you with your question.

No Sanjiv, result is still coming as NO for active users.


Jaspal Singh
Mega Patron
Mega Patron

Hi Manish,



Could you try using



return true; instead of answer='yes'; & same with false.


Let me try.