二开升级注意事项说明(V12.2)
12.2二开升级注意事项
1、数据库相关
- 1.1数据库脚本自动升级方案
单据开发一般涉及物理表的新增,针对二开新增物理表的Guid升级。
需要按照T+升级约定按照步骤修改如下文件:
Appserver\\Upgrade\\12.100.999.9999\\DATA_DSTR_EAP_GUID_SecondaryDev.sql 修改过程可分为如下5步。
a.清理垃圾数据脚本
b.清除相关字段上的索引和约束
c.更新id值,将Guid更新为int 类型的id
1) 将现有字段fieldName改名为_gFieldName
2) 新增一个字段fieldName
3) 从原表更新本表的fieldName
d. 删除_gFieldName
e. 重建索引
- 1.2脚本修改
1.2.1元数据
早期版本二开账套中的元数据会自动升级上来。但原有的插件无法直接在12.1安装,需要把GUID值替换为Int型,并且不能直接插入。所有引用的字段需要重新更新为【被引用字段】新ID值。
举例如下:
insert into eap_reportfield([title],[selectFieldName],[aliasName],[whereFieldName],[isBundleField],[isMain],[canGroup],[defaultGroup],[canClassiced],[canLinkage],[canRowGroup],[defaultRowGroup],[canColumnGroup],[isMultiLevelGroup],[ideap_reporttemplate],[idparent],[parentDataField],[isColumn],[lastLevelIdentifyField],[dtoprop],[RefDtoProp],[StaticGroup],[IsHeaderSum],[IsColSpan])
values('供应商编码','Vendor.Code','VendorCode','Vendor.Code','0','0','0','0','0','0','0','0','0','0','b33c5dc5-2c3b-4a5b-9191-bad08fad29dd',null,null,'1',null,'','','0','0','0' )
--以往来单位报表字段数据为例,说明如何修改以上数据idparent
--先查询当前自身结点VendorCode的ID,返回29125
select id from eap_reportfield where ideap_reporttemplate=9999 and aliasName='VendorCode'
--先查询父结点ID,返回29123
select id from eap_reportfield where ideap_reporttemplate=9999 and aliasName='VendorInfo'
--修改当前结点数据的idparent
update eap_reportfield set idparent=29123 where id=29125
- 1.2.2菜单脚本修改
脚本举例
delete EAP_Menu where Code='WO8081'
insert EAP_Menu(Code,name ,Grade,SupMenuID,EndGrade,[order],
IsItemGroup ,IsControl ,AccountType ,Visibility ,RequestUrl,
inID,ExpressionName,iscommonuse,ShowIndex2,MenuIn)
values('WO8081','委外综合分析表',2,'WO80',1,200,1,0,1,
,'BAPView/ReportWithSimpleSearch.aspx?ReportName=WO_WOAnalysisRpt', 'WO_WO80_WO8081','WO',1,14,3)
注意修改一下三部分:
修改字段名称[order] 为ShowIndex;
增加iscommonuse值为1;
增加ShowIndex2值为其显示顺序。
- 1.2.2枚举修改
查询枚举中GUID对应的新枚举ID。
select ID,Code,Name from eap_Enumitem where idEnum in(select ID from eap_Enum where name='[枚举名称]')
--举例:往来单位性质
select ID,Code,Name from eap_Enumitem where idEnum in(select ID from eap_Enum where name='PartnerType')
- 1.2.4 GUID是唯一的,现在改成ID后不再保证唯一,而且二开的数据对应ID不能保证固定。需要增加类型、编码区分从而取得其ID。建议客户按照编码做业务判断。
--单据类型 出入库类别等档案需要按照需要按照编码取值
select ID,Code,Name,* from SM_VoucherType where code='[单据类型编码]'
--举例:采购入库 SA01\t报价单
select ID,Code,Name,* from SM_VoucherType where code=' SA01'
--单据类型 出入库类别等档案需要按照需要按照编码取值
select ID,Code,Name,* from AA_RDStyle where code='[出入库编码]'
--举例:采购入库
select ID,Code,Name,* from AA_RDStyle where code='101'
- 1.3 报表二开
1.3.1报表配置文件【可选步骤】
\t 因为报表加载机制变化,原来把报表的配置文件已经修改到数据库中;
<!-- 预测单统计表-->
<reportAdvancedSearch name=\"MP_IntendSaleOrderSumRpt\" code=\"MP4001\">
<view>
<add name=\"MP_IntendSaleOrderSumRpt\"
type=\"Ufida.T.MP.Report.UIP.MPSumRptSearch,Ufida.T.MP.UIP\" searchControlIsPost=\"false\"></add>
</view>
</reportAdvancedSearch>
配置文件和Eap_ViewSet的字段对应关系:
Name | ParameterValue |
advancedSearchTemplateCode | MP4001 |
advancedSearchTemplateName | MP_IntendSaleOrderSumRpt |
advancedSearchViewControlIsPost | 0 |
advancedSearchViewName | MP_IntendSaleOrderSumRpt |
advancedSearchViewTypeInfo | Ufida.T.MP.Report.UIP.MPSumRptSearch, Ufida.T.MP.UIP |
ViewSetItem中新增三个Name值,对应的ParameterCode值如下:
Name | ParameterCode |
advancedSearchViewChartName | 1761 |
advancedSearchViewChartType | 1761 |
advancedSearchViewChartJSPInfo | 1761 |
2、代码修改相关
- 2.1扩展二开
- JS扩展文件【可选步骤】
二开中用到的JS脚本修改,分两T+扩展机制相关和插件内部逻辑的修改部分,本文只涉及扩展机制相关内容,扩展机制中涉及的修改举例如下。
原有代码
window.attachEvent(\"onload\", function () {
// 这里原有的代码逻辑...
}
修改为:
$(document).ready(function(){
//这里改写你的代码逻辑,并支持多浏览器...
});
3、环境部署相关
- 3.1页面文件发布处理【必选步骤】
为了提升性能,12.1网站默认强制要求为经预编译后发布网站。因此页面需要预编译。操作步骤如下:先打开网站属性页面,去掉允许更新此预编译站点的勾选,选中使用固定命名和单页程序集。这样设置发布后的站点采用的是预编译模式。\t
进入发布网站选项,选设置—〉配置,选不合并,为每个网页创建单独程序集。
发布后的bin目录:
注意:二开不支持使用全局资源,只支持本地资源。
将发布后的目录中bin目录和代码目录拷贝复制到T+产品目录\\WebSite下。
4、常见问题
- 4.1菜单升级规则以及如何调整丢失的菜单。
调整菜单需要安装RAP快速开发工具,安装后在开发管理菜单中找到【菜单】功能,,通常需要新建一个一级菜单,如图新建【test管理】:
然后找到对应二开新增菜单、勾选是否显示、是否常应用即可。
- 4.2 数据库206错误, 请重试! 操作数类型冲突: uniqueidentifier 与 int 不兼容。
解决办法:可参考本文【数据库相关内容】修改GUID字段
- 4.3 单据、报表打不开,对应的ID为无效(值为0)。
原因:找不到GUID对应引用字段ID。
解决办法:查询对应的ID,更新改字段,可参考本文【数据库相关内容】
5、注意事项
安装卸载软件之前请对二开的部署脚本和代码进行手工备份。
作者:畅捷服务社区 |  时间:2018年08月30日 17:50