Напълно автоматизирано решение вероятно не е възможно. Можете частично да автоматизирате процеса на конвертиране, както следва:
- Конвертирайте RDF файловете в XML.
- Извличане на заявката за отчет.
- Конвертирайте XML в BIRT (или JRXML) с помощта на XSLT.
XML преобразуване
Първата стъпка е доста проста, използвайки 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
Извличане
Втората стъпка също е относително лесна, използвайки starlet
(преименувайте xml.exe
към starlet.exe
за да избегнете конфликти с xml.exe
на Oracle ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Можете също да използвате xmllint, но той включва select
и CDATA
елементи, които ще трябва да анализирате отделно:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Преобразуване на формат
Третата стъпка е предизвикателна. Създайте XSL шаблон, който чете RDF оформленията (напр. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). След това преобразувайте тези оформления в съответния формат, използван от машината за целеви отчети (като BIRT или JasperReports).
Няма да получите 100% решение, но 80% решение би могло значително да намали количеството монотонна, податлива на грешки работа, необходима за преобразуване на отчетите.