Cisco UCS Director Open Automation 開発者ガイド、リリース 4.1
独自のレポートの開発
独自のレポートの開発
発行日;2014/02/05   |   ドキュメントご利用ガイド   |   ダウンロード ;   この章 pdf   ,   ドキュメント全体 pdf    |   フィードバック

独自のレポートの開発

この章は、次の内容で構成されています。

レポートの概要

独自のレポートを開発する方法は 2 つあります。 最も簡単な方法は、Plain Old Java Object(POJO)と注釈を使用する手法です。 さらに高度な手法としては、TabularReportGeneratorIf インターフェイスをプログラムによって実装する方法があります。

POJO ベースのレポートは、次のクラスを使用して開発できます。
  • CloupiaEasyReportWithActions
  • CloupiaEasyDrillableReport
プログラムによるレポートを開発するには、次のクラスを使用します。
  • CloupiaReportWithActions
  • DrillableReportWithActions

レポートを開発する際は、POJO ベースの手法を使うか、プログラムによってレポートを生成するかを決定する必要があります。 また、ドリル ダウン レポート(POJO とプログラムによる手法のいずれでも可能)を含めるかどうかも決定する必要があります。

POJO と注釈を使用したレポートの開発

レポートを開発する最も簡単な方法は、持続性のために開発した JDO POJO を使用し、何らかの注釈を追加する方法です。 このレポートはユーザ インターフェイス(UI)に表示されます。 一般に、データベースに持続的に存在させるデータは、UI に表示させるデータでもあります。

はじめる前に

レポート データ ソースの POJO の例として、サンプル コードの com.cloupia.feature.foo.inventory.model.DummyInterface を参照してください。

手順
    ステップ 1   データ ソースの POJO は、com.cloupia.service.cIM.inframgr.reports.simplified.ReportableIf インターフェイスを実装する必要があります。

    ReportableIf インターフェイスには、述語を返し、レポートに表示しない POJO のインスタンスをフィルタで除外するためにフレームワークによって使用される、getInstanceQuery メソッドを使用する必要があります。

    ステップ 2   レポートに表示する POJO のフィールドごとに、@ReportField 注釈を使用して、レポートに含めるフィールドとしてマーキングします。 この注釈は、int、String などのプリミティブ型のみをサポートします。

    例:
    @ReportField(label = "Name")
    @Persistent
    private String name;
    
    @ReportField(label = "Size")
    @Persistent
    private String size;

    サンプル コードの com.cloupia.feature.foo.inventory.model.DummyInterface を参照して、レポート データ ソースの POJO の例を確認してください。 POJO が準備できたら、これをデータ ソースとして参照できます。

    ステップ 3   com.cloupia.service.cIM.inframgr.reports.simplified.CloupiaEasyReportWithActions を拡張します。

    レポート名(このレポートを一意に識別する何らかの文字列)、このレポートのラベル(ユーザに表示される)、およびデータ ソース(作成した POJO)を指定する必要があります。

    例として、com.cloupia.feature.foo.reports.DummyInterfacesReport を参照してください。


    TabularReportGeneratorIf の使用

    レポートへのデータの表示方法をさらにきめ細かく制御する必要がある場合、このインターフェイスを実装します。 ReportContext オブジェクトと、具体的にレポート コンテキストの ID を使用して、取得するデータとそのフィルタ方法を決定します。


    ヒント


    レポート コンテキスト ID と、その使用方法を示す関連情報にアクセスできることを確認するには、レポート コンテキストを記録します。 ロガーを使用し、レポート コンテキスト ID を出力した後、ログに目を通してそのコンテキスト ID の値を確認します。


    表示するすべてのデータを含む TabularReportInternalModel のインスタンスを作成するには、次のステップを実行します。

    はじめる前に

    例として、com.cloupia.feature.foo.reports.DummyVLANsReport、および com.cloupia.feature.foo.reports.DummyVLANsReportImpl を参照してください。

    手順
      ステップ 1   TabularReportInternalModel を作成します。 ヘッダーにデータを移入し、各列のテキスト値を追加して行に表示させます。
      ステップ 2   com.cloupia.service.cIM.inframgr.reports.simplified.CloupiaReportWithActions を拡張します。
      1. データ ソースの実装を指定します。
      2. isEasyReport() が false を返すことを確認します。

      次の作業

      実装が完了したら、レポートのデータ ソースとして使用できます。

      ドリル可能なレポート

      他のレポート内にネストされたレポートを開発できます。

      そのようなレポートを作成する手順は、次のとおりです。

      • レポートのデータ ソースが、POJO と注釈の手法を使用して実装されている場合、そのレポートは com.cloupia.service.cIM.inframgr.reports.simplified.CloupiaEasyDrillableReport を拡張する必要があります。
      • レポートのデータ ソースが、TabularReportGeneratorIf を使用して実装されている場合、そのレポートは com.cloupia.service.cIM.inframgr.reports.simplified.DrillableReportWithActions を拡張する必要があります。

      どちらのクラスの場合も、ユーザがベース レポートをドリル ダウンすると表示されるレポートのインスタンスを指定する必要があります。

      重要:

      getDrillDownReports() が呼び出されるたびに、同じインスタンスが返される必要があります。 このメソッドを使用するごとに新規インスタンスを返さないようにしてください。 com.cloupia.feature.foo.reports.DummyAccountMgmtReport の場合のように、レポートの配列を初期化して、それらをメンバー変数として宣言する必要があります。

      レポートの登録

      独自のインベントリ コレクタを開発する最後のステップは、AbstractCloupiaModule で開発したすべてのコンポーネントを登録することです。

      具体的には、getCollectors()getReports() を実装する必要があります。 レポートと、コレクタおよびレポートの新規インスタンスをインスタンス化して返すと、システムに登録できます。

      はじめる前に

      独自のインベントリ収集コンポーネントとアカウント管理レポートをすでに実装している必要があります。