携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天
添加 Decisions 节点
根据新员工是在办公室办公还是在家办公,该员工有两个不同的任务:在办公室准备一张桌子或将笔记本电脑和电话发送到新员工的家庭地址。入职流程的这一步应由设施部门完成。
- 在用户任务管理器的传出分支上:指定位置,分别为设施运送设备和准备台添加用户任务。要添加这些任务,请按照与之前相同的步骤进行操作。在这些任务中,分配给他们的角色应该是设备管理员。
我们的工作流程现在如下所示:
对于这些用户任务,分别创建PrepareDesk_Workflow页面和ShipDevices_Workflow页面。需要理解的重要一点是,从指定位置用户任务中获得多个结果应该被视为一个独占拆分,其中一次只能采用一个传出分支。您可以改用Decision元素,但在这种情况下,您需要指定一个表达式,该表达式将导致选择一个或另一个分支。因此,对于人为驱动的决策,使用用户任务的结果,但对于应该使用决策自动执行的表达式的评估。
我们需要确保PrepareDesk_Workflow 页面和ShipDevices_Workflow页面上只显示相关信息。双击每个页面并将预生成属性的Editable属性设置为 Never
完美!我们已经配置了新员工是在办公室办公还是在家办公的Decisions和用户任务。
扩展我们的Workflow的逻辑处理
迄今为止构建的工作流中,每个任务都由(指定的)用户执行。然而,在某些情况下,某些任务可能需要自动执行,而无需通过页面与用户交互。这是您可以使用Call Microflow活动的地方。
就像您习惯于定义对常规微流的访问一样,在从工作流中创建微流时,也需要指定访问规则。
调用微流的来源通常在命名约定中指明。这是您需要记住的一个新约定:每当从工作流中调用微流名称时,都会使用以下前缀开始微流名称:
- 用户分配:WFA_
- 系统动作:WFS_
- 在创建事件时:WFC_
是时候为您的工作流程添加微流程了!
添加微流
我们可以通过调用微流来扩展工作流逻辑。如果新员工在办公室工作,您希望在系统中显示设施部门准备的办公桌已分配给该新员工。通过这种方式,人力资源和管理层将看到新同事在办公室的位置。您有一个可以使用的WFS_AssignDesk微流。
要在工作流中调用微流,请执行以下操作:
- 打开工作流编辑器,转到工具箱并在 Prepare Desk用户任务之后拖放Call microflow活动:
- 双击Call microflow属性并在Select microflow对话框中,按New,创建WFS_AssignDesk微流并单击Select。
- 将Caption属性更改为Assign Desk。
- 如果您从工作流创建微流,则会自动添加输入参数EmployeeOnboarding。
您现在可以将实际的办公桌分配逻辑添加到微流程中,这超出了本指南的范围。有关微流及其属性的更多信息,请参阅微流和微流属性。现在,如果经理指示新员工在办公室工作,则设施部门准备的办公桌将分配给新员工并显示在系统中。
测试我们的Workflow
为了测试您的应用程序,让我们首先配置项目Navigation。继续,导航到您的Project,然后Navigation并添加以下导航项:
此外,为所有可用角色定义基于角色的页面。
- 对于角色 WorkflowAdministrator,选择WorkflowCommons.WorkflowAdminCenter页面。
- 对于角色 HR,选择EmployeeOnboarding_Overview页面。
- 对于角色设施和经理,选择WorkflowCommons.TaskInbox页面。
现在您可以从不同用户的角度测试您的工作流程。
要测试您的工作流程,您需要在不同的用户角色之间切换。请按照以下步骤操作:
- 在 Mendix Studio Pro 的顶部栏中,单击本地运行。
- 部署应用程序后,单击查看 应用程序。
- 在您的浏览器中,以管理员用户身份登录。
- 单击右侧的用户图标可切换到另一个用户角色:
- 要测试用例,您需要执行以下操作:
开始入职流程
测试流程:切换用户、查看每个用户的收件箱、完成任务、查看如何为您在流程中的下一个任务中配置的用户角色创建新的收件箱项目
打开工作流管理中心
要启动工作流,请切换到demo_HR角色。此时,只有用户角色 HR 有权访问EmpoyeeOnboarding_Overview页面。添加一名或多名将通过入职的员工,然后按开始入职按钮。
启动工作流后,切换到 demo_manager 角色。您应该会看到 TaskInbox 页面。未分配的任务选项卡应该有一个任务,用于为 HR 在上一步中选择的员工指定设备。按分配给我按钮开始处理此任务。
分配的任务现在将出现在我的打开任务选项卡中。
继续,打开此任务,指定设备并按完成任务按钮。请注意,此应用程序中还没有内置验证来检查您是否在页面上提供了所有必需的输入。您可以通过创建与“完成任务”按钮关联的自定义逻辑轻松完成此操作。
任务完成后,将为经理 角色分配一个新任务,以指定员工的位置。按照上述步骤,分配位置,然后切换到demo_Facilities角色。根据 Manager 的选择,demo_Facilities角色将看到Ship Devices或Prepare Desk的任务。
系统任务将在后台执行,您无法直接看到收件箱中的任务。要做到这一点,您需要定义逻辑并定义哪些消息将出现在哪些页面上以及针对哪些角色。
WorkflowAdministrator 角色可以访问Workflow Admin Center,并且可以监控所有工作流、查看工作流的进度以及更改工作流设置。继续,检查工作流仪表板和工作流管理功能。
工作流仪表板显示有关当前正在运行或已完成的流程实例的信息。
要查看工作流中使用的上下文信息,我们还要生成管理页面,WorkflowAdministrator在访问工作流管理和工作流仪表板时将使用该管理页面。打开工作流并用鼠标右键单击选择生成管理员页面。 这将生成一个新页面,但是当必须显示工作流的管理页面时,Mendix 将知道必须使用此管理页面来定义此工作流。因此,您可以为每个工作流程使用不同的管理页面。如果没有创建管理页面,则使用默认页面,但会在工作流管理中显示 EmployeeOnboarding 对象的上下文信息页。之后,重新运行项目并访问工作流管理页面。
在工作流管理页面上,打开一个工作流实例并查看有关在工作流执行期间创建和丰富的 EmployeeOnboarding 对象的信息。
总结
到这里,我们就完成了我们入职流程这个场景的Workflow的创建了。