Reporting Framework

近日在处理IC的Last Interactions问题的时候,无意触及这么一个东西Reporting Framework,它用于订单的搜索,即输入查询条件点击搜索后,Reporting Framework就上场了。常规的订单读取方式,包括权限检查,显然无法满足检索性能(Performance)的需要。那Reporting Framework是如何工作的呢?主要分两步:

  1. Selection – 根据检索条件,搜索出符合条件的GUID;
  2. Edition – 根据展示要求,填充GUID相应的字段;

这里用到两个表:CRMC_REPDY和CRMC_REPDY_DB,来构建检索的SQL语句。

权限检查发生在Selection阶段,跟常规的一张订单一张订单检查又有不同。简单来说,Reporting Framework会根据用户的User Profile去构建检索语句,把权限检查前置,从而减少了对数据库的访问。例如用户只有TA订单类型的权限,那么检索的语句会根据User Profile加入这个限制,而不是把订单检索出来,再去做权限检查,再过滤掉非TA的订单。也正因为如此,订单搜索和单张订单的权限检查不完全一致的,请参考Note 1305096。

其他有用的Notes: 1318262, 615670, 1226594

BTW,由于Performance的原因,R3AC6里头Reporting Framework的参数(CRMRF)很多,建议多查查Notes。