Une solution entièrement automatisée n'est probablement pas possible. Vous pouvez partiellement automatiser le processus de conversion comme suit :
- Convertir les fichiers RDF en XML.
- Extraire la requête du rapport.
- Convertir le XML en BIRT (ou JRXML) à l'aide de XSLT.
Conversion XML
La première étape est assez simple, en utilisant 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
Extraction
La deuxième étape est également relativement facile, en utilisant starlet
(renommer xml.exe
vers starlet.exe
pour éviter les conflits avec le xml.exe
d'Oracle ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Vous pouvez également utiliser xmllint, mais il inclut le select
et CDATA
éléments, que vous devrez analyser séparément :
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Conversion de formats
La troisième étape est difficile. Créez un modèle XSL qui lit les mises en page RDF (par exemple, <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Convertissez ensuite ces mises en page au format correspondant utilisé par le moteur de rapport de destination (tel que BIRT ou JasperReports).
Vous n'obtiendriez pas une solution à 100 %, mais une solution à 80 % pourrait réduire considérablement la quantité de travail monotone et sujet aux erreurs nécessaire pour convertir les rapports.