Eine vollautomatisierte Lösung ist wohl nicht möglich. Sie können den Konvertierungsprozess wie folgt teilweise automatisieren:
- Konvertieren Sie die RDF-Dateien in XML.
- Extrahieren Sie die Berichtsabfrage.
- Konvertieren Sie das XML mit XSLT in BIRT (oder JRXML).
XML-Konvertierung
Der erste Schritt ist ziemlich einfach, mit 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
Auch der zweite Schritt ist mit starlet
relativ einfach (xml.exe
umbenennen zu starlet.exe
um Konflikte mit der xml.exe
von Oracle zu vermeiden ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Sie können auch xmllint verwenden, aber es enthält den select
und CDATA
Elemente, die Sie separat parsen müssten:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Formatkonvertierung
Der dritte Schritt ist herausfordernd. Erstellen Sie eine XSL-Vorlage, die die RDF-Layouts liest (z. B. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Konvertieren Sie diese Layouts dann in das entsprechende Format, das von der Zielberichts-Engine verwendet wird (z. B. BIRT oder JasperReports).
Sie würden keine 100-prozentige Lösung erhalten, aber eine 80-prozentige Lösung könnte den Umfang der monotonen, fehleranfälligen Arbeit, die zum Konvertieren der Berichte erforderlich ist, erheblich reduzieren.