Dynamics AX 2012 R2 如何处理运行时间较长的报表
当处理的数据量较多,逻辑比较复杂时,报表可能会超时。为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表。它会在调用SSRS前,在AX会话中处理数据。预处理过的数据存储在常规表中,该表是所有用户会话共享的,通过会话id标识。这样的方法在多用户并发时,会有瓶颈。
在Dynamics AX 2012 R2中,其实还有一个类,SrsReportDataProviderPreProcessTempDB,他可以使用临时表,来持有跨会话(从数据处理会话到SSRS数据获取会话)的报表数据。
其他部分的开发方式与之前SrsReportDataProviderPreProcess报表的开发方式一样,但需要注意以下两点:
- 使用临时表,而不是常规表。
- 在返回临时表前,加上这样一句:
tmpTable.setConnection(this.parmUserConnection());
学习本是一个不断模仿、练习、创新的过程。对于自己,博文只是总结。在总结的过程发现问题,解决问题。对于他人,在此过程如果还能附带帮助他人,那就再好不过了。 感谢您的阅读。如果文章对您有用,那么请打赏我一杯咖啡,也可以轻轻点个推荐,以资鼓励。
微信打赏
支付宝打赏