最新消息:ww12345678 的部落格重装上线,希望大家继续支持。

Microsoft Dynamics AX 2012 upgrad AX 2012 R2 CTP7 Issues

AX 2012 William 3785浏览 0评论

参照“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

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址