# 动态逻辑

本系统支持使用 Groovy (opens new window) 语言进行客制化开发, Groovy 语 言是 Java 语言的一个超集,其支持 Java 语言的语法,但增加了更多动态特性,更加适用 于进行领域建模和运行时增强。

提示

如果团队对 Groovy 语言不熟悉,也可以完全使用 Java 语言的语法进行开发,Groovy 与 Java 语言的兼容性非常好。

# 目标读者

本文档的目标读者为:本系统的开发和实施人员

# 动态逻辑定义的结构

动态逻辑可以通过菜单 开发定制 -> 动态逻辑 -> 动态逻辑 进行维护,其包含的相 关属性如下图所示:

Create Dynamic Logic

针对相关字段,详述如下

# 动态逻辑引擎概述

系统提供了一个动态逻辑引擎,用于在系统中执行动态逻辑,动态逻辑可以是一段 Groovy 代码,也可以是一个外部的操作系统命令,也可以是一个大语言模型的调用等。

动态逻辑引擎 描述 preLogic DynamicPrompt postLogic
JASPER_REPORT 用于渲染 Jasper 报表到 PDF 文件 支持 不适用 支持
LLM_ENGINE 用于请求大语言模型 支持 支持 支持
RENDER_LINK GROOVY_CODE 的别名, 返回一个链接给调用方 支持 不适用 支持
OS_COMMAND 用于执行操作系统命令 支持 支持 支持
GROOVY_CODE 用于执行 Groovy 代码 支持 不适用 支持

提示

动态逻辑相关各对象的 name 字段在创建后,即不可修改。

# 动态逻辑开发指南

# 动态逻辑概述

动态逻辑是一种灵活的业务逻辑实现方式,允许开发者根据业务需求定义前处理逻辑、后处理逻辑和 Prompt 模板。通过动态逻辑,您可以轻松实现业务流程的定制化和自动化,提高业务处理的灵活性和效率。

# 定义动态逻辑

在定义动态逻辑时,您需要关注以下几个方面:

  • 前处理逻辑 (preLogic): 在主要业务逻辑执行之前进行的逻辑,用于准备数据或进行预处理。
  • 后处理逻辑 (postLogic): 在主要业务逻辑执行之后进行的逻辑,用于对结果进行处理或进行后续操作。
  • DynamicPrompt 模板: 用于生成动态内容的模板,可以根据前处理逻辑的结果动态渲染。

# 参数传递和结果处理

在动态逻辑的执行过程中,请注意以下几点:

  • 前处理结果传递: 前处理逻辑的结果将被传递给后续的 Prompt 渲染和主要业务逻辑,以及后处理逻辑。
  • Prompt 渲染: Prompt 模板将根据前处理逻辑的结果和其他输入参数进行渲染,生成动态内容。
  • 后处理逻辑参数: 后处理逻辑将接收主要业务逻辑的结果以及其他必要的参数,进行结果处理。
  • 返回结果: 最终,动态逻辑的执行结果将被返回给调用者,用于后续的业务流程或展示。

# 实际应用示例

(此处留空,等待添加具体的业务场景和动态逻辑定义示例。)


以上指南旨在帮助开发者更好地理解和实现动态逻辑,以满足不同业务场景的需求。在实际 应用中,根据具体的业务需求来定制和优化动态逻辑,可以实现业务流程的灵活性和自动化。

# 动态逻辑类型

以下列出了系统中当前支持的客制化逻辑的类型及其使用场景:

  • 库函数:供其他客制化逻辑调用的函数。
  • 动态权限:对象的动态创建权限判断、删除和更新权限判断。
  • 表单及字段客制化:表单的字段间联动、下拉选项,字段的隐藏与显示等。
  • 对象生命周期客制化:对象创建、修改、删除、被访问前后的客制化逻辑注入。
  • 动态动作:动态动作的启用逻辑和核心逻辑。
  • 定时任务:定时任务的启用逻辑和核心逻辑。
  • 仪表盘:仪表盘和小组件的启用逻辑及核心逻辑。
  • 过滤器:过滤器的启用逻辑和过滤条件配置。
  • 动态服务:动态服务核心逻辑。
  • 动态集成:动态集成启用逻辑和核心逻辑。

以下分别对动态逻辑在不同业务场景下的应用进行了详细说明:

Last Updated: 2024/7/14 12:09:51