Oracle
 sql >> Base de données >  >> RDS >> Oracle

Conversion de rapports Oracle (.rdf) en rapports BIRT

Une solution entièrement automatisée n'est probablement pas possible. Vous pouvez partiellement automatiser le processus de conversion comme suit :

  1. Convertir les fichiers RDF en XML.
  2. Extraire la requête du rapport.
  3. 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.