文章目录
- 第五章 介绍Productions - 业务流程和业务逻辑
- 业务流程和业务逻辑
- 介绍
- 业务流程的类型
- 数据转换
- 业务规则
第五章 介绍Productions - 业务流程和业务逻辑
业务流程和业务逻辑
本章描述业务流程中支持的逻辑种类。
介绍
业务流程是production
的中间部分。它们接受来自production
内部主机类(业务服务或业务流程)的请求,然后处理请求或将它们转发到production
内部的其他主机类进行处理。
建议在production
中进行以下分工:使用业务服务从生产外部接收输入并将其(作为消息)简单地转发到production
中。使用业务流程来处理任何需要的业务逻辑。使用业务操作从生产内部接收消息,并简单地为生产外部的目的地生成输出。也就是说,将业务逻辑集中在业务流程中。
因此,IRIS
为业务流程中的复杂逻辑提供了广泛的支持,并且该逻辑可以由非技术用户定义。
首先,业务流程可以包含自己的复杂逻辑。它还可以使用以下可重复使用的物品:
数据转换计算消息内容并将更改应用到消息内容。
业务规则在决策点更改业务流程的行为,或根据消息类型、消息内容或消息来源将消息发送到特定目的地。
IRIS
提供的工具使非技术用户能够定义业务流程、数据转换和业务规则。这些用户无需编程或绘图技能即可直观地查看和编辑逻辑。
请注意,业务流程、数据转换和业务规则中可用的较低级别选项之间存在重叠。有关比较,请参阅 Developing Productions
中的“业务逻辑工具的比较”。在决定如何组织逻辑之前,有必要查看这些选项。
业务流程的类型
IRIS
提供以下一般类型的业务流程:
BPL
流程,基于类Ens.BusinessProcessBP
。要创建这些流程,可以使用专供非技术用户使用的图形编辑器。此编辑器在管理门户和Studio
中可用。请参阅开发 BPL 流程。
这些流程的名称来自 BPL
(业务流程语言),这是 IRIS
用于表示其定义的基于 XML
的语言。
- 路由进程,基于类
EnsLib.MsgRouter.RoutingEngine
或EnsLib.MsgRouter.VDocRoutingEngine
。
IRIS
提供一组类来路由特定类型的消息。以下书籍指出了用于不同类型消息的路由过程:
Message Type | See |
---|---|
EDIFAC T | Routing EDIFACT Documents in Productions’ |
X12 | Routing X12 Documents in Productions’ |
XML | Routing XML Virtual Documents in Productions’ |
要使用这些类,通常不需要编码。然而,有必要提供一组业务规则,本章稍后将介绍。
- 自定义业务流程,基于类
Ens.BusinessProcess
。请注意,前面列出的所有业务流程类都继承自此类。在这种情况下,需要使用支持的IDE
(例如Studio
)来开发自定义代码。
EnsLib
和 Demo
包提供了许多示例。
有关定义自定义业务流程的信息,请参阅开发产品中的“开发业务流程”。
产品可以包括这些业务流程的任意组合。
下面显示了 BPL
业务流程的部分示例,如 BPL
编辑器中所示:
数据转换
数据转换创建一条新消息,它是另一条消息的转换。可以从业务流程、另一个数据转换或业务规则调用数据转换。
当转换一条消息时,数据转换会换掉旧的消息主体对象(源)并将其交换为新的对象(目标)。在此过程中发生的一些转变可能包括:
- 将源属性的值复制到目标属性。
- 使用源上的属性值执行计算。
- 将计算结果复制到目标上的属性。
- 将文字值分配给目标上的属性。
- 忽略源上与目标无关的任何属性。
数据转换是基于 Ens.DataTransform
或其子类 Ens.DataTransformDTL
的类。
- 如果使用
Ens.DataTransformDTL
,则转换称为DTL
转换。要创建这些转换,可以使用专供非技术用户使用的图形编辑器。此编辑器在管理门户和Studio
中可用。有关详细信息,请参阅开发DTL
转换。
这些转换的名称来自 DTL
(数据转换语言),这是 IRIS
用来表示其定义的基于 XML
的语言。
- 如果
Ens.DataTransform
,则转换是自定义转换。在这种情况下,必须使用受支持的IDE
,例如Studio
。有关定义这些的信息,请参阅开发产品。
下面显示了一个示例 DTL
转换,如在 DTL
编辑器中所见:
业务规则
业务规则(也称为业务规则集)可以返回值、转换数据或两者。可以从业务流程或其他业务规则中调用业务规则。
业务规则是基于 Ens.Rule.Definition
的类。在管理门户中定义这些内容,该门户为非技术用户提供了一个可视化编辑器。下面显示了一个部分示例,如本编辑器中所示: