小编:此文是搬运,将小编收集的资料分享到这,是为了和像我一样的开发人能更快速、更轻松地解决问题,欢迎大家分享自己的内容。
使用对象:NC-V5系列
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(String dataSourceName)表示建帐时初始化数据,在新建账套时使用;
initCorpData(String pkCorp)表示初始化公司数据,在新建账套时没有作用,在建公司账时会使用该接口方法。
接口注册在./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(String dsName, String khhOldVersion , String khhNewVersion)表示在数据库表结构升级前执行某些处理;
doBeforeUpdateData(String dsName, String khhOldVersion, String khhNewVersion)表示在数据库初始化数据升级前执行某些处理;
doEndUpdateAccount(String dsName, String khhOldVersion, String khhNewVersion)表示在数据库初始化数据升级后执行某些处理。
接口注册在./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(String khhOldVersion , String khhNewVersion)表示产品安装升级后的相关数据升级。
该接口注册在安装盘的配置文件中的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(String dataSourceName)在建公司账时不使用;
initCorpData(String pkCorp)表示初始化公司数据,在建公司账时会使用该接口方法。
nc.bs.sm.createcorp.ICreatecorpAccount:
String beforeCreatecorpAccount (String pkCorp)初始化公司数据之前的检查等操作,返回非null表示错误信息,不再执行后续操作,返回null表示可以执行初始化数据;
String afterCreatecorpAccount(String pkCorp)初始化公司数据之后的检查等操作,返回非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,而在建公司账时根据注册自动执行。
第一章 安装盘结构及配置文件说明
第三章 二次开发成果安装升级方案相关说明