Skip to main content

ServiceNow gs.generateGUID() or other unique ID generator types

 link:

https://developer.servicenow.com/dev.do#!/reference/api/tokyo/server/no-namespace/c_GlideSystemScopedAPI#r_ScopedGlideSystemGenerateGUID

"Generates a GUID that can be used when a unique identifier is required."


personalId = gs.generateGUID();
gs.info(personalId);


Output:

*** Script: b3b17d8f97f02110df843a300153af6c


alternative

if you just wanted a number, could use something like:
Math.floor(Math.random() * 1000000) 


You could set a property to be the counter and increment from there. There would technically be a race condition where two threads could read the same value and come up with the same result but it would be very difficult to produce that issue.

or use a GlideRecord lookup for existing non-employee profiles to get the max value and increment that

Comments

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

URL link in addInfoMessage

var ga=new GlideAjax('gld_HR_ajax'); ga.addParam('sysparm_name', 'checkEmployeeNumber_hrProfile'); ga.addParam('sysparm_hrprofilenumber', g_form.getValue('number')); ga.addParam('sysparm_employeenumber', newValue); ga.getXMLAnswer(function(answer) { if (answer!='undefined' && answer!=''){ var navURL="<a style='text-decoration:underline;color:blue' href=hr_profile.do?sysparm_query=number=" + answer + ">" + answer + "</a><img width='3' src='images/s.gif'/>"; var sMsg='The employee number entered already exists on another HR Profile ' + navURL; //alert(sMsg); g_form.showErrorBox('employee_number', 'error - please check'); g_form.addInfoMessage(sMsg); } });