ILOG Elixir

IBM ILOG Elixir:FlexあるいはAIRでMicrosoft Projectのスケジュールをガントチャートで表示する

2009-08-20 08:00:00

 IBM ILOG Elixir 2.0は(こちらから入手できる)では、タスク・ガントチャートの表示を行うための、新たなカスタムFlexコンポーネントが導入されている。当記事の主題は、MS Projectのスケジュールの出力をIBM ILOG Elixirを使って読み込み、Flex(あるいはAIR)アプリケーションで表示する方法を説明することだ。

 これを行うには、次のような手順が必要になる。

  1. MS ProjectのデータをXML形式で用意する。Flexでは、バイナリ形式よりもこちらの方がはるかに読みやすい。これは基本的に、スケジュールをMS Project形式で保存するということを意味する。
  2. FlexアプリケーションまたはAIRアプリケーションに、コンポーネントを追加する。
  3. 使いたいFlex API(embedding、URLLoaderなど)を用いて、アプリケーションにそのXMLを読み込む。
  4. 最後に、E4Xを用いてXMLから情報を取り出し、TaskChartに次の情報を投入する。
    • 作業の情報
    • 制約の情報(どの作業の前にどの作業を完了させる必要があるか)

 例えば、以下のFlexアプリケーションでは、Human Resources interview plan.xml(zipファイル)というMS Projectのファイルを表示している。

 4番目の手順は興味深いものだ。やや注意が必要なのは、Flexの階層的なデータではよくある話だが、IBM ILOG ElixirのTaskChartでは、データが元々階層的な形になっていることを想定しているということだ(例えばXMLデータについては、階層の中の子はXMLとしても親ノードの子の形になっていることを想定している)。しかし、MS ProjectのXML形式ファイルでは、すべての作業をフラットな形で表現している。これが、MS Projectファイルの読み込みに、MSProjcetHierarchicalDataという独自のIHierarchicalDataの実装が関係してくる理由だ。これらはすべて、こちらから入手できるFlex Builderプロジェクトで見ることができる。このプロジェクトをコンパイルするには、IBM ILOG Elixir 2.0が必要になる。

 ここで示したコードでは、MS Projectファイルに含まれている情報の一部分しか利用していない。しかし、基本的なものは含まれているため、時間を取ってこれを拡張していくのは容易なはずだ。現在、利用されているMS Projectのプロパティは以下のものだ。

  • 開始日と終了日(作業レイアウト)
  • マイルストーンとサマリ(タスクタイプ)
  • 名前(DataGridおよびGanttSheetの中で表示する)
  • タイプ(制約タイプ)
  • アウトラインレベルおよびアウトライン番号(階層の作成に使用)
  • クリティカル(上の例で分かるとおり、クリティカル・タスクには赤い枠が付く)

 次にやるべきことは、PercentCompleteの情報を使い、IBM ILOG Elixirのタスクアイテムレンダラーでタスクの進行状況に関する情報を表示することだろう。このプロジェクトをスタート地点とし、MS Projectのデータから好きな情報を利用して、タスク・ガントチャート・コンポーネントを使ってより複雑な情報を表示させることができる。

アップデート:

 この記事に掲載したFlex Builderプロジェクトのコードは、階層の計算と日付の構文解析の2つのバグを修正するために更新されている。われわれのプログラムを試して問題を発見してくれた、ILOGの社内アプリケーション開発チームに感謝する。

IBM ILOG Elixirについての詳細は、http://www.ilog.co.jp/product/visu/ilogelixir/をご覧ください。

 


原文へ

 

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]