Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertieren von Oracle-Berichten (.rdf) in BIRT-Berichte

Eine vollautomatisierte Lösung ist wohl nicht möglich. Sie können den Konvertierungsprozess wie folgt teilweise automatisieren:

  1. Konvertieren Sie die RDF-Dateien in XML.
  2. Extrahieren Sie die Berichtsabfrage.
  3. 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.