- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 05:09 AM
Hey Folks,
I'm trying to parse through text and get values to use within a script.
Since this is very confusing i'm asking to see if any of you scripting masters can do this, or point me in the correct direction.
We are automatically deactivating itil users after they haven't logged in within 30 days.
We are removing them from groups, and removing their email address from their account and putting it in a field on the user record "u_information"
The blub being put in this "Information" field is like so.
User removed from the following groups due to inactivation on 08-08-2016
Groups: Interfaces,Dept IT Analysts,Applications, Provisioning
Default Group: Provisioning
Email: jparker@test.com
What i'm looking to do is to create a UI Action to reactivate users who have been disabled.
So i want this UI Action to be a 1 click action, to set:
1. active = 'true'
2. locked_out = 'false'
3. get the email address from the information field and put it back in the email field.
4. get the default group and put it back in the default group reference field.
5. get the "Groups" and add the user back to all of the groups listed.
Does this seem possible?
Any help will be greatly appreciated.
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 07:55 AM
Here you go
var str = current.u_information;
var lineArr = str.split('\n');
var groupLine = '';
var defaultGroupLine = '';
var emailLine = '';
for (var i = 0; i < lineArr.length; i++) {
if (lineArr[i].indexOf('Groups:') == 0)
groupLine = lineArr[i];
if (lineArr[i].indexOf('Default Group:') == 0)
defaultGroupLine = lineArr[i];
if (lineArr[i].indexOf('Email:') == 0)
emailLine = lineArr[i];
}
current.active = true;
current.locked_out = false;
if (groupLine != '') {
var groupList = groupLine.split(':')[1].split(',');
for (var g = 0; g < groupList.length; g++) {
var grMember = new GlideRecord('sys_user_grmember');
grMember.newRecord();
grMember.user = current.sys_id;
grMember.group.setDisplayValue(groupList[g].trim());
grMember.insert();
}
}
if (defaultGroupLine != '') {
var defaultGroup = defaultGroupLine.split(':')[1];
current.u_default_group.setDisplayValue(defaultGroup.trim());
}
if (emailLine != '') {
var email = emailLine.split(':')[1];
current.email.setDisplayValue(email.trim());
}
current.update();
action.setRedirectURL(current);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 06:32 AM
Minor tweaks to your code
var lineArr = str.split('\n');
var groupLine = '';
var defaultGroupLine = '';
var emailLine = '';
for (var i = 0; i < lineArr.length; i++) {
if (lineArr[i].indexOf('Groups:') == 0)
groupLine = lineArr[i];
if (lineArr[i].indexOf('Default Group:') == 0)
defaultGroupLine = lineArr[i];
if (lineArr[i].indexOf('Email:') == 0)
emailLine = lineArr[i];
}
current.active = true;
current.locked_out = false;
if (groupLine != '') {
var groupList = groupLine.split(':')[1].split(',');
for (var g = 0; g < groupList.length; g++) {
var grMember = new GlideRecord('sys_group_grmember');
grMember.newRecord();
grMember.user = current.sys_id;
grMemeber.group.setDisplayValue(groupList[i].trim());
grMember.insert();
}
}
if (defaultGroupLine != '') {
var defaultGroup = defaultGroupLine.split(':')[1];
current.u_default_group.setDisplayValue(defaultGroup.trim());
}
if (emailLine != '') {
var email = emailLine.split(':')[1];
current.email.setDisplayValue(email.trim());
}
current.update();
action.setRedirectURL(current);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 07:51 AM
Hey Abhinay,
Thanks for your reply. after taking your code and adding a new line 1. var str = current.u_information;
your code did pull the default group, and the email address.
however, still does not work on the "Groups:" list.
Current fields:
Information: u_information
email: email (standard field on sys_user table)
default group: u_default_group (Reference to the sys_user_group table)
active: active (standard field on sys_user table)
locked out: locked_out (standard field on sys_user table)
current code:
var str = current.u_information;
var lineArr = str.split('\n');
var groupLine = '';
var defaultGroupLine = '';
var emailLine = '';
for (var i = 0; i < lineArr.length; i++) {
if (lineArr[i].indexOf('Groups:') == 0)
groupLine = lineArr[i];
if (lineArr[i].indexOf('Default Group:') == 0)
defaultGroupLine = lineArr[i];
if (lineArr[i].indexOf('Email:') == 0)
emailLine = lineArr[i];
}
current.active = true;
current.locked_out = false;
if (groupLine != '') {
var groupList = groupLine.split(':')[1].split(',');
for (var g = 0; g < groupList.length; g++) {
var grMember = new GlideRecord('sys_user_grmember');
grMember.newRecord();
grMember.user = current.sys_id;
grMember.group.setDisplayValue(groupList[i].trim());
grMember.insert();
}
}
if (defaultGroupLine != '') {
var defaultGroup = defaultGroupLine.split(':')[1];
current.u_default_group.setDisplayValue(defaultGroup.trim());
}
if (emailLine != '') {
var email = emailLine.split(':')[1];
current.email.setDisplayValue(email.trim());
}
current.update();
action.setRedirectURL(current);
on line 24, you had sys_group_grmember, the actual table is sys_user_grmember.
So i corrected that, and it added the current user to a blank group.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 07:53 AM
on line 27 if the change the [i] (eye) to a [1] i get all the same group.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 07:55 AM
Here you go
var str = current.u_information;
var lineArr = str.split('\n');
var groupLine = '';
var defaultGroupLine = '';
var emailLine = '';
for (var i = 0; i < lineArr.length; i++) {
if (lineArr[i].indexOf('Groups:') == 0)
groupLine = lineArr[i];
if (lineArr[i].indexOf('Default Group:') == 0)
defaultGroupLine = lineArr[i];
if (lineArr[i].indexOf('Email:') == 0)
emailLine = lineArr[i];
}
current.active = true;
current.locked_out = false;
if (groupLine != '') {
var groupList = groupLine.split(':')[1].split(',');
for (var g = 0; g < groupList.length; g++) {
var grMember = new GlideRecord('sys_user_grmember');
grMember.newRecord();
grMember.user = current.sys_id;
grMember.group.setDisplayValue(groupList[g].trim());
grMember.insert();
}
}
if (defaultGroupLine != '') {
var defaultGroup = defaultGroupLine.split(':')[1];
current.u_default_group.setDisplayValue(defaultGroup.trim());
}
if (emailLine != '') {
var email = emailLine.split(':')[1];
current.email.setDisplayValue(email.trim());
}
current.update();
action.setRedirectURL(current);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2016 08:25 AM
Thank you for your help.
Final code came out to be:
var str = current.u_information;
var lineArr = str.split('\n');
var groupLine = '';
var defaultGroupLine = '';
var emailLine = '';
for (var i = 0; i < lineArr.length; i++) {
if (lineArr[i].indexOf('Groups:') == 0)
groupLine = lineArr[i];
if (lineArr[i].indexOf('Default Group:') == 0)
defaultGroupLine = lineArr[i];
if (lineArr[i].indexOf('Email:') == 0)
emailLine = lineArr[i];
}
current.active = true;
current.locked_out = false;
if (groupLine != '') {
var groupList = groupLine.split(':')[1].split(',');
for (var g = 0; g < groupList.length; g++) {
var grMember = new GlideRecord('sys_user_grmember');
grMember.newRecord();
grMember.user = current.sys_id;
grMember.group.setDisplayValue(groupList[g].trim());
grMember.insert();
}
}
if (defaultGroupLine != '') {
var defaultGroup = defaultGroupLine.split(':')[1];
current.u_default_group.setDisplayValue(defaultGroup.trim());
}
if (emailLine != '') {
var email = emailLine.split(':')[1];
current.email.setDisplayValue(email.trim());
}
current.update();
action.setRedirectURL(current);
Chuck, thank you for your help as well!
Much appreciated.