参照“Microsoft_Dynamics_AX2012_R2_KnownIssues_June2012CTP.pdf”文档进行AX 2012 到 AX 2012 R2 CTP7 升级,可能是技术预览版的原因,文档描述并不是很详细。过程中遇到诸多问题记录如下,作今后参考:
1.如果AX 2012 安装有upgrade模型,则需要使用Axutil delete /model:[model id] 命令行删除后进行升级,否则升级后生成CIL时系统报错无法继续。
2.代码升级完成重新还原数据库后,使用命令行“axutil.exe import /replace:[modelID] /file:[your model file path]. ”命令替换模型时必须使用管理员身份运行CMD,否则系统报错无法继续。
错误信息如下:Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
3.升级完成后,经测试发现如下问题:如果编号规则设置为连续,系统无法正常返回编号序列,将连续复选框去掉,则正常产生编号序列。
原因如下:系统通过”Class-NumberSeq-getNumFromList()”方法生成序列号,该函数内容如下
protected Integer getNumFromList(UserConnection userConnection,NumberSequenceTable numberSequenceTable) { Integer nextRecord = #NextRecordNull; xSession xSession = new xSession(sessionid()); ; if (!numberSequenceTable.Continuous) // Continous are the only ones that benefit from sp based on tests. return nextRecord; nextrecord = NumberSequence::getNextNumber(userConnection, numberSequenceTable.RecId, makeDecisionLater ? 0 : globalTransId, curuserid(), xSession.sessionId(), xSession.loginDateTime()); return nextRecord; }
研究代码发现,如果编号规则设置为连续,为了提高性能,系统转由底层类产生编号序列,最终系统调用存储过程生成序列号。登录AX 2012 R2数据库重新创建存储过程,并指定相关权限,重启AOS后问题解决。
转载请注明:ww12345678 的部落格 | AX Helper » Microsoft Dynamics AX 2012 upgrad AX 2012 R2 CTP7 Issues