您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 初学者-k3cloud插件开发基础
插件开发基础1、插件开发环境开发环境配置要求K/3CloudBOS是运行在windows平台上的,开发工具也是基于windows平台的Visualstudio。根据我们经验给出最低配置建议如下:服务器运行环境:客户端环境:本文在过去,由于追求大规模集约生产技术、标准化的理念和操作的高效率,使得很多应用产品都趋于标准化。随着信息技术快速发展,越来越多的企业把对人的关注、人的个性释放及人的团队服务器配置基准值团队数据库服务器CPU4核,2.0GHz以上内存SQLServer:8GBOracle:16GB客户端CPU双核,2.0GHz以上内存推荐:4GB个人客户端+数据库CPU双核,2.0GHz以上内存(SQLServer)4GB以上内存(oracle)8GB以上服务器组件版本操作系统数据库服务器MicrosoftSQLServer(标准版、企业版)2008R2以上WindowsServer2008以上Oracle11g以上Linuxx86-64AIXWEB服务器IIS6.0以上WindowsServer2008以上Microsoft.NETFramework4.0浏览器支持版本支持架构浏览器插件InternetExplorer8.09.032位(x86)64位(x64)Silverlight5Firefox12及以上32位(Windows)Silverlight5个性需求的满足推到空前中心的地位,企业与市场逐步建立一种新型关系,建立消费者个人数据库和信息档案,与消费者建立更为个人化的联系,及时地了解市场动向和顾客需求,向顾客提供一种个人化的销售和服务,顾客根据自己需求提出商品性能要求,企业尽可能按顾客要求进行生产,迎合消费者个别需求和品味,并应用信息,采用灵活战略适时地加以调整,以生产者与消费者之间的协调合作来提高竞争力,以多品种、中小批量混合生产取代过去的大批量生产。这有利于节省中间环节,降低销售成本。K/3CloudBOS平台提供动态扩展功能,通过动态领域模型建模将业务成各种标准接口和标准服务,通过插件开发完成标准业务扩展,快速高效实现个性化和非标准化业务。K/3CloudBOS平台的插件是一种专门为某一软件设计、用于功能扩充的程序。通过它可以:实现更灵活的控制方式和客户化定制;实现标准产品中特殊的业务流程处理;进行个性化的菜单、外观定制;增加自定义的菜单并响应其操作;对已有操作和服务未支持的功能进行扩展;快速开发、快速实施、快速应用;可配置,可测试,快速部署。介绍插件开发前再回顾一下BOS架构模型:(图10–1架构模型)动态表单模型封装了表单标准服务、操作和扩展服务,通过引擎和标准插件调用来组装业务。标准插件可被业务插件继承和替代,实现客户个性化需求。根据应用,BOS平台提供了4类插件:1.动态表单插件业务逻辑封装的插件,用于单据上业务各种事件、操作和服务的介入;提供了一系列事件、操作和服务接口;此类插件最常用。2.服务插件基于动态表单服务端的插件,提供服务编程接口;此类接口在外部服务直接调用。3.校验规则插件针对业务规则进行校验的插件;4.表单构建插件对界面加载控件和元数据的插件;通过此插件可对界面控件及元数据动态调整实现特殊需求。开发工具•Visualstudio2012•IE插件Silverlight5•SQLServer2008R2或Oracle11GR2•跟踪工具(HttpWatchPro6.0)•插件Building路径(K3Cloud\K3CloudServer\Bin\)注意事项:使用SQLServer2008排序规则为Chinese_PRC_CI_AS使用Oracle时,数据库字符集必须是:AL32UTF8,国家字符集必须是:AL16UTF16开环境搭建公共环境:1.配置一台数据库服务器,安装SQLServer2008R2;2.配置一台web服务器,安装K/3Cloud产品,配置为管理中心站点;个人环境:1.根据环境配置要求,安装visualstudio,安装K/3Cloud产品(不需要配置管理中心)。2.检查并更改管理中心地址,打开K/3Cloud产品安装目录K3Cloud\K3CloudServer\App_Data下Common.config文件,查找managementSiteUrl,把地址更改为公共环境下建立的管理中心ip。addkey=managementSiteUrlvalue=开发插件的步骤插件开发的步骤1.定义插件类打开Visualstudio2012,新建工程:MyDev.K3.SCM.Stock.Business.PlugIn;添加引用组件:Kingdee.BOSKingdee.BOS.Core新建类:ReceiptEdit,继承自Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn2.分析业务定义重载方法;这里,我们先简单实现一个HelloWorld:点击菜单HelloWorld,弹出一个HelloWorld对话框。点击菜单要重载BarItemClick方法;3.引用相关组件(参照组件引用规则);增加using:C#usingKingdee.BOS.Core.Bill.PlugIn;usingKingdee.BOS.Core.DynamicForm;usingKingdee.BOS.Core.DynamicForm.PlugIn.Args;4.重载方法编码;重载BarItemClick方法,输入以下代码:C#publicoverridevoidBarItemClick(BarItemClickEventArgse){base.BarItemClick(e);if(e.BarItemKey==HelloWorld){this.View.ShowMessage(Helloworld!,MessageBoxType.Notice);}}保存;5.设置编译路径,编译组件;编译路径:K3Cloud\K3CloudServer\Bin;6.打开IDE设计器,配置插件;先找到单据属性窗口,编辑“采购收料单-_Bill”单据属性:在插件列表界面,点击注册插件:(注意该列表中可能已注册有其他插件,这些插件在运行时会动态加载,删除插件可能会导致业务数据错误)选择插件界面点击浏览:选择编译好的组件:勾选插件,确定返回确定并保存单据。7.运行测试;2、动态表单插件2.动态表单插件动态表单插件提供了丰富的接口,通过这些接口可以在插件中对表单编辑和列表界面样式、操作进行控制,也可以对显示数据进行各种处理。再来回顾一下动态表单元数据结构和继承关系:动态表单模型包含表单外观和表单业务逻辑,表单外观管理界面控件外观及样式,在模型中由视图(View)来控制,表单业务逻辑管理包括服务、校验器、操作和业务规则等,由模型(Model)来控制。动态表单外观和逻辑都是在IDE中设置的,设置的数据保存在动态表单模型元数据中,具体由布局元数据(LayoutInfo)记录表单外观数据,由业务元数据(BusinessInfo)记录表单逻辑数据,这2个类分别由View和Model持有。(图10–2动态表单元模型)为了方便使用和提高开发效率,我们将动态表单模型分解为各种表单领域模型,同时为各种模型提供了相应插件:(图10–3领域模型-动态表单模型关系)动态表单插件分为5大类:1.单据插件2.列表插件3.过滤条件插件4.账表插件5.动态表单插件继承关系如下:(图10–4插件继承关系)动态表单视图动态表单视图前面已经介绍,外观是由视图来管理,我们先看看动态表单视图模型。根据BOS架构图可以看到,客户端首先向服务发起HTTP请求,服务端由控制器服务接受请求并转送到动态表单模型控制器,再有动态表单控制器访问动态表单视图。动态表单视图加载外观模型,并从动态表单模型获取数据模型。动态表单视图提供2个视图接口,IDynamicFormView和IDynamicFormViewService。IDynamicFormView是视图接口,包含领域模型元数据、多视图模型接口、操作转发指令和通用属性方法。该接口可由插件直接访问。IDynamicFormViewService是动态表单内部使用的接口定义,包含Controller消息路由方法,插件开发不需关注。IDynamicFromView有2个重要属性,BusinessInfo和LayoutInfo,分别表示业务对象逻辑元数据和布局元数据。包含在IDE中设置的表单的所有信息。在运行时,客户端发出访问表单请求后,首先读取元数据初始化BusinessInfo和LayoutInfo,View和Model根据元数据定义的界面数据和布局信息展示出表单。IDynamicFromView接口提供了访问BusinessInfo和LayoutInfo的一些方法,供插件调用以实现业务,例如:访问菜单,修改控件样式,设置标题,更新界面等。IDynamicFromView接口同时提供操作控制和调用Model的方法,如:调用表单服务,执行操作,发送客户端指令,刷新界面,打开表单,动态注册插件等。本章节通过一些示例做详细介绍。先看看界面元素的访问。在实际业务中,经常需要对单据扩展,增加功能,那么就需要访问菜单、字段显示隐藏锁定等。动态表单模型动态表单模型动态表单模型接口:IDynamicFormModel和IDynamicFormModelService。设计思想同动态表单视图一样,将逻辑和插件模型分开。IDynamicFormModel是模型接口,包含领域模型元数据、数据操作方法。该接口可由插件直接访问。IDynamicFormModelService是动态表单内部使用的接口定义,插件开发不需关注。IDynamicFormModel也有BusinessInfo,和IDynamicFromView一样,表示业务对象逻辑元数据。这里BusinessInfo的意义是根据元数据定义绑定数据。另外一个重要属性DataObject是当前表单的数据对象。该数据是个DynamicObject,包含单据头和单据体数据,其中单据体是集合对象DynamicObjectCollection,并且可以有多个.K/3CloudBOS动态实体类型,默认使用DynamicObject作为数据承载类,可以通过DynamicObjectType.ClrType属性指定自定义类。但我们要求指定的类型必须派生自DynamicObject。IDynamicFormModel提供的主要是针对数据进行操作的系列方法,包括:初始化、新增表单数据、复制数据、删除数据、定位当前分录数据行、设置值等方法。动态表单插件动态表单模型是通过插件代理实现业务逻辑,对外部的接口主要是插件,这些接口可以提供给二次开发使用。命名空间命名空间Kingdee.BOS.Core.DynamicForm.PlugIn主要类及说明:ClassDescriptionAbstractDynamicFormDataBinder动态表单数据绑定器抽象类AbstractDynamicFormPlugIn动态表单插件抽象基类AbstractDynamicWebFormBuilderPlugIn动态表单页面元数据构建插件AbstractOperationServicePlugIn操作服务插件抽象类主要接口:InterfaceDescriptionIDynamicFormModelPlugIn动态表单Model层插件控制接口;实现本接口的插件,可以接收Model层的事件IDynamicFormViewPlugIn动态表单View层插件接口;实现本接口的插件可以接收动态表单View层事件继承体系继承体系动态表单插件分4类,单据、基础资料、动态表单和列表。业类(插继承自抽象类务模型件、服务)表单插件单据插件Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn基础资料插件Kin
本文标题:初学者-k3cloud插件开发基础
链接地址:https://www.777doc.com/doc-5154339 .html