第8章 低代码新手入门系列,西门子Mendix 创建我们的第一个微流

833 阅读8分钟

微流及其元素

创建微流时,您将在工具箱中使用以下元素。所有微流都必须只有一个开始事件。您可以将此与函数的开头进行比较。结束事件终止微流的执行,您可以根据需要拥有任意数量的事件,就像您可以在函数中拥有尽可能多的返回语句一样。顺序流指示哪些活动相互连接。活动是微流程的核心,可以与您最喜欢的编程语言中标准库中的指令或函数调用进行比较。决策允许您分支顺序流并将两个流合并在一起。注释流提供了一种将注释或评论连接到活动的方法。这允许您直接在微流程中编写文档。 

image.png

可以通过多种方式触发微流:

  • 通过按钮的点击操作
  • 通过 UI 元素上的 on-enter/on-change/on-leave 事件
  • 通过动态 UI 元素上的 on-load 事件
  • 通过实体上的事件处理程序
  • 从项目导航菜单
  • 从自定义导航菜单
  • 从导入映射
  • 从导出服务定义
  • 按计划
  • 启动应用程序后
  • 在关闭您的应用程序之前
  • 在运行状况检查期间(此触发器会定期运行,可用于确保您的应用正常运行)

您的工具箱预装了活动列表。它们已分类,因此您可以轻松找到所需的内容。除了此分类,您还可以使用过滤器进行搜索。添加包含新微流活动的模块时,您将看到一个或多个附加类别!

21.png

建立自己的保存和取消的微流

由于您向 Employee_NewEdit 页面添加了一个数据视图,并添加了一个与您的 Employee 相关的实体,您现在需要自定义逻辑来确保正确存储任何更改,或者如果您的用户选择取消更改,则正确回滚。为此,您需要两个新的微流,一个用于保存按钮,一个用于取消按钮。让我们开始吧!

  1. 打开 Employee_NewEdit 页面并右键单击 Save 按钮。选择 Edit on click action... 并将 On click 操作设置  为 Call a microflow
  2. 单击 New 创建一个新的微流并将其命名为 ACT_Employee_Save。单击确定

image.png

  1. 再次单击 确定 。
  2. 对Cancel按钮重复此过程,  并将微流命名为 ACT_Employee_Cancel
  3. 弹出页面有一个 关闭操作选项,允许您使用 屏幕右上角的X 配置用户关闭页面时发生的情况 。要进行配置,请在页面编辑器中单击页面外的白色区域的某处,以确保您的属性窗格显示页面属性。将 关闭操作设置 为 取消 按钮。

image.png

  1.  从 App Explorer 打开 ACT_Employee_Save微流并添加一个 Commit 对象 活动来提交 Employee 实体。请记住将 客户端中的 Refresh设置 为 Yes。这是必需的,因为在服务器上运行的微流会更改实体。为此,请双击该对象并将 Object 或 List 设置为 Employee  Entity   还要确保将 客户端中的刷新 设置为 是。 完成后,单击 OK

image.png

  1. 为了能够提交 Account 实体,您需要检索它。为此,请转到 工具箱 并将 Retrieve 活动拖到您的流程中,在您的 提交 活动的右侧。

image.png

  1. Retrieve 活动不知道要获取什么以及从哪里获取它,因此您还需要对其进行配置。 您可以通过双击 Retrieve 活动并单击  窗口右侧的 Select按钮来执行此操作。

image.png

在 西门子Mendix 中检索数据时,您有两种选择。您可以通过关联进行检索,这使您可以访问直接连接到您在范围内的任何对象的所有实体。这包括尚未在数据库中的任何对象。如果您从数据库中检索,您可以在一次检索中使用多个关联来获取您需要的实体,但重要的是要了解您无法检索尚未提交或刚刚删除的对象。

  1. 在新打开的窗口中,单击Employee 实体 旁边的加号图标 并选择Employee_Account 关联。单击 选择 ,然后 单击 确定

image.png

  1. 将另一个Commit活动拖到Retrieve活动右侧的流程中,并将其设置为提交Account对象。确保将客户端中的刷新设置为是。 
  2. 此微流中的最后一个活动,在您的第二个 提交 活动的右侧,是 关闭页面 活动。所以继续添加它。生成的微流应如下所示。

image.png

添加微流验证规则

现在我们已经在这里设置了基础知识,是时候添加一些验证了。您可以在域模型中通过添加验证规则、使用页面验证的输入小部件或使用您刚刚创建的微流来执行此操作。最后一种方法是您将使用的方法。原因是如果您使用Validation Rules,导入可能会失败。将其添加为页面验证会阻止您轻松重用验证逻辑。此外,无法检查是否使用Validation Rules设置了关联。因此最好使用Microflow Validation

  1. 在 ACT_Employee_Save 微流的开头添加一个创建变量活动。数据类型设置为Boolean并将值设置为true。在输出部分中,将变量名称设置为EmployeeValid。完成后,单击OK

image.png

为了更轻松地检查多个字段的有效输入,您可以使用规则。这允许您编写一次逻辑并在Decisions中多次重复使用它。规则看起来很像微流,但由于它们从决策活动接收输入,因此它们的可用活动池更加有限。

  1. 右键单击OverviewPages文件夹,选择Add other... → Rule并将规则命名为Rule_StringNotEmpty
  2. 在您的新规则中,添加一个参数,将数据类型设置为String并将您的参数命名为InputToCheck
  3. 向规则添加决策活动。打开您刚刚创建的规则并将决策活动添加到流中。双击决策并将下面的表达式添加到表达式窗口。将Caption设置为String 不为空?

image.png

右键单击红线并将Condition 值设置为true

image.png

  1. 双击结束事件并将表达式设置为true
  2. 通过将鼠标悬停在白色圆圈上直到它变为灰色,然后单击并向下拖动,从您的决策底部添加一个流程。找到希望流程结束的位置后,松开鼠标按钮并选择End event作为活动。
  3. 回到您的 ACT_Employee_Save 微流中,在Create 变量Commit Employee活动之间添加三 (3) 个 决策活动。
  4. 对于每个决策,在决策类型中选择 规则,选择规则Rule_StringNotEmpty并将参数分别设置为 Employee/TitleEmployee/Title、Employee/Firstname$Employee/Lastname。给每一个描述性标题,然后将红色流的条件值设置为 true

image.png

为确保用户了解表单中的任何问题,您可以使用验证反馈活动。此活动允许您选择实体上的属性,以便 Mendix 可以确定在输入表单上显示验证消息的位置。

  1. 将验证消息添加到您的决策的错误流中,并相应地设置variablememberTemplate属性。

image.png

在每条验证消息之后添加一个Change 变量活动,将EmployeeValid变量设置为false。最后,在您的决策活动之后添加合并活动,以便微流可以继续处理。

image.png

image.png

在Commit Employee 之前添加第四项检查,以确保已选择部门。

就在Commit Employee活动之前,添加一个检查EmployeeValid是否为真的最终决定。如果是,则应提交更改并关闭页面。如果不是,则流程应以结束事件结束。整个微流可以在下面看到。

image.png

您的ACT_Employee_Cancel微流程具有相同的结构,但您需要回滚对象活动,而不是Commit活动。所以打开微流并去做吧。一个重要的注意事项是,确保选中两个回滚对象活动的在客户端中刷新复选框。 我们正在重置实体,我们需要通知客户我们这样做了。在微流结束时关闭页面也很重要。

image.png

好了,今天我们先到这里,下一章我们继续来学习,如何进行Debug。

低代码新手入门系列,快速导航