1 - 逻辑分类
分类简介
应用中涉及到的的逻辑部分,分成了以下五种:
实体逻辑
适用场景 :实体逻辑主要应用于数据模型的设计中,它关注的是数据层(实体层)的逻辑规则。例如,在”客户关系“管理应用中,定义一个“客户”实体,包括其名称、联系方式、交易记录等属性。实体逻辑确保数据结构的合理性与一致性。
- 字段属性:字段属性中设置默认值、计算值、必填、唯一、校验、加密等属性规则,设置后不区分页面(不分页面的规则可以设置在字段上),属于数据层的兜底逻辑规则。
- 实体规则:条件类设置字段校验、计算值、默认值,则通过实体规则设置,同样不区分页面生效
- 实体事件:数据增删改后,如果需要发送事件消息出来,则可设置实体事件,比如”报销单付款完成时事件",发出后,可供其他监听使用。
- 实体索引:唯一规则设置,可设置组合唯一规则。
区别 :与其他逻辑相比,实体逻辑不区分页面,适用于数据底层的逻辑规则。
页面逻辑
适用场景 :页面逻辑主要关注用户界面(UI)的行为和响应,如表单验证、按钮点击事件处理、数据显示与隐藏等。在应用程序设计中,页面逻辑确保用户与界面交互时能获得即时反馈,提升用户体验。
- 控件属性:控件属性定义了控件的外观和行为特征,用于设置控件在初始加载或应用运行期间的状态。比如:控件必填、输入校验、状态(只读、禁用等)等。
- 控件事件:控件事件则是指由用户操作或其他逻辑触发的动态行为,是控件响应外部刺激(如点击、拖拽、焦点变化等)的处理机制。
- 预制行为动作:根据业务场景,提供一系列预制的行为动作(实体相关、流程相关、控件相关)等,提高应用搭建效率和可维护性。
- 页面规则:与预制行为动作相比,页面规则允许应用设计师根据业务需求编写个性化的业务逻辑。
区别 :页面逻辑侧重于前端用户交互,处理用户输入、展示数据及简单的业务逻辑验证,而不应涉及后台复杂逻辑处理。
生单规则
适用场景 :生单规则常用于自动化触发业务流程,如在采购管理应用中,当用户请购单审批结束后,自动创建采购订单或在财务系统中,根据发票审批状态自动生成会计凭证。生单规则减少了人工干预,提高了工作效率。
区别 :生单规则专注于根据预设条件触发业务单据的自动生成,属于业务流程自动化的一部分,对于此类生成单据的场景,可通过生单规则的简单配置达到场景需求的满足。
扣减规则
适用场景 :扣减规则通常应用于库存管理、财务处理等场景,如在销售管理应用中销售订单出库时自动扣减商品库存,或在财务管理中根据报销审批结果扣减预算。扣减规则确保资源或资金的精确管理。
区别 :扣减规则专注于资源或数值的减少操作,确保数据的准确性和业务流程的合规性,是业务处理中对特定资源管理的关键逻辑。以上场景则直接通过扣减规则的简单配置,满足复杂的场景功能,提高应用搭建效率和可维护性。
微流程
适用场景 :微流程适用于,在以上场景化的功能配置下但是仍然无法满足对应的需求时,设计师可通过微流程进行自定义逻辑的编排来满足对应的需求。
说明 :在应用的设计与开发中, 实体规则 、 页面规则 、微流程作为自定义编排的工具,扮演着至关重要的角色。它们本质上基于微流程的底层引擎,旨在提供更加灵活和强大的逻辑处理能力,以应对那些仅通过基本属性配置难以满足的复杂业务需求。
总结来说,这五者分别针对数据模型、用户UI及交互、业务自动化(生单))、资源管理及细分任务自动化(扣减))、自定义业务逻辑(微流程)),各有侧重,共同构成了一个完整业务系统的基础逻辑框架。
2 - 微流程
微流程是一种通过可视化托拉拽的方式对业务逻辑进行编排的工具,采用各种活动节点及编排来代替传统开发的编码工作,帮助应用设计师以零代码的方式表达出各种复杂的业务逻辑。微流程具备如下关键特性:
①逻辑可视化,编排操作简单
页面规则中的各个活动节点配置简单、说明清晰,用户通过简单的选择和输入即可完成节点配置;同时通过可视化拖拉拽的方式就能实现对页面逻辑的编排,上手门槛低,编排结果清晰明了。
②基础能力丰富,业务逻辑表达力强
页面规则包括逻辑活动、控件属性、实体动作、服务调用、控件动作等节点,涵盖了逻辑处理、页面及控件属性的操纵、数据的获取/保存及再组装等能力。
③逻辑自洽性强,具备自我纠错能力
页面规则具备强大的自我纠错能力,可通过一致性校验自动检查用户配置的逻辑自洽性,发现逻辑错误时会精准定位并给出错误提示;同时也保证用户设计逻辑产生的代码安全、可靠、易维护。
设计流程
①页面规则设计流程:
(1)步骤一:创建页面规则。
(2)步骤二:在画布中选择节点,设计页面规则。
(3)步骤三:保存页面规则并确保通过一致性校验。
(4)步骤四:在页面中选择控件和相应的控件事件,绑定已保存的页面规则。
②微流程设计流程:
(1)步骤一:创建后端微流程并选择触发方式。
(2)步骤二:微流程触发方式为服务定义时,需定义入参、出参。
(3)步骤三:在画布中选择节点,设计微流程。
(4)步骤四:保存微流程并确保通过一致性校验。
微流程调用链
提供微流程的上下游查询
微流程日志
页面规则日志记录了应用在测试环境中页面规则的历史执行数据,在页面规则日志中,按照节点执行顺序记录节点执行的详细信息(如出入参、异常信息等),可帮助设计师排查页面规则问题。
点击「详情」可进入日志详情界面,详情中是每个节点执行日志,可点击「节点」定位到对应日志,如下图。
微流程重构
节点多选状态下,可将连续勾选的节点重构为一个子微流程,以便在其他微流程中复用,且重构生成的子微流程将自动在当前位置引用
-
基础信息:可对重构子微流程基础信息进行修改,如名称、编码、描述信息等
-
入参定义:可对子微流程入参进行定义,若勾选节点中使用到了未勾选的前序节点数据,则需按已使用数据进行入参定义,以保证原流程的完整
-
入参映射:系统将自动建立前序节点与入参的映射关系
-
出参定义:可对子微流程出参进行定义,若未勾选的后续节点使用到了重构节点数据,则需按提示进行出参定义,否则可能导致当前微流程不可用
-
出参映射:系统将按照数据使用,自动建立出参与后续节点的映射关系
微流程撤销、重做
支持浏览器页签级撤销、重做能力。浏览器页签关闭则撤销重做能力不再支持,支持的情况下最多支持100次连续撤销或者连续重做能力。
①撤销: Win( Control+Z
)或Mac(Command+Z
)
②重做: Win( Control+Y
)或Mac(Command+Y
)
2.1 - 微流程分类
根据适用业务场景的不同,微流程分为实体业务规则、页面规则和后端微流程三种,各种微流程内部也根据细分场景的不同进一步做了子类型的划分,详细结构如下图。这些微流程使用统一的微流程设计器,但各自支持的活动节点不同节点。
①实体业务规则-校验
在实体数据保存入库前,进行业务规则校验,如不满足规则,可以阻止数据保存入库并进行提示
适用场景举例:日常费用报销单保存时,如果报销人和制单人不是同一个人,需要校验报销人是否填写了代理报销说明,如未填写则不允许保存并提示。
②实体业务规则-计算
在实体数据保存入库前,对数据进行修改,并使用修改后的数据作为最终保存入库的数据。
适用场景举例:日常费用报销单保存时,如果单据为草稿状态,则在单据标题前增加前缀【草稿】。
③实体业务规则-默认值
在新建实体数据时,根据业务规则设置字段默认值。
适用场景举例:新建日常费用报销单时,根据当前登录人所在组织报销参数,获取成本中心字段默认值并设置。
④普通页面规则
针对页面及页面元素进行操作,与终端用户进行交互的页面级微流程。
适用场景举例:用户填写报销单时,如填写的发票抬头不符合企业标准,则可以调用页面规则进行校验,并且在对应控件上进行提示。
⑤公共页面规则
针对多个页面都需要使用的公共页面逻辑,支持抽象为可复用的公共页面规则,以供多个页面同时使用
适用场景举例:日常费用申请单和日常费用报销单中,都需要通过页面规则打开发票详情,可将打开发票详情页面规则抽象为公共页面规则,以便维护和复用
⑥微流程-服务定义
通过其他微流程或页面规则、实体业务规则调用触发,支持配置出入参的微流程;同时也支持将服务定义微流程暴露到开放平台中,供外部服务调用
适用场景举例:删除日常费用申请单时,通过服务定义微流程查询是否有下游报销单引用了该单据,并返回查询结果
- 新建:
- 定义出入参:
如果你的服务定义微流程需要使用出参和入参,需要在此处配置。出入参支持无参数、基本类型,实体对象和自定义对象
- 支持被其他服务调用:
服务定义微流程,创建并保存后,可以在页面规则、子微流程中被调用。
将服务定义微流程暴露到开放平台中,支持外部服务调用(非当前应用):
⑦微流程-事件监听
指通过监听业务事件、实体事件或者连接器事件(包括应用内和应用外事件)作为触发方式,不具备被调用能力的微流程
适用场景举例:监听日常费用报销单更新事件,当报销单状态更新为已生效时,更新上游申请单的状态为已完成。
- 新建:
- 选择监听事件:
⑧微流程-定时任务
通过定时任务触发,不具备出入参的微流程(定时任务支持运行态调整)
适用场景举例:创建定时任务,每天清除非正式的发票数据,减少无效数据的占用。
⑨自定义微流程
自定义微流程指在设计态中定义好触发方式及出入参后,微流程内部的实现由代码完成的自定义微流程。自定义微流程也包括服务定义、事件监听、定时任务三种类型。
2.2 - 微流程设计器
微流程设计器提供了一些列丰富的活动节点和可视化拖拽编排方式,帮助和引导设计师简单快速的完成复杂的业务场景搭建和逻辑编排,让不具备编码能力的设计师在没有程序员介入的情况下也能搭建出各种各样的业务逻辑。
2.3 - 微流程节点
微流程支持对业务数据的加工处理和逻辑的编排,以及外部应用服务数据的调用。微流程具备丰富的实体操作节点,例如实体数据的增删查改节点,逻辑编相关节点,例如分支、循环、自定义错误等,以及外部服务数据调用节点,例如自定义服务节点,连接器节点,消息中心节点等。借助以上活动节点的能力,设计师可以定义自己想要的后端服务接口。以下是微流程节点的简要介绍:
●节点公共属性
适用范围:微流程、页面规则
①节点标题:支持点击节点中的标题,进行编辑
②节点备注:节点左上角,可查看已有备注,或添加备注
③节点复制:支持单节点复制
④节点多选:在节点右下角点击多选节点,进入多选模式,可以勾选节点,进行批量复制、剪切、删除。 还可以将勾选的节点重构为一个子微流程,方便在其他微流程中复用
⑤节点查找:在节点右下角点击「更多」图标,可见「查询引用方」,并列出当前节点出参在后续哪些节点被引用,并可点击列出的「被应用节点」,快速定位到被引用点,见下图。
⑥引用方有属性如使用了其他节点的出参,可如下图所示,通过「定位」图标,快速定位到来源节点。
⑦多节点批量复制:在节点右下角点击「更多」图标,可见「多选节点」,点击后可多选节点,多选后点击底部操作「复制」,可在当前微流程或者其他微流程中粘贴。
添加「+」按钮后会出现,下图所示,可点击粘贴即完成。
2.3.1 - 变量活动
变量活动
创建变量
适用范围:微流程,页面规则
①简介:创建包括基本数据、实体对象、自定义对象等类型的变量,并可进行赋值,节点出参可被后序节点使用。
②属性:通过选择变量类型及相关配置来完成配置
③配置说明:支持基本类型、实体对象、自定义对象、选项集等
修改变量
适用范围:微流程,页面规则
①简介:修改前序节点中已创建变量的值。
②属性:通过选择变量和需要改变的值完成配置
③配置说明:页面规则中可选择页面规则中的变量和页面变量
2.3.2 - 映射活动
映射活动
创建映射组
适用范围:微流程
①简介:创建一个包含多个映射键值对的映射组
②属性:通过添加映射键值对来完成配置
③配置说明:可在创建时直接增加映射键值对。(映射键只允许为文本类型,映射值支持任意数据类型)
映射操作
适用范围:微流程
①简介:对所选映射进行一些操作
②属性:
③配置说明
(1)获取:输入/选择映射键以获取映射值,并配置映射值的数据类型等属性,节点出参为映射值。
(2)赋值:向映射组中插入或更新映射键值对,如果选择/输入的映射键已存在,则会更新该映射键对应的映射值,无节点出参。
(3)删除:根据映射键删除映射组中的映射键值对,无节点出参。
(4)获取键列表:获取映射组中的所有映射键,节点出参为映射键组成的列表。
2.3.3 - 列表活动
列表活动
创建列表
适用范围:微流程,页面规则
①简介:创建一个列表
②属性:通过选择列表类型完成配置
③配置说明:列表类型支持基本数据、实体对象、自定义对象和选项集等
修改列表
适用范围:微流程,页面规则
①简介:修改所选的列表
②属性:通过选择列表、操作类型以及值完成配置
(1)选择列表:选择需要操作的列表,页面规则中支持页面规则数据和页面数据
(2)操作类型:
(3)列表/对象:指要增加、全量替换、删除哪些数据
列表操作
适用范围:微流程,页面规则
①简介:该节点聚合了常用的列表操作方法,方便设计师对列表对象进行聚合、筛选、判断和集合等操作,注意,该节点的出参将返回一个新的列表集合,而不是针对原来的集合进行修改。
②属性:通过选择需要操作的列表,操作类型,操作数据完成配置
③配置说明
(1)选择列表:支持选择页面中的数据以及页面规则的数据
(2)操作类型:根据所选数据有不同类型的操作方法,具体方法如下:
- 求和:选择列表中的一个小数或者整数类型字段,对列表中的该字段进行求和计算,返回对应类型的计算结果。
- 计数:计算当前选择列表中的数据总条数。返回一个整数类型的计算结果。
- 最大值:选择列表中的一个小数、整数、日期、日期区间类型字段,找到该列表中所有条数中该字段的最大值,返回最大值结果
- 最小值:选择列表中的一个小数、整数、日期、日期区间类型字段,找到该列表中所有条数中该字段的最大值,返回最小值结果
- 字段收集:将对象列表中某个非列表字段收集到一个新的列表中(返回新的列表)
- 去重:根据设计师选择的去重凭据字段,过滤掉该列表中所有重复的数据
- 过滤:通过设置一个表达式,进行列表数据的过滤
- 并集:选择另外一个列表数据(相同数据类型),新建并返回二者的并集(返回新的列表)
- 交集:选择另外一个列表数据(相同数据类型),新建返回二者的交集(返回新的列表)
- 差集:选择另外一个列表数据(相同数据类型),新建返回二者的差集(返回新的列表)
- 排序:选择列表中的字段,依据该字段进行列表数据排序,新建并返回一个新的排序后的列表(返回新的列表)
- 第一条:返回列表的第一条数据
- 最后一条:返回列表的最后一条数据
- 第N条:返回指定下标的数据
- 分组汇总:针对列表中的多个字段进行分组,然后汇总数据字段值
- 获取子列表:指定开始和结束获取的下标位置,返回一个指定的子列表
(3)操作数据:需要操作的数据
2.3.4 - 数据活动
数据活动
查询单条数据
适用范围:微流程
①简介:该节点可以选择查询当前应用和依赖应用中的的所有实体数据(该实体需要暴露并支持UDC规范的查询接口)。设计师可以根据需求,设置筛选条件和排序规则查询或者根据数据ID查询。该节点按照查询结果默认返回第一条数据。如果未查询到,可以设置后续执行规则,终止或者继续执行。
②属性:
③配置说明
(1)条件查询:支持使用当前实体的字段进行条件配置,排序规则配置,该配置如果查询到多条记录,将返回该实体的第一条数据。注意:条件查询只返回查询实体的自身的数据,不会查询并返回它的子孙数据。
(2)ID查询:根据实体的id,返回该实体的聚合对象,包含子孙的数据。
(3)查询聚合对象:开启后,将查询该实体聚合对象数据,包含主子孙等。关闭只查询当前实体自身的数据。
(4)分页查询:查询多条数据节点,支持配置分页查询,默认分页。引导设计师使用分页查询,提升性能和响应速度,同时约束了单页最大值“999”,都是为了保障系统性能。
查询多条数据
适用范围:微流程
①简介:该节点可以选择查询当前应用和依赖应用中的的所有实体数据(该实体需要暴露并支持UDC规范的查询接口)。设计师可以根据需求,设置筛选条件和排序规则还有查询数量进行条件查询,也可以通过数据的ID集合进行查询,或者条件查询该实体的总数。该节点按照查询结果返回列表数据或者查询的数据总数。
②属性
③配置说明
(1)条件查询:支持使用当前实体的字段进行条件配置,排序规则配置,和最大查询条数(最大一次只支持查询999条)。注意:条件查询只返回查询实体的自身的数据,不会查询并返回它的子孙数据。
(2)ID集合查询:根据实体的id集合,返回该实体的聚合对象,包含子孙的数据。
(3)查询总数:通过配置筛选条件,返回该条件下,查询实体的总数
(4)其他聚合查询:支持针对UDC应用的实体的一些常用数据库层聚合查询方法,包括"求和(sum)"、“求平均(avg)"、“求最大值(max)"、“求最小值(min)”
插入数据
适用范围:微流程
①简介:配置该节点后,运行时,将自动向配置UDC应用集依赖应用的对应聚合父实体(包含子实体)插入一条新数据。插入后,该节点返回插入成功的数量。该节点只支持聚合根实体,不支持直接插入子,孙实体。
②属性:
③配置说明
(1)选择对应应用下的指定实体
(2)通过字段映射或对象引用的方式配置即将插入的数据
批量插入数据
适用范围:微流程
①简介:配置该节点后,运行时,将自动向配置UDC应用集依赖应用的对应聚合父实体(包含子实体)批量插入新数据。插入后,该节点返回插入成功的数量。该节点只支持插入聚合根实体,不支持直接插入子,孙实体。
②属性:
③配置说明:选择聚合根实体列表数据,批量插入到数据库中,插入成功后返回成功数量。
更新数据
适用范围:微流程
①简介:配置该节点后,设计师可以选择当前流程中某个聚合父实体进行更新(注意,该实体需要暴露并支持符合UDC规范的更新接口),可以更新记录中的一个或多个字段的值,可以修改为新的内容、清空字段的值、增加或减少值。该节点只支持更新聚合根实体,不支持直接更新子,孙实体。
②属性:
③配置说明
(1)选择聚合根实体单条数据
(2)对展开的实体字段进行赋值配置
批量更新数据
适用范围:微流程
①简介:配置该节点后,设计师可以选择当前流程中某个聚合父实体进行批量更新,更新时,选择前序节点中,实体对象的列表(注意,该实体需要暴露并支持符合UDC规范的批量更新接口)。该节点只支持更新聚合根实体,不支持直接更新子,孙实体。
②属性:
③配置说明:选择聚合根实体列表数据,批量更新到数据库中,更新后返回成功数量。
删除数据
试用范围:微流程
①简介:配置该节点后,设计师可以选择当前流程中某个聚合父实体数据进行删除或者针对某个实体,配置一个筛选条件进行条件删除。
②属性:
③配置说明
(1)指定删除:选择当前微流程中某个聚合父实体数据进行删除;
(2)过滤条件删除:针对某个实体,配置一个筛选条件进行删除;
(3)ID集合删除:选择某个实体的ID集合进行批量删除。
2.3.5 - 基础服务
基础服务
自定义服务
适用范围:微流程
①简介:服务调用节点是用来连接当前应用依赖的其他应用。可以配置并调用依赖应用中提供的服务接口,方便设计师进行应用间的数据传递和查询。
②属性:
③配置说明
(1)选择需要调用的自定义服务
(2)配置该服务所需要的入参参数
可以点击复制标识,然后在创建变量、列表等节点时,用它来查找特定的对象。
在创建变量、创建列表节点时可以按以上复制的标识进行搜索。
事件投递
适用范围:微流程
①简介:定义时间投递,在其他模块或者微流程中可订阅此事件,收到事件后能获得事件中携带的参数数据。注意:延时事件无法保证能够按顺序执行。
②属性:
③配置说明
(1)选择对应应用下可投递的事件;
(2)选择事件类型,
- 对于普通事件,直接发布;
- 对于延时事件,根据配置的时间发布。
连接器
适用范围:微流程
①简介:连接器节点支持调用平台连接器模块提供的能力,可以让设计器配置外部系统的服务接口,将外部数据导入到当前应用中,扩展了微流程的能力边界。
②属性:
③配置说明:选择连接器,配置连接器入参
子微流程
适用范围:微流程
①简介:该节点支持在微流程中调用其他【服务定义】类型的微流程,实现微流程与微流程之间的相互调用,方便设计师进行更复杂业务逻辑的设计,降低单个微流程的复杂程度。
②属性:
③配置说明:选择微流程,配置微流程入参
执行生单规则
适用范围:微流程
①简介:该节点支持配置当前应用内实体的生单规则。
②属性:
③配置说明:
(1)生单规则:选择当前应用下实体的生单规则
(2)数据来源方式:
- 选择数据:支持选择前序节点数据作为来源实体数据,用于生单
- 查询数据:支持查询当前实体数据,用于生单
2.3.6 - 数据加工
数据加工
类型转换
适用范围:微流程、页面规则
①简介:该节点支持一些常见的数据类型转换,包括:多选实体转ID集合,ID集合转多选实体,文本转长整数,文本转整数,文本转小数,基础类型转文本等。方便设计师进行各种数据转换
②属性:
③配置说明:选择需要转换的类型,选择需要转换的数据。
数据转换
适用范围:微流程
①简介:该节点支持两个不同数据结构对象数据的转换,比如将A对象的数据转换为B对象的数据。
②属性:
③配置说明
(1)选择来源对象
(2)选择目标对象
(3)配置来源对象与目标对象的映射关系
2.3.7 - 控件属性
控件属性
值操作
适用范围:页面规则
①简介:对所选控件配置值操作,并在页面中实时生效
注:同一值操作节点内部进行批量操作时,无法保证操作顺序,如需保证操作顺序,请使用多个值操作节点。
②属性:通过选择控件,值操作以及值完成配置
③配置说明
(1)控件:选择页面配置好的控件
(2)值操作:根据所选控件不同,值操作选择不同
(3)值:将该值赋予所选控件
高级属性操作
适用范围:页面规则
①简介:支持对控件高级属性进行修改,如标题、占位提示等
②属性:通过选择控件来给完成配置
控件状态
适用范围:页面规则
①简介:修改所选控件状态,正常,将所选控件设置为正常可编辑状态; 只读,将所选控件设置为只读状态;禁用,将所选控件设置为禁用状态;隐藏,将所选控件设置为不可见
②属性:通过选择控件来完成配置
③配置说明
(1)正常:将控件设置为正常状态
(2)只读:将控件设置为只读状态
(3)禁用:将控件设置为禁用状态
(4)隐藏:将控件设置为隐藏状态
必填
适用范围:页面规则
①简介:对所选控件设置必须填写
②属性:通过选择必须填写控件或者非必须填写控件完成配置
提示消息
适用范围:页面规则
①简介:触发提示信息
②属性:通过选择消息级别以及消息内容完成配置
③配置说明:
(1)消息级别
(2)提示信息:支持手动输入以及表达式
(3)设置元素:是否需要将消息设置的控件上,如果需要就选择;若设置元素没有设置则消息默认为全局提示。
清空提示
适用范围:页面规则
①简介:清除所选控件的提示信息
②属性:通过选择要清空的控件完成配置
③配置说明:选择需要清除提示信息的控件
2.3.8 - 实体动作
实体动作
实体动作
适用范围:页面规则
①简介:提供操作实体的相关动作
②属性:
(1)存为草稿:将所选控件的数据存为草稿
(2)保存记录:保存所选控件的数据并返回保存数据的id
(3)保存并新增:保存所选控件的数据并执行新增操作
(4)提交记录:提交所选控件数据,并触发工作流
(5)撤回记录:从工作流中撤回所选控件数据
(6)刷新记录:刷新所选控件并重新加载数据
(7)删除记录:删除所选控件数据
(8)导入:列表页面,从本地文件表格中批量导入数据
(9)导出:列表页面,从列表导出数据到本地
(10)打印:打印当前页面内容
③配置说明:选择控件绑定的实体
注意: 保存记录只有在选择实体为单一记录时,才会返回该记录ID
2.3.9 - 页面动作
页面动作
打开页面
适用范围:页面规则
①简介:根据配置打开所选页面
②属性:通过选择打开页面以及打开方式完成配置
若打开的页面有入参或者出参,可以配置页面的入参以及出参
③配置说明
(1)页面:支持选择当前应用的页面以及依赖应用的页面
(2)打开方式
(3)页面入参:页面入参支持表达式配置
(4)出参映射:该配置只有在打开方式为"打开弹窗"并且打开页面有出参时才会显示
④注意:
(1)打开页面如果是弹窗方式打开,则在弹框打开的时候,该节点的后续节点不会执行,只有在被打开页面中配置了"确定关闭页面"或者"取消关闭页面"节点执行之后,或者弹框关闭之后,后续节点才会继续执行
(2)若是弹框打开,则该节点会有出参,出参包括页面的关闭方式,以及页面配置的出参,以供后续节点使用
取消关闭页面
适用范围:页面规则
①简介:关闭当前页面
②属性:通过拖该节点到画布完成配置
注意: 若是在弹框执行,则弹框的关闭方式为取消
确定关闭页面
适用范围:页面规则
①简介:关闭当前页面。若关闭是弹框,则弹框出参映射规则生效
②属性:通过拖动该节点完成配置
注意: 该节点若是在弹框执行,则弹框关闭方式是确认。
打开外链
适用范围:页面规则
①简介:配置或手动输入链接地址,通过指定打开方式跳转到对应地址
②属性:通过配置链接地址、打开方式以及对应参数完成配置
链接地址支持表达式,可通过表达式配置链接
打开方式
参数(若没有参数,可不配置,参数支持表达式配置)
③配置说明
(1)链接地址:支持表达式以及手动输入
(2)链接参数:配置该地址所需要的参数,拼接在地址之后
打开对话框
适用范围:页面规则
①简介:打开对话框
②属性:通过配置对话框的打开提示方式、标题、内容完成配置
提示信息支持表达式配置,警告、错误、信息无取消按钮。
自定义可以自定义配置按钮,并且后续节点可以根据点击按钮编排业务
③配置说明
(1)提示方式:目前支持5类
(2)提示信息:支持表达式配置
注意:自定义弹框中按钮最多只能配置3个
刷新页面
适用范围:页面规则
①简介:刷新当前页面
②属性:拖入该节点完成配置
注意: 该节点只支持刷新当前页面
打开报表
适用范围:页面规则
①简介:打开配置的报表页面
②属性:通过选择系统中的报表页面,并选择打开的方式完成配置
③配置说明
(1)报表: 支持系统内的报表页面
(2)打开方式
锚点跳转
适用范围:页面规则
①简介:用于页面内容过长时,快捷跳转到页面内指定位置
②属性:通过选择页面中的控件,明确定位跳转点
2.3.10 - 服务调用
服务调用
微流程
适用范围:页面规则
①简介:选择并调用当前应用的(后端)微流程
②属性:通过选择微流程服务完成配置;若有入参,需要配置入参。
③配置说明:支持选择系统中的微流程服务,并且该微流程服务必须是正式态
页面规则
适用范围:页面规则
①简介:选择并调用当前页面下的其他页面规则
②属性:通过选择其他的页面规则完成配置。
如果选择的页面规则有入参,则需要配置入参
③配置说明:支持选择该页面的其他页面规则,不可选择自身
注意: 页面规则目前不支持选择自身。
执行生单规则
适用范围:页面规则
①简介:调用系统中配置的生单规则并执行
②属性:通过选择生单的行为,之后选择对应的生单规则完成配置
③配置说明:
-
生单规则:可选手工触发的生单规则。
-
数据来源方式:
-
选择数据
- 来源实体数据:传递设置好的同实体列表、或对象参数。
-
查询数据
- 数据过滤条件:可设置来源实体的过滤条件,设置后微流程执行时会以微流程中设置条件为准。(不会执行生单规则中来源实体列表中设置的条件)。
-
-
节点出参:
- 生单执行结果:布尔类型
- 新建数据id集合
- 更新数据id集合
2.3.11 - 控件动作
控件动作
控件动作
适用范围:页面规则
①简介:控制对应的页面控件执行对应的操作
②属性:通过选择对应页面控件,并执行对应的控件动作完成配置
(1)控件:页面上拖入的控件
(2)控件动作:根据所选控件有不同的控件动作
③配置说明
(1)控件:仅支持选择页面配置的相关控件
(2)控件动作: 根据所选控件有不同的动作
2.3.12 - 流程动作
流程动作
流程动作
适用范围:页面规则
①简介:执行相关流程在流转中的动作,该动作执行之后对应的流程流转生效
②属性:通过相应的流程动作,并选择对应流程的实体信息完成配置
③配置说明
2.3.13 - 其他
其他
附件上传
适用范围:页面规则
①简介:附件上传节点,上传选中的附件
②属性:通过选择上传方式、文件类型、图片编辑、文件多选、数量限制、图片压缩等属性完成附件上传配置
③配置说明
(1)附件上传方式:
(2)文件类型
(3)图片编辑、文件多选支持选择是否开启
④注意
(1)附件上传节点在选择文件和上传过程中,该节点的后续节点不会执行,上传完成后,后续节点才会继续执行
(2)附件上传有出参,后续节点可以使用该出参进行业务判断或者操作。
附件下载
适用范围:页面规则
①简介:附件下载节点,下载选择的附件
②属性:通过选择页面上已上传附件,并配置是否批量下载完成配置
③配置说明
(1)附件: 只能选择页面上配置的附件类型控件
(2)批量下载: 选择是否批量下载
附件预览
适用范围:页面规则
①简介:附件预览节点,通过选择页面中的附件控件进行预览
②属性:通过选择页面上的已上传附件,完成附件预览的设置
③配置说明:附件只能选择页面配置的附件控件
2.3.14 - 逻辑活动
逻辑活动
分支
适用范围:微流程、页面规则
①简介:分支节点基于表达式配置,执行逻辑判断,从而执行一条具体的分支逻辑。
②属性:通过配置表达式完成分支条件的设置
③配置说明:
(1)添加分支
(2)展开/收起分支
(3)分支顺序移动
注意:多个分支之间是排他关系,即从上到下依次执行,当其中一个分支满足表达式条件时,进入该分支,其他分支不再判断进入。
列表循环
适用范围:微流程,页面规则
①简介:选择列表后,依次处理列表中的每一条数据。请尽量避免在循环中使用值操作、微流程等节点。
②属性:通过选择列表数据进行循环操作
③配置说明:
(1)选择列表:页面规则中可选择页面列表数据和页面规则的列表数据
(2)展开/收起循环
(3)添加该循环需要执行的节点
●计数循环
适用范围:微流程,页面规则
①简介:通过设定循环起始值、循环终止值以及循环执行条件,以执行一定次数的循环,不满足循环条件时循环将终止。请尽量避免在循环中使用值操作、微流程等节点。
②属性:通过设置循环起始值以及循环执行条件,进行一定次数的循环
③配置说明:
(1)展开/收起循环
(2)添加循环需要执行的节点
自定义错误
适用范围:微流程,页面规则
①简介:自定义的错误提示,本节点将中止当前页面规则的执行,并提示错误信息。请注意,该节点之前所做的节点操作,将不会被还原或恢复
②属性:通过加入该节点完成配置
③配置说明:自定义错误的提示信息,支持表达式。如错误提示方式为全局提示,则抛出错误信息;如错误提示方式为定位到页面元素,则根据配置将错误信息提示到对应页面元素上。
注意:配置了该节点,则后续节点不会执行
●跳出循环
适用范围:微流程,页面规则
①简介:立即终止当前循环,进入循环节点的下一个节点。
3 - 生单规则
使用场景
在制作应用的过程中,可以使用生单规则来描述上游实体数据变化之后,对其他下游实体数据的影响;也可以描述下游实体数据变化之后,反过来对上游实体数据的影响。
设计流程
创建生单规则关系图
路径:规则 >> 生单规则 >> 新建图标(+)
创建生单规则
进入生单规则关系图,左侧会列出所有支持参与生单规则的实体,从左侧拖入需要配置生单规则的实体到关系图中,鼠标放在上游实体上,出现四个小圆圈,选中一个作为连线的起点,然后拖动鼠标到下游实体上,建立两个实体的关系,箭头的方向,即为数据的流向。点击连线中的加号(+),进入生单规则配置界面。
录入生单规则的显示名称,编码自动生成可自己修改,编码要求应用内唯一,应用发布生成代码时,会用这个编码。
触发点&前置条件配置
触发点分手工触发和事件订阅。手工触发类型,需要和页面配合使用,在页面中通过按钮或者其他控件绑定事件,选择指定的生单规则;事件订阅类型,只能选择应用内的实体预置的新增事件(操作后)、更新事件(操作后)、删除事件(操作前)之一,选择的事件,可以不是当前生单规则中来源实体下的事件。
手工触发
来源实体过滤条件,可选配置。没有配置时,那么运行态选择的所有数据都会执行该生单规则;配置之后,会根据该条件过滤所有运行态选择的数据,不满足条件的跳过,满足条件的继续执行生单规则。
注:过滤条件可选择当前来源实体主子孙实体字段作为条件【2.8及之后版本】。
事件订阅
首先选择事件,可选事件范围如上描述。然后事件过滤条件,选配,未配置时,事件过来的数据直接执行生单规则;配置了之后,根据事件过滤条件判断是否满足条件,满足执行,不满足就跳过。事件过滤条件中,可选的字段为所选事件所属实体的主实体字段。最后配置来源实体查找条件,必需配置,用于通过该条件来查询当前生单映射规则来源实体用于执行生单规则的数据。如果所选事件所属实体就是当前来源实体,那么会默认在来源实体查找条件配置一个事件数据ID等于来源实体ID的条件,因为大部分情况,都只需要用当前事件发出的这一条数据来执行生单规则,如果有别的条件需求,可自行调整。
映射类型
该区域主要设置生单规则操作类型,包新建数据、更新数据、新建或跟新数据。
新建数据
本类型,执行生单规则后,根据后面的映射规则,将来源数据拍平之后,生成目标实体数据。
生单成功自动发起流程:该配置只有在目标详情页面(PC)绑定了流程模板的情况下生效,如果开关未打开,则只会给目标实体生成待办数据;如果开关打开,会尝试发送该待办到下一个节点,当发送失败时,还是会生成待办数据并消息提醒发送失败的原因,发送成功之后,流程直接流转到下一个节点。
目标详情页面(PC):选择目标实体详情页类型的PC页面,有两个用处,一是用于手工触发执行生单时,运行态生单成功后用该页面打开查看生成的目标数据详情;二是用于执行生单之后,判断是否需要给目标数据生成待办数据,如果该页面绑定了流程模板,那么就会生成待办数据(仅限能配置流程的实体)。
目标详情页面(移动):选择目标实体详情页类型的移动页面,用于移动端手工触发执行生单时,运行态生单成功后用该页面打开查看生成的目标数据详情。
支持详情页设置对应的入参。
更新数据
本类型,执行生单规则后,根据更新规则,更新目标实体数据。
新建或更新数据
本类型,执行生单规则时,会先按照新建数据类型生单拍平来源实体数据,组装可以生成的新建目标实体数据,再根据目标实体关键字段,用组装的目标数据中的主实体字段值对数据库进行查询,如果没有查询到目标实体,那么就按照新建数据直接新建这些数据;如果能够查询到的,就根据映射执行更新,递归处理其他目标子表的映射区域。
目标实体关键字段:选择用于查询目标实体数据,判断是执行更新还是执行新建的关键字段(注:目标实体关键字段必需参与下面的映射,不然没有数据用于查询)。
目标详情页面(PC):选择目标实体详情页类型的PC页面,有两个用处,一是用于手工触发执行生单时,运行态生单成功后用该页面打开查看生成的目标数据详情;二是用于执行生单之后,判断是否需要给目标数据生成待办数据,如果该页面绑定了流程模板,那么就会生成待办数据(仅限能配置流程的实体)。
目标详情页面(移动):选择目标实体详情页类型的移动页面,用于移动端手工触发执行生单时,运行态生单成功后用该页面打开查看生成的目标数据详情。
生单成功自动发起流程:该配置只有在目标详情页面(PC)绑定了流程模板的情况下生效,如果开关未打开,则只会给目标实体生成待办数据;如果开关打开,会尝试发送该待办到下一个节点,当发送失败时,还是会生成待办数据并消息提醒发送失败的原因,发送成功之后,流程直接流转到下一个节点。
拆单配置
当一条来源数据需要分几次来执行生单时,可以通过拆单配置来实现,有以下几点注意事项:
- 手工触发类型生单才能配置拆单字段,因为需要运行态选择数据时,需要输入本次执行的值;
- 拆单字段只能是数字(整数、小数、货币、长整数)类型字段;
- 一个生单规则只允许选择一个拆单字段;
- 拆单字段必需参与下面的映射规则。
示例:采购单生成到货单时,一个采购单预计采购20台设备,但是不是一次性所有设备都到了,第一批到货10台,第二批到货5台,第三批到货5台,那这个时候就可以通过拆单配置,把到货数量字段设置为拆单字段,每次采购单生成到货单时,就可以手动输入本次到货的数量,用该数字来执行生单。
映射规则
配置生单规则来源实体数据映射到目标实体的规则,按照每个目标实体为一个区域,配置该实体来源实体字段和目标实体字段的映射关系。在介绍映射规则配置前,需要做一些简要的说明:
实体体系说明
- 实体与实体之间为1:1聚合关系时,其视作同一体系;
- 实体与实体之间为1:N聚合关系时,须为纵向同一关系线上的实体,不能同时包含同层级多个1:N实体;
- 包含同层级多个1:N实体或包含多个实体之间不存在聚合关系,则视为非同一体系。
示例:
- 是一个体系:Person → PersonWork → PersonWorkPractice
- 是一个体系:Person → 自定义扩展表 → PersonWork → PersonWorkPractice
- 非一个体系:Person → PersonWork → PersonWorkPractice → PersonWorkDetail
字段数据类型之间的映射规则说明
目标实体字段 | 来源实体字段 | 备注 |
---|---|---|
附件 | 附件 | |
长整数 | 长整数、整数 | |
小数 | 小数、整数、长整数,货币 | |
货币 | 小数、整数、长整数,货币 | |
整数 | 整数 | |
枚举 | 枚举 | 需要绑定的同一个枚举 |
选项集 | 选项集 | 需要绑定同一个选项集 |
时间 | 时间、日期时间 | |
日期时间 | 日期时间、日期 | |
日期 | 日期、日期时间 | |
文本 | 文本、日期、日期时间、时间、整数、长整数、小数、货币 | |
布尔 | 布尔 | |
实体 | 实体 | 需要绑定同一个实体 |
多行文本 | 多行文本,文本、日期、日期时间、时间、整数、长整数、小数、货币 |
实体映射规则说明
在配置映射规则前,需明确实体间的映射关系,设计师可通过连接线,建立来源实体体系和目标实体体系的映射关系。建立关系后,后续的字段映射规则、来源实体列表方案、回写规则、字段映射等配置均依赖于实体映射规则。
- 映射关系只能从来源实体体系指出,指向目标实体体系;
- 建立连接线时,不能违背单体系对应单体系的原则;
- 建立连接线时,一组来源实体和目标实体之间,只允许存在一根连接线;
- 来源实体和目标实体建立连线后,代表实体间存在映射关系,需进一步配置字段映射规则;
- 未建立连线的目标实体,无需配置字段映射规则。
字段映射规则说明
- 可以使用值拷贝直接将上游数据中的字段值赋给下游实体数据;
- 可以通过计算公式将计算之后的结果拿来做映射;
- 当目标字段的值不需要有来源,需要直接设置一个固定常量或者系统变量时,可以采用常量映射方式来支持,比如设计师想在将目标单据创建出来的时候,目标单据状态是待提交状态的时候,通常就会用到常量映射的方式;
- 考虑到在执行一次生单的时候上游数据可能是多条的情况,即使上游主实体数据不是多条,在上游是主子都参与了映射到一个目标实体的情况,我们将上游主子数据拍平之后的数据执行生单,会默认用映射方式为值拷贝的映射行来源实体字段进行分组,有分组就有分组聚合的需求,当设计师遇到这种需求,可以使用分组聚合函数的映射方式进行设置。
配置字段映射规则前,可配置映射前置条件。对于不满足条件的来源实体数据,不执行来源实体数据到目标实体的数据映射。
每个映射行上也可以配置映射条件,该条件用于执行生单规则时,判断该列目标实体字段是否需要赋值。
更新类型生单规则,需要配置目标实体数据查找条件,通过该条件来查询目标实体数据,能查询到,就按照下方配置的映射规则更新目标实体数据。目标实体数据检查规则,用于判断执行该生单规则之后数据是否满足指定条件,如果不满足条件,则不执行本次生单规则。
来源实体列表方案
手工触发类型生单规则,需要配置运行态选择来源实体数据的列表,可配置内容包含显示列、系统条件、排序、搜索字段。列表中可选的实体,为映射规则区域参与映射的来源实体中一个体系的实体,可以设置主实体和子实体同时在列表显示。
回写规则
一个生单规则,可以配置多个回写规则,配置不同的回写前置条件,不同的回写时机,满足不同的业务。
回写时机:目标新增是说当前生单规则的目标实体主实体数据新建时触发该回写;目标更新是说当前生单规则的目标实体数据更新时触发该回写;目标删除是说当前生单规则的目标实体数据删除时触发该回写。
回写前置条件:根据条件判断是否执行该回写规则;
回写规则配置:同映射规则配置,只是映射方式中,只支持值拷贝、计算公式、常量。
页面绑定手工触发类型生单规则
手工触发类型的生单规则配置好了之后,要想运行起来,还需要到页面上去绑定一下,操作步骤如下图所示:
微流程绑定手工触发类型的生单规则
可通过微流程调用手工触发类型的生单规则,适用于生单规则的来源实体数据,需要通过微流程做逻辑编排后,把处理过的来源实体列表/对象传递给生单规则作为生单来源数据。详细设置见「微流程-执行生单规则」。
运行生单规则
执行生单规则
应用测试发布之后,就可以到运行态执行生单规则,通过菜单进入页面,准备一些来源实体数据,然后切换到配置的拉单页面,点击按钮,选择数据,执行手工触发的生单规则。生单成功之后,会弹出一个提示框,如果设计态配置了目标详情页面(PC),那么就会有一个查看详情的按钮,点击之后可以查看生成的目标实体数据详情。
事件订阅类型的生单规则,没有直接的界面交互,只需要操作选择的事件所在实体数据即可,满足配置的条件,就会执行对应的生单规则和回写。
运行态点击执行生单规则是否会弹出选择数据列表的规则如下:
PC/移动 | 生单上游/下游 | 页面类型 | 是否拆单 | 是否弹出来源实体选择列表 | 备注 |
---|---|---|---|---|---|
PC端 | 来源实体推单 | 详情页 | 否 | 否 | 使用当前页面数据推单 |
PC端 | 来源实体推单 | 详情页 | 是 | 是 | 使用当前页面数据推单,需配置拆单字段对应目标字段的本次推单数值 |
PC端 | 来源实体推单 | 列表页 | 否 | 否 | 使用已选择数据推单 |
PC端 | 来源实体推单 | 列表页 | 是 | 是 | 使用已选择数据推单,需配置拆单字段对应目标字段的本次推单数值 |
PC端 | 目标实体拉单 | 详情页 | 否 | 是 | 使用已选择数据拉单 |
PC端 | 目标实体拉单 | 详情页 | 是 | 是 | 使用已选择数据拉单,需配置拆单字段对应目标字段的本次推单数值 |
PC端 | 目标实体拉单 | 列表页 | 否 | 是 | 使用已选择数据拉单 |
PC端 | 目标实体拉单 | 列表页 | 是 | 是 | 使用已选择数据拉单,需配置拆单字段对应目标字段的本次推单数值 |
移动端 | 来源实体推单 | 详情页 | 否 | 否 | 使用当前页面数据推单 |
移动端 | 来源实体推单 | 详情页 | 是 | 否 | 使用当前页面数据推单 |
移动端 | 来源实体推单 | 列表页 | 否 | 否 | 使用已选择数据推单 |
移动端 | 来源实体推单 | 列表页 | 是 | 否 | 使用已选择数据推单 |
移动端 | 目标实体拉单 | 详情页 | 否 | 是 | 使用已选择数据拉单 |
移动端 | 目标实体拉单 | 详情页 | 是 | 是 | 使用已选择数据拉单 |
移动端 | 目标实体拉单 | 列表页 | 否 | 是 | 使用已选择数据拉单 |
移动端 | 目标实体拉单 | 列表页 | 是 | 是 | 使用已选择数据拉单 |
总结:拉单一定弹窗,PC端推单有拆单字段一定弹窗,移动端推单一定不弹窗,移动端一定不配置本次推单数值 |
个性化生单规则
应用发布之后,运行态可以个性化设计态的生单规则,可以在映射规则区域添加映射行,来源实体的可选范围为设计态已选过的实体,不能选这范围之外的,设计态已有的行,不允许删除和修改。
对于绑定了扩展方案的实体,在应用运行态启用扩展字段后,可在运行态生单规则个性化时使用扩展实体/字段。
4 - 扣减规则
使用场景
在涉及金额或数量的业务中,几乎都会存在扣减类场景,比如预算的扣减、设备领用的扣减。当遇到这种业务场景的时候,可以考虑使用扣减规则来满足需求。扣减规则可以描述当上游单据状态变化为某个状态的时候,应该使用什么样的扣减算法对下游目标实体数据进行计算、更新。(需要注意的是,扣减的上游一定是单据类型实体,下游一定是非单据类型实体)
设计流程
创建扣减规则关系图
路径:规则 >> 扣减规则 >>新建图标(+)
创建扣减规则
进入扣减规则关系图,左侧分别列出所有支持参与扣减规则的来源实体和目标实体,从左侧分别拖入来源实体和目标实体到关系图中,鼠标放在来源实体上,出现四个小圆圈,选中一个作为连线的起点,然后拖动鼠标到目标实体上,建立两个实体的关系。点击连线中的加号(+),进入扣减规则配置界面。
基础信息
输入规则名称,规则编码会自动生成,也可以自己手动修改,编码用于代码生成时作为一些关键字,无其他业务上的意义。
目标实体:选择需要执行扣减数据的目标实体,可以只主实体也可以是子实体,一个扣减规则只能扣减一个实体数据。
来源实体:选中一个执行扣减的来源实体,如果选中的是子表,那么就可以用该子表以及其父实体对目标实体进行扣减。
查找条件
配置查找扣减目标实体数据的条件,查找方式支持两种:一种是等式,配置来源实体字段和目标实体字段联查;另一种是常量,直接配置目标实体字段等于一个常量,比如是否占用预算为是。
有数据未能匹配时:可选“提示并阻塞”或“未匹配数据跳过扣减继续执行”。选择提示并阻塞时,需填写提示信息。
提示信息:配置当通过查找条件没有查询到目标实体数据时,运行态的提示信息。
扣减算法
可以根据实际业务需求,配置多个扣减算法,完成整个扣减过程。点击新建算法,填算法名称,确认之后,右侧配置算法项详情。
算法说明:简要描述当前算法的作用和业务逻辑。
检查规则:配置在算法运行时,检查当前是否具备算法执行的必要条件 。
检查未通过提示:配置了检查规则后,需要配置未通过的提示,提醒终端用户,扣减失败的原因。
算法配置:配置怎样通过来源实体的字段,扣减目标实体字段数据。
运算符说明:
- “+=“运算符说明:目标实体字段 += 来源实体字段,即目标实体字段更新后的值 = 目标实体字段当前值 + 来源实体字段值
- “-=“运算符说明:目标实体字段 -= 来源实体字段,即目标实体字段更新后的值 = 目标实体字段当前值 - 来源实体字段值
扣减规则
为每个单据状态配置扣减算法,按需配置,不是所有状态都需要配置算法。
运行扣减规则
执行扣减
扣减规则执行时,是通过监听实体操作的事件,根据单据状态变化来触发的,所以没有单独入口,只需要根据流程流转,检查数据是否正确即可。
运行态个性化扣减规则
应用发布之后,用户可以在运行态基于设计态的扣减规则,个性化自己的扣减规则,个性化之后,扣减将按照个性化的来执行,不再按照设计态的执行,仅限切换单据状态变化时执行的算法。
选中一个版本,编辑扣减规则,切换单据状态的算法,然后点击存为新版本,即可保存刚刚的修改并另存出新版本,另存出来的版本默认是停用的,需要切换到该版本,点击右下角启用按钮,这样运行态执行时,就可以应用到最新的个性化扣减规则了。