为何引入简单模式

由于原子数据具有生命周期(草稿、正式、历史),不同的阶段具有不同的数据副本。这种数据管理机制适用于大多数业务数据,如请假申请、出差申请、会议室预定、采购订单、销售订单、合同制定、项目需求、开发任务,等等

此外,还有一些业务数据,则不需要完整的生命周期,比如,工作日志、优惠券、购物车,等等。针对这个业务场景,CabloyJS引入了简单模式的概念。指定为简单模式,原子数据就没有草稿阶段,当创建时就是正式阶段的数据,从而简化了管理、节省了空间占用

简单模式的配置

将原子数据设置为简单模式很简单,以测试模块test-note为例。测试模块test-note通过原子类型note实现了便签的功能,其定义如下:

src/module-vendor/test-note/backend/src/meta.js

  1. 1 const meta = {
  2. 2 base: {
  3. 3 atoms: {
  4. 4 note: {
  5. 5 info: {
  6. 6 bean: 'note',
  7. 7 title: 'Note',
  8. 8 tableName: 'testNote',
  9. 9 language: false,
  10. 10 category: true,
  11. 11 tag: true,
  12. 12 simple: true, // 简单模式
  13. 13 history: false, // 不使用历史阶段
  14. 14 },
  15. 15 ...
  16. 16 },
  17. 17 },
  18. 18 },
  19. 19 };
  • simple:只需要设置simple: true,就设置为简单模式

其他事宜

1. 简单模式是否具有历史阶段?

简单模式仍然具有历史阶段。如果不想使用历史阶段,可以直接设置history: false

2. 简单模式是否可以使用审批工作流?

CabloyJS提供了一个缺省的审批工作流的实现机制。就是在草稿阶段正式阶段转换时按需启动审批工作流。由于简单模式没有草稿阶段,因此也就无法使用缺省的机制

当然,CabloyJS内置的工作流引擎,具备强大的可扩展性,完全可以实现各种定制需求。比如,我们可以引入一个状态字段,通过工作流的不同节点来修改状态字段的值,从而实现数据不同状态的动态转换

3. 简单模式可否升级为常规模式?

比如电商中的商品管理:在项目开发的初期,可以设置为简单模式。随着业务的深入开展,以及运营团队的扩充,就需要引入审批工作流,商品不论是新建还是编辑,都需要上级主管审核之后才能上架。这时,就需要把简单模式升级为常规模式

CabloyJS不仅支持简单模式升级为常规模式,还支持常规模式降级为简单模式。所需要做的,仅仅是设置simple: true或者simple: false,剩下的工作都由CabloyJS处理好了