Uma solução totalmente automatizada provavelmente não é possível. Você pode automatizar parcialmente o processo de conversão da seguinte forma:
- Converta os arquivos RDF em XML.
- Extraia a consulta do relatório.
- 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.