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类型的id1)将现有字段fieldName改名为_gFieldName2)新增一个字段fieldName3)从原表更新本表的fieldNamed.删除_gFieldNamee.重建索引•1.2脚本修改1.2.1元数据早期版本二开账套中的元数据会自动升级上来。但原有的插件无法直接在12.1安装,需要把GUID值替换为Int型,并且不能直接插入。所有引用的字段需要重新更新为【被引用字段】新ID值。举例如下:insertintoeap_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,返回29125selectidfromeap_reportfieldwhereideap_reporttemplate=9999andaliasName='VendorCode'--先查询父结点ID,返回29123selectidfromeap_reportfieldwhereideap_reporttemplate=9999andaliasName='VendorInfo'--修改当前结点数据的idparentupdateeap_reportfieldsetidparent=29123whereid=291251•1.2.2菜单脚本修改脚本举例deleteEAP_MenuwhereCode='WO8081'insertEAP_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。selectID,Code,Namefromeap_EnumitemwhereidEnumin(selectIDfromeap_Enumwherename='[枚举名称]')--举例:往来单位性质selectID,Code,Namefromeap_EnumitemwhereidEnumin(selectIDfromeap_Enumwherename='PartnerType')•1.2.4GUID是唯一的,现在改成ID后不再保证唯一,而且二开的数据对应ID不能保证固定。需要增加类型、编码区分从而取得其ID。建议客户按照编码做业务判断。--单据类型出入库类别等档案需要按照需要按照编码取值selectID,Code,Name,*fromSM_VoucherTypewherecode='[单据类型编码]'--举例:采购入库SA01报价单selectID,Code,Name,*fromSM_VoucherTypewherecode='SA01'--单据类型出入库类别等档案需要按照需要按照编码取值selectID,Code,Name,*fromAA_RDStylewherecode='[出入库编码]'--举例:采购入库selectID,Code,Name,*fromAA_RDStylewherecode='101'•1.3报表二开1.3.1报表配置文件【可选步骤】因为报表加载机制变化,原来把报表的配置文件已经修改到数据库中;
2配置文件和Eap_ViewSet的字段对应关系:NameParameterValueadvancedSearchTemplateCodeMP4001advancedSearchTemplateNameMP_IntendSaleOrderSumRptadvancedSearchViewControlIsPost0advancedSearchViewNameMP_IntendSaleOrderSumRptadvancedSearchViewTypeInfoUfida.T.MP.Report.UIP.MPSumRptSearch,Ufida.T.MP.UIPViewSetItem中新增三个Name值,对应的ParameterCode值如下:NameParameterCodeadvancedSearchViewChartName1761advancedSearchViewChartType1761advancedSearchViewChartJSPInfo17612、代码修改相关•2.1扩展二开•JS扩展文件【可选步骤】二开中用到的JS脚本修改,分两T+扩展机制相关和插件内部逻辑的修改部分,本文只涉及扩展机制相关内容,扩展机制中涉及的修改举例如下。原有代码window.attachEvent("onload",function(){//这里原有的代码逻辑.}修改为:$(document).ready(function(){//这里改写你的代码逻辑,并支持多浏览器.});3、环境部署相关•3.1页面文件发布处理【必选步骤】为了提升性能,12.1网站默认强制要求为经预编译后发布网站。因此页面需要预编译。操作步骤如下:先打开网站属性页面,去掉允许更新此预编译3站点的勾选,选中使用固定命名和单页程序集。这样设置发布后的站点采用的是预编译模式。进入发布网站选项,选设置—〉配置,选不合并,为每个网页创建单独程序集。发布后的bin目录:注意:二开不支持使用全局资源,只支持本地资源。将发布后的目录中bin目录和代码目录拷贝复制到T+产品目录\WebSite下。44、常见问题•4.1菜单升级规则以及如何调整丢失的菜单。调整菜单需要安装RAP快速开发工具,安装后在开发管理菜单中找到【菜单】功能,,通常需要新建一个一级菜单,如图新建【test管理】:然后找到对应二开新增菜单、勾选是否显示、是否常应用即可。•4.2数据库206错误,请重试!操作数类型冲突:uniqueidentifier与int不兼容。解决办法:可参考本文【数据库相关内容】修改GUID字段•4.3单据、报表打不开,对应的ID为无效(值为0)。原因:找不到GUID对应引用字段ID。解决办法:查询对应的ID,更新改字段,可参考本文【数据库相关内容】55、注意事项安装卸载软件之前请对二开的部署脚本和代码进行手工备份。6