Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Mass migration of users through a flow

tomaslindev
Mega Guru

Hi everyone,

I need your help to reset the password of several users under certain conditions, for this I have created a flow that will be executed only once and I have used the “Update password” action, using the script section of the action I have added the following script to create an encrypted password formed by the first and last name of the user plus a random number, and then add the password to the body of an email to send to each user. The flow returns this error “Error: password must not be empty (sys_script_include.c2bb80aa73126300039a2ea3c4f6a721.script; line 20)”. Any ideas?
Thank you very much and best regards.

 

Flow Migración.png

 

(function execute(inputs, outputs) {
    
    var first_name = inputs.first_name; 
    var last_name = inputs.last_name;

    var randomNumber = Math.floor(Math.random() * 1000);

    var password = first_name + last_name + randomNumber;

    var encr = new GlideEncrypter();
    var encryptedPassword = encr.encrypt(password);

    outputs.encryptedPassword = encryptedPassword;

    gs.info('First name: ' + first_name);
    gs.info('Last name: ' + last_name);
    gs.info('Generated password: ' + password);
    gs.info('Encrypted password: ' + encryptedPassword);

})(inputs, outputs);

 

1 ACCEPTED SOLUTION

fidel_ey
Tera Guru

Hi Tomas.

 

I tried in a Background script , its something like this. But I am not convinced of the way in which you are proposing, as it may incur in error, but if it is as indicated I recommend that you pass in an email the password if the user to avoid sending confidential information.

var first_name = "John";
var last_name = "Doe";

var randomNumber = Math.floor(Math.random() * 1000);

var password = first_name + last_name + randomNumber;

if (!password) {
    throw new Error('Generated password cannot be empty.');
}

var encr = new GlideEncrypter();
var encryptedPassword = encr.encrypt(password);

if (!encryptedPassword) {
    throw new Error('Encryption failed. Encrypted password is empty.');
}

gs.info('First name: ' + first_name);
gs.info('Last name: ' + last_name);
gs.info('Generated password: ' + password);
gs.info('Encrypted password: ' + encryptedPassword);
*** Script: First name: John
*** Script: Last name: Doe
*** Script: Generated password: JohnDoe991
*** Script: Encrypted password: KNXvgcvr3QBKrGjyHNEceg==
 

View solution in original post

10 REPLIES 10

@tomaslindev 

what's the solution for this question?

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader