在上一个模块中,我们研究了创建数据库的问题。但对于应用程序的全面运行,仅仅存储数据是不够的。它需要以某种方式被处理、修改、用于计算、传输。在大多数应用程序的开发中,最重要的阶段是创建其工作逻辑的过程。

业务流程编辑器

业务流程的基础知识

在AppMaster平台上,一个业务流程编辑器被设计用来建立工作逻辑。本模块专门用来了解它。

每个业务流程(BP) 是应用逻辑的一个独立部分,一些特定的功能。同时,BP本身由一组块和它们之间的链接组成。

一个块通常是某种基本的动作。例如,两个数字相乘,将一个变量写入数据库表,串联字符串,或向一个数组添加一个元素。然而,更复杂的操作可以在一个单独的块中进行,例如在数据库中搜索元素,并进行过滤和排序。

此外,任何创建的业务流程也可以被表示为一个单独的块,作为另一个业务流程的一部分。在BP功能可以在其他业务流程中重复使用的情况下,以及在BP变得过于庞大而其各个部分可以被表示为独立块的情况下,使用这种方式是合理的。

块之间建立了通信线路,它决定了块的顺序,即它们的执行顺序。通常这不会是一个正常的线性序列。在某些情况下,当在BP的一个阶段获得的数据可以影响进一步的行动选择时,就会出现分支。也有可能在循环中工作,此时行动序列将被反复执行,直到满足终止循环的条件。

同时,有两个块是任何业务流程都必须的。BP工作的开始(Start)和结束(End)的区块。这些块是自动创建的,不能被删除。它们本身不执行任何操作,但却是业务流程的入口和出口点。此外,可以在这些块中设置变量,这些变量是BP的输入和输出数据。

构建业务流程

现在是时候进行测试了。让我们转到与业务流程一起工作的部分。让我们创建第一个业务流程并设置其工作的内部逻辑。

点击 "+创建业务流程",将打开一个模式窗口,里面有创建新业务流程的参数。

  1. 流程名称。唯一需要的字段。
  2. 文件夹。如果有很多业务流程,那么把它们分成几组,放在适当的文件夹里会更方便。
  3. 描述 一个名称可能不足以完全表达BP的目的和揭示其工作的细节。描述字段旨在提供此类信息。
  4. 交易模式。如果开关被激活,BP获得了原子性的属性。这意味着BP要么被完全执行,要么其单个块都不被执行。如果在任何一个块中发生错误,那么由以前的块引起的所有变化将被回滚。

让我们创建一个业务流程,接收两个数字的值作为输入。让我们对这些数字进行数学运算。让我们计算其结果。

  1. 求和
  2. 减法
  3. 乘法
  4. 除法。

除法的结果我们还将另外四舍五入到小数点后的第一位。
结果是,我们要得到5个数字,我们将把它们合并成一个数组。正是这个数组将成为业务流程的结果。

这一切都从输入开始。有必要确定我们将进行数学运算的数字。重要的是要明白,我们不是在问数字本身。我们创建的是具有所需价值的变量。这可以与解决学校的方程式相比较。因此,我们不会设置具体的2个数字,而是抽象的X和Y,在未来,它们的准确值可以由任何人设置。

要设置输入值,选择 "开始"块。右侧窗格中会出现一个设置变量的部分。有必要设置它们的名称(我们已经决定它们将是X和Y)并选择变量的类型。在第二个模块中,我们讨论了有两个可用于写数字的选项。Integer(用于整数数据)和Float(用于浮点数字)。在这种情况下,我们不打算局限于整数值,所以选择Float类型将是正确的。

下一步是添加数学运算的块。它们位于左边的面板上,被分成几个部分。你只需要选择必要的部分并将它们拖到工作区。首先,我们对数学运算感兴趣,我们需要等块。

你可以确保每个块都是一个业务流程的缩影。它必然有一个开始(In)和一个结束(Out),以及输入和输出数据(最常见的是它们在那里,但这不是强制性的,也有没有它们的BP)。

这些操作将按顺序进行,一个接一个。有必要建立它们的联系(确定它们的执行顺序)并提交必要的输入数据)。

下一步是对除法结果进行舍入。我们使用舍入块(向上舍入或向下舍入选项分别可用于向上和向下舍入),我们将除法块的结果作为输入并设置精度。我们对小数点后1位感兴趣,所以我们将精度参数设置为1。

中间的结果应该是这样的。

值得注意的是,区块本身的排列可以是任意的。你可以把它们排成一排,你可以把一个块放在另一个块下面。这只影响到感知的便利性,但不影响业务流程的结果。最主要的是,通信线路本身要按照正确的顺序设置,并且在块的输入端接收必要的数据。

下一步是用收到的数据创建一个数组。附加数组块是这方面的理想选择。它的任务正是为数组添加一个新元素。输入是一个数组和所需的元素,输出是一个多了一个元素的数组。

注意,不需要手动设置数据类型。该块会自动调整到所需的类型,这取决于它收到的输入数据是什么。如果你将Float应用于输入,那么输出将自动成为一个Float数组,不可能意外地将其连接到不兼容的数据类型。

我们要向数组添加5个值,所以Append Array块必须使用5次。在第一种情况下,只需要提供要添加的元素作为输入即可。数组将被自动创建。在随后的情况下,元素和我们添加的数组本身都必须进入输入。

顺便说一下,在左边的面板上,在Append Array旁边,你可以看到有类似名字的函数。Prepend Array 使新元素成为第一个元素,这与Append不同,Append将一个元素添加到数组的末端。Concat Array块是用来连接两个数组的。

AppMaster使用许多不同的块。不要害怕尝试和使用它们,即使在课程中没有关于某个特定块的信息。

为了转移最终结果,只需将相应的变量添加到End块中。在我们的例子中,这是一个浮点数组。

第一个业务流程的创建就完成了在下一个模块中,我们将了解如何在实践中使用它,提供输入数据并接收结果。


作业

创建一个处理3个数字的业务流程。其中一个是常数,另外两个是变量。

计算一下。

  1. 这些数字的总和
  2. 乘法
  3. 2)除以1)的结果,四舍五入到整数值
  4. 1)除以2)的结果,四舍五入到小数点后第二位。

业务流程的结果应该是两个数组。在一个中,数据按照计算的顺序排列。在第二个中,同样的数据,但顺序相反。