図1は、本発明の手法による、ユーザ12A−12E(集合的に「ユーザ12」)が企業計画システ14とインタラクションすることを可能にするシステム10を例示するブロック図である。図1に示されているシステムでは、企業計画システム14が、ネットワーク18によって幾つかのコンピューティングデバイス16A−16E(集合的に「コンピューティングデバイス16」)に通信可能な形で接続されている。ユーザ12が、計画プロセスを介して企業計画システム14にアクセスするためにそのユーザのそれぞれのコンピューティングデバイスとインタラクションする。
一般的に、企業計画プロセスは、3つの段階、すなわち、(1)モデリング段階、(2)コントリビューション段階、(3)照合段階の形に区分されることが可能である。モデリング段階中は、アナリストと呼ばれる高位レベルの企業マネージャまたは重役が、組織ターゲットを定義して、その企業のための計画モデルを構築する。このアナリストは、例えばチーフファイナンシャルオフィサー、シニアファイナンシャルアナリスト、または、プロダクトまたはセールスアナリストのようなファイナンシャルアナリストを含むだろう。さらに明確に述べると、これらのアナリストは、ビジネスユニットまたはビジネス部門のような、組織内の様々なコストセンタを表現する階層的に構成された幾つかのノードを有するモデルを開発する。
モデリング段階中は、これらのアナリストは、さらに、組織階層の各ノードに関する企業ターゲットも設定する。その次に、これらのアナリストは、各ノードに対応するコストセンタに関する企業計画の責務を負っている、マネージャ、スーパーバイザ、セールスレプリゼンタティブ、ラボマネージャ等のような1人または複数の企業ユーザを各ノードに割り当てる。各々の企業ユーザは、企業計画システム14に計画データを提供するコントリビュータ、コントリビュータからのコントリビューションを受け入れるか拒否するレビューワ、または、この両方に任命されるだろう。コントリビュータとレビューワは、企業内の認可されたユーザ、または、供給業者または顧客のようなネットワーク18に接続されている他のエンティティ内の認可されたユーザであるだろう。
最後に、アナリストは、コントリビュータから企業予想データを収集するための幾つかのテンプレートを定義するだろう。一具体例では、アナリストは、詳細に後述するスプレッドシートアプリケーションを使用して、このテンプレートを定義するだろう。アナリストは、テンプレート内の企業ターゲットデータ、または、予想データとの照合を容易にするために企業ターゲットデータに対する参照を含む。企業ターゲットと予想データは、企業によって行われている個々の企業計画アクティビティに応じて、財務データと収益データと注文データと在庫データ等とを含むだろう。
その次に、企業計画システム14は、コントリビュータとして任命されている企業ユーザ12が、コントリビューションデータの形で詳細な予想を入力するためにスプレッドシートアプリケーションを経由して企業計画システム14とインタラクションするコントリビューション段階に入る。上述したように、企業ユーザ12は、企業によって行われている個々の企業計画アクティビティに応じて、詳細な財務予想と収益予想と注文予想と在庫予想と推定リソース要件等とを提供するだろう。
照合段階中は、企業計画システム14は、アナリストによって提供された企業ターゲットデータに対する予想データの照合を自動化する。特に、企業計画システム14は、複数の照合レベルを有する階層的計画プロセスを提供するために、定義されたモード、すなわち、アナリストによって生成された企業計画モデルにしたがって動作する。コントリビュータの各々が自分のコントリビューションデータを提供するので、企業計画システム14は、企業全体にわたってのコントリビューションデータをリアルタイムで自動的に集計し、および、企業のより高位のレベルに関連付けられているレビューワとして指定された企業ユーザ12に集計データを対するアクセス権を提供する。特に、企業計画システム14は、コントリビュータからコントリビューションデータを受け取る時に、その新たに受け取られたコントリビュータデータによる影響を受ける組織モデルのより高位のレベルのすべてを識別し、および、各レベルにおける新たな総合計をリアルタイムに計算する。
したがって、レビューワは、企業計画セッション中に企業全体にわたる集計されたデータをリアルタイムで閲覧する。後述するように、レビューワは、詳細に後述する拡張されたスプレッドシートアプリケーションを使用して集計データを閲覧するだろう。各レベルにおいて、企業計画システム14は、企業モデルのノードによって定義されるレビューワがターゲットデータを予想データと照合することを確実なものにする。例えば、レビューワの各々が、アナリストによって提供された企業ターゲットを考慮して、コントリビューションデータを拒否するか受け入れるだろう。このプロセスは、組織階層の最高位レベルによってコントリビューションデータが最終的に承認されるまで継続し、これによって、コントリビュータからのコントリビューションデータが、アナリストによって提供された企業ターゲットに一致することを確実なものにする。
このようにして、企業計画システム14は、従来の手法の場合よりも正確な企業計画を実現するだろう。例えば、企業計画システム14は、組織が企業モデルと組織ターゲットとを詳細な予想と照合することを可能にすることによって、企業計画の精度と予測可能性とを改善するだろう。この手法は、予想のオフラインの統合および集計を必要とせずに、協同的なリアルタイムの計画能力を提供するプラットフォームを実現するだろう。企業計画システム14がリアルタイムでコントリビューションデータを集計するので、全ユーザ12がその数値の正確な最新ビューを提示されることが可能である。さらに、企業計画システム14のアーキテクチャが数千人のユーザに対して容易に拡大されることが可能であり、および、最良の計画実施のために設計されるだろう。これに加えて、この手法は、企業ユーザ12すなわちコントリビュータおよびレビューワによる高度の関与を可能にし、これによって正確な計画サイクルが減少させられることを可能にする。
企業ユーザ12は、ネットワーク18を経由して企業計画システム14とインタラクションするために様々なコンピューティングデバイスを使用するだろう。例えば、企業ユーザは、Microsoft Corporation(Redmond,Washington)製のInternet ExplorerTMのようなウェブブラウザを実行するラップトップコンピュータ、デスクトップコンピュータ等を使用して、企業計画システム14とインタラクションするだろう。あるいは、企業ユーザは、Palm Inc.(Santa Clara,California)製のPalmTMオーガナイザのようなパーソナルディジタルアシスタント(PDA)、ウェブ動作可能携帯電話、または、他の同様の装置を使用してもよい。
ネットワーク18は、インターネットのようなパケット方式のディジタルネットワークのような任意の通信ネットワークを表す。このようにして、システム10は、大規模な企業に適合するように容易に拡大されることが可能である。企業ユーザ12は、ローカルエリアネットワークを経由して企業計画システム14に直接的にアクセスしてもよく、または、仮想プライベートネットワーク、リモートダイヤルアップ接続、または、同様のリモートアクセス通信機構を経由して企業計画システム14にリモートアクセスしてもよい。
本明細書で詳細に後述されるように、コンピューティングデバイス16は、スプレッドシート環境内での企業計画セッションに関連付けられている多次元データストアとユーザがインタラクションすることを可能にするためのユーザインタフェースをユーザ12に提供する。一般的に、従来のスプレッドシートアプリケーションは、企業計画システム14によって維持されている多次元データストアとインタラクションするための機能性を提供するために、本明細書で説明するように拡張される。特に、拡張されたスプレッドシートアプリケーションのインスタンスがコンピューティングデバイス16上で実行し、および、多次元データストアの一部分の2次元表現をユーザ12に提示する。例えば、この拡張されたスプレッドシートアプリケーションは、1つまたは複数のワークシートを含むワークブックをユーザ12に提示するだろう。各々のワークシートは、より詳細に後述されるように、多次元データストアの異なる「スライス」に対応するだろう。このようにして、拡張されたスプレッドシートアプリケーションは、コンピューティングデバイス16によって維持される2次元ワークシートと企業計画システム14によって維持される多次元データストアとの間のインタフェースとして機能する。この多次元データストアは、計画プロセスの異なる側面に関連付けられている1つまたは複数のデータキューブを含む。例えば、企業計画システム14は、損益計算書に関連付けられている第1のデータと、費用シートに関連付けられている第2のデータキューブとを維持するだろう。
ユーザ12は計画プロセスの全段階において拡張されたスプレッドシートアプリケーションを使用するためにコンピューティングデバイス16とインタラクションするだろう。例えば、アナリストは、コントリビュータおよび/またはレビューワのためのテンプレートを定義するために、拡張されたスプレッドシートアプリケーションを使用するだろう。さらに、コントリビュータとレビューワは、企業計画セッションに関連付けられているコントリビューションデータを閲覧および編集するために、スプレッドシートアプリケーションの拡張された機能性を使用するだろう。
例えば、一実施形態では、拡張されたスプレッドシートアプリケーションは、企業計画セッションに関連付けられているメインメニューと、企業計画セッションにおいてユーザ12を補助するための新たなツールバーとを含む。このメインメニューとツールバーは、計画セッションに従事するための機能性をユーザ12に提示する。例えば、このメインメニューとツールバーとにおいて提示される機能性が、企業計画システム14にユーザ12がログインすることを可能にする。
企業計画システム14は、定義されている企業モデルにしたがって各ユーザ12のために多次元データストアが「スライス」される「カットダウン(cut−down)」プロセスを使用するだろう。このプロセス中に、企業計画システム14は、ユーザ12がコントリビュータまたはレビューワとして割り当てられる定義されたモデルの領域を識別し、および、この割り当てに基づいてデータストアを「スライス」する。特定のユーザ12がログインして企業計画アクティビティを続行する時に、企業計画システム14は、拡張されたスプレッドシートアプリケーションを介してユーザに表示するために、それぞれのコンピューティングデバイス16にそれぞれのデータスライスを通信する。このようにして、企業計画システム14はユーザ12の各々に対してそのモデル全体を通信する必要がなく、これによって通信時間とリソース要件とを低減させる。この代わりに、各ユーザ12は関連情報だけを受け取る。ユーザ12は、コントリビューションデータを得るために、および、コントリビューションデータを組織ターゲットと照合するために、拡張されたスプレッドシートアプリケーションとインタラクションする。
拡張されたスプレッドシートアプリケーションは、ユーザ12がワークシート内の表示のために多次元データをフォーマットすることを可能にし、これによってスプレッドシートアプリケーションによって提供される機能性を利用する。例えば、スプレッドシートアプリケーションは、ワークシートを構造化して、そのワークシートを制御の「ゾーン」と共にユーザ12に提供する。一実施形態では、拡張されたスプレッドシートアプリケーションによって提示されるワークシートは、ワークシートを複数のゾーンに区分するだろう。第1のゾーンが、従来通りのワークシートデータに関連付けられているデータセルを含むだろう。これらのデータセルは、ワークシート内に維持されている「ローカル」データを格納または参照するものと見なされるだろう。第2のゾーンが、企業計画システム14から受け取られた多次元データを提示するためのデータセルを含むだろう。拡張されたスプレッドシートアプリケーションは、セル変色またはテキスト色のような視覚的な標識を使用して、ユーザに対してこれらのゾーンを表示するだろう。さらに、拡張されたスプレッドシートアプリケーションは、企業計画システム14によって維持される多次元データの完全性を確保するために、ゾーンを制御する。
更に詳細に後述されるように、拡張されたスプレッドシートアプリケーションは、企業計画システム14の多次元データストア内に格納されているデータを参照するようにユーザ12がそのスプレッドシートアプリケーションを操作することを可能にする。特に、拡張されたスプレッドシートアプリケーションは、絶対参照の一形態と間接参照の一形態とをサポートする。
絶対参照の機能性が、ユーザ12の特定の1人のデータストアの特定の「スライス」のためにデータストアの次元に沿った特定の場所をそのユーザ12が指定することを可能にする。さらに明確に述べると、拡張されたスプレッドシートアプリケーションによってサポートされる絶対参照の機能性が、ユーザ12がスプレッドシートとインタラクションして、その特定のユーザに関連付けられているデータスライスの次元に沿った特定の場所を特定のデータセルが参照することをそのユーザが指定することを可能にする。この結果として、拡張されたスプレッドシートアプリケーションは、ワークシートデータセル内の特定のユーザ12に関連付けられているデータだけを表示する。
これとは対照的に、拡張されたスプレッドシートアプリケーションによってサポートされている間接参照の機能性が、個々のモデルスライスとは無関係に、すなわち、個々のノードとは無関係に、データストアの次元内の特定の場所をユーザ12が指定することを可能にする。言い換えると、ワークブック内の特定の多次元データセルが、企業計画システム14によって維持されているデータキューブの次元に沿った場所を参照するだろうが、特定のノードにそのセルを関連付けることはない。この結果として、例えば、ワークシートテンプレートが間接参照の機能性を使用して生成され、および、異なるノードに対して使用されるだろう。例えば、ユーザは、そのユーザが認可されている異なるノードに関連付けられているデータを操作するためにワークブックを生成するように、そのテンプレートを利用することができる。別の例としては、ユーザは、そのユーザが認可されているノードに関連付けられているデータを取り扱うためのそのユーザによる使用のために、他のユーザ12とテンプレートを交換することもできる。拡張されたスプレッドシートアプリケーションによってサポートされた間接参照機能の使用によって、企業計画システム14から受け取られかつテンプレートによって提示されるデータが、そのテンプレートを使用するユーザ12の1人に関連付けられている特定のノードに基づいて変化する。このようにして、式とグラフとが生成されてユーザ12の相互間で共有されてよく、および、拡張されたスプレッドシートアプリケーションがそれぞれのノードに関して正確なデータを自動的に表示する。
これに加えて、拡張されたスプレッドシートアプリケーションは、従来通りのスプレッドシート出力式に加えて多次元データセルの1つまたは複数を生成するために入力式を使用するスプレッドシートを生成してもよい。例えば、一実施形態では、拡張されたスプレッドシートアプリケーションは、ユーザが多次元データセルの1つの中にそれによって式を入力する式ツールバーを提供する。式ツールバーの中に入れられる式は、ワークブック、他のスプレッドシートワークブック、サードパーティシステム、または、企業計画システム14の中にデータをインポートするための他のデータソースの中の従来通りのデータセルを参照するだろう。さらに、ユーザ12はワークシート内に式を埋め込んでもよく、したがって、拡張されたスプレッドシートアプリケーションは、企業計画システム14によって維持されているデータの完全性を確実なものにする。
図2は、コンピューティングデバイス16の1つの具体例を更に詳細に図示するブロック図である。この図示されている具体例では、コンピューティングデバイス16はスプレッドシートアプリケーション22を含む。スプレッドシートアプリケーション22は、Microsoft Corporationによって提供されているMicrosoft ExcelTMと、CorelのQuattroTM Proと、IBMのLotus 1−2−3TMのような任意の従来のスプレッドシートデータ分析ソフトウェアアプリケーションを表す。本発明を、例示を目的としてMicrosoft Excelに関して本明細書で説明する。本発明によって、スプレッドシートアプリケーション22の機能性が、電子ワークシート環境内で、多次元データ、例えば、企業計画システム14によって維持されている多次元データストア内に配置されているデータを閲覧および編集する能力をユーザ12に提供するように、本明細書で説明されている通りに拡張される。これが、例えば、ユーザ12が複雑な多次元データストアとインタラクションすると同時に、フォーマッティングとグラフ作成と他の機能等のような既存のスプレッドシート機能性をユーザ12が強化することを可能にする。
スプレッドシートアプリケーション22は、制御モジュール24と、ランタイムエンジン26と、ドキュメントオブジェクトモジュール(DOM)コンポーネント28と、COMインタフェース30とを含み、このスプレッドシートアプリケーション22は、プロセッサによって実行可能な命令を含むだろう。制御モジュール24は、例えば、ユーザ12によって起動される時に、スプレッドシートアプリケーション22がロードするかまたは他の形で呼び出すソフトウェアモジュールであってよい。制御モジュール24は、ビジュアルベーシックフォーアプリケーション(VBA)コードのようなソフトウェアコードを含み、このソフトウェアコードは、ユーザ12が2次元環境において多次元データストアのデータを閲覧および編集することを可能にするために、従来の電子ワークシート環境に追加の機能性を提供するように、スプレッドシートアプリケーション22に対して追加の機能性を加える。このようにして、制御モジュール24は、2次元ワークシート環境と、企業計画システム14によって維持されている多次元データストアとの間のインタフェースを提供するように、スプレッドシートアプリケーション22の機能性を拡張する。
ランタイムエンジン26は、企業計画システム14に関連付けられているウェブサーバとの通信をカプセル化し、および、一実施形態では、1組のコンポーネントオブジェクトモデル(COM)コンポーネントである。ランタイムエンジン26は、例えば、制御モジュール24からのコマンドに応答して、企業計画システム14に関連付けられているウェブサーバとネゴシエートし、ユーザ12を企業計画システム14にログインさせ、多次元データストアからデータを検索し、および、企業計画システム14に関して他の動作を行う。一実施形態では、例えば、ランタイムエンジン26は、ハイパーテキストトランスファープロトコル(HTTP)によって、企業計画システム14に関連付けられているウェブサーバと通信することができる。
ドキュメントオブジェクトモデル(DOM)コンポーネント28は、スプレッドシートワークブック31のエレメントの構造化された表現を提供するドキュメント管理モジュールである。特に、DOMコンポーネント28は、スプレッドシートワークブック31内の個別のエレメントと内容との構造化されたオブジェクト指向型表現に、これらのオブジェクトの属性を検索し設定するための方法を提供する。DOMコンポーネント28は、さらに、こうしたオブジェクトを追加および除去するための方法も提供する。
ユーザ12がスプレッドシートアプリケーション22を開く時には、スプレッドシートアプリケーション22は、本明細書で説明している拡張された機能性を提供するために、制御モジュール24をロードする。制御モジュール24は、例えば、企業計画セッションに関連付けられている1つまたは複数のユーザ定義メインメニュー項目、企業計画セッションに従事するためにユーザ12を補助するための1つまたは複数のユーザ定義ツールバー、または、企業計画システム14によって維持されている多次元データストアとインタラクションするための他のユーザ定義項目を追加することができる。一実施形態では、制御モジュール24は、ユーザ12が企業計画システム14にログオンすることを可能にする「ログオン」サブ項目のようなサブ項目を含むメインメニュー項目を追加する。あるいは、または、これに加えて、制御モジュール24は、スプレッドシートアプリケーション24の追加の機能性を使用するためのボタンをユーザ12に提供するツールバーを追加する。この新たなツールバーのボタンは、例えば、企業計画セッションのノードをオフラインにするためのボタンと、ノードを再びオンラインにするためのボタンと、ワークブック31のワークシートの次元を選択するためのボタン等を含むだろう。
ユーザ12は、最初に、企業計画セッションに関連付けられている新たなメインメニュー項目の「ログオン」サブ項目によって企業計画システム14にログオンすることを選択する。スプレッドシートアプリケーション22は、ユーザネームとパスワードのような識別情報を入力することをユーザ12に要求するだろう。制御モジュール24は、ウェブサーバとネゴシエートして、ユーザ12によって入力された識別情報を使用してユーザ12を企業計画システム14にログインさせるように、ランタイムエンジン26に命令する。このようにして、制御モジュール24は、企業計画システム14と通信するためにランタイムエンジン26を使用する。制御モジュール24は、さらに、企業計画システム14から計算エンジン32と1つまたは複数のデータキューブ36とをダウンロードするように、ランタイムエンジン26に命令するだろう。
計算エンジン32は、配列ベースの言語で作られているアクティブXコントロール内にラップ(wrap)されたフォワード計算エンジンである。データキューブ36が、企業計画システム14によって維持されておりかつユーザ12に関連付けられている多次元データストアの「スライス」である。特に、データキューブ36は、ユーザ12が割り当てられている定義された計画モデルの領域に関するターゲットデータおよび予想データを含む。この結果として、スプレッドシートアプリケーション22によってダウンロードされた多次元データストアのスライスが、スプレッドシートアプリケーション22を使用するユーザ12の識別情報に応じて変化する。
スプレッドシートアプリケーション22は、すべての計算がコンピューティングデバイス16内でローカルに行われることが可能であるようにデータキューブ36をローカルに格納するだろう。したがって、ダウンロードが完了した後に、ユーザ12は、スプレッドシートアプリケーション22内の予想データを閲覧して変更することと、企業計画システム14にアクセスすることなしに計算を行うためにCOMインタフェース30を介して計算エンジン32と通信することとが可能である。このようにして、ユーザ12は「オフライン」で作業することが可能であり、および、データキューブ36が最初にダウンロードされる時と、更新されたデータキューブがセッションの終了時点に保存される時とに、ネットワーク遅延を経験するだけだろう。あるいは、スプレッドシートアプリケーション22はデータキューブ36をダウンロードせずに、その代わりに、ネットワーク18を介してユーザ12に関連付けられている多次元データストアのスライスにアクセスすることができる。
新たな「計画可能(planning−enabled)」ワークシートを生成する時には、スプレッドシートアプリケーション22は、ユーザ12がアクセスするために使用可能であるノードのリストをユーザ12に提供する。ユーザ12は、そのユーザがアクセス権を有する企業計画モデル内の各ノードに関して、1つまたは複数のスプレッドシートワークブックを生成することができる。各ワークブックは1つのノードにだけ関連付けられているが、複数のワークブックが企業計画モデルの各ノードに関して生成されるだろう。
ワークブックの各々は1つまたは複数のワークシートを含む。ワークシートの一部分が、ユーザ12がデータを閲覧および操作するためにインタラクションすることができる可視的なワークシートである。この可視的なワークシートの各々は、データキューブ36のそれぞれ1つに対応する。特に、このワークシートの各々は、ユーザ12によって指定されたキューブ次元にしたがってビューをそのそれぞれのデータキューブの中に提供する。1つまたは複数の可視的ワークシートに加えて、ワークシートは、さらに、ユーザ12から隠蔽されている1つまたは複数のワークシートも維持する。これらの隠蔽されたワークシートは、ビュー依存情報(view−dependent information)、このようなフォーマッティング情報、および、多次元データセルのための入力式を維持するために存在する。
ユーザ12がリストからスプレッドシートワークブックの1つを選択した後に、スプレッドシートアプリケーション22は、その選択されたスプレッドシートワークブックをユーザ12に提示する。図2に示されている具体例では、スプレッドシートアプリケーション22はスプレッドシートワークブック31をユーザ12に表示する。スプレッドシートワークブック31は、例えばデータキューブ36のような、ユーザ12に関連付けられている多次元データストアの一部分の2次元表現である。
特に、スプレッドシートアプリケーション22は、ドキュメントオブジェクトモデル(DOM)コンポーネント28の補助によって、スプレッドシートワークブック31を構造化し、そのデータでスプレッドシートワークブック31のワークシートを生成する。データは、スプレッドシートワークブック31内に維持されている従来通りのワークシートデータとデータキューブ36内に維持されているデータとの組合せであってよい。スプレッドシートアプリケーション22は、ワークシート内に維持されている「ローカル」データで従来通りのワークシートデータセルを生成する。
スプレッドシートアプリケーション22は、簡単に上述した参照手法を使用して、多次元データセル、すなわち、リモート多次元データストアを参照するデータセルを生成する。特に、スプレッドシートアプリケーションは、ユーザのデータを含む指定されたモデルスライスからのユーザのデータによって、絶対参照を使用する多次元データセルを生成する。この場合には、スプレッドシートアプリケーション22は、企業計画システム14によって維持されている多次元データストア内の指定されたモデルスライスから適切なデータを検索する。
スプレッドシートアプリケーション22は、ユーザ12に関連付けられているデータスライスの次元に沿って位置付けられているデータで、間接参照を使用する多次元データセルを生成する。スプレッドシートアプリケーションは、例えば、データキューブ36からこうしたデータセルを生成するための情報を検索し、この情報はコンピューティングデバイス16内にローカルに格納される。したがって、間接参照を使用する多次元データセルに関してユーザに提示されるデータは、ワークブックによって現在においてアクセスされている特定のノードに基づいて変化する。
簡単に上述したように、スプレッドシートアプリケーションは、ワークブックが多次元データセルの1つまたは複数を生成するために入力式を使用できる機能性を提供する。この入力式は、上述した参照手法によって生成されたデータをオーバライドする。多次元データセルの各々を生成する時には、制御モジュール24が、多次元データセルに関連付けられている入力式が存在するかどうかを判定するために、ワークブック31の隠蔽されたページにアクセスする。存在しない場合には、スプレッドシートアプリケーション22は、上述した参照手法によって多次元データセルを生成する。しかし、制御モジュール24が、多次元データセルに関連付けられている入力式を識別する場合には、制御モジュール24はその入力式を実行して、その入力式の結果で多次元データセルを生成する。上述したように、この入力式は、この式の変数に関する入力値として、スプレッドシートワークブック31、他のスプレッドシートワークブック、サードパーティシステム等の中の従来通りのデータセルを参照するだろう。例えば、この式は、在庫管理システムの変数の1つとして参照するだろう。一実施形態では、ワークブック31の入力式は、その式を実行するコマンドがユーザ12によって入力されるまで実行されない。
1つの例示的な具体例では、スプレッドシートアプリケーション22はワークブック31のワークシートを構造化して、「ゾーン」によってユーザ12に提示する。例えば、DOMコンポーネント28は、従来のワークシートデータに関連付けられているデータセルすなわち、ワークブック31内に維持されているデータを含む第1のゾーンと、企業計画セッション14から受け取られた多次元データに関連付けられているデータセルを含む第2のゾーンとの形にワークシートを構造化するだろう。DOMコンポーネント28は、視覚的な標識を使用してユーザ12に対してこれらのゾーンを表示するだろう。例えば、第2のゾーン、すなわち、多次元データに関連付けられているゾーンの中のデータセルが灰色のバックグラウンドを有し、一方、第1のゾーンのデータセルが無地の白いバックグラウンドを有する。あるいは、または、これに加えて、データセルに関連付けられているテキスト色または境界線のような他の視覚的な標識が、これらのゾーンを互いに識別するために使用されてもよい。
これに加えて、制御モジュール24は、データキューブ36の多次元データの完全性を確保するためにこれらのゾーンを制御することができる。これを実現するために、制御モジュール24は、各ゾーン内のデータセルとのユーザのインタラクションを制御するための1組の制御ルールを維持するだろう。これに加えて、この制御ルールは、スプレッドシートアプリケーション22がモデルの変化(例えば、放棄または追加された項目)を照合する仕方を指定できる。一例としては、ユーザ12は、絶対参照によってデータセル内に生成された情報、すなわち、アナリストによって入力されたターゲット情報を操作することが不可能だろう。
図3は、企業計画システム14の一例を示すブロック図である。企業計画システム14はデータベースサーバ42を含む。単一のデータベースサーバだけに関連して説明しているが、企業計画システム14は複数のデータベースサーバを含んでもよい。
コンピューティングデバイス16が、企業データ53にアクセスするためにデータベースサーバ42とインタラクションし、この企業データ53はユーザデータ54とモデルデータ56とを含む。企業データ53は、1つまたは複数のデータ記憶ファイル(例えばデータキューブ)、または、1つまたは複数のデータベースサーバ上で実行する1つまたは複数のデータベース管理システム(DBMS)を含む、幾つかの異なる形態で記憶されることが可能である。このデータベース管理システムは、リレーショナルデータベース管理システム(RDBMS)、階層型データベース管理システム(HDBMS)、多次元データベース管理システム(MDBMS)、オブジェクト指向型データベース管理システム(ODBMSまたはOODBMS)、または、オブジェクトリレーショナルデータベース管理システム(ORDBMS)であってよい。さらに、別個に図示されているが、企業データ56は単一のデータベースまたは他のデータ記憶構造の形に組み合わされることも可能である。ユーザデータ54とモデルデータ56は、例えば、単一のリレーショナルデータベースとして実装されることも可能である。
ユーザデータ54は、名前、電子メール(email)アドレス、および、他の連絡情報を含む、企業ユーザ12の各々に関する情報を格納する。モデルデータ56は、1組のアナリストによって定義された企業計画モデルを格納する。モデルデータ56は、例えば、照合レベルの数と、企業階層内の様々なノードと、これらのノードに関連付けられている企業ユーザ12とを含む、アナリストによって開発された照合プロセスを定義する情報を含むだろう。これに加えて、モデルデータ56は、企業ユーザ12からコントリビューションデータと査閲データとを取り込むためのそれぞれのスプレッドシートワークブックテンプレートを格納する。
スプレッドシートアプリケーション22は、ワークブック内のデータセルを生成するために必要とされるモデルデータ56からデータに、データベースサーバ42とインタラクションする。例えば、スプレッドシートアプリケーション22は、図2に示されている例示的な実施形態においてデータキューブ36をダウンロードするためにデータベースサーバ42とインタラクションするだろう。
図4は、架空のピザ店チェーンであるピザ・パレース法人のための例示的な階層的企業計画モデル60を示す略図である。モデル60は、フランチャイズ店によってしめられている様々な地理的領域(地域1−5)に水平方向に組織され、かつ、3つの照合レベルの形に垂直方向に組織されている。企業ゴールおよびターゲットがアナリストによって設定され、および、その階層の様々な「ノード」を通して下方に配布される。アウトレットと呼ばれるそのフランチャイズの個別店舗が最下位レベル(レベルI)を占めている。支出予想データがこの最下位レベルで受け取られ、および、各レベルにおいてこれらのターゲットと照合される。
各ノードは、企業ターゲットを考慮して予想データを入力するかまたは予想データを査閲する役割を担っている1人または複数のユーザに対応する。図4は、3人のコントリビュータ、すなわち、ガイとピーターとアンディを示している。ガイはピザ・パレース法人のチーフファイナンシャルオフィサーであり、全領域を監督する責務を有する。したがって、ガイは、ルートノード62の「所有者」かつ全領域の「レビューワ」としてリストされている。ピーターは、領域1を監督する責務を負わされている中間レベルのマネージャである。したがって、ピーターは領域1の所有者かつアウトレットAのレビューワとしてリストされている。アンディは、ローカルのピザ店のマネージャであり、アウトレットAの所有者としてリストされている。
モデル60の各ノードに関して、対応するユーザが1つまたは複数のワークブックを関連付けるだろう。例えば、レベルI内の各アウトレットが異なるノードを表し、および、1人または複数のユーザに関連付けられる。各ユーザは、予想情報を取り込むために、および、計画セッションを行うために、そのユーザのそれぞれのモデルスライスに1つまたは複数のスプレッドシートワークブックを関連付けることを選択するだろう。レベルIIにおいては、各領域が1人または複数のユーザに同様に関連付けられ、このことがワークブックを生成することになる。モデル60のルートノード62は同様にユーザ(ガイ)に関連付けられ、ガイは、自分の計画セッションのためのインタフェースとして1つまたは複数の計画可能ワークブック(planning−enabled workbook)を使用するだろう。
図5は、制御のゾーンを伴うユーザ12に提示された例示的なスプレッドシートワークブック70を示すブロック図である。特に、スプレッドシートワークブック70は、少なくとも多次元データセル74上の含む第1のゾーン72Aと、少なくとも1つの従来のデータセル76を含む第2のゾーン72Bとを含む。上述したように、ゾーン72は、変色とテキスト色とセル境界線とのような視覚的標識を使用してユーザ12に表示されるだろう。図5に示されている例では、ゾーン72Aは灰色に暗くされており、一方、ゾーン72Bは白色のままである。
スプレッドシートアプリケーション22は、ワークブックに関連付けられている多次元データストアの完全性を確保するためにゾーン72Aを制御するだろう。例えば、スプレッドシートアプリケーションは、ゾーン72A内の多次元データセルとのユーザのインタラクションと、スプレッドシートアプリケーション22がモデルの変化を照合する仕方とを制御するための1組の制御ルールを維持するだろう。
第1の例として、スプレッドシートアプリケーションは、データセル74がサポートする参照のタイプを制御するだろう。スプレッドシートアプリケーション22は、多次元データセル74内における複数のタイプの多次元データ参照をサポートするだろう。例えば、多次元データセル74は、詳細に上述されているように、企業計画システム14によって維持されるデータに対する絶対参照または間接参照を含むだろう。
これに加えて、多次元データセル74は、本発明による入力式を含むだろう。この入力式はワークブック70内の隠蔽されたページ上に格納されるだろうし、および、その式の変数に関する値として、ワークブック70、他のワークブック、または、サードパーティシステム等の中の他のデータセルを参照するだろう。例えば、この式は、在庫管理システムの変数の1つとして参照するだろう。
図6は、企業計画システム14によって維持されている多次元データストアを閲覧および操作するためにユーザ12がインタラクションすることが可能な2次元ワークシート環境を提供する、拡張されたスプレッドシートアプリケーション22の例示的な動作を示すフロー図である。最初に、ユーザ12がスプレッドシートアプリケーション22を開く(79)。ユーザ12が、すでに「計画可能(planning−enabled)」であるワークブックを開く(80)場合には、そのユーザは、企業計画セッションを行うためにそのワークブックとインタラクションすることが可能である(81)。例えば、ユーザは、そのワークブックが関連付けられているノードに関するコントリビューションデータを入力または査閲するためにそのワークブックとインタラクションするだろう。本明細書で表される場合に、スプレッドシートワークブックが企業計画モデルのノードにすでに関連付けられており、および、そのモデルの関連部分を定義するデータとこれに対応する計画データとがそのネイティブな多次元フォーマット内のモデル内にすでに埋め込まれているという意味で、ワークブックが「計画可能」である。
ユーザ12が自分の現在の計画セッションを終了した後に、そのユーザは自分の作業をローカルに(すなわち、ワークブック自体を保存することによって)保存するか、または、企業計画システム12にログインし(81)、および、そのデータを企業計画システムに保存するだろう(83)。このようにして、ユーザ12は、ワークブック内の計画データを、対応するノードに関して企業計画システム12によって格納されているデータと同期させるだろう。このプロセス中に、ユーザは、さらに、計画データを「サブミット(submit)」し、すなわち、読み取り専用でありかつ査閲の用意が整ったデータとしてそのデータを標識することも選択できる。
しかし、ユーザがスプレッドシートアプリケーションを起動させ、かつ、「計画可能」ワークブックを開かない場合には(79、80)、そのユーザは、そのワークブックのメインメニューツールバーから「ログオン」サブ項目を選択することが可能である。スプレッドシートアプリケーション22はユーザ12から「ログオン」コマンドを受け取り、ユーザ12にログオン情報を要求し、および、ユーザ12を企業計画システム14にログインさせる(84)。制御モジュール24は、例えば、企業計画システム14に関連付けられているウェブサーバとネゴシエートして、ユーザ12によって入力された識別情報を使用してユーザ12を企業計画システム14にログインさせるように、ランタイムエンジン26にコマンドを出すだろう。上述したように、ランタイムエンジン26は、ハイパーテキストトランスファープロトコル(HTTP)によってウェブサーバと通信するだろう。
企業計画システム14にユーザ12をログインさせる時に、スプレッドシートアプリケーション22は、現在ワークブックにユーザが関連付けることができる採用可能なノードをリストするワークフローダイアログをユーザ12に提示する(86)。上述したように、計画可能のスプレッドシートワークブックは、企業計画モデル内の単一のノードに関連付けられるだろう(図5)。スプレッドシートアプリケーション22は、ノードを識別するユーザ12からの入力を受け取り、および、選択されたノードに関する対応するモデルスライスとデータとをダウンロードする(88)。スプレッドシートアプリケーションは、ダウンロードされたモデルスライスとデータとをそのネイティブな多次元フォーマットで保持するように埋め込むために、ワークブック内の適切なワークシートを生成する。
その次に、ユーザ12は、企業計画セッションを行うために新たなワークブックとインタラクションすることが可能である(92)。上述したように、ユーザ12が自分の現在の計画セッションを完了した後に、そのユーザは自分の作業をローカルに保存し、ワークブック内の計画データを、対応するノードに関して企業計画システム12によって記憶されているデータと同期させ、および/または、査閲のためにその計画データをサブミットするだろう(95)。
図7は、ワークブックのデータセルの各々を生成するスプレッドシートアプリケーション22の例示的な動作を示すフロー図である。最初に、スプレッドシートアプリケーションは、データセルが従来のデータセルかまたは多次元データセルであるかを判定する(96)。スプレッドシートアプリケーション22は、参照に基づいてデータセルのタイプを判定することができる。例えば、スプレッドシートアプリケーション22は、ワークシート内に格納されているデータをデータセルが参照する場合には、データセルが従来のスプレッドシートデータセルであると判定するだろう。データセルが多次元データセルではない場合には、スプレッドシートアプリケーション22は、ワークブック内に維持されているデータでそのデータセルを生成する(98)。
しかし、データセルが多次元データセルである場合には、スプレッドシートアプリケーションは、その多次元データセルに関連付けられている入力式が存在するかどうかを判定する(100)。例えば、スプレッドシートアプリケーション22は、入力式が中に維持されている隠蔽されたワークシートにアクセスし、および、その式のいずれかがその特定のデータセルに対応するかどうかを判定するだろう。スプレッドシートアプリケーション22が、データセルに関連付けられている式を識別する場合には、スプレッドシートアプリケーションと、その式の変数に関する値を自動的に検索し(100)、および、結果を得るためにその式を適用する(101)。例えば、スプレッドシートアプリケーションは、ワークブック内の他のデータセルから、他のワークブックのデータセルから、企業計画モデル14から、または、サードパーティシステムから、その式の変数に関する値を検索するだろう。スプレッドシートアプリケーション22は、データセル内の入力式の結果を表示する(107)。一実施形態では、ユーザがこの式を計算するようにスプレッドシートアプリケーション22に命令するまで、この式は計算されない。この場合には、データセルは、次で説明する手法を使用して生成されるだろう。しかし、式が計算されると直ちに、データがその計算結果によってオーバライドされることになる。
データセルに関連付けられている入力式が存在しない場合には、スプレッドシートアプリケーション22は、データセルが絶対参照を使用するかどうかを判定する(102)。データセルが絶対参照を使用する場合には、スプレッドシートアプリケーション22は絶対参照を使用してデータを検索し(104)、および、そのデータをデータセル内に表示する(107)。上述したように、絶対参照は、異なるノードに関連付けられているデータ記憶の場所を指し示すだろう。この場合には、スプレッドシートアプリケーション22は、適切な情報を検索するために、企業計画システム14と通信するだろう。あるいは、この代わりに、ユーザが絶対参照を行ったユーザである場合に、その参照がデータストアのそのユーザの「スライス」を指し示すだろうし、このスライスはそのユーザのコンピューティングデバイス16上にローカルに格納されるだろう。
データセルが絶対参照を使用せず、その代わりに間接参照を使用する場合には、スプレッドシートアプリケーション22は、ユーザに関連付けられているデータストアの次元に沿った場所からデータを検索して(106)、そのデータをデータセル内に表示する(107)。
図8は、ユーザ12がスプレッドシートアプリケーション22を開く時にそのユーザ12に提示されるユーザインタフェース108のスクリーンショットである。図8に示されているように、典型的なExcelユーザインタフェースが、ユーザインタフェース108を生成するために拡張されている。スプレッドシートアプリケーション22は、ユーザ12によって開かれる時に、上述の追加の機能性を提供するためにExcelの従来の機能性を拡張するようにアドイン24をロードする。特に、ユーザインタフェース108は、Excelのメインメニュー内の新たなメニュー109を含む。図8に示されているスクリーンショットでは、新たなメニュー109が「データ」メニューの直ぐ右に挿入され、「コントリビュータ」のラベルが付けられている。新たなメニュー項目109は、「ログオン」を含む幾つかのサブ項目を含み、この「ログオン」は、ユーザ12が、例えばユーザ名とパスワードとを使用して、企業計画システム12に接続することを可能にする。
図9は、ユーザ12が企業計画システム14にログインした後にそのユーザ12に提示されるユーザインタフェース110のスクリーンショットである。ユーザインタフェース110は、企業計画システム12によって決定されるユーザ12にとってアクセス可能なノードをリストするワークフロー図112をユーザ12に提示する。図9に示されている例では、ユーザ12は2つのノードB1、B2にアクセスするだろう。ノードB1とノードB2は、そのユーザが認可されている企業計画モデル内のノードであり、および、この例では、異なるプロフィットセンターに関連付けられている。ユーザ12は、現在のスプレッドシートワークブックの中にロードされることが可能なノードの1つを選択する。ワークフロー図112は、さらに、注釈と指示とを含む詳細事項セクションを含むことができる。図9に示されている例では、この詳細事項セクションは、プランの期限が金曜日に来ることを表示するユーザ指示を含む。
図10は、選択されたノードを現在ワークブックの中にロードする時にユーザ12に提示されるユーザインタフェース120のスクリーンショットである。ユーザインタフェース120は、図2のデータキューブ36内の多次元データを閲覧および編集するために、ユーザ12に対してExcelワークブックを提示する。ユーザインタフェース120は、新たなユーザ定義ツールバー122A−122C(集合的に「ツールバー122」)を含む。ツールバー122Aは、ワークブックをローカルに保存するための、および、ワークブック内の多次元データを企業計画システム14の中に再び保存するための「保存」ボタンと、多次元データを企業計画システム14に送り、および、閲覧のためにその多次元データをロックするための「送る」ボタンと、ノードをオフラインにするための「オフライン作業(Work Offline)」ボタンと、多次元プリントを行うための「プリント」ボタンとのような、機能を行うための幾つかのボタンをユーザ12に提供する。
ツールバー122Bは、コストセンタと、ワークブックのバージョンと、ワークシートの中へのビューの次元との切り替えのようなオリエンテーション機能を行うための幾つかのボタンを提供する。ツールバー122Cは、多次元セルに関する入力式を生成および編集するためのインタフェースをユーザ12に提供する式ツールバーである。ツールバー122Cは、関連付けられている多次元セルの式と、多次元式を実行するための幾つかのボタンと、多次元式を削除するための幾つかのボタンとを表示するための式表示を含む。ユーザ12は、単一の多次元式、キューブ内のすべての多次元式、または、モデルの多次元式のすべて(例えば、キューブのすべて)を実行するためにツールバー122Cを使用するだろう。
ユーザインタフェース120がワークブックの最下部の付近の幾つかのタブ124を含む。図10に示されている例では、これらのタブは、「製品価格および原価」タブ、(閲覧されている現在のワークシートである)「損益計算書」タブ、「費用」タブ、および、幾つかの他のタブを含む。上述したように、これらのタブの各々は、異なるデータキューブ36に関連付けられているワークシートに対応する。図10には示されていないが、ユーザ12から隠蔽されている幾つかのワークシートが存在する。隠蔽されたワークシートは、関連付けられたタブを持たず、および、典型的なユーザ12にとってアクセス不可能である。上述したように、これらの隠蔽されたワークシートは、入力式を格納するために、および、Excelワークブックのワークシートのためのフォーマッティングを実現するために使用される。
図10に示されている「損益計算書」ワークシートは構造化されて、ゾーン126A、126B(集合的に「ゾーン126」)内においてユーザ12に提示される。ゾーン126Aは多次元データセルのための複数を含む多次元ゾーンを含み、および、ゾーン126Bは、複数の従来のExcelセルを含むExcelゾーンを含む。ゾーン126は、視覚的な標識を使用してユーザ12に提示される。図10に示されている例では、ゾーン126は、変色、テキスト色、境界線等を使用してユーザ12に提示されている。特に、多次元情報ゾーン、すなわち、ゾーン126Aは、灰色のバックグラウンドを有する幾つかの多次元データセルを含む。他方では、ゾーン126BのExcelデータセルが白色のバックグラウンドを有する。このようにして、インタフェース120は、ユーザ12がゾーンを容易に区別することを可能にする仕方でユーザ12に対してワークシートを提示する。上述したように、スプレッドシートアプリケーション22(図1)は、モデル変化(例えば、放棄または追加された項目)とゾーン126のセルとの他のインタラクションとに関する異なる制御ルールのような、ゾーン26の各々に関する異なる組の制御ルールを有するだろう。
図11は、拡張されたスプレッドシートアプリケーション22内のマウスの右クリックに応答してユーザ12に提示されるユーザインタフェース130のスクリーンショットである。図11に示されているように、ユーザインタフェース130は、「コントリビュータ」と呼ばれる右クリック機能性におけるユーザ定義オプションを含む。幾つかの実施形態では、この同じ機能性が、新たなメインメニュー項目102(図8)のような異なるメニュー場所にも見出されるだろう。この右クリック機能性は「場所をコピーする(Copy Location)」サブ項目および「相対場所をコピーする(Copy Relative Location)」サブ項目を含む。これらのサブ項目は特定のタイプの多次元参照に対応する。例えば、「場所をコピーする」は絶対参照に対応し、および、「相対場所をコピーする」は間接参照に対応する。
図12は、多次元データセルに関連付けられている多次元参照142を表示する含むユーザインタフェース140のスクリーンショットである。図12に示されている例では、多次元参照は、列A/行2に位置しているデータセル内に表示されている値を求める絶対参照である。多次元参照142はCcellで開始し、これは多次元データセルとしてそのデータセルを識別する。多次元参照142は、現在ノード「B1プロフィットセンター」に関するデータキューブ「損益計算書」を参照する。その次に、この参照はパラメータの対を指定する。各々の対は次元とその次元に沿った項目とをそれぞれに記述する。この例では、多次元参照142によって参照される次元は「歴月」と「バージョン」とを含む。選択された歴月とバージョンは「03年1月」と「予算バージョン1」である。
上述したように、スプレッドシートアプリケーション22は、さらに、スプレッドシートアプリケーションを使用する特定のユーザに依存している間接参照をサポートする。間接参照は、ノードを指定するためのパラメータが空白のまま残されており、すなわち、「」、これは、参照が特定のモデルノードに関連付けられていないということを示すということを除いて、絶対多次元参照142と類似しているように見える。この結果として、データが、どんなノードもワークブックに関連付けられている、から検索される。
図13は、ユーザ12が幾つかの更新オプション152を提示されるユーザインタフェース150のスクリーンショットである。更新オプション152は、多次元データに対するオフスクリーンのExcel参照を手動でリフレッシュする能力と、共通のページ次元を手動で同期させる能力とを含む。
本発明の様々な実施形態が説明されてきた。これらの実施形態と他の実施形態とが後述の特許請求項の範囲内に含まれている。