您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > NC水平产品二次扩展开发指导文档
扩展开发实现○、开发模型整体介绍开发模型NC产业生态链上图中,产业链的核心是产品,产品的核心是平台,以及基于产品衍生的各种服务。水平产品依赖UAP平台;行业产品依赖水平产品;而定制产品或方案通常是基于行业产品对特定企业进行个性化的定制开发。NC产业生态链的包括各级产品研发机构、各种类型的合作伙伴、总部职能部门以及各客户经营机构(包括分公司)。分层开发用户化定制经常出现于增强或修改商业逻辑。分层结构隔离了系统中各层开发所作的修改。升级能较容易地进行,与已修改对象的潜在冲突能被识别并能被有效解决,因此,分层的研发体系能够有效减少客户拥有的总成本。而且产品升级后,用户、伙伴等开发的功能仍可以使用。产品层包含与技术伙伴的集成。最高层是User层,最低层是BusinessDomain层,上层的应用将覆盖下层。每一层有对应的补丁层,补丁层处理补丁、小的更新、服务集合(SP),以及一些处理紧急问题的修正文件,逻辑上说,补丁层直接在对应的开发层之上。具体每个项目/产品的层次可以是上面的层次的子集。BusinessdomainIndustryLocalBusinessPartnerISVCustomerUser(Site)领域级:NC标准领域产品,只能领域产品开发部定义行业级:NC行业产品,行业产品开发部定义本地化级:支持本地化开发,与国家/地区相关的应用的开发,通常由UfidaNC的本地化开发团队完成(例如,香港分公司的NC本地化开发)伙伴级:签署了合作关系的业务伙伴,可以开发水平或垂直功能,可嵌入NC产品中。受License保护(例如,香港地区业务伙伴提供的香港审计软件;中国地区的致远OA、用友审计也可看成是这一层)ISV级:没有业务限制,可任意开发业务功能,通常与NC是连接或集成关系(例如,针对具体项目的外包开发伙伴,ISV也可以定制伙伴级的产品)客户级:支持客户内部开发,客户或客户的伙伴进行全企业级的特定应用的修改用户级:在一个安装Site内所作的修改投影补丁补丁补丁补丁补丁补丁补丁处于以上7层之下的是基础设施层,本层是软件产品的基础层。这一层不包括商业逻辑内容,只提供产品研发的技术支撑。包括中间件、基础技术类库、流程引擎、元数据服务、多客户端开发框架等基础技术支撑。还提供了模型设计器、报表设计器、代码自动生成、代码检查工具、测试工具等开发、构造工具等辅助工具协助将进行软件研发以提高研发效率和质量保证。UAP技术层为产品研发提供了扩展机制,产品应用研发可以在UAP技术平台的基础上建立符合其应用特点的应用产品。这一层是NC研发的公共基础,是保证产业链正常运转的基础。其中预置了为支持不同产品、领域、行业产品的相应的研发规则,并提供了平台和规则的扩展机制以满足不同层次的扩展需要。领域产品级:各领域模块、组件的资产,如FI、SCM、MM、HR等行业产品级:如建筑与房地产行业、制造业、流通服务业、金融业等本地化级:不同本地化产品的资产,如中国、欧洲、日本、香港、东南亚等业务伙伴级(认证):志远OA、英孚思为等ISV级(非认证):独立的软件开发商(客户化开发)客户级:通常指集团总部的统一定制的资产用户级:一个NC安装内的定制资产,通常在客户级要求下进行本子集团的扩展等以上七个层次构成了研发产业链,每一层可以使用低层次提供的服务,如果有特殊需要可以在本层丰富,并且可以提供给上一层使用。产业链将研发进行了分层,为了能够达到各层开发可以融合的目的,通过预制规则和支持产业链目录结构实现。研发规则为实现产业链各层工作产品能够协同工作,以及区域研发中心和总部研发中心能够协同开发,避免冲突和不兼容问题,必须制定统一的研发规则。无论从UAP技术平台到用户开发,总部研发到区域研发中心,必须遵守统一的研发规则。UAP技术平台中已经预制了全产品必须遵守的领域产品规则、行业产品规则,并且各个层次的平台上还制定了相应的扩展和补充规则,共同构成了研发的规则体系。向后兼容性为了能够支持产业链开发成果,要求在一个大的版本中,各层必须保证提供的扩展能力向后兼容。保证在其上开发的成果不会因为本层的升级受影响而无法正常使用。产品组装规划产品中组件通过应用组装形成相应的功能,能够独立增加模块、菜单和按钮。UI通过组装形成,通过个性化框架支持个性化。组件依赖规则产品研发按照业务组件组织,各业务组件之间只依赖于服务,不允许依赖其他组件的实现,保证组件的松散耦合,支持可替换性。各层定制融合规则各层定制内容支持上层优先于下层的原则进行融合,保证高层次的开发内容优先于低层次的开发内容,支持分层开发、管理。产品模块编码规则产品模块编码规则1、由26个大写字母+10个数字组成2、编码规则为2-2,二级模块之上必须有一级模块3、任何新增一级模块需要NC研发管理部授权4、行业模块编码前两位为H0--HZ或Y0--YZ5、对每一段编码的H0--HZ或Y0--YZ部分表示为二次开发/行业专用,标准产品不能占用产品菜单节点号编码规则产品菜单节点号编码规则1、由26个大写字母+10个数字组成2、编码规则为2-2-2-2-23、节点最长编码为10位4、节点号必须根据规则组成结构树5、行业产品的节点编码前两位为H0--HZ或Y0--YZ6、对每一段编码的H0--HZ或Y0--YZ部分表示为二次开发/行业专用,标准产品不能占用产品功能号编码规则产品功能号编码规则1、由26个大写字母+10个数字组成2、编码规则为4-1-5,前四位由产品功能规划时该功能的所属模块编码决定3、功能号最长编码为10位,子功能号总长40位.4、功能号第5位为标志位;0表示日常业务处理,1表示统计分析5、功能编码后5位为无意义编码,但以H和Y开头为行业特性使用,以Z开头为二次开发使用6、每个功能都必须归属一个二级模块,通过功能和二级模块的关系表确定7、每个功能下允许带子功能,子功能编码规则为功能编码+30位字符,总长不超过408、功能号在NC产品生命周期中保持唯一且不变,功能调用传递必须携带功能号多语言资源规则NC多语言资源文件规则如下所示:NC多语言资源文件规则1、只有一个公共资源文件,这个资源文件是公共的。2、按每个具体功能的功能点号组织资源文件3、定制的新资源必须用新资源文件4、每个模块的资源文件互不调用,是私有的。5、查找路线:客户-二次开发-行业-NCC+公共6、资源id规则:最长15位,分类(1位)+功能点+编码在一个Res的分类(功能点)下,包含多个NCC的资源文件;同时根据需要可建立几类资源文件:行业资源文件。支持两级行业。不同的行业可以有自己的行业多语资源文件。行业编号包括“一级行业编号”和“二级行业编号”。一级行业资源文件命名规范:Industry+“_”+“HY”+一级行业编号+”.Res”。二级行业资源文件命名规范:Industry+“_”+“HY”+二级行业编号+”.Res”。例如:假定一级行业“建筑与房地产”的编号为”6”,二级行业“建筑”的编号为”61”,则一级行业在本功能点下的资源文件的命名为:Industry_HY6.Res,二级行业在本功能点下的资源文件的命名为:Industry_HY61.Res。如果找不到”Industry_HY61.Res”,就认为该二级行业在行业维度没有进行多语资源定制。如果找不到”Industry_HY6.Res”,就认为该一级行业在行业维度没有进行多语资源定制。二次开发伙伴的资源文件。支持二次开发伙伴按行业进行多语资源的定制。资源文件命名规范:Partner+“_”+“HY”+行业编号+”.Res”。如果Partner资源文件没有“HY”+行业编号+”.Res”这样的信息,则认为该资源文件是针对NCC层的多语定制。客户定制的资源文件。资源文件命名规范:Customer+“_”+“HY”+行业编号+”.Res”。如果Customer资源文件没有“HY”+行业编号+”.Res”这样的信息,则认为该资源文件是针对NCC的资源ID的多语定制。说明:1)所有文件中的资源ID是一样的。搜索时,先判断是否有行业信息,有行业信息时按照搜索次序从“_HY”+“行业编号”结尾的资源文件查找资源,如果没有找到“_HY”+“行业编号”的文件,再搜索非行业的多语资源。2)客户层、二次开发层和行业层均可能包括行业扩展。每个层次的搜索次序都遵循:先加载二级行业资源,再加载一级行业资源。3)各个层次的资源开发者,需要检查及维护本层及上层(自上而下:NCC行业二次开发客户)的一致性。4)行业信息可以从Context中获取。预制数据规则NC开发预置数据PK规则1、NC系统中PK由20位字符组成,如0001N5100000000000012、头四位为集团编码,第5第6为为系统配置时设定的系统区别码3、运行态的系统区别码由实施进行配置,为(0~9,A~W)(0~9,A~Z)4、平台和领域开发态的系统区别码为(Z)(0~9,A~Z),按部门分开,具体见下面的分配表5、行业产品的系统区别码为(Y)(0~9,A~Z)6、客开使用的系统区别码为XX7、系统区别码只用于新产生的PK,对于已经存在的主键不做修改要求元数据建模规则元数据建模规则:1、元数据区分了水平、行业、本地化、伙伴、客户等层次2、开发者需要根据对应的研发层次进行建模或定制3、使用时元数据服务自动提供叠加的元数据4、产生的代码遵循分层的代码规则程序编码规则程序编码规则:1、遵循编码规则,如:包名/名空间命名规范2、遵循产品目录规划,并自动获得类按优先级加载支持3、多语资源与配置文件,遵循分层与分离的规划要求产业链目录结构为了支持分层开发,避免各研发层次的资源冲突,NC将不同研发层次的研发资产存放在不同的目录下,并且提供了自动按照优先级进行加载的支持,实现不同研发层次按照分层开发规则加载达到投影叠加的效果。LibClientLibExtensionlangLibNc-modules如APARClassesMeta-INF[Private]ExtensionClassesHYExtHYExtLibExtensionclassesHYExtlibclasseslibclasseslibclasseslibclasseslibclasseslibclasses图0-1产品目录结构Lib:领域产品的开发内容存放在lib目录下,如果存在补丁,则存放在相应的Classes目录下;hyExt:行业开发及本地化的内容放在hyExt目录下,hyExt包括标准目录结构:Lib;Classes;Client。Classes下放置行业对领域的补丁;本地化开发的内容如果是对行业或领域的补丁,也放置在Classes下,如果存在对应的class,则直接覆盖,形成本地化版本的产品。extension:关于开发伙伴/客户的扩展放在extension目录下,hyExt包括标准目录结构:Lib;Classes;Client。开发伙伴对领域\行业\本地化的补丁直接放在Classes下;如果客户也有补丁,则也放在Classes下,直接进行覆盖。加载按照extension-hyExt-lib顺序加载,上层的资源优先使用实现各层次提交的资源共存互不覆盖,并融合使用的目的。可以实现下一层的升级不会影响其上开发成果的目的。开发过程NC采用模型驱动开发模式。其开发过程如下图所示。开发工作的起点是模型分析与设计,在NC集成开发环境中提供了模型设计器可以进行实体建模、操作和服务建模。模型设计器还可以根据发布的实体和操作模型生成代码和代码框架。根据生成的代码/代码框架编写业务逻辑实现相应的实体组件和服务/操作组件。通过模型DSL文件可以生成对应的数据库设计文件(PDM),通过数据库设计工具进行数据库设计形成数据库组件,并发布形成数据库建库脚本。同时,通过发布的模型信息可以进行流程设计,在流程中添加流程处理的业务逻辑形成流程组件;根据发布的模型信息可以进行表单设计、并且使用UI设计器完成页面设计并组装成UI组件。根据发布的模型可以进行报表模型设计,构建报表语义模型,再根据语
本文标题:NC水平产品二次扩展开发指导文档
链接地址:https://www.777doc.com/doc-2889495 .html