用友U9插件开发集成.pdf_第1页
用友U9插件开发集成.pdf_第2页
用友U9插件开发集成.pdf_第3页
用友U9插件开发集成.pdf_第4页
用友U9插件开发集成.pdf_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

U9插件开发集成插件开发集成 课程编号:课程编号: 用友软件股份有限公司用友软件股份有限公司 U9U9客户化开发支持部客户化开发支持部 20102010年年3 3月月2929日日 业务场景业务场景 控制经手人每d张订货单金额上限 如果经手人一张订货单所有订单行,含税金额汇总超过100万,单位本币(不同 币种按汇率转换),那么不允许保存并提示错误信息 订货单保存成功后消息通知经手人上级 通过消息中心和邮件的方式将订单保存成功的信息发送给经手人上级 批量生成销售订单后回写订货单属性记录关联的销售订单信息 对订货单启用弹性域公共段用于存储关联信息 订货单增加联查销售订单功能 在订货单界面增加联查销售订单按钮,实现按钮点击弹出对应 订货单增加汇率自动带出功能 在录入完本币和交易币后按买入汇率类型自动带出汇率值 插件式开发原理及流程 业务逻辑扩展 表单逻辑扩展 插件式开发实践 订货单金额上限控制 消息通知上级领导 记录订货单到销售订单关联 界面增加联查功能 界面增加汇率功能 课件内容课件内容 插件式开发技术插件式开发技术 支持表单逻辑和业务逻辑扩展 U9系统 数 据 层 业务层 表示层 客 户 端 表单模型 表单视图 服务Agent 表单逻辑 插件开发插件开发 表单逻辑扩展业务逻辑扩展 业务实体 服务 业务操作 业务策略 UDDI 支持业务实体(BE)扩展 支持业务操作(BP)扩展 支持服务(SV)扩展 业务实体业务实体BEBE 业务操作业务操作BPBP服务服务SVSV 插入前 更新 删除 根据客户化业务需根据客户化业务需 求求 切入业务逻辑代码切入业务逻辑代码 操作执行前服务执行前 插入 插入后 更新前 更新后 删除前 删除后 操作执行后 操作执行服务执行 服务执行后 校验后 插件式开发技术插件式开发技术 校验 校验前 赋默认值后 赋默认值 赋默认值前 客户化插件需求文档 业务逻辑扩展设计文档 VS.NET工程建立 编码实现业务逻辑扩展 扩展点配置文件建立 注册BE,BP,SV扩展点 产出部署 配置文件,组件dll 插件式开发技术插件式开发技术 插件式开发技术插件式开发技术 UAPUAP平台平台U9U9研发部研发部第三方开发部第三方开发部 Inserting InsertedUpdated BeforeDefaultValue AfterDefaultValue BeforeValidate AfterValidate AfterInserting AfterInserted BeforeInserted BeforeInserting AfterUpdating AfterUpdated BeforeUpdated BeforeUpdating 新增新增修改修改 新增新增修改修改 SetDefaultValueSetDefaultValue Updating UpdateInsert ValidateValidate 插件式开发技术插件式开发技术 UAPUAP平台平台U9U9研发部研发部第三方开发部第三方开发部 BeforeDeleting AfterDeleting AfterDeleted Deleting Delete Deleted BeforeDeleted 插件式开发技术插件式开发技术 BeforeDo(BeforeDo(objectobject bp) bp) 操作执行前操作执行前 bp是扩展的业务对象,是object类型,可以转化为业务对象类型 可以对传入的参数做相应处理 AfterDo(AfterDo(objectobject bp,bp,refref objectobject result)result) 操作执行后操作执行后 bp是扩展的业务对象,是object类型,可以转化为业务对象类型 可以对返回结果result进行相应处理,或根据返回结果实现其它业务 插件式开发技术插件式开发技术 继承的扩展类 添加引用UFSoft.UBF.Execution.dll 继承UFSoft.UBF.Eventing.IEventSubscriber 插件dll部署 部署到PortalApplicationServerLibs 扩展点配置文件 文件:名称.sub.xml ,部署到PortalBin 配置节: 说明:event :要扩展的BE事件,如Inserting, Inserted type :插件类,插件程序集 插件式开发技术插件式开发技术 继承的扩展类 添加引用UFSoft.UBF.AopFrame.dll 继承UFSoft.UBF.Service.BPSVExtendBase 插件dll部署 部署到PortalApplicationServerLibs 扩展点配置文件 文件PortalUBFConfigUFIDA.UBF.BPSVExtend.config 配置节: 说明:on :要扩展的BP/SV extendType:插件类,插件程序集 在文件中增加配置节 插件式开发技术插件式开发技术 表单(WebPart)事件 OnInit OnLoad OnPreRender U9开发人员扩展点 CreateFormChildControls AfterEventBind AfterCreateChildControls OnLoadData_Extend AfterOnLoad OnDataCollect_Extend ActionExtend BeforeUIModelBinding DataBinding AfterUIModelBinding 二次开发扩展点 BeforeInit AfterInit BeforeLoad BeforeDataLoad AfterDataLoad AfterLoad BeforeDataCollect AfterDataCollect BeforeEventProcess AfterEventProcess BeforeRender BeforeDataBinding AfterDataBinding AfterRender 插件式开发技术插件式开发技术 WebPartWebPart事件事件U9U9开发部开发部第三方开发部第三方开发部 CreateFormChildControls() AfterEventBind() AfterCreateChildControls() OnLoadData_Extend() AfterOnLoad() BeforeInit() AfterInit() BeforeLoad() BeforeDataLoad() AfterDataLoad() AfterLoad() Page.IsPostBack!Page.IsPostBack OnInit() OnLoad() base. base. 插件式开发技术插件式开发技术 WebPartWebPart事件事件U9U9开发部开发部第三方开发部第三方开发部 BeforeUIModelBinding() AfterUIModelBinding() BeforeDataCollect() AfterEventProcess() BeforeRender() BeforeDataBinding() AfterDataBinding() AfterRender() ! IsDataBinding IsDataBinding AfterDataCollect() BeforeEventProcess() 数据收集数据收集 !数据收集数据收集 DataBinding() ActionExtend() 控件事件() CollectData() OnDataCollect_Extend() OnPreRender() base. 插件式开发技术插件式开发技术 可写的逻辑可写的逻辑 AfterCreateChildControls()创建控件树,创建关联控件创建控件树,创建关联控件 OnLoadData_Extend()非非PostBack状态下创建控件树,加载数据状态下创建控件树,加载数据 AfterOnLoad()创建控件树的最后机会,创建控件树的最后机会, 也可以加载数据,修改控件属性也可以加载数据,修改控件属性 ActionExtend()针对每个事件的操作针对每个事件的操作 BeforeUIModelBinding()修改模型数据最后的机会,不然不会反映修改模型数据最后的机会,不然不会反映 到控件上,修改控件属性到控件上,修改控件属性 AfterUIModelBinding()修改控件属性修改控件属性 插件式开发技术插件式开发技术 可写的逻辑可写的逻辑 Before/AfterInit(IPartPart, EventArgsargs)前:前:初始化前初始化前后:后:创建控件树,创建关联控件创建控件树,创建关联控件 BeforeLoad(IPartPart, EventArgsargs)Form加载前加载前 BeforeDataLoad (IPartPart, out bool executeDefault) /AfterDataLoad(IPart Part) 数据加载前后数据加载前后 AfterLoad(IPartPart, EventArgsargs)Form加载后加载后 BeforeAfterDataCollect(IPart Part, out bool executeDefault) /AfterDataCollect(IPartPart) 数据收集前后的处理数据收集前后的处理 BeforeAfterEventProcess(IPartPart, string eventName, objectsender, EventArgsargs, out bool executeDefault) /AfterEventProcess(IPartPart, stringeventName, object sender, EventArgsargs) 针对每个事件的操作前后的处理针对每个事件的操作前后的处理 BeforeRender(IPartPart, EventArgsargs)修改模型和控件属性修改模型和控件属性 BeforeDataBinding(IPartPart, out bool executeDefault) /AfterDataBinding(IPartPart) 前:前:修改模型修改模型,修改控件属性,修改控件属性 后后:修改控件属性修改控件属性 AfterRender(IPartPart, EventArgsargs)修改控件属性修改控件属性 Part:原Form对象,executeDefault:是否执行系统默认操作,sender:触发控件 插件式开发技术插件式开发技术 客户化插件需求文档 表单逻辑扩展设计文档 VS.NET工程建立 编码实现表单逻辑扩展 扩展点配置文件建立 注册WebPart扩展点 产出部署 配置文件,组件dll 插件式开发技术插件式开发技术 继承的扩展类 添加引用UFSoft.UBF.UI.FormProcess.dll 继承UFSoft.UBF.UI.Custom.ExtendedPartBase 插件dll部署 部署到PortalUILib 扩展点配置文件 文件Portal WebPartExtend.config 配置节: 说明:parentPartFullName :要扩展的原Form全名 extendedPartFullName :插件类全名 extendedPartAssemblyName:插件程序集 注意:一个注意:一个Form只能有一个扩展类,后期对该只能有一个扩展类,后期对该Form的扩展既修改第一次扩展的文件的扩展既修改第一次扩展的文件 实践实践 订货单金额上限控制订货单金额上限控制 控制经手人每张订货单金额上限 如果经手人一张订货单所有订单行,含税金额汇总超过100万,单位本币(不同币种按汇率转换), 那么不允许保存并提示错误信息 订阅订货单AfterValidate事件 汇总所有订货单行含税金额 判断汇总金额是否超过100万,是抛出异常 实践实践 订货单金额上限控制订货单金额上限控制 订阅订货单AfterValidate事件 汇总所有订货单行含税金额 判断汇总金额是否超过100万,是抛出异常 实践实践 消息通知上级领导消息通知上级领导 订货单保存成功后发消息给经手人上级 通过消息中心和邮件的方式将订单保存成功的信息发送给经手人上级 订阅订货单AfterInserted事件 找到经手人上级 取得经手人上级的Email并发送消息 订阅订货单AfterInserted事件 找到经手人上级 取得经手人上级的Email并发送消息 实践实践 消息通知上级领导消息通知上级领导 实践实践 记录订货单到销售订单关联记录订货单到销售订单关联 批量生成销售订单后回写订货单属性记录关联的销售订单信息 在订货单生成销售订单BP后的方法扩展 取得订货单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论