# 2.模型

# 创建第一个单据模型

提示

单据模型是ELCube的基础功能单元,通过不同的单据模型来构建您的业务流程

电梯:https://demo.elcube.cloud/#/apps/def/doc/create (opens new window)

通过菜单 开发-模型 进入单据类型列表,点击新建按钮进入单据模型编辑界面

字段 描述 举例
交易类型 由4个字符组成的模型唯一标识 ZR01
交易类型描述 模型名称 演示单据
有效期限 为模型设置一个过期时间,如长期有效 2000-01-01 至 2099-12-31
模型程序 为模型提供逻辑处理的Java程序 Transaction 单据,Partner 伙伴等
业务主键规则 单据模型的业务唯一标示的表达式,非必要 伙伴的身份证编号、企业的组织机构代码证编号等

# 选择合适的模型程序

  • Transaction 单据:普通的模型程序,适用于普通业务单据。体验创建可选择该模型程序
  • Partner 伙伴:相关方主数据程序,适用人员档案、企业档案、机构档案等
  • Pipeline 流水线:自动化程序,适用于决策、数据抓取等自动化作业
  • Page 用户页面:菜单页面单据,每一个菜单都是一个单据模型,每增加一个页面菜单,就需要创建一个该程序的单据模型
  • Rule 规则:配合流水线使用,适用于规则判断
  • DataAnalyse 数据集:适用于为首页配置数据卡片
  • System 系统设置:适用于配置数据字典

请注意

修改单据类型配置后,请保存数据,避免修改内容丢失。

# 为模型添加状态

提示

任何事物都有状态,单据模型也不例外;每一个模型可以有多种状态,但生效的只有一个。

状态随着业务的进展更新,因此它的变化是有规可循的,通过状态表,来描述单据模型状态变化的过程。

提示

在很多情况下,不同的状态最终可能会流转到一个相同的状态,

同一个状态也可以根据用户的选择流转到不同的状态。

如一个业务申请,不论是否审批通过,最终都有可能成为归档的状态。
我们可以在状态表中添加多个归档状态,分别设置其前序状态为`审批通过`与`审批驳回`。
也可以设置多个状态`审批通过`与`审批驳回`,它们的前序状态都为`审批中`,用户就可以选择该业务最后流转向某一个状态
字段 描述 举例
状态 由4个字符组成的状态唯一KEY S001
描述 状态名称 新创建
操作名 为状态设置一个别名,来描述修改状态的操作动作 提交
前序状态 描述由哪个状态可以修改为当前状态,@标示创建时的默认值 @、S001、S002
编辑控制 描述当前状态下单据是否开放编辑
颜色 TODO
系统状态 定义当前状态下的系统值,可用于规范程序处理
显示 描述状态操作是否显示在单据操作列表,默认情况下折叠在下拉菜单里
不校验 定义该状态下是否对卡片数据进行前端校验,默认是校验,如需不校验,可以打开开关
扩展程序 自定义状态是否可见的Java程序,继承NkAbstractDocStateInterceptor类 NkDocConditionStateInterceptor,参数:{"condition":"${data?.BasicInfo.type=='1'}"}
参数 配合扩展程序使用

# 下面是一个常见的例子

状态 前序状态 编辑控制 操作名 显示
新创建 @ 可编辑
审批中 新创建 不可编辑 提交审批
驳回 审批中 可编辑 拒绝
审批中 驳回 不可编辑 提交审批
审批通过 审批中 不可编辑 同意

# 由此可以看出

  • 一个单据可以包含1或N个状态,有且仅有1个初始状态
  • 每个状态必须有一个前置状态或设定为初始状态,来控制状态的前后序关系
  • 通过状态编辑控制可以设置一个单据是否允许编辑
  • 在单据界面中,用户可以修改单据状态来完成业务流转的操作
  • 状态允许有分支以及回溯

# 编写帮助文档

提示

用markdown格式编写这个单据模型的文档,这个文档可以被最终用户看到;

因此,将它作为系统的操作文档,是非常美妙的事情。

# 激活模型

提示

只有激活的模型,用户才可以真正在系统中使用,

一切准备就绪后,点击工具栏中的红色激活按钮,使这个模型生效。

# 创建一个业务单据

现在您只是创建了第一个没有表单内容的新模型,

但是不要紧,您仍然可以前往单据菜单中点击右上角的+新增创建一个真正的业务单据试一下。

电梯: https://demo.elcube.cloud/#/apps/docs (opens new window)