Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Convertendo Oracle Reports (.rdf) em relatórios BIRT


Uma solução totalmente automatizada provavelmente não é possível. Você pode automatizar parcialmente o processo de conversão da seguinte forma:
  1. Converta os arquivos RDF em XML.
  2. Extraia a consulta do relatório.
  3. Converta o XML em BIRT (ou JRXML) usando XSLT.

Conversão XML


O primeiro passo é bastante simples, 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

Extração


A segunda etapa também é relativamente fácil, usando starlet (renomeie xml.exe para starlet.exe para evitar conflitos com o xml.exe da Oracle ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml

Você também pode usar xmllint, mas inclui o select e CDATA elementos, que você teria que analisar separadamente:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml

Conversão de formato


A terceira etapa é desafiadora. Crie um modelo XSL que leia os layouts RDF (por exemplo, <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" /> ). Em seguida, converta esses layouts para o formato correspondente usado pelo mecanismo de relatório de destino (como BIRT ou JasperReports).

Você não obteria uma solução 100%, mas uma solução 80% poderia reduzir significativamente a quantidade de trabalho monótono e propenso a erros necessário para converter os relatórios.