可视化U9插件开发平台使用说明书
概述
U9插件开发,基于事件的U9标准产品业务逻辑扩展和修改,是U9项目实施和交付的重要部分。可视化U9插件开发平台通过提供U9插件标准框架代码生成、基于模板的业务逻辑代码生成功能来简化和规范U9插件开发工作。
功能介绍
标准框架代码生成
简单的步骤就可生成标准的U9插件框架代码,自动引用必要的U9标准产品的程序集,同时对插件对象进行强制类型转换,方便客开顾问进行业务逻辑开发。
基于模板的业务逻辑代码生成
内建NVelocity模板引擎,能根据预设的模板实现业务逻辑的代码生成。
系统插件管理
列出当前U9系统中使用的所有插件清单,对于使用本平台制作的插件提供更详细的管理。
下载地址
插件工具云盘链接:https://pan.yonyou.com/s/2XIFNVZkSX8
操作步骤
主界面
打开插件工具以后自动进入主界面,如图 3‑1所示。
图3‑1
配置
由主界面-工具-配置进入配置窗口,如图 3‑2所示。
图3‑2
添加解决方案
在主界面点击新建按钮或使用文件-新建菜单,将添加一个解决方案,如图 3‑3、图 3‑4所示。在属性窗口可以编辑名称、显示名称、保存路径属性。
图 3‑3
图3‑4
添加项目
在解决方案树中右键点击解决方案节点-添加项目,将弹出添加项目对话框,如图 3‑5、图 3‑6所示。
图3‑5
图3‑6
点击确定,在解决方案树中选中新建的项目,如图 3‑7,在属性窗口中可以编辑相关属性。
图3‑7
添加事件集
在解决方案树中右键点击项目节点-添加事件集,将弹出添加事件集窗口,如图 3‑8、图 3‑9所示。
图3‑8
图3‑9
图 3‑10 BE插件事件集参数设置
添加事件
在解决方案树中右键点击事件集节点-添加事件,将弹出添加事件窗口,如图 3‑10、图 3‑11所示。
图3‑11
图3‑12
添加模板
在解决方案树中右键点击事件节点-添加模板,将弹出添加模板窗口,如图 3‑12、图 3‑13所示。
图3‑13
图3‑14
模板参数设置
在解决方案树中选中模板节点,在右侧属性窗口中可设置模板参数,如图 3‑14所示。系统为不同的模板参数类型提供专门的参数编辑器。
图3‑15
导出项目文件
在解决方案树中右键点击解决方案节点/项目节点-生成,将启动项目生成操作,将在代码生成路径下生成项目文件,如图 3‑15所示。
图3‑16
编译
在解决方案树中右键点击解决方案节点/项目节点-编译,将启动项目编译操作,如图 3‑16所示。
图3‑17
模板管理
由主界面-工具-模板管理进入模板管理界面,如图 3‑17、图 3‑18所示,模板管理界面提供模板增删改的功能。
图3‑18
图3‑19
UI插件查看与导出
由主界面-插件管理-前台插件进入UI插件查看与导出界面,如图 3‑19、图 3‑20所示。
图3‑20
图3‑21
BE插件查看与导出
由主界面-插件管理-后台插件进入UI插件查看与导出界面,如图 3‑21所示。
图 3‑22
模板引擎
U9客开插件平台使用引入模板功能进行功能扩展,系统内建NVelocity 模板引擎。系统将模板引擎解析后的模板字串输出到相应代码文件中。
模板结构
U9客开插件平台的模板可以分为模板体和模板参数两个部分。模板体中定义的模板字串将由模板引擎解析,模板引擎解析需要引用模板参数。
模板体
按照插入到代码文件的位置不同,模板体包含分为如下三个模板字串:
- 当前类内部,模板引擎将解析后的模板字串输出到生成的插件类内部
- 当前方法内部,模板引擎将解析后的模板字串输出到生成的插件方法内部
- 单独的类,模板引擎将解析后的模板字串作为新类,输出到生成的插件项目中
模板参数
模板参数为模板引擎解析提供上下文环境,目前系统内建以下参数类型:
- UFControl
UF控件参数,提供Name,DisplayName,UFEvents三个属性可供模板体使用。系统内建控件选择器,用于此参数的可视化编辑,可以选择U9标准产品的所含控件,如图 4‑1所示。
图4‑1
- UFControlLocation
UF控件位置参数,提供ParentControlName,GridX,GridY三个属性可供模板体使用。系统内建容器选择器,用于此参数的可视化编辑,可以选择控件位置,如图 4‑2所示。
图4‑2
- UFControlList
UF控件集合参数
- String
简单类型参数
- StringArray
字符串数组参数
模板编辑
参见“VTL语法参考指南中文版”云盘链接:https://pan.yonyou.com/s/ENm0ESaRmo
案例介绍
标准销售金额上限控制
需求
控制业务员每张销售单金额上限。如果业务员一张销售单所有单行,含税金额汇总超100万,单位本币(不同币种按汇率转换),那么不允许保存并提示错误信息。
设计
- 订阅销售单AfterValidate事件
- 汇总所有销售单行含税金额
- 判断汇总金额是否超过100万,是抛出异常
使用U9插件工具实现
- 新建解决方案。
- 新建项目。新建一个BE插件项目,按图 5‑10输入参数:
图5‑1
- 新建事件集。新建一个事件集,选择销售订单实体,如图 5‑11所示。
图5‑2
- 添加事件。订阅AfterValidate事件,如图 5‑12所示。
图5‑3
- 导出代码。点击工具栏导出按钮,导出VS解决方案文件。
- 编写剩余代码逻辑。
源代码地址链接:https://pan.yonyou.com/s/X2ow3apXQG8 - 发布。
拷贝UFIDA.U9.Custom.PluginExampleBE.dll到Portal/ApplicationServer/Libs目录
复制SO.AfterValidate.sub.xml到Portal/bin目录。
标准销售自定义打印
需求
实现标准销售订单的个性化打印。
设计
- 扩展标准销售单
- 在扩展方法AfterInit()中创建个性化打印按钮
- 按钮事件弹出打印界面
使用U9插件工具实现
- 新建解决方案。
- 新建项目。新建一个UI插件项目,按图 5‑13输入参数:
图5‑4
- 新建事件集。新建一个事件集,选择销售订单WebPart,如图 5‑14所示。
图5‑5
- 添加事件和模板。订阅AfterInit事件,在AfterInit事件下插入系统预置的“新建按钮”模板。
- 设置模板参数。选中上一步添加的“新建按钮”模板,按图 5‑15设置参数。
图5‑6
- 导出代码。点击工具栏导出按钮,导出VS解决方案文件。
- 编写剩余代码逻辑。
源代码地址链接:https://pan.yonyou.com/s/lTQ5YehTvw
- 发布。
拷贝UFIDA.U9.Custom.PluginExampleUI.dll到Portal/UILib目录
复制StandardSOMainUIFormWebPart.WebPartExtend.config中ExtendedPart节到Portal/WebPartExtend.config文件中。
订货单增加联查销售订单
需求
在订货单界面增加联查销售订单功能
设计
- 扩展订货单
- 在扩展方法AfterInit()中创建销售订单按钮
- 按钮事件弹出对应的销售订单界面
- 在扩展方法AfterRender()方法中控制销售订单按钮的状态
使用U9插件工具实现
- 新建解决方案。
- 新建项目。新建一个UI插件项目,按图 5‑1输入参数:
图5‑7
- 新建事件集。新建一个事件集,选择订货单WebPart,如图 5‑2所示。
图5‑8
- 添加事件。订阅AfterInit、AfterRender事件,如图 5‑3所示。
图5‑9
- 插入模板。在AfterInit事件下插入系统预置的“新建按钮”模板。
图 5‑10
- 设置模板参数。选中上一步添加的“新建按钮”模板,右侧属性窗口如图 5‑5所示。可以看到,“新建按钮”模板需要设置5个参数。
ParentControl参数用于确定按钮插入的位置,系统提供“容器编辑器”进行可视化编辑,如图 5‑6所示。
ControlName参数表示将插入的按钮的名称,可以自由设定。
Events参数表示按钮的事件组,可以自由设定(U9系统按钮只提供了“Click”事件,设置其他事件将编译失败)。
ControlId参数表示按钮的Id,可以自由设定。
ControlText参数表示按钮的显示文字,可以自由设定。
参数设置完成以后如图 5‑7所示。
图5‑11
图 5‑12 设置新建按钮模板的ParentControl参数
图5‑13
- 导出代码。点击工具栏导出按钮,导出VS解决方案文件。
- 编写剩余代码逻辑。
源代码地址链接:https://pan.yonyou.com/s/kV37j312QNw
- 发布。
拷贝UFIDA.U9.Custom.ODSearchSO.dll到Portal/UILib目录
复制OrderDocUIFormWebPart.WebPartExtend.config中ExtendedPart节到Portal/WebPartExtend.config文件中。
界面增加汇率功能
需求
订货单增加汇率自动带出功能,在录入完本币和交易币后按买入汇率类型自动带出汇率值。
设计
- 扩展订货单
- 增加取汇率的方法(调用取汇率的BP)
- 在扩展方法AfterInit()中注册关联控件
- 关联控件逻辑方法中调用取汇率的方法
使用U9插件工具实现
1到4步与“订货单增加联查销售订单“案例类似。
- 插入模板。在AfterInit事件中插入2个系统预置的“注册CallBack事件”模板。
- 设置模板参数。选中上一步添加的“注册CallBack事件”模板,在右侧属性窗口设置参数。“注册CallBack事件”模板需要设置3个参数。
MainControl参数用于确定CallBack事件的触发源控件,系统提供“控件选择器”进行可视化编辑,如图 5‑8所示。
ParaControls参数用于确定CallBack事件的参数控件集合,系统提供“UF控件集合编辑器”进行可视化编辑。
TriggerEvent参数用于确定CallBack事件的触发事件名称,自由设置。
参数设置完成以后如图 5‑9所示。
图5‑14 设置注册CallBack事件模板的MainControl参数
图5‑15
- 导出代码。点击工具栏导出按钮,导出VS解决方案文件。
- 编写剩余代码逻辑。
源代码地址链接:https://pan.yonyou.com/s/8niFVqSPU
标准销售交期校验
需求
实现标准销售订单交期的自动校验,交期必须大于日期,否则弹出提示框。
设计
- 扩展标准销售单
- 在扩展方法AfterInit()中注册关联控件
- 关联控件逻辑方法中判断日期与交期
使用U9插件工具实现
1到4步与“标准销售自定义打印“案例类似。
- 插入模板。在AfterInit事件中插入2个系统预置的“注册CallBack事件”模板。
- 设置模板参数。
图 5‑16 注册交期控件CallBack事件模板参数设置
图 5‑17注册日期控件CallBack事件模板参数设置
- 导出代码。点击工具栏导出按钮,导出VS解决方案文件。
- 编写剩余代码逻辑。
- 发布。
拷贝UFIDA.U9.Custom.PluginExampleUI.dll到Portal/UILib目录
复制StandardSOMainUIFormWebPart.WebPartExtend.config中ExtendedPart节到Portal/WebPartExtend.config文件中。
可视化U9插件开发平台使用说明书
本文2024-08-20 17:23:45发表“u9cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/yonyou-u9cloud-1167.html