# CAP4自定义触发开发说明文档
一、概念
CAP4中,触发的概念进行了统一,将触发分为了表间触发(标准的触发设置,即原来的触发、联动、回写)和单表触发,原人员、会议、DEE等在CAP4中都是属于单表触发的分支。因此,自定义触发的设置入口放在单表触发设置中,具体入口:应用定制平台/设计中心/具体业务包/单表触发+号,如图:
![](https://img.kancloud.cn/2c/d0/2cd0e752907f4578ac8d118c843b2dcd_1356x719.png)
其次,根据cap3的自定义触发的规则,分为了无设置界面自定义触发和有设置界面自定义触发。无设置界面自定义触发表示不需要有具体动作设置,仅有一个动作类型的选择,有设置界面自定义触发表示需要进行具体的动作设置,进行一些业务规则的前端设置。
二、自定义触发设置代码结果
─seeyon
├─xxx
│ └─FormTriggerCustomTest1DesignManagerjava
│ └─FormTriggerCustomTest2DesignManagerjava
└─WEB-INF
├─cfgHome
│ └─xxx
│ └─spring
│ spring-test-manager.xml
├─jsp
│ └─xxx
│ └─customerTriggerTest2.jsp
三、代码示例
1、设置态
FormTriggerCustomDesignManager 自定义触发设置抽象父类
FormTriggerCustomTest1DesignManager 无界面自定义触发示例
FormTriggerCustomTest2DesignManager 有界面自定义触发示例
![](https://img.kancloud.cn/56/b8/56b89eb3c19932c48b4810a599770570_793x465.png)
![](https://img.kancloud.cn/9a/e2/9ae2b24baf1ad6d8b1e3adcaa351a2e7_865x593.png)
其中,父类方法hasSettingPage和getActionSettingUrl配合使用,只有hasSettingPage为true时,其getActionSettingUrl方法返回的url才有效。hasSettingPage默认返回false。这两个方法根据需要进行重写。目前hasSettingPage方法暂时没有使用,仅做预留
注意,父类有个默认实现方法checkFieldInActionSet,此方法是去处理修改字段时校验此字段是否参与触发关系设置的。如果业务需要进行校验,重写的时候如果有参与设置,则返回值必须为FormTriggerBean.CheckResultEnum.customerAction.getKey();没有参与,则返回值必须为FormTriggerBean.CheckResultEnum.none.getKey(),不能为其他值,否则修改表单字段后保存会报异常。
另外,如果是有界面自定义触发,则需要在xxxController中增加getActionSettingUrl中指定的页面跳转方法,同时增加对应的jsp,此jsp就是具体的自定义触发动作的设置界面。
![](https://img.kancloud.cn/17/02/17028bdfd95c933c45feb0a3fa4d5b38_1072x109.png)
![](https://img.kancloud.cn/ad/20/ad2038147570ed1023a7f0cfa56ac823_902x684.png)
无界面自定义触发设置效果:
![](../../images/custom-trigger/pic6.png)
有界面自定义触发设置效果:
![](https://img.kancloud.cn/48/3d/483d79bfff3ee5c10e2e13c1620be174_772x516.png)
2、运行态
FormTriggerCustomBaseAction 自定义触发运行抽象父类
FormTriggerCustomTest1Action 无界面自定义触发运行类
FormTriggerCustomTest2Action 有界面自定义触发运行类
![](https://img.kancloud.cn/2d/e7/2de7b6db00d1046156322a86cfbedfff_948x583.png)
子类实现父类抽象方法getId()、init()和execute(FormTriggerActionContext context);视情况重写canUse()和预执行方法preExecute,preExecute返回false为预执行不通过,会转到执行队列末尾等待下次执行,返回true表示预执行通过。canUse方法目前暂未使用
在7.0sp3基础上进行客开,有细节的区分
FormTriggerBaseActionManager 触发运行公共抽象父类
FormTriggerCustomTest1Action 无界面自定义触发运行类
FormTriggerCustomTest2Action 有界面自定义触发运行类
![](https://img.kancloud.cn/98/a9/98a9380f7727012d00450ad6c3f5e0ea_858x496.png)
子类不再需要实现父类init方法,仅需实现getId和execute方法即可。其余canUse和preExecute方法视业务需求重写,preExecute返回false为预执行不通过,会转到执行队列末尾等待下次执行,返回true表示预执行通过。canUse方法目前暂未使用
注:设置态的子类和运行态的子类java文件都必须在spring文件中进行注册,否则无法使用
- 概要
- 技术介绍
- 框架与环境
- vue开发
- 开发规范
- 前端开发规范
- 总体原则
- HTML规范
- HTML&css规范
- vue编码规范
- Javascript规范
- 后端开发规范
- cap4
- 自定义控件
- 前端2.0(PC+移动)
- PC前端
- 后端
- 移动端
- 移动端接口
- 低版本协同升级到V5 8.0适配说明
- 自定义按钮
- 自定义按钮(无流程)
- 自定义控件(列表插槽)
- 自定义按钮(筛选条件)
- 低版本协同升级到V5 8.0适配说明
- 门户空间
- 门户与栏目挂载
- 栏目开发及流程说明
- 页面模板
- 客开通路及插件体系
- 表单设计器扩展配置
- 使用步骤
- 配置说明
- 事件API
- Demo示例
- 运行态客开通路
- 插件使用步骤
- 插件接口
- 事件接口
- 钩子相关接口
- 表单操作接口
- Demo示例
- 插件机制
- 表单运行态接口(旧)
- 白名单插件
- 版本记录
- vue组件库
- 开发指南
- 开发文档规范
- 业务组件介绍
- 业务组件
- table组件
- 分页组件
- title组件
- 统计排队组件
- code组件
- 条件筛选
- 批量导入
- 上传Excel
- 批量更新
- 批量刷新
- UI组件
- 按钮组件
- 复选组件
- 取色器组件
- 示例组件
- 水平选择组件
- 选图标组件
- 提示组件
- 单选组件
- 搜索组件
- 选择组件
- 穿梭框组件
- 标签组件
- 文本组件
- 树组件
- 验证组件
- 菜单组件
- iframe组件
- toolbar
- 统计组件
- 饼图
- 柱状图
- 图标
- 业务关系开发指南
- 自定义触发
- 自定义关联
- 后端API
- 更新表单数据缓存
- 发起表单流程
- 取得指定表单PDF或截图
- 无流程批量添加
- 无流程批量删除
- 无流程批量更新
- 无流程批量导出
- 客开培训文档
- Vue基础培训
- Vue实战培训
- Vue进阶培训
- VueCLI3培训
- cap3
- 自定义控件
- 后端
- 移动端
- 前端编译
- 表单运行态接口
- 协同云