Una soluzione completamente automatizzata probabilmente non è possibile. Puoi automatizzare parzialmente il processo di conversione come segue:
- Convertire i file RDF in XML.
- Estrai la query del rapporto.
- 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.