Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Switch Case not working

ersureshbe
Giga Sage
Giga Sage

Hi,

I tried to use switch statement for my requirement. The below script is not working as expected ie., it's not going to each switch cases. Hope, i have an issue with "getActivityName" variable. Even, i wrote the correct case stmt as per "getActivityName" variable. I ran script and got below output. I verified case statement and Activity name. Both are same and I cant identify where the issue. Could you please help on this?

 

var WorkflowID = '32';
var getActivityName;
getActivityAttributes(WorkflowID);

function getActivityAttributes(WorkflowID)
{
var getActivityVars = new GlideRecord('u_workflow_automation_template');
getActivityVars.addQuery('u_item_type','u_activity');
getActivityVars.addQuery('u_wf_number',WorkflowID); //WF_Number.
getActivityVars.query();

while(getActivityVars.next())
{

gs.log('Logged in Main Function');
getActivityName = getActivityVars.u_activity_type;
var ActivityID = getActivityVars.u_activity_id;
gs.log('Activity Name:'+getActivityName);

switch(getActivityName)
{

case 'Catalog Task':
gs.log('Looged in Catalog Task Switch Stmt');
var getTaskDesc = getActivityVars.u_task_short_description;
var varTD_id = 'c35e10720a0a0ba96248a709d48d0894';
if(!getTaskDesc.nil())
{
createActivityValues(ActivityID,getTaskDesc,varTD_id);
}


var getTaskAssignmentGrp = getActivityVars.u_task_fulfillment_grp;
var varTAG_id = 'c35e07ae0a0a0ba96248a7097c81317c';
if(!getTaskAssignmentGrp.nil())
{
createActivityValues(ActivityID,getTaskAssignmentGrp,varTAG_id);
}
break;
case 'Approval - Group':
gs.log('Looged in Approval Grp Switch Stmt');
/*var getApprovalGrp = getActivityVars.u_approval_grp;
var varAG_id = 'a8abc43ac0a800664b9b89a9f3f2c7a1';
if(!getApprovalGrp.nil())
{
var getGroupID = getAssignmentGrpID(getApprovalGrp);
createActivityValues(ActivityID,getGroupID,varAG_id);
}*/
break;

case 'Approval - User':
gs.log('Looged in Approval User Switch Stmt');
var getApprovalUser = getActivityVars.u_approval_user;
var varAU_id = 'c35e4cc40a0a0ba96248a7098ec9cb06';
if(!getApprovalUser.nil())
{
var getApprovalUserID = getUserID(getApprovalUser);
createActivityValues(ActivityID,getApprovalUserID,varAU_id);
}
break;

case 'Notification':
gs.log('Looged in Notification Switch Stmt');
var getNotificationSubject = getActivityVars.u_notification_subject;
var varNS_id = 'c35db2180a0a0ba96248a709d1b6df20';

if(!getNotificationSubject.nil())
{
createActivityValues(ActivityID,getNotificationSubject,varNS_id);
}

var getNotificationMessage = getActivityVars.u_notification_message;
var varNM_id = 'c35db5a50a0a0ba96248a70938ae8de6';
if(!getNotificationMessage.nil())
{
createActivityValues(ActivityID,getNotificationMessage,varNM_id);
}
break;
default:
gs.log('No Case stmt matched!!!');
break;

}
}
}

function getAssignmentGrpID(grp)
{
var getGroupID = new GlideRecord('sys_user_group');
getGroupID.addQuery('name',grp);
getGroupID.query();

while(getGroupID.next())
{
gs.log('Assignment Group ID:'+getGroupID.sys_id);
return getGroupID.sys_id;
}
}

function getUserID(user)
{
var getUserSYSID = new GlideRecord('sys_user');
getUserSYSID.addQuery('name',user);
getUserSYSID.query();
while(getUserSYSID.next())
{
gs.log('User ID:'+getUserSYSID.sys_id);
return getUserSYSID.sys_id;
}
}

function createActivityValues(ActivityID,getTaskDesc,var_ID)
{
var createActivityValue = new GlideRecord('sys_variable_value');
createActivityValue.initialize();
createActivityValue.document = 'wf_activity';
createActivityValue.variable = var_ID;
createActivityValue.value = getTaskDesc;
createActivityValue.document_key = ActivityID;
createActivityValue.insert();
gs.log('Record has inserted into Activity Value');
}

 

Output:

*** Script: Logged in Main Function
*** Script: Activity Name:Notification
*** Script: No Case stmt matched!!!
*** Script: Logged in Main Function
*** Script: Activity Name:Catalog Task
*** Script: No Case stmt matched!!!
*** Script: Logged in Main Function
*** Script: Activity Name:Run Script
*** Script: No Case stmt matched!!!
*** Script: Logged in Main Function
*** Script: Activity Name:Approval - Group
*** Script: No Case stmt matched!!!

Regards,
Suresh Loganathan.
Regards,
Suresh.
1 ACCEPTED SOLUTION

Michael Jones -
Giga Sage

Seems silly, but try changing the line: 

getActivityName = getActivityVars.u_activity_type;

to: getActivityName = getActivityVars.u_activity_type.toString();

 

I hope this helps!
Michael D. Jones
Proud member of the GlideFast Consulting Team!

View solution in original post

2 REPLIES 2

Michael Jones -
Giga Sage

Seems silly, but try changing the line: 

getActivityName = getActivityVars.u_activity_type;

to: getActivityName = getActivityVars.u_activity_type.toString();

 

I hope this helps!
Michael D. Jones
Proud member of the GlideFast Consulting Team!

Mike,

Minor change solved major. Thanks 

Regards,
Suresh.