高度なカスタマイズ > ビジネスロジックのカスタマイズ > レポートの生成 > Info*Engine タスクデータソースのレポートのカスタマイズ
Info*Engine タスクデータソースのレポートのカスタマイズ
目的
レポートで使用する、プログラムによる新しい Windchill データ読み込みタスクを作成します。
バックグラウンド
Windchill Business Reporting (WBR) ソリューションでは、データソースオブジェクトを使用して Windchill からデータを読み込みます。データソースのタイプの 1 つは、Info*Engine タスクです。Info*Engine タスクは、プログラム構文を使用して Windchill データの読み込みと操作を行うテキストベースのドキュメントです。このタスクは、テーブルフォーマットでデータを返す必要があります (各要素の属性の数が同じである必要があります)。また、このタスクを特殊なタグと構文でコメント化して、WBR データソースとして定義する必要があります。
範囲/適用可能性/前提条件
レポートタスク作成メカニズムは Jasper レポートの統合にのみ有効です。
このマニュアルでは、Info*Engine タスクを構築する方法については説明していません。詳細については、Info*Engine ユーザーガイドのセクションを参照してください。
予測される結果
このソリューションでは、最終結果として、Jasper レポートの作成に使用可能なデータソースが作成されます。
ソリューション
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
6. <マイタスク> のパッケージを作成してインストールします。Info*Engine パッケージを参照してください。
カスタマイズポイント
手順 - 別のタイプでの 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 タスクデータソースの作成手順のステップ 5 で、typeId の .delegateInfo エントリによって "myPackage.MyReportTask" が指定されます。
手順 - Info*Engine タスクデータソースの削除
不要になった Info*Engine タスクデータソースは、Windchill から削除することによってシステムから除去できます。また、タスクコメントをデータソースとして認識されないように除去できます。
タスクを除去するには、パッケージをアンインストールして、XML ファイルをタスクディレクトリから除去します。
制限事項
.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 データソースのカスタマイズ
関連パッケージ/クラスの Javadoc
レポートモジュール
com.ptc.windchill.enterprise.report
関連カスタマイズドキュメント
なし
その他の関連 Windchill ドキュメント
これは役に立ちましたか?