1、安装盘包含一个到多个产品,安装盘的目录结构如下图所示:安装盘下面可以放一个到多个产品,表现形式上为一个目录。目录的名称必须为产品的模块标识名称,如客户化为uap,2. 产品结构 一个产品包含一个到多个模块。产品的目录结构为下图所示:对于一个产品来说,其配置文件(setup.ini)中的内容为code=10 产品编码name=客户化 产品名称version=5.0 产品版本号disk.type=new 是否是全新安装,new为全新安装,patch为补丁安装previous.generation.code=10 自身依赖的前一个版本号required.related.module= 依赖的其他产品
2、3. 模块结构模块下面包含着该模块相关的多个jar包, 运行安装程序,将解压模块下的所有jar包到指定的nchome目录下,形成ncv5的目录结构(如下图所示)。所以在压缩jar包时需要安装该目录结构进行压缩。4. 配置文件说明上文中,每个产品和每个模块的目录下都必须存在一个对于该产品或者模块的描述文件,即setup.ini文件。当进入nc的安装界面后,会看见产品安装树,此树中信息就是从setup.ini中读取的。树的结构是根据产品文档结构构成的,同一节点下的子结点按照setup.ini中的编码属性进行排序。在产品下的setup.ini中只需要配置编码、名称、版本等属性,不需要配置脚本存放目录
3、等信息,而模块下的setup.ini需要配置相关信息,配置文件setup.ini中配置着该模块的属性请参见下表:配置项含义必选使用范围备注code模块编码是安装盘和补丁盘name模块名称desc描述否一般对于补丁盘,应该使用该项来描述其功能module.stamp模块标签该项是描述模块名称的,例如:uap,arap,安装程序通过该名称来加载升级类,如果没有配置,安装盘取其父目录名称,补丁盘取其父父目录名称version版本号disk.type盘类型安装盘取值为new , 补丁盘取值为 patchneed.update.db是否需要升级数据库默认值为false,该标志仅仅是在安装结束时提示用户哪
4、些盘或补丁需要对数据进行升级。特别对那些需要升级数据库的补丁,比较有用。need_deploy_ejb是否需要重新部署ejb表示是否需要重新部署ejbdelete.loginjar是否删除NC_Login_v50.jar客户化的安装盘和补丁盘该配置仅对客户化的安装盘有效previous.generation.code表明该模块以前的编码值安装盘该值的配置可以影响安装盘安装时模块是否是新安装还是升级安装must.selected模块是否必须安装当安装对应产品是,该模块为必选preversion模块自身依赖的以前的版本号表示该模块依赖自己的前一个版本号required.related.module
5、依赖的其他的安装盘该项的配置内容必须是其他的安装盘,表明需要先安装了这些盘才能在安装本盘。格式为code,name,version1, version2,.&code,name,version1,version2,.注意该项配置不能和其他的盘的配置成环。required.related.patch依赖的其他补丁盘该项的配置内容必须是其他的补丁盘。required.sametime.install表示同时安装的补丁补丁盘该项表示必须同时安装的补丁,每个补丁都需要将其他的补丁在此进行描述。product.package模块的代码包名称help.package帮助文件的目录名db.create.sc
6、ript数据库建库脚本包bill.templet.script单据模板脚本的目录名query.templet.script查询模板脚本的目录名report.templet.script报表模板脚本的目录名print.templet.script打印模板脚本的目录名sys.templet.script默认模板脚本的目录名bill.type.script单据类型脚本的目录名busi.type.script业务类型脚本的目录名system.type.script系统类型脚本的目录名subj.class.script科目分类脚本的目录名voucher.templet.script凭证模板脚本的目录名p
7、roject.templet.script项目模板脚本的目录名business.script产品组内脚本的目录名menu.script菜单脚本的目录名ml.script多语言脚本的目录名ddc.initdata数据字典初始化数据目录名hasdynamictempletdata是否有动态模版数据containproductcode包含的产品编码dataupdateclass数据升级程序的类名在升级安装时执行,需实现接口nc.bs. sm.accountmanage.IUpdateAccount, adjust.class新安装时执行的调整类nc.bs.sm.accountmanage.INewI
8、nstallAdjust接口,在安装盘新安装时执行resourceupdateclass安装盘解压代码时执行的升级类nc.newinstall.update.IUpdateResource接口,在解压安装盘时执行dbml.script数据多语脚本目录名另:详细也可参考ConfigKey接口里的说明。 第二章 安装升级方案相关说明1. 安装流程NC产品安装分为以下几个步骤: 运行客户化安装盘的安装程序,把代码及数据库脚本安装到指定目录作为系统运行环境。 以超级管理员的身份进入系统管理界面,创建业务中心(5系帐套的概念),运行数据库安装脚本及初始化数据。 保存客户化版本信息和账套信息。第一步安装代
9、码实质就是代码解压过程,此过程无特殊之处,下文将对创建和升级业务中心,即数据库安装升级进行详细描述,2. 创建升级业务中心在NC6系列,用户需要以超级管理员(root)的身份登陆系统,在系统管理节点可以增加业务中心,安装时会根据所选的语种顺序来更新数据多语。新增(升级)业务中心时,会读取NCScript(update)中脚本,构造产品树,如下所示:蓝色圆点的是新安装盘,而半圆为补丁盘,安装程序会比较setup.ini中version的属性值和数据库中sm_product_version中记录的版本新旧,如果setup.ini中版本较新则该模块可以升级。升级时会按照树结构以及setup.ini中
10、的依赖关系来决定脚本的执行顺序。会先执行在树上靠前的模块脚本,如果该模块对其他模块有依赖,先执行被依赖的模块。在安装盘里,初始化脚本都是insert语句,这样在执行升级操作的时候就会产生唯一键冲突的情况,NC对此种情况有如下几种策略: 将insert语句转化为update语句,对数据进行更新 将insert语句装化为update语句,只对部分字段更新 忽略该语句 抛出违反唯一性约束异常语句使用何种策略由业务人员根据业务需要制定,如果没有指定,默认按照抛异常的策略执行,策略注册到NCHOMEierpinstallsqlTransConf.xml中。sqlTransConf.xml文件中,tabl
11、e标签表示对一个表策略的描述,name属性为表名称,pk为主键字段,operate表示策略,值如下: 若无值使用策略1; 若无值且存在ignorefield标签,则使用策略2,ignorefield中name属性表示不会被更新的字段名; 值为ignore表示使用策略3 值为notranslate表示使用策略4sqlTransConf.xml示例文件如下所示:sqltransconf md_moduleid bd_defquotepk_defquote operate=ignorehr_defdocpk_hr_defdocnotranslate/tables/sqltransconf 3. 代码调整在很多时候,需要在安装升级过程中,只是执行脚本并不能完全解决问题,需要进行一些代码调整,在NC中对以下几种情况做了相应处理: 新装时代码调整:请实现nc.bs.sm.accountmanage.INewInstallAdjust接口,将实现类注册到setup.ini的adjust.class属性值(setup.ini文件说明)。该接口提供void adjust(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1