Need help on Employee Form for "Collect employee input" task type

VShine
Mega Guru

I am trying to use "Employee Form" to use it on HR task type to collect employee input & mapped value back to table fields.

Created fields on table (Choice type), created choice type question type on Employee form, publish it. find_real_file.png

 

 

When creating HR task, it appearing correct on portal. Once assigned to provide feedback, values of response is not mapped back to field on table.

When checking under "Employee Form error" , getting this error about "Condition builder" on employee form. What should be condition triggered point? I tried  with HR service, but then it is pulling all open record for given HR service.

find_real_file.png

Please help!

28 REPLIES 28

Hi Vikrami,

Can you please mark answers helpful. This helps the community and rewards people for their effort.

I have the same issue. I am using the Employee Form for Manager confirmation. The Manager receives the Employee Form and has to enter in the Employees Start Date, and various other fields. 

The problem I'm running into, like yours, is if there's two HR Tasks submitted for the same Managers input, I get an error in Employee Form Errors, stating that there's more than 1 record. 

@patbishop let me know if you get it to work for that scenario - when user has more than one case assigned to.

I just was able to get something to work, although it may not be the most effective, or prettiest. 

I discovered, that even if there's multiple matches for insertion, it still populates the results into the asmt_metric_result table. 

1. Create "Number" field on Employee Form Survey

  • Make Read-Only
  • Map it to "Number" on your case

2. Create Business Rule on Table: asmt_metric_result

  • Before
  • Conditions: source = 'My Survey ID' & metric = 'Number'

3. On Advanced Script,

  • pull 'current.instance' and run a GlideRecord lookup on asmt_metric_result table for all records that match that 'instance'.
  • In the while loop, I performed a check on the 'metric' field to see which field it was, and mapped it to the 'reference_value' or 'string_value' fields accordingly
  • Finally, I created another GlideRecord to Update the data on my case table.

The only thing that's left is to find where the Work Note "HR Task XXX: completed with one or more errors. Click here to learn more." is coming from, and add an exclusion to not run this if it's my Survey ID. 

 

 

find_real_file.png

find_real_file.png

I wanted to add another followup.

I figured out a way to make all of my conditions become unique by forcing the parent case number of my HR Task into the condition. 

Script Include: hr_TaskTicket

 

Line 107: Replace:

task.employee_form.condition = gr.getElement('employee_form.condition')+'';

with:

if(task.hr_service.name == "ENTER YOUR HR SERVICE NAME HERE")
{
     task.employee_form.condition = 'parent=' + task.parent + '^' + gr.getElement('employee_form.condition')+'';
}
else
{
     task.employee_form.condition = gr.getElement('employee_form.condition')+'';
}		

This will force the parent number to be appended into the condition, which will allow it to pass when the HR Task HR Form is populated.  

NOTE: I still have to figure out how to prevent the Work Note notification from appearing if the internal Employee Form finds an error.