Oracle
 sql >> Database >  >> RDS >> Oracle

Conversione di Oracle Reports (.rdf) in report BIRT

Una soluzione completamente automatizzata probabilmente non è possibile. Puoi automatizzare parzialmente il processo di conversione come segue:

  1. Convertire i file RDF in XML.
  2. Estrai la query del rapporto.
  3. Convertire l'XML in BIRT (o JRXML) utilizzando XSLT.

Conversione XML

Il primo passo è abbastanza semplice, usando 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

Estrazione

Anche il secondo passaggio è relativamente semplice, utilizzando starlet (rinominare xml.exe su starlet.exe per evitare conflitti con xml.exe di Oracle ):

starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml

Puoi anche usare xmllint, ma include il select e CDATA elementi, che dovresti analizzare separatamente:

xmllint --xpath /report/data/dataSource/select filename.rdf.xml

Conversione del formato

Il terzo passo è impegnativo. Crea un modello XSL che legga i layout RDF (ad es. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" /> ). Quindi converti quei layout nel formato corrispondente utilizzato dal motore di report di destinazione (come BIRT o JasperReports).

Non otterresti una soluzione al 100%, ma una soluzione all'80% potrebbe ridurre significativamente la quantità di lavoro monotono e soggetto a errori necessario per convertire i rapporti.