You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AX 2012 R2服务器端调试:自定义银行对账单逻辑断点失效求助

调试继承RunBaseBatch类的解决方案

检查SysOperation框架关联与执行模式

  • 确认BankStatementTransferController_SI已正确关联目标RunBaseBatch类:检查Controller的初始化逻辑,是否通过parmClassName()和parmMethodName()指定了RunBaseBatch类的全名称及主执行方法(如run),关联错误会导致框架无法调用到目标类。
  • 强制同步执行:SysOperationController默认可能以异步批处理模式运行,即便RunOn设为Called from,代码也会在服务器进程而非当前客户端进程执行,导致断点失效。在controller.startOperation()前添加以下代码强制同步:
    controller.parmExecutionMode(SysOperationExecutionMode::Synchronous);
    

调整断点与调试会话

  • 确认断点位置:将断点设在RunBaseBatch类run()方法的第一行可执行代码上,避免因条件断点、空逻辑或代码未被走到导致断点不触发。
  • 附加到服务器进程调试:如果代码确实以批处理模式运行(即使RunOn为Called from),需将Visual Studio调试器附加到AOS服务器进程:
    • AX 2012:找到Ax32Serv.exe进程
    • D365 Finance & Operations:找到对应实例的w3wp.exe进程
      附加完成后重新触发Controller执行,断点会在服务器进程中触发。

验证数据与调用流程

  • 测试RunBaseBatch类独立执行:直接在AOT中运行该类的main()方法,确认断点能否触发,排除Controller关联问题。
  • 检查查询结果:如果buildQuery()生成的查询无返回记录,SysOperation框架会直接跳过后续逻辑。在controller.buildQuery()后添加代码验证记录数:
    info(strFmt("查询记录数: %1", controller.queryRun().recordCount()));
    

内容的提问来源于stack exchange,提问作者DevGary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:40:16