D365 FO SysOperation Framework
从AX2012开始,AX建议用SysOperation Framework取代用了很久的RunbaseBatch框架,SysOperation Framework的详细介绍,参见下文。
https://docs.microsoft.com/en-us/dynamicsax-2012/developer/sysoperation-framework-overview
如果只是做个最简单的批处理,不需要用户选择任何参数也不用任何UI交互,SysOperation Framework还是非常简单的,只需要创建一个Action MenuItem就可以了。
Action MenuItem指向SysOperationServiceController,Paramters指向要执行的类和方法,中间用点.分割。
SysOperationFrameworkTest类和run方法如下所示:
public class SysOperationFrameworkTest { public void run() { Info ("Hello,SysOperation Framework"); } }
SysOperationServiceController的main方法,会读取Paramters属性,运行的时候会根据Parameters属性的值动态创建需要调用的类,然后调用方法。
不过不能直接运行Action MenuItem,直接运行SysOperationServiceController的main方法的args入参为null,不会把Parameters传过去,会报错说没权限调用,其实是因为Args为null导致实例化服务类没成功。
把Action MenuItem拖到Menu上或者放到任意窗体上,执行就可以了。
设置成批处理执行,会将其列入批处理处理中。
在系统管理里可以查看到这个批处理任务。
这只是最简答的应用场景,如果需要跟用户交互参数,就需要相应的DataContract类用于传递参数。