Een volledig geautomatiseerde oplossing is waarschijnlijk niet mogelijk. U kunt het conversieproces als volgt gedeeltelijk automatiseren:
- Converteer de RDF-bestanden naar XML.
- De rapportquery uitpakken.
- Converteer de XML naar BIRT (of JRXML) met XSLT.
XML-conversie
De eerste stap is vrij eenvoudig met 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
Extractie
De tweede stap is ook relatief eenvoudig, met behulp van starlet
(hernoem xml.exe
naar starlet.exe
om conflicten met xml.exe
van Oracle te vermijden ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Je kunt ook xmllint gebruiken, maar het bevat de select
en CDATA
elementen, die u apart zou moeten ontleden:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Conversie opmaken
De derde stap is uitdagend. Maak een XSL-sjabloon die de RDF-lay-outs leest (bijv. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Converteer die lay-outs vervolgens naar de overeenkomstige indeling die wordt gebruikt door de engine voor bestemmingsrapporten (zoals BIRT of JasperReports).
Je zou geen 100% oplossing krijgen, maar een 80% oplossing zou de hoeveelheid eentonig, foutgevoelig werk dat nodig is om de rapporten te converteren aanzienlijk kunnen verminderen.