用友网络科技股份有限公司U9-BP/SV 组件开发 课程概述 BP/SV 组件开发 案例主题 课程概述课程目的单据相互之间的转换围绕案例,讲解自定义单据与标准单据、自定义课程内容BP 组件开发自定义 UI 界面开发主题 课程概述 BP/SV 组件开发 案例BP/SV 组件概述 BP(Business Process) 业务操作应用业务逻辑操作单元,可以进行远程调用。 SV(Service) 服务服务与操作相似,但其可用于对外部服务组提供调用支持.可以进行跨组织跨 Site 的调用 BP 组件和 SV 组件都可以理解成一个业务操作单元,或者一个有平台元数据和框架引擎支撑的业务方法。主要用于对于 UI 调用后台的业务数据操作和后台业务操作的逻辑封装。没有特殊的规则。主要是其 BP 和服务的模型组织存储单位。BP 对事务的支持UBF 的事务 UBF 的事务是基于 .NET 的 Transcation 实现的,对其进行了包装,并且通过 AOP 的方式应用到我们的 BP , SV 上。开发人员只需要在 BP , SV 模型的设置一下事务类型,就可以得到事务相应的功能。 UBF 支持四种事务声明:Required , RequiresNew , Supported , NotSupported 。UBF 事务的特点 依托于 BP , SV ,运行期无法改变事务类型; BP , SV 处理完后, AOP 会在之后加入事务的结束处理,跟据当前事务的提交情况和外部事务的情况,来决定是否进行真正的事务提交工作。 事务的失败不能人为控制,而是通过异常机制来触发的后台事务处理机制当前事务被调用对象的事务类型调用后的当前事务存在Required借用调用者的事务Supported借用调用者的事务RequiresNew创建新事务NotSupported不存在不存在Required创建新事务Supported不存在RequiresNew创建新事务NotSupported不存在UBF 事务的选用原则Supported 的选用原则: 如果数据操作对象内的数据,是从数据库中读取数据,没有数据更新的需求,一般将事务属性定义为:Supported 。例如:从数据库读取一个代码表。使用 Support 的优势是不会破坏调用者的事务边界,不会衍生新的事务,开销较小。上面的事务属性可以用 Required 来替代,但是会带来额外的开销。Required 的选用原则: 如果数据操作对象需要更新数据,并且被更新的数据属于业务系统,不能独立判断数据操作的完整性,一般将事务属性设置为: Required 。例如:更新一个数据库表的数据。使用 Required 可以很好的组合业务的数据操作对象,共享事务,具有很好的扩展性。RequiresNew 的选用原则: 如果数据操作对象是独立业务的入口,需要和其他业务做彻底的隔离,一般将事务属性设置为:RequiresNew 。例如:在处理存款的业务过程中,触发了开户业务;在一般的业务的处理过程中将操作记录保存到日志系统。RequiresNew 一定会打破原有的事务边界,独立的完成数据的提交。NotSupported 的选用原则: 如果确信数据操作对象在任何情况下都不需要事务的保护,可以将事务属性设置为: NotSupported 。注意,如果数据操作对象的事务属性为 NotSupported ,将打破原有事务的边界。NotSupported 属性一般情况下不使用。BP/SV 结构及调用方式BP/SV 代码解决方案操作服务代码解决方案四个项目:** 实现项目,编写 BP,SV 业务逻辑**.Deploy BP,SV 部置项目,用于对外部分服务组可见接口。 ( 均不可改 )**.Agent BP,SV 的代理项目,用于远程,跨组织,跨 site 方式调用的代理接口 .( 均不可改 )**.Test BP,SV 测试项目,可添加测试用例代码每个 BP 组件会生成一个目录,组件内模型均生成在这目录下。每个 BP 实现项目中会生成三个代码文件例:其中只有 Extend.cs 是可以编写业务逻辑的,其它代码不可更改。开发也可以自己添加代码文件或者 DLL引用来加入到当前项目中。编写 BP/SV 代码逻辑 Do 方法 传入参数 bpObj 返回值BP/SV 调用方式 前台调用 后台调用主题 课程概述 BP/SV 组件开发 案例培训案例实现过程 分析过程需求界面设计后台数据(操作)设计 开发过程后台数据(操作)开发界面开发前后台联调