Info*Engine タスクデータソースのレポートのカスタマイズ
目的
レポートで使用する、プログラムによる新しい Windchill データ読み込みタスクを作成します。
バックグラウンド
Windchill Business Reporting (WBR) ソリューションでは、データソースオブジェクトを使用して Windchill からデータを読み込みます。データソースのタイプの 1 つは、Info*Engine タスクです。Info*Engine タスクは、プログラム構文を使用して Windchill データの読み込みと操作を行うテキストベースのドキュメントです。このタスクは、テーブルフォーマットでデータを返す必要があります (各要素の属性の数が同じである必要があります)。また、このタスクを特殊なタグと構文でコメント化して、WBR データソースとして定義する必要があります。
範囲/適用可能性/前提条件
このマニュアルでは、Windchill Business Reporting (WBR) ソリューション (Cognos など) が正常にインストールおよび設定されていることを前提としています。Windchill のインスタンス名は <Windchill インスタンス名> です。Cognos のルート URL は <WBR_ホーム_URL> です。通常、WBR ソリューションが <WBR ホスト> にインストールされている場合、<WBR_ホーム_URL> は http://<WBR ホスト>/cognos8/cgi-bin/cognos.cgi になります。<WBR_ホーム_URL> にログインでき、Windchill データソースオブジェクトを表示してレポートを作成する Cognos 権限があることを前提とします。
Windchill サーバータスクディレクトリ <Windchill_ホーム>/tasks へのアクセス権があり、サブディレクトリ <マイタスクパッケージ> で Info*Engine タスク <マイタスク> を作成することを前提とします。
WBR 統合では、レポートメタモデルを更新するためのアクセス権限も必要です。
このマニュアルでは、
Info*Engine タスクを構築する方法については説明していません。詳細については、
Info*Engine ユーザーガイドのセクションを参照してください。
予測される結果
このソリューションの最終結果は、Cognos レポートの作成に使用できるデータソースの作成です。
ソリューション
Info*Engine タスクデータソースを構築します。
手順 - Info*Engine タスクデータソースの作成
1. <Windchill_ホーム>/tasks/<マイタスクパッケージ> で Info*Engine タスクの XML ファイルを作成します。
2. テーブルフォーマットで結果を返すレポートタスクを記述します。これは、特定の追加規則に従う、ほかの点では通常の Info*Engine タスクです。まず、各列に同じタイプのオブジェクトがあるテーブルグループが返されます。使用可能な列タイプは以下のとおりです。
◦ java.lang.Boolean
◦ java.lang.Long
◦ java.lang.String
◦ java.sql.Timestamp
◦ java.util.Date
◦ java.lang.Double
◦ com.ptc.core.meta.common.FloatingPoint
◦ com.ptc.core.meta.common.Hyperlink
◦ java.math.BigDecimal
3. WBR データソースパラメータ情報をタスクコメントに追加します。パラメータコメントは 0 個以上にすることができます。指定する各パラメータは、1 行に収める必要があります。パラメータコメントの構文は以下のとおりです。
@param <type> <name> <description>
ここで、<タイプ> はパラメータの Java タイプ、<名前> はパラメータの名前、<説明> はパラメータの説明です。使用可能なパラメータタイプは以下のとおりです。
◦ java.lang.Boolean
◦ java.lang.Long
◦ java.lang.String
◦ java.sql.Timestamp
◦ java.util.Date
◦ java.lang.Double
◦ java.math.BigDecimal
4. WBR データソース列情報を "return" タスクコメントに追加します。列情報は、このタスクがデータソースと見なされるように適切なフォーマットで指定する必要があります。列コメントの構文は以下のとおりです。
@return <type> ${<variableName>} {columns: <columnList>}
ここで、<type> は Info*Engine タスクの出力タイプ、<variableName> は返されるタスク変数への参照、<columnList> は出力のテーブルフォーマットの説明です。<type> と {<variableName>} の詳細については、
Windchill ヘルプセンター の
SOAP による Infor*Engine タスク呼び出しのセクションを参照してください。列は、テーブル出力の各列について 1 つまたは複数のタイプおよび名前のペアをコンマで区切ったリストです。タイプと名前は空白で区切られます。使用可能な列タイプは以下のとおりです。
◦ java.lang.Boolean
◦ java.lang.Long
◦ java.lang.String
◦ java.sql.Timestamp
◦ java.util.Date
◦ java.lang.Double
◦ com.ptc.core.meta.common.FloatingPoint
◦ com.ptc.core.meta.common.Hyperlink
◦ java.math.BigDecimal
5. タスクをメソッドとして ReportTask タイプに追加します。タスクファイルと同じディレクトリに、".delegateInfo" という名前のファイルを作成します。ファイルには以下の 2 行を含める必要があります。
repositoryType=com.ptc.windchill
typeId=com.ptc.windchill.enterprise.report.ReportTask
7. Cognos モデルを更新して、この新しいデータソースを認識します。インストールされている Windchill のショートカットから JConsole を起動します。Embedded Servlet Engine (Tomcat ベース) JVM インスタンスに接続します。「MBeans」タブで「com.ptc」 > 「Monitors」 > 「ReportingSystem」の順に選択して、レポート管理ビーンを選択します。「Operations」タブで「updateModel」をクリックします。
8. Cognos にデータソースが存在することを確認します。<WBR_ホーム_URL> を使用して Cognos にログインし、"Report Studio" を起動します。「Insertable Objects」ウィンドウの「Source」タブの「Windchill」 > 「Report Tasks」 > 「com.ptc.windchill.enterprise.report.ReportTask」の下で、<マイタスク> データソースを見つけます。
以下は、データソースのタスクコメントの例です。
<!--com.infoengine.soap.rpc.def
Report Task Example.
@param java.lang.String param1 A string parameter named param1.
@param java.lang.Long param2 A numeric parameter named param2.
@return INFOENGINE_GROUP ${out} {columns: java.lang.String
name, com.ptc.core.meta.common.Hyperlink url, java.util.Date
deadline, java.math.BigDecimal duration}
-->
カスタマイズポイント
手順 - 別のタイプでの Info*Engine タスクデータソースの作成
前述の基本手順では、デフォルトのレポートタイプ com.ptc.windchill.enterprise.report.ReportTask を使用して Info*Engine タスクが作成されました。このタイプは、「Source」タブの「Windchill」 > 「Report Tasks」 > 「com.ptc.windchill.enterprise.report.ReportTask」レベルに関連付けられています。レポートタスクタイプは、データソースを論理的にグループ化するために使用できます。基本手順に準じる手法として、別のタイプ "myPackage.MyReportTask" で Info*Engine タスクを作成する方法があります。
1. このタイプは、プロパティ「com.ptc.windchill.enterprise.report.reportTaskClassNames」で指定されたレポートタイプのコンマ区切りリストに追加する必要があります。
2. このプロパティは、Info*Engine タスクデータソースの作成手順のステップ 7 を実行する前に変更する必要があります。
3. Info*Engine タスクデータソースの作成手順のステップ 5 で、typeId の .delegateInfo エントリによって "myPackage.MyReportTask" が指定されます。
4. Info*Engine タスクデータソースの作成手順のステップ 8 で、データソースが「Windchill」 > 「レポートタスク」> 「myPackage.MyReportTask」で使用できるようになります。
手順 - Info*Engine タスクデータソースの削除
必要なくなった Info*Engine タスクデータソースは、Windchill から削除して Cognos モデルを更新することによって、システムから除去できます。また、タスクコメントをデータソースとして認識されないように除去できます。
1. タスクを除去するには、パッケージをアンインストールして、XML ファイルをタスクディレクトリから除去します。
2. 次に、Info*Engine タスクデータソースの作成手順のステップ 3 に従って、Cognos モデルを更新します。
制限事項
.delegateInfo ファイルの typeId は、SOAP クラスにマッピングされます。また、タスクファイル名は、クラス内の SOAP メソッドにマッピングされます。これらの名前には両方とも、Java 識別子として有効な文字のみを使用できます。さらに、すべてのメソッドは特定のクラスに対して一意である必要があります。各タスク名は、特定の typeId に対して一意である必要があります。
サンプルコード
Windchill コードでの使用例
Info*Engine タスクデータソースを使用する定義済みレポートが複数あります。これらのデータソースは、「Source」タブの「Windchill」 > 「Report Tasks」 > 「com.ptc.windchill.enterprise.report.ReportTask」レベルにリストされています。これらのデータソースは、Cognos レポートの作成に使用できます。ただし、関連する Info*Engine タスクの直接修正はサポートされていません。
パッケージ化されたサンプル
デモの Info*Engine タスクデータソース ContextItems は、「Source」タブの「Windchill」 > 「Report Tasks」 > 「com.ptc.windchill.enterprise.report.ReportTask」レベルで使用できます。タスクソースは、<Windchill_ホーム>/tasks/com/ptc/windchill/enterprise/reports/ContextItems.xml にあります。これにより、すべての部品とドキュメントの和集合が指定のコンテキストで読み込まれます。
その他のリソース
関連する最良事例
• レポート - ReportTemplate データソースのカスタマイズ
• レポート - Cognos プレゼンテーションのカスタマイズ
関連パッケージ/クラスの Javadoc
• レポートモジュール
◦ com.ptc.windchill.enterprise.report
関連カスタマイズドキュメント
• なし
その他の関連 Windchill ドキュメント
関連 Web サイト