完全に自動化されたソリューションはおそらく不可能です。次のように、変換プロセスを部分的に自動化できます。
- RDFファイルをXMLに変換します。
- レポートクエリを抽出します。
- XSLTを使用してXMLをBIRT(またはJRXML)に変換します。
XML変換
最初のステップは、Cygwinを使用した非常に簡単です:
cd /path/to/reports/
mkdir xml
for i in *.rdf; do
rwconverter.exe batch=yes source="$i" dest=xml/"$i".xml dtype=xmlfile \
userid=scott/[email protected]
done
抽出
starlet
を使用すると、2番目のステップも比較的簡単です。 (xml.exe
の名前を変更します starlet.exe
へ Oracleのxml.exe
との競合を回避するため ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
xmllintを使用することもできますが、select
が含まれています およびCDATA
個別に解析する必要がある要素:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
フォーマット変換
3番目のステップは挑戦的です。 RDFレイアウトを読み取るXSLテンプレートを作成します(例:<displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
)。次に、これらのレイアウトを、宛先レポートエンジンで使用される対応する形式(BIRTやJasperReportsなど)に変換します。
100%のソリューションは得られませんが、80%のソリューションを使用すると、レポートの変換に必要な単調でエラーが発生しやすい作業の量を大幅に減らすことができます。