我们使用ActivePivot监控金融交易的实时PnL(盈亏)。新的交易(新记录)在白天实时添加或更新到多维数据集,ActivePivot还连接到触发刷新后期处理器的实时市场数据源。
最重要的是,我们实施了自定义维度,为用户提供动态时间分组。这是使用ActivePivot 分析维度 API构建的。虽然我们编写了一个自定义连续处理程序来将市场营销数据更改传播到后期处理程序,但当用户在其报表中展开自定义时间维度以查看所有时间段时,则仅限默认成员似乎用实时推送刷新。当用户手动点击刷新按钮时,所有存储桶都会重新加载,但是自动推送似乎在analmysis维度成员上被禁用。
这是分析维度的已知限制吗,您能否给我们一些指导来开发变通方法?
答案 0 :(得分:1)
是的,这是分析维度的已知限制。 pivot的唯一成员是默认成员。您需要让AP知道其他非默认成员。
为此,您需要添加自定义处理程序。此处理程序将向AP发送“隐藏”位置的“增强”影响。此处理程序将侦听事务流。
影响的计算可以进行两次。 - 首先我们需要计算我们需要重新计算的位置。我们克隆位置并用null替换分析维度的坐标。通过该事件,我们可以计算添加的对象影响。我们回到分析维度坐标,初始成员。 - 第二,我们需要计算删除点候选者。我们和以前一样,但使用删除的添加对象。我们放回了最初的成员。如果此初始成员是集合或null,我们需要将此范围位置转换为所有基础点位置。
例如,我们的分析维度是ANY(默认成员),1y,2y,5y。我们的位置是eur | null | DeskA。我们需要重新计算的位置是eur | null | DeskA。被删除的候选人是eur | ANY | DeskA,eur | 1y | DeskA,eur | 2y | DeskA,eur | 5y | DeskA。 另一个示例位置是eur | {1y,5y} | DeskA,重新计算的位置是相同的eur | {1y,5y} | DeskA但删除的候选点是eur | 1y | DeskA,eur | 5y | DeskA