《BOS架构插件业务开发》由会员分享,可在线阅读,更多相关《BOS架构插件业务开发(40页珍藏版)》请在金锄头文库上搜索。
1、 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 深入应用开发深入应用开发 金蝶软件(中国)有限公司K/3BOS开发部(高玉宏)P2 版权所有 1993-2009 金蝶软件(中国)有限公司概述n本课程关注的问题BOS概念及元数据模型结构BOS业务应用开发插件原理在BOS中的应用n本课程适宜对象本课程主要对象K3内部开发人员基于BOS应用开发的二次开发人员对BOS核心原理有非常高的兴趣经过了BOS设计,插件编码培训P3 版权所有 1993-2009 金蝶软件(中国)有限公司目录nK/3 BOS 简介nK/3 BOS 架构nK/3 BOS 业务应用开发nK/3 BOS 插件原
2、理nQAP4 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 简介nK/3 BOS是什么?nK/3 Business Operation System, K/3 业务操作系统n使用先进、开放、可伸缩的技术体系n面向企业快速成长的业务需求n协同合作伙伴拓展管理业务n通过科学的工具和流程对企业建模进行全程监控n是金蝶BOS产品家族中的一员n专门针对金蝶K/3系列产品n自主研发的新一代技术平台n用以解决K/3系统日益增加的应用复杂度和快速开发与实施之间的矛盾n集成了K/3产品底层的相关服务n让客户在不需要任何编程知识的前提下,快速的定制新系统,功能P5 版权所有 1993-20
3、09 金蝶软件(中国)有限公司K/3 BOS 简介nK/3 BOS用以解决什么问题?n快速开发与实施n快速开发、快速实施、快速应用n为客户提供与K/3集成性、可升级性、高效性、简单易用性的开发工具n客户化开发平滑升级nK/3 BOS的业务模型都存储与数据库中nK/3 升级新版本后, 客户开发也一起平滑升级n业务模型可以直接引出为SQL文件n客户化开发成果发布变的容易和可行P6 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 简介nTo SeeP7 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOSnBOS简介nK/3 BOS 架构nK/3 BOS 业务应
4、用开发nK/3 BOS 插件nQAP8 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 技术架构nK/3 BOS 技术架构P9 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 架构nK/3 BOS 技术框架示意图P10 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 架构nK/3 BOS 业务对象P11 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 架构nK/3 BOS 业务对象属性结构P12 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 架构nK/3 BOS 业务对象的属性存储P
5、13 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOSnK/3 BOS 相关数据表结构描述n其他表结构库表名称描述ICClassType;ICClassTypeEntry业务对业务对象模板信息;象模板信息;业务对业务对象分象分录录模板信息模板信息ICClassTableInfo业务对业务对像字段模板描述表像字段模板描述表ICClassAction;ICClassActionList; ICClassActionParamsAction 的描述表;的描述表;业务对业务对象配置的象配置的Action信息;信息;扩扩展展Action参数参数ICClassLink; ICClass
6、LinkEntry单单据据转换转换流程主表;流程主表;单单据据转换转换流程分流程分录录表表ICClassLinkCommit单单据据转换转换流程流程钩钩稽表稽表ICClassCondition过滤过滤条件条件ICClassProfile用用户设户设置信息的保存置信息的保存ICClassProfileEntry用用户设户设置信息保存的分置信息保存的分录录表表ICClassMutexT_SysFunction 系统功能表;ICClassMutex 网路控制对象表;T_Mutex 功能互斥表ICClassBillAction业务对象操作表ICClassConstsBOS常量表ICClassCtlBO
7、S单据通用控件字段模板表P14 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS nBOS简介nK/3 BOS 架构nK/3 BOS 业务应用开发nK/3 BOS 插件nQAP15 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发nK/3 BOS 业务开发流程P16 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发n典型业务应用开发n单据转换流程n关联关系复制钩稽 关联内码存储强制钩稽关联内码存储关联复制关联内码来源关联内码存储P17 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业
8、务应用开发n单据转换流程n元数据模型n注:n目标单据为工业单据, 采用老单选单模板n目标单据为BOS单据,采用BOS选单模板n选单条件:ICClassLink. FCodition字段?选单模板选单模板数据表数据表描述描述工业单据工业单据ICClassLinkICClassLink记录选单关联关系ICSelBillsICSelBills记录选单关联明细ICTableRelationICTableRelation记录选单表关系ICWriteBackTemplateICWriteBackTemplate记录选单反写字段信息BOSBOS单据单据ICClassLinkICClassLink记录选单关联
9、关系ICCLassLinkEntryICCLassLinkEntry记录选单关联明细ICClassLinkCommitICClassLinkCommit记录选单反写字段信息P18 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发n单据转换流程n流程设计P19 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发n单据转换流程n跨级反写流程不要启用源单内码类字段要传递至目标单据n跨级携带选单值更新Action定义源单内码类字段要传递至目标单据n支持源单计算列携带ICClassLinkEntry. FAfterFormulan注意:跨
10、级反写、跨级携带至少需要2套以上的源单内码类字段关于计算列: FAfterFormula = “CalculateFQty3+FQty4”,可手工修改,但必须满足字段来源于选单RecordSetP20 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发n单据转换流程n一些重要字段说明nFConnectFlg vs FChildrennFUsePage vs FDefaultPagenFRemark 选单标识nFDefineType(ICClassActionList)选单值更新事件n选单插件事件nAfterSelBill 事件nAfterSelBillBefor
11、eFillData 事件nBeforeSelBills 事件nBeforeSelBillShowFilter 事件nAfterSelBillBeforeDoAction事件nAfterSelBillAfterDoAction事件P21 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发n单据转换流程n温馨提示:当BOS单据与工业单据关联目标单单据体上的物料、计量单位、 数量、基本计量单位数量必须有对应的源单字段,否则关联时可能会出现错误。控制字段、扣减字段、关闭字段必须位于同一单据体、头上。关联内码来源:关联复制关系时有效,指源单内码的来源。单据头?单据体?关联
12、内码存储:关联关系非复制时有效,BOS中同一分录支持多种关联关系,在选单流程中需指定其中一组关联内码存储。钩稽、强制钩稽关系中,主控只有一个。P22 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发n多级审核流程审核人:用户字段审核日期:日期/长日期字段【锁定】n凭证业务凭证字号凭证取数来源凭证模板设置凭证操作设置生成凭证(按单、汇总)P23 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发nBOS核心组件介绍组件名工程路径说明客户端组件K3CLASSTPL.DLL$CodeK3BosK3DesignerClientK3CLa
13、ssTpl客户端核心组件。所有的单据模版均来源于此组件。Action的具体执行也在此组件。K3SingleClassBill.dll$CodeK3BosK3DesignerClientK3SingleClassBill单据、序时簿具体展现的组件。负责加载单据、序时簿控件并显示。K3ClassDEFINENew.exe$CodeK3BosK3DesignerClientK3ClassDEFINEBOS IDEK3ClassEvents.dll$CodeK3BosK3DesignerClientK3ClassEventsBOS 插件代理组件。如果要修改、增加插件函数,需要修改此组件。K3Class
14、BillCtl.ocx$CodeK3BosK3DesignerClientK3ClassBillCtl单据控件。BOS 单据运行时展现。K3ClassList.ocx$CodeK3BosK3DesignerClientK3Classlist序时簿控件。BOS 序时簿运行时展现。K3BaseClassLst.ocx$CodeK3BosK3DesignerClientK3BaseClassLst基础资料序时簿控件。BOS 基础资料序时簿运行时展现。K3FILTER.OCX$CodeK3BosK3DesignerClientK3Filter过滤界面控件。BOS 过滤界面运行时展现。K3ClassAc
15、tion.dll$CodeK3BosK3DesignerClientK3ClassActionAction定义组件。提供单据Action可视化定义界面。如果要增加BOS内置Action,需要修改此组件K3BOSActive.dll$CodeK3BosK3DesignerClientK3BOSACTIVEBOS 和主控台交互调用组件。中间层组件K3MClass.dll$CodeK3BosK3DesignerServerK3MClass核心组件。BOS中间层业务处理。P24 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 业务应用开发nBOS应用开发调试工程组(限研发内部)目
16、的所必须工程调试单调试单据、序据、序时时簿、基簿、基础资础资料序料序时时簿(控件)簿(控件)中的具体中的具体执执行行K3ClassDEFINE、K3CLassTpl、K3SingleClassBill、K3ClassLookUp、K3ClassBillCtl(K3Classlist、K3BaseClassLst)由由BOS IDE进进入入调试单调试单据插件据插件K3ClassDEFINE、K3CLassTpl、K3SingleClassBill、K3ClassBillCtl、插件、插件由主控台由主控台进进入入调试单调试单据插件据插件KDMain、K3CLassTpl、K3SingleClass
17、Bill、插件、插件P25 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOSnK/3 BOS 简介nK/3 BOS 架构nK/3 BOS 业务应用开发nK/3 BOS 插件nQAP26 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 插件n为什么要使用插件?n随需应变的个性化需求n保持K/3BOS架构的开放性,扩展性n完成K/3BOS标准功能无法实现的需求n插件的分类nCOMn.NETn插件的实现n通过K3ClassEvents对象代理实现P27 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 插件n插件原理P28 版权所有 19
18、93-2009 金蝶软件(中国)有限公司K/3 BOS 插件n重点掌握n一套模型n二个关键数据包n三个接口对象n四个辅助对象n五项注意事项P29 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n一套模型(BOS插件对象模型)nn接口对象接口对象接口对象接口对象nnBillEventBillEvent单据插件代理单据插件代理nnListEventsListEvents序时簿插件代序时簿插件代理理nnBaseClassEventBaseClassEvent 基础资料基础资料序时簿插件代理序时簿插件代理nn辅助对象辅助对象辅助对象辅助对象nnK3LibNetUserAccou
19、ntK3LibNetUserAccount与金蝶与金蝶K/3 K/3 交互交互 nnMenuBarBOSBandsBOSBandMenuBarBOSBandsBOSBandBOSToolsBOSToolBOSToolsBOSTool新增、新增、修改菜单和工具栏修改菜单和工具栏 nnBillHeadsBillHeadBillEBillHeadsBillHeadBillEntrysBillEntryBOSFieldsntrysBillEntryBOSFieldsBOSFieldBOSField单据、单据头、单单据、单据头、单据体、单据字段操作据体、单据字段操作BOSK3LibBillEventLi
20、stEventsNetUserAccountMenuBarBillHeadsBillEntrysBillHeadBillEntryBOSBandsBOSToolsBOSFieldsBOSFieldBaseClassEventBOSBandBOSToolP30 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n两个关键的数据包ndctdctTableInfoTableInfoP31 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件ndctDatadctData“Page1”“Page2”“Page”“Pagei”dctFld1dctFlddctFldn
21、Enu_EntryType_SingleRow“Row1”dctFld1dctFlddctFldn“Row”“Rown”Enu_EntryType_MutiRowFDSPFFNDFOLDFMODIFYFFLDsKeysKeyP32 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n三个接口对象nBillEvent单据插件代理nListEvents序时簿插件代理nBaseClassEvent 基础资料序时簿插件代理P33 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n四个辅助对象nK3Lib对象nACountnNetnUsernMenuBar对象n
22、BOSBandsnBOSToolsnBillHeads对象nBOSFieldsnBillEntrys对象nBOSFieldsP34 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n典型应用n获取账套ID m_BillInterface.K3Lib.Account.AccountIDn获取系统多语言信息 strLanguage = m_BillInterface.K3Lib.GetK3Languagen设置单据体最大行数 m_BillInterface.BillEntrys(1).MaxRows = 1000n读取字段值可以采用两种方式 m_billinterface.d
23、ata(“page1”)(m_billinterface.tableinfo(“map”)(“FCheckDate”)(“FFLD”) m_billinterface.bosheads(1).bosfields(“FCheckDate”).valuen动态改变字段名称 m_BillInterface.BillHeads(1).BOSFields(FInteger4).Caption = aP35 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n五项注意事项n1、获取设置字段属性 除了获取、设置字段的值外,还需要设置这个字段的其他属性,建议采用 BOSField 对象的V
24、alue、Caption、Text等属性。n2、Fire开头的函数 K/3 BOS 插件代理组件中包含有多个Fire开始的函数,如FireChange、FireSaveBillSuccess等。这些函数都是提供代理组件和K/3 BOS交互使用的,对于插件并没有任何作用,请注意不要使用。n3、数据访问规则 在插件中访问数据库、更新数据库,请使用插件对象的K3Lib属性的GetData方法和UpdateData方法。使用这2个方法,可以避免直接由客户端访问账套,充分利用3层构架。 P36 版权所有 1993-2009 金蝶软件(中国)有限公司K/3BOS插件n4、访问其他组件规则 在插件中如果需要
25、创建其他的K/3组件对象,请使用插件对象的K3Lib属性的CreateK3Object方法。使用这个方法,可以避免调试时出现的不在统一进程出错问题。 n5、多语言处理规则 在插件中进行多语言处理,请使用插件对象的K3Lib属性的LoadKDString方法。不过需要注意的是,这个函数默认使用的是金蝶K/3-BOS的语言资源,如果需要使用其他资源包,需要通过ResourceFile参数指定。 P37 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOS 插件n主要事件顺序P38 版权所有 1993-2009 金蝶软件(中国)有限公司K/3 BOSnK/3 BOS 相关技术资料BOS开发者网络http:/ 培训资料$/开发部/05BOS开发部/02BOS开发组/2知识共享/2知识共享(K3SerK3WorkShop)BOS不加密版 192.168.16.159k3 BOS IDE谢 谢! !