为何引入简单模式
由于原子数据具有生命周期(草稿、正式、历史),不同的阶段具有不同的数据副本。这种数据管理机制适用于大多数业务数据,如请假申请、出差申请、会议室预定、采购订单、销售订单、合同制定、项目需求、开发任务,等等
此外,还有一些业务数据,则不需要完整的生命周期,比如,工作日志、优惠券、购物车,等等。针对这个业务场景,CabloyJS引入了简单模式
的概念。指定为简单模式
,原子数据就没有草稿阶段
,当创建时就是正式阶段
的数据,从而简化了管理、节省了空间占用
简单模式的配置
将原子数据设置为简单模式
很简单,以测试模块test-note
为例。测试模块test-note
通过原子类型note
实现了便签
的功能,其定义如下:
src/module-vendor/test-note/backend/src/meta.js
- 1 const meta = {
- 2 base: {
- 3 atoms: {
- 4 note: {
- 5 info: {
- 6 bean: 'note',
- 7 title: 'Note',
- 8 tableName: 'testNote',
- 9 language: false,
- 10 category: true,
- 11 tag: true,
- 12 simple: true, // 简单模式
- 13 history: false, // 不使用历史阶段
- 14 },
- 15 ...
- 16 },
- 17 },
- 18 },
- 19 };
simple
:只需要设置simple: true
,就设置为简单模式
了
其他事宜
1. 简单模式是否具有历史阶段?
简单模式
仍然具有历史阶段
。如果不想使用历史阶段
,可以直接设置history: false
。
2. 简单模式是否可以使用审批工作流?
CabloyJS提供了一个缺省的审批工作流
的实现机制。就是在草稿阶段
向正式阶段
转换时按需启动审批工作流。由于简单模式
没有草稿阶段,因此也就无法使用缺省的机制
当然,CabloyJS内置的工作流引擎,具备强大的可扩展性,完全可以实现各种定制需求。比如,我们可以引入一个状态字段
,通过工作流的不同节点来修改状态字段
的值,从而实现数据不同状态的动态转换
3. 简单模式可否升级为常规模式?
比如电商中的商品管理
:在项目开发的初期,可以设置为简单模式
。随着业务的深入开展,以及运营团队的扩充,就需要引入审批工作流
,商品不论是新建
还是编辑
,都需要上级主管审核
之后才能上架。这时,就需要把简单模式
升级为常规模式
CabloyJS不仅支持简单模式
升级为常规模式
,还支持常规模式
降级为简单模式
。所需要做的,仅仅是设置simple: true
或者simple: false
,剩下的工作都由CabloyJS处理好了
评论: