第6章,Workflow基础篇|配置我们的 Workflow(Part 1)

351 阅读6分钟

将工作流程与页面连接起来

让我们开始您的工作流程,我们需要触发它。在此用例中,工作流程由 HR 专家启动,他应填写新员工的姓名、他们入职的第一天,然后单击触发工作流程的 Start Onboarding 按钮。

EmployeeOnboarding_Overview页面,其中包含所有员工的列表,并将EmployeeOnboarding实体作为数据源:

image.png

页面访问权限仅限于 HR 用户角色:

image.png

只有 HR 角色可以查看此页面并触发工作流。请记住,在上一个模块中,您已经将“开始入职”按钮连接到工作流。如果不这样做,HR 将根本无法触发它。

触发工作流

要配置将启动工作流的按钮,请执行以下操作:

  1. 打开EmployeeOnboarding_Overview页面并选择Start Onboarding按钮。
  2. 打开按钮属性并将 On-click 属性设置为Call workflow

image.png

工作流路径

我们已经创建了一个工作流,尽管它是空的。要指定控制流,您需要将活动添加到工作流路径,指示这些活动将执行的顺序。始终从顶部到底部开始,因为控制流将从Start活动执行,直到它到达End 活动。

将几个活动添加到工作流路径听起来很简单,但您还需要定义逻辑。您会构建任何条件并将流程拆分为多个分支,还是会构建一些允许并行执行任务的并发行为?每当您拆分流时,分支都需要收敛以实现同步。好消息是您根本不需要处理同步,因为一旦您添加了DecisionParallel Split ,这些合并将自动添加。

选择设备Workflow

新员工的经理将获得一项任务,为新员工指定设备。对于此功能,您需要将活动添加到工作流。请按照以下步骤操作:

  1. 导航到工具箱窗格,找到一个用户任务活动,然后将其拖放到开始活动和结束活动之间的工作流编辑器中。您将看到两个错误,这些错误将在下一步通过配置此任务来解决。

image.png

  1. 选择用户任务活动并双击它以打开“属性”窗格。
  2. 为了能够将此用户任务与其他用户任务区分开来,请将任务的 Caption 设置为 Manager: SpecifyDevice

image.png

  1. 由于只有经理应该为新员工指定设备,因此您需要使用 XPath 将用户任务限制为经理角色。单击XPath 约束属性中的省略号图标。通过将 Xpath 设置为  [System.UserRoles = '[%UserRole_Manager%]']添加用户分配

image.png

  1. 截止日期可以配置为指示何时执行任务,但这不是我们的示例。
  2. 无需添加任何结果,因为此用户任务只有一个传出分支。
  3. 现在切换到选项卡显示信息以选择一个页面,该页面将显示给管理器以选择设备。 需要基于用户任务扩展模板创建一个新的任务页面SpecifyDevice_Workflow 。

image.png

创建网页对话框中,您可以看到工作流页面的模板。请执行下列操作:

a. 将页面名称设置为SpecifyDevice_Workflow

b. 将导航布局设置为AtlasDefault (AtlasUI_Resources)。

c. 选择用户任务扩展模板。

d. 单击确定

  1. 将任务名称更改为为 {1} 指定设备,其中参数 {1} 需要设置为 $WorkflowContext/FullName。 对于任务描述,可以指定描述任务目标的静态和动态文本。
  2. Common 选项卡中任务的通用名称可以保持不变。
  3. 此时,工作流由单个用户任务组成。但是,仍然需要解决一个一致性错误。它需要为微流 DS_WorkflowUserTask_GetWF_OnboardingContext设置访问规则。这个微流最初并不存在,但它是随着页面SpecifyDevice_Workflow的创建而生成的。因为SpecifyDevice_Workflow是基于模板生成的,而这个模板需要上下文信息,所以这个上下文信息是从微流 DS_WorkflowUserTask_GetWF_OnboardingContext中获取的。必须将对该微流的访问权限授予有权访问SpecifyDevice_Workflow页面的同一角色(经理)。请注意,DS_WorkflowUserTask_GetWF_OnboardingContext微流只生成一次! ,并且工作流中用户任务元素将使用的每个生成的页面都将使用此微流程。
  4. 授予 Manager 对SpecifyDevice_Workflow和相应微流的访问权限后,可能会生成几个一致性错误,可以通过设置实体访问权限来解决这些错误。授予 HR、经理和设施角色对 EmployeeOnboarding 对象的读/写权限。
  5. 使用 Inbox 项目扩展导航,该项目显示WorkflowCommons>Use Me>Pages文件夹中可用的页面TaskInbox

image.png

现在您可以在本地运行您的应用程序并以 MxAdmin 和密码登录 1。

使用 HR 角色预览应用程序,然后打开EmployeeOnboarding_Overview页面。

要开始入职,您首先需要创建几个需要入职的员工。所以继续,按添加按钮并创建几个员工。选择一位已创建的学员,然后按下按钮Start Onboarding

然后切换到demo_Manager 角色并打开TaskInbox页面。

如果任务收件箱没有显示在导航菜单中,这是因为 Manager 角色是在 MyFirstModule 中定义的,但他尝试打开的页面位于 WorkflowCommons 模块中。要授予 Manager 对此页面的访问权限,请复制此页面并将其移至 MyFirstModule。现在您可以在导航中使用此页面,以便 Manager 可以打开它。

从 HR 演示角色启动入职流程,然后切换到 Manager 演示角色,您将看到TaskInbox导航项出现。按此按钮可查看TaskInbox页面。此页面有几个选项卡:我的打开任务、所有打开的任务和未分配的任务。

后两个选项卡,每个选项卡包含 2 个项目。转到所有打开的任务选项卡,选择一个任务来为所选员工指定设备,然后将打开SpecifyDevice_Workflow页面,您需要在其中按 分配给我按钮才能处理它。分配的任务将添加到第一个选项卡我的打开任务

继续,切换到该选项卡并选择任务。在打开的页面上,您将能够通过按完成任务按钮来完成任务。

完成后,该任务将从我的打开任务选项卡中删除。一旦任务完成,关于该任务的历史信息将不再可用。

如果您需要跟踪此信息,则需要自己添加一些自定义逻辑。

现在您需要确保在SpecifyDevice_Workflow页面上只显示相关信息。在 App Explorer 中,双击SpecifyDevice_Workflow页面将其打开。

默认情况下,所有属性都与员工详细信息一起添加到数据视图中。您只需保留与任务相关的属性。您还需要确保经理只能更改表单中的特定字段。

例如,人事部门已经录入了员工的姓名,所以经理不需要更改,应该将该字段设置为只读。请执行下列操作:

a. 选择FullName属性的文本框并转到其属性。

b. 将Editable属性设置为Never以使该字段为只读。

c. 删除位置单选按钮和第一天日期选择器。

d. 保留电话型号笔记本电脑型号单选按钮:

image.png

image.png

很好,我们流程的第一个节点已经完成了。