当处理的数据量较多,逻辑比较复杂时,报表可能会超时。为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表。它会在调用SSRS前,在AX会话中处理数据。预处理过的数据存储在常规表中,该表是所有用户会话共享的,通过会话id标识。这样的方法在多用户并发时,会有瓶颈。

    在Dynamics AX 2012 R2中,其实还有一个类,SrsReportDataProviderPreProcessTempDB,他可以使用临时表,来持有跨会话(从数据处理会话到SSRS数据获取会话)的报表数据。

   其他部分的开发方式与之前SrsReportDataProviderPreProcess报表的开发方式一样,但需要注意以下两点:

  1. 使用临时表,而不是常规表。
  2. 在返回临时表前,加上这样一句:

          tmpTable.setConnection(this.parmUserConnection());

 

相关文章:

  • 2021-09-06
  • 2021-09-29
  • 2021-08-14
  • 2021-05-19
  • 2021-08-11
  • 2021-09-09
  • 2022-01-25
  • 2021-10-25
猜你喜欢
  • 2021-09-04
  • 2022-01-16
  • 2021-09-28
  • 2021-10-29
  • 2021-07-03
  • 2021-10-21
  • 2021-11-07
相关资源
相似解决方案