我有高度定制的银行对账单功能。传输逻辑从调用 Controller 开始,该控制器从 SysOperationServiceController 扩展。在控制器的 main 方法中,我有这段代码:
public static void main(Args args)
{
BankStatementTransferController_SI controller;
controller = BankStatementTransferController_SI::newFromArgs(args);
controller.buildQuery();
controller.startOperation();
controller.refreshCallerRecord();
}
我能够对此进行调试,直到 startOperation 方法。主要逻辑在其他类中执行,该类扩展自 RunBaseBatch。这两个类都将“RunOn”属性设置为“Called from”。我在两个类中设置了断点,但在controller.BuildQuery()之后,该过程完成并且不会在任何断点处停止。
问题是如何调试这个类?
首先,尝试转到“工具”>“选项”>“开发人员选项”,然后取消选中
Execute business operations in CIL
并查看是否允许命中断点。如果这不起作用,则您可以使用安装了AX Visual Studio 工具的 Visual Studio (可以使用 AX 安装程序安装该工具)并将其附加到
Ax32Serv.exe
. 然后,您可以使用 AX VS 工具从 Visual Studio内部的AOT 对象上放置断点。看:https://learn.microsoft.com/en-us/dynamicsax-2012/developer/debugging-in-microsoft-dynamics-ax-2012
https://learn.microsoft.com/en-us/dynamicsax-2012/developer/debugging-management-code-in-microsoft-dynamics-ax
然后,您的实际调试是使用Visual Studio而不是AX 调试器执行的。