审批工作流通常将审批任务分配给请求者的经理。本教程展示了如何使用CSV数据在工作流中自动查找员工主管,从而自动完成该任务。

审批工作流模式

许多人力资源(HR)工作流,例如假期请求和雇佣请求,都是基于员工请求批准模式的。该工作流模式包括一个触发器表单,员工将在启动工作流时完成该表单,然后是一个“批准请求”任务,由员工的直线经理完成。

审批工作流

理想情况下,工作流将自动将“批准请求”任务分配给员工的经理。然而,工作流自动化平台通常不管理包含员工-经理关系的数据。这些数据通常来自人力资源系统。

选择主管(批准员工请求示例)

要自动分配“Approve request”任务,您需要一个“Select supervisor”子流程,该子流程将查找请求者的supervisor,用于任务分配。

电子表格的例子

提供员工-主管关系列表的最简单方法是使用电子表格,并将数据保存在CSV文件中。

管理人员表

这个员工电子表格显示了每个员工的主管。但是,Workflow Accelerator通过电子邮件地址识别用户帐户,因此您需要针对员工和主管的电子邮件列。下一步是使这些数据在工作流中可用。

将CSV数据附加到工作流加速器中的工作流

要使CSV数据在工作流中可用,您需要使它成为字段的固定值。要做到这一点:

  1. 将文件类型“Employees CSV”字段添加到工作流的“核心信息”中。
  2. 将“Set core information”事件添加到工作流中。
  3. 用固定值配置“Set core information”事件- CSV文件。

加载CSV数据-核心数据事件

下一步是添加读取和解析此CSV的脚本任务。

主管查子流程

‘Select supervisor’子进程本质上由一个JavaScript动作组成,它完成了所有的工作。

主管查子流程

触发器表单提供了员工选择,' Load CSV data '事件提供了员工及其主管的列表,' Select supervisor ' JavaScript动作从列表中选择所选员工的主管。

脚本配置需要三个工作流变量:

  1. ' Selected employee '—已存在的变量,用于触发器表单
  2. ' Employees CSV '——现有的变量,来自核心信息
  3. ' Selected supervisor '—一个新的User变量,用于脚本结果

这些变量将在下面的脚本中使用。

Const _ = require('_') Const CSV = require(' CSV ') Const files = require('files') Const users = require('users');const employeeColumn = '员工电子邮件' const supervisorColumn =‘主管邮件’const选项= {auto_parse:真的,列:真的,relax_column_count:真正}const csvContents = files.getContent employeesCSV.id csv.parse (csvContents.buffer.toString(“utf - 8”)选项,(错误,employeeList) = >{如果(错误){console.log(“错误解析CSV:${error} ')length == 0) {console.log('错误:CSV包含零行')return} else {console.log(' ${employeeList. CSV ')如果(!employeeList[0][employeecolum]) {console.log(' Error: missing ' ${employeecolum} ' column ') return} const entry = _。find(employeeList, [employeecolem, selecteemployee . emailaddress]) if (!entry) {console.log(' Error: no entry for employee ' ${selecteemployee . emailaddress} ') return} console.log(' Found entry: ${JSON.stringify(entry)} ') if (!entry[employeorcolumn]) {console.log(' Error:失踪的$ {supervisorColumn}”列的员工)返回}selectedSupervisor = users.findByEmail(条目[supervisorColumn])如果(! selectedSupervisor) {console.log(的错误:没有发现工作流加速器用户帐户的${条目[supervisorColumn]}‘)返回}console.log(“成功:$ {selectedEmployee。firstName} $ {selectedEmployee。lastName}→$ {selectedSupervisor。firstName} $ {selectedSupervisor.lastName}”)})

现在您可以测试脚本,通过为“Selected employee”字段选择一个测试值,上传与“Employees CSV”测试值相同的CSV文件,并选择“Start new test”。测试运行器的' Variable updates '表应该在' selectedSupervisor '变量的' Updated value '列中显示一个用户ID。

现在您可以发布这个“Select supervisor”流程,并从员工请求流程的子流程操作中调用它。在子流程输入配置中,将' Selected employee '字段设置为Case / Creator。然后输出配置提供了一个“Selected supervisor”角色,您可以将“Approve request”任务分配给这个角色。

下一个步骤

本教程展示了使用JavaScript操作执行员工-主管查找的一种相对简单的方法。在实践中,您可能不希望使用附加到工作流的固定CSV文件,因为每次有员工加入或离开公司时,您都必须更新这个CSV文件。

或者,您可以用一个JavaScript动作替换核心信息事件,该动作从外部HTTP URL或通过WebDAV获取员工CSV数据。其余的将保持不变。你也可以使用一个API来提供JSON或XML格式的员工数据,这意味着对“Select supervisor”JavaScript动作进行小的修改,该动作负责解析数据。

Signavio工作流加速器的JavaScript动作使您能够灵活地与复杂的数据和外部系统集成,从而进一步自动化您的业务流程。要创建自己的工作流,自动将任务分配给你的老板,注册一个天的免费试用今天。

发布日期:2018年6月6日-最后修改日期:2020年11月13日
主题:工作流