1

ActivePivotを使用して、金融取引のリアルタイムPnL(損益)を監視します。新しい取引(新しいレコード)は、日中にリアルタイムでキューブに追加または更新されます。また、ActivePivotは、ポストプロセッサーの更新をトリガーする市場データのリアルタイムソースにも接続されています。

さらに、ユーザーに動的なタイムバケットを提供するカスタムディメンションを実装しました。これは、ActivePivot分析ディメンションAPIを使用して構築されています。マーケットデータの変更をポストプロセッサに伝達するカスタム連続ハンドラーを作成しましたが、ユーザーがレポートのカスタム時間ディメンションを展開してすべてのタイムバケットを表示すると、デフォルトのメンバーのみがリアルタイムプッシュで更新されたように見えます。ユーザーが手動で更新ボタンを押すと、すべてのバケットが正常に再ロードされますが、分析ディメンションメンバーに沿って自動プッシュが無効になっているようです。

これは分析ディメンションの既知の制限ですか?回避策を開発するためのヒントを教えてください。

4

1 に答える 1

1

はい、これは分析ディメンションの既知の制限です。ピボットによって認識される唯一のメンバーは、デフォルトのメンバーです。APに、他のデフォルト以外のメンバーを認識させる必要があります。

これを行うには、カスタムハンドラーを追加する必要があります。このハンドラーは、APに「隠されている」場所で「拡張された」影響を送り返します。このハンドラーはトランザクションストリームをリッスンします。

影響の計算は2回で行うことができます。-最初に、再計算する必要がある場所を計算する必要があります。場所のクローンを作成し、分析ディメンションの座標を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です。

于 2013-02-08T09:28:26.163 に答える