NCV5安装盘配置与升级技术红皮书.docx
《NCV5安装盘配置与升级技术红皮书.docx》由会员分享,可在线阅读,更多相关《NCV5安装盘配置与升级技术红皮书.docx(13页珍藏版)》请在冰点文库上搜索。
NCV5安装盘配置与升级技术红皮书
安装盘配置与升级
技术红皮书
NC-UAP5.0
用友NC-UAP
2018-09-21
目录
第一章安装盘结构及配置文件说明1
1.安装盘结构1
2.产品结构1
3.模块结构2
第二章安装升级方案相关说明5
1.新建账套5
2.升级账套5
3.NC业务产品的安装升级6
4.新建公司账7
5.安装改进:
8
第一章安装盘结构及配置文件说明
1.安装盘结构
安装盘包含一个到多个产品,安装盘的目录结构如下图所示:
安装盘下面可以放一个到多个产品,表现形式上为一个目录。
目录的名称必须为产品的模块标识名称,如客户化为uap,
2.产品结构
一个产品包含一个到多个模块。
产品的目录结构为下图所示:
对于一个产品来说,其配置文件(setup.ini)中的内容为
code=10产品编码
name=客户化产品名称
version=5.0产品版本号
disk.type=new是否是全新安装,new为全新安装,patch为补丁安装
previous.generation.code=10自身依赖的前一个版本号
required.related.module=依赖的其他产品
3.模块结构
模块下面包含着该模块相关的多个jar包,
运行安装程序,将解压模块下的所有jar包到指定的nchome目录下,形成ncv5的目录结构(如下图所示)。
所以在压缩jar包时需要安装该目录结构进行压缩。
配置文件setup.ini中配置着该模块的相关信息。
"code"*该模块的编码
"name"*该模块的名称
"version"*该模块的版本号
"disk.type"
*该模块安装盘的类型,
*new表示全新的安装盘
*patch表示为补丁盘
"previous.generation.code"*依赖的前一个产品编码,目前主要用于客户化
"must.selected"
*表示该模块是否必须被选中
*取值为true/false或y/n
*默认为false或n
"preversion"*该模块自身依赖的版本号
"required.related.module"*依赖其它的模块
*表示为[code,name,version1,version2,...]&[code,name,version1,version2,...]
"product.package"*代码和文件包
"help.package";
*帮助压缩文件的文件名或目录名
"db.create.script";
*数据库建库脚本包
"dataupdateclass";
/**数据升级程序的类名。
如果需要注册多个升级调整程序,可以在
dataupdateclass后面附加序数来指定,例如
dataupdateclass01=classname1
dataupdateclass02=classname2
dataupdateclass03=classname3
"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";
/**凭证模板脚本压缩文件的文件名或目录名*/
"project.templet.script";
/**项目模板脚本压缩文件的文件名或目录名*/
"business.script";
/**产品组内脚本压缩文件的文件名或目录名*/
"menu.script";
/**菜单脚本压缩文件的文件名或目录名*/
"ml.script";
/**多语言脚本*/
"ddc.initdata";
/**数据字典初始化数据*/
"hasdynamictempletdata";
/**是否有动态摸板数据*/
"need_deploy_ejb";
/**是否需要重新部署ejb*/
"containproductcode";
/**包含的产品编码*/
“resourceupdateclass”
/**产品代码复制时的代码调整注册类*/
详细也可参考ConfigKey接口里的说明。
第二章安装升级方案相关说明
1.新建账套
步骤:
1.运行客户化安装盘的安装程序,把代码安装到指定目录作为系统运行环境。
2.进入新建帐套界面录入帐套信息再新建账套。
3.判定是否可以安装。
4.利用./ncscript/目录下的建库脚本来建库表。
5.利用./ncscript/init_data/目录下指定安装语种的初始化数据脚本安装库表数据。
6.利用./ierp/bin/InitAccount.dat配置文件中注册的初始化数据接口nc.bs.pub.IInitData的initAccountData方法依次初始化数据。
7.保存客户化版本信息和账套信息。
接口描述:
nc.bs.pub.IInitData:
initAccountData(StringdataSourceName)表示建帐时初始化数据,在新建账套时使用;
initCorpData(StringpkCorp)表示初始化公司数据,在新建账套时没有作用,在建公司账时会使用该接口方法。
接口注册在./ierp/bin/InitAccount.dat文件中,目前只有nc.bs.sm.cmenu.CustomMenuBO;格式如下:
total=1
1=nc.bs.sm.cmenu.CustomMenuBO,"插入图片"
备注:
对于需要进行分语种安装的数据脚本,在制作安装盘时就需要将这些脚本分语种目录放置,在新建账套或账套升级时,会根据账套的默认语种选择安装。
2.升级账套
步骤:
1.运行客户化安装盘的安装程序,把代码安装到系统运行环境目录下,便完成客户化的代码升级。
2.进入帐套管理界面升级账套。
3.对数据库物理布局进行校验,判定是否可以升级。
4.处理3.1以前版本的帐套默认语种问题,将其语种名称改为语种编码。
5.利用./au/accountupdate.ini文件中注册的升级接口nc.bs.sm.config.IUpdateAccount的方法doBeforeUpdateDB依次在数据库表结构升级前执行某些处理。
6.利用./ncscript/目录下的建库脚本来升级库表。
7.利用./au/accountupdate.ini文件中注册的升级接口nc.bs.sm.config.IUpdateAccount的方法doBeforeUpdateData依次在数据库初始化数据升级前执行某些处理。
8.进行数据字典的升级。
9.删除客户化模板中的数据和更新实时凭证数据,以及删除单据模板数据。
10.利用./ncscript/init_data/目录下指定安装语种的初始化数据脚本升级库表数据。
11.其他的数据调整。
12.利用./au/accountupdate.ini文件中注册的升级接口nc.bs.sm.config.IUpdateAccount的方法doEndUpdateAccount依次在数据库初始化数据升级级后执行某些处理。
13.保存客户化版本信息。
接口描述:
nc.bs.sm.config.IUpdateAccount:
doBeforeUpdateDB(StringdsName,StringkhhOldVersion,StringkhhNewVersion)表示在数据库表结构升级前执行某些处理;
doBeforeUpdateData(StringdsName,StringkhhOldVersion,StringkhhNewVersion)表示在数据库初始化数据升级前执行某些处理;
doEndUpdateAccount(StringdsName,StringkhhOldVersion,StringkhhNewVersion)表示在数据库初始化数据升级后执行某些处理。
接口注册在./au/accountupdate.ini文件中,目前内容如下:
nc.bs.pf.install.ConvertFileInfoBO
nc.bs.bd.service.BDUpdata300sp2To310
nc.bs.pub.cquery.UptoDDCBO
nc.bs.fipf.pub.AccountPFUpgradeBO
nc.bs.pf.update.IsWriteUpdate
nc.bs.sm.config.AdjustGroupFlag
nc.bs.sm.grouppower.PowerUpgrade4OrgBook
3.NC业务产品的安装升级
业务产品的安装不区分新安装和升级安装,即只有一套安装盘。
1.安装步骤
A.运行客户化安装盘的安装程序,将其解压到指定的临时目录。
B.登录系统,在“产品安装”节点中进行产品的升级安装
2.升级步骤
A.从指定的临时目录中复制代码到应用服务器进行代码的安装升级。
B.对数据库物理布局进行校验,判定是否可以安装升级。
C.利用临时目录中的ncscript/目录下的建库脚本来安装升级库表。
D.进行数据字典的升级
E.删除安装产品模板中的数据和更新实时凭证数据,以及删除单据模板数据。
F.从临时目录中读出sql脚本进行初始化数据的安装升级,在执行这些sql脚本前会根据当前数据库中的数据调整sql语句,即对有主键冲突的sql脚本自动转换为update语句,然后进行数据升级。
G.分语种安装的初始化数据,这也是根据正在升级的账套的默认语种选择对应的脚本进行升级。
H.执行代码升级程序,凡是需要在最后对数据进行一些处理的,都可以实现nc.bs.sm.install.IUpdateData的updateData方法。
实现类注册在安装盘的配置文件中的dataupdateclass项
I.处理已建帐公司的初始化数据。
(有必要进行优化,见“安装改进”)
J.对安装产品的单据模板和查询模板数据进行调整,对报表模板数据进行调整。
(现在每次安装都执行,势必影响效率,是否要优化?
?
)
K.删除安装源文件
接口描述:
nc.bs.sm.install.IUpdateData:
updateData(StringkhhOldVersion,StringkhhNewVersion)表示产品安装升级后的相关数据升级。
该接口注册在安装盘的配置文件中的dataupdateclass项。
4.新建公司账
步骤:
1.根据选中模块读取./ierp/bin/InitCorp/目录中的dat文件中的初始化数据接口nc.bs.pub.IInitData和建帐接口nc.bs.sm.createcorp.ICreatecorpAccount。
2.判断选中模块的初始化前提。
3.先执行ICreatecorpAccount的方法beforeCreatecorpAccount,再执行IInitData的方法initCorpData,再执行ICreatecorpAccount的方法afterCreatecorpAccount。
4.保存公司启用的功能模块。
5.为结算类公司建立一个结算单位。
6.更改公司目录的建帐标志。
接口描述:
nc.bs.pub.IInitData:
initAccountData(StringdataSourceName)在建公司账时不使用;
initCorpData(StringpkCorp)表示初始化公司数据,在建公司账时会使用该接口方法。
nc.bs.sm.createcorp.ICreatecorpAccount:
StringbeforeCreatecorpAccount(StringpkCorp)初始化公司数据之前的检查等操作,返回非null表示错误信息,不再执行后续操作,返回null表示可以执行初始化数据;
StringafterCreatecorpAccount(StringpkCorp)初始化公司数据之后的检查等操作,返回非null表示错误信息,不再执行后续操作,返回null表示可以执行初始化数据。
这两个接口都注册在./ierp/bin/InitCorp/目录的相应模块文件中,目前客户化10模块的格式如下:
total=5
1=nc.bs.pf.pub.PfDataCopy1BO,"客户化-参数设置初始化数据"
2=nc.bs.pf.pub.PfDataCopy2BO,"客户化-凭证模板初始化数据"
3=nc.bs.pf.pub.PfDataCopy3BO,"客户化-项目单据模板初始化数据"
4=nc.bs.pf.pub.PfDataCopyBO,"客户化-流程平台初始化数据"
5=nc.bs.gl.initdata.GlInitDataBO,"客户化-总账初始化数据"
5.安装改进
对于业务产品的安装升级,不再执行PfDataCopy,而在建公司账时根据注册自动执行。