En fuldautomatisk løsning er sandsynligvis ikke mulig. Du kan delvist automatisere konverteringsprocessen som følger:
- Konverter RDF-filerne til XML.
- Udtræk rapportforespørgslen.
- Konverter XML til BIRT (eller JRXML) ved hjælp af XSLT.
XML-konvertering
Det første trin er ret simpelt ved at bruge 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
Udtrækning
Det andet trin er også relativt nemt ved at bruge starlet
(omdøb xml.exe
til starlet.exe
for at undgå konflikter med Oracles xml.exe
):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Du kan også bruge xmllint, men det inkluderer select
og CDATA
elementer, som du skal parse separat:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Formatkonvertering
Det tredje trin er udfordrende. Opret en XSL-skabelon, der læser RDF-layouterne (f.eks. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Konverter derefter disse layouts til det tilsvarende format, der bruges af destinationsrapportmotoren (såsom BIRT eller JasperReports).
Du ville ikke få en 100 % løsning, men en 80 % løsning kunne betydeligt reducere mængden af monotont, fejlbehæftet arbejde, der kræves for at konvertere rapporterne.