
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-10-2020 07:32 AM
Hey SN Comm,
I am looking for some help implementing a conversation through VA Chatbot, to be able to resolve HR Cases.
I have taking the 'Resolve Incident' flow and copied it, change the table and state to match the hr case table (so I thought).
But the chatbot keeps returning 'No Records Found' decision.
Here is the Resolve Incident 'Get Incidents' Script Action:
(function execute() {
var gr = new GlideRecordSecure('incident');
gr.addQuery('assigned_to', vaInputs.user);
gr.addQuery('state', '!=', vaVars.resolved_state)
gr.addActiveQuery();
gr.orderByDesc('sys_updated_on');
var start = parseInt(vaVars.index);
var end = start + parseInt(vaVars.limit);
gr.chooseWindow(start, end, true);
gr.query();
vaVars.count = gr.getRowCount();
var results = [];
while(gr.next()) {
results.push({
'value': gr.getUniqueValue(),
'label': gs.getMessage('{0} [{1}]', [gr.getDisplayValue('short_description'),gr.getDisplayValue('number')])
});
}
vaVars.results = JSON.stringify(results);
})()
And here are the next steps it takes once it gets records
Here is what I changed to try and match HR Case tables:
(function execute() {
var gr = new GlideRecord('sn_hr_core_case');
gr.addQuery('assigned_to', vaInputs.user);
gr.addQuery('state', '!=', vaVars.closed_complete_state)
gr.addActiveQuery();
gr.orderByDesc('sys_updated_on');
var start = parseInt(vaVars.index);
var end = start + parseInt(vaVars.limit);
gr.chooseWindow(start, end, true);
gr.query();
vaVars.count = gr.getRowCount();
var results = [];
while(gr.next()) {
results.push({
'value': gr.getUniqueValue(),
'label': gs.getMessage('{0} [{1}]', [gr.getDisplayValue('short_description'),gr.getDisplayValue('number')])
});
}
vaVars.results = JSON.stringify(results);
})()
And here are my next steps to match:
I keep getting taken to the No Cases Found decision and I am thinking I have the table set up wrong from the very first step. I definitely have cases assigned to myself.
Anyone able to assist with this?
Thank you!
-Rob
Solved! Go to Solution.
- Labels:
-
Virtual Agent

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-14-2020 12:56 PM
Okay - looked at the code with a co-worker and we were able to figure it out!
realized that vaVars.awaiting_acceptance_state means nothing for scoped hr.
It wants the value instead of the label name - i.e. awaiting acceptance is '20'.
I also had my u_case_resolution get function in the wrong place, for how we handle on the native side.
here is the code the works perfectly:
(function execute() {
var success = null;
var gr = new GlideRecordSecure('sn_hr_core_case');
if (gr.get(vaVars.sys_id)) {
//set state to Awaiting Acceptance
gs.info("changing state");
gs.info("current state is: " + gr.state);
gr.u_case_resolution = vaInputs.u_case_resolution.getValue();
gr.state = 20;
gs.info("state has changed to:" + gr.state);
var operation = vaInputs.update_comments.getValue();
if (operation != 'cancel') {
if ((operation == 'comment' || operation == 'both') && vaInputs.comment.getValue().trim() != ''){
gr.comments = vaInputs.comment;
}
if ((operation == 'work_notes' || operation == 'both') && vaInputs.work_notes.getValue().trim() != ''){
gr.work_notes = vaInputs.work_notes;
}
}
success = gr.update();
}
vaVars.success = '' + (success != null);
})()

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-14-2020 12:56 PM
Okay - looked at the code with a co-worker and we were able to figure it out!
realized that vaVars.awaiting_acceptance_state means nothing for scoped hr.
It wants the value instead of the label name - i.e. awaiting acceptance is '20'.
I also had my u_case_resolution get function in the wrong place, for how we handle on the native side.
here is the code the works perfectly:
(function execute() {
var success = null;
var gr = new GlideRecordSecure('sn_hr_core_case');
if (gr.get(vaVars.sys_id)) {
//set state to Awaiting Acceptance
gs.info("changing state");
gs.info("current state is: " + gr.state);
gr.u_case_resolution = vaInputs.u_case_resolution.getValue();
gr.state = 20;
gs.info("state has changed to:" + gr.state);
var operation = vaInputs.update_comments.getValue();
if (operation != 'cancel') {
if ((operation == 'comment' || operation == 'both') && vaInputs.comment.getValue().trim() != ''){
gr.comments = vaInputs.comment;
}
if ((operation == 'work_notes' || operation == 'both') && vaInputs.work_notes.getValue().trim() != ''){
gr.work_notes = vaInputs.work_notes;
}
}
success = gr.update();
}
vaVars.success = '' + (success != null);
})()