En helautomatiserad lösning är troligen inte möjlig. Du kan delvis automatisera konverteringsprocessen enligt följande:
- Konvertera RDF-filerna till XML.
- Extrahera rapportfrågan.
- Konvertera XML till BIRT (eller JRXML) med XSLT.
XML-konvertering
Det första steget är ganska enkelt, med 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
Extraktion
Det andra steget är också relativt enkelt, med starlet
(byt namn på xml.exe
till starlet.exe
för att undvika konflikter med Oracles xml.exe
):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Du kan också använda xmllint, men det inkluderar select
och CDATA
element, som du måste analysera separat:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Formatkonvertering
Det tredje steget är utmanande. Skapa en XSL-mall som läser RDF-layouterna (t.ex. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Konvertera sedan dessa layouter till motsvarande format som används av målrapportmotorn (som BIRT eller JasperReports).
Du skulle inte få en 100 % lösning, men en 80 % lösning kan avsevärt minska mängden monotont, felbenäget arbete som krävs för att konvertera rapporterna.