DWF功能模型包括:应用功能创建、模块的创建和操作的创建,DWF功能模型具有如下的特点:
术语:应用(Application)、模块(Module)、操作(Operation)、全局操作(Global Operation)、模块操作(Model Operation)、实体类操作(Entity Operation)、关联类操作(Relation Operation)、操作的动作类型(Action Type)、操作的表单(TargetForm)、操作的过滤条件(Condition)、前后处理脚本(PreScript / PostScript)
功能模型包括如下几部分:
操作(Operation):DWF功能最小粒度的单位,每个操作对应特定的动作,如编辑、保存、删除等。操作的属性有英文名、中文名、图标等。
操作的分类:
全局操作除了建模者自定义的全局操作,还包含系统内置的基本操作(未显示在全局操作列表)。
|
图-操作的分类
操作的含义:
表-操作动作的含义
创建 | create | 表示操作激活时,以创建状态打开某个实体类/关联类表单。 |
级联创建 | next_create | 级联创建,单对象表单中级联创建其他类的对象。例如创建工单类对象时,同时创建工单-零件的关联类对象。 |
编辑 | edit | 表示操作激活时,以编辑状态打开某个实体类/关联类表单。 |
浏览 | visit | 表示操作激活时,以浏览状态打开某个实体类/关联类表单。 |
实现 | implement | 表示操作激活时,调用一个程序实现其对应的功能,可以是前端脚本、后端脚本、插件调用和存储过程。 |
链接 | url | 表示打开某个指定的网页,一般用于界面集成。 |
操作表现形式:
根据操作的表现形式不同,可以分为一下几种形式:
图-操作的表现形式
功能模型处主要提供以下几个功能:
根据培训案例及功能模型提供的基本功能,我们可以搭建一个设备管理应用,应用结构如下:
图-设备管理系统预览
DWF系统提供了一个默认应用,默认应用不可删除。建模者可以基于默认应用进行应用的基本设置。也可以点击页面的“新增应用”按钮后输入应用的英文名,显示名,上传LOGO,图标等必填项,实现新增应用。其他应用设置项含义解释如下:
根据上述介绍,大家可以尝试创建一个设备管理应用。
图-应用编辑框
应用创建完成,接下来需要创建模块。模块是前端应用功能的入口。建模步骤如下:
模块操作的步骤比较简单,大家可以根据功能树创建设备管理、零件管理和工单管理模块。
图-新增模块
模块创建成功后,还需要为模块绑定操作,才能实现一个具体的功能。建模步骤如下:
大家可以根据功能树为不同功能模块绑定不同的模块操作。
图-新增模块操作
全局操作也属于操作,只是作用的范围是全局。包括系统内置的四个基本操作新增、编辑、删除、刷新,以及关联类特有的删除左对象、删除右对象。用户还可以在功能模型-全局操作管理页面,新增全局操作。同模块操作,全局操作信息编辑页面同表单中的操作。根据业务功能,设置操作具体信息即可完成全局操作的创建。创建好的全局操作会出现在实体类表单、关联类表单的操作列表中,用户可以通过按钮或者控件事件绑定全局操作,实现具体功能。
图-新增全局操作
在实体类表单定制页面,只能对实体类操作(例如新增设备、编辑设备等)进行新增或者编辑,无法删除。功能模型-实体类操作提供了删除实体类操作的页面,建模者可以在该页面删除实体类操作。
图-删除实体类操作
同理,功能模型还提供了删除关联类操作的入口。
图-删除关联操作
案例中,为了方便维修工程师找到自己的工单,可以在工单管理模块下新增“我的工单”模块操作,只显示当前登录的维修工程师负责的工单列表。我们可以利用前处理脚本向表单提供过滤条件,模块操作设置信息入下图。
图-表单过滤
前处理脚本代码参考如下:
var userId = this.store.state.user.userId; return { query: `and ( obj.engineerOid = '${userId}')` } |
现在已经介绍了两种查询(过滤)条件:
如果这两种情况同时存在,比如在访问我的工单中的列表时,我们对该列表本身还设置了一定的查询或排序条件,根据DWF查询条件优先级,此时的查询流程是:控件本身查询条件>外部查询条件。而如果控件和外部都没有设置任何查询条件,则默认全部查询。
应用是指一个独立完整的功能系统。应用由模块和模块操作构成,模块操作相当于于应用左侧的功能菜单,模块是应用前端功能的入口,用于分类管理这些功能菜单。
操作是DWF功能最小粒度的单位。操作根据作用范围分类可分为全局操作、模块操作、实体类操作和关联类操作。
操作根据表现形式不同可分为按钮、功能菜单和事件。