sql >> Database >  >> RDS >> Oracle

Oracle Reports (.rdf) converteren naar BIRT-rapporten

Een volledig geautomatiseerde oplossing is waarschijnlijk niet mogelijk. U kunt het conversieproces als volgt gedeeltelijk automatiseren:

  1. Converteer de RDF-bestanden naar XML.
  2. De rapportquery uitpakken.
  3. 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.



  1. toegang geweigerd voor gebruiker @ 'localhost' tot database ''

  2. Goroutines geblokkeerde verbindingspool

  3. Hoe de gegevens in een Oracle-tabel te herstellen?

  4. Wat is het LEN()-equivalent in MySQL?