W pełni zautomatyzowane rozwiązanie prawdopodobnie nie jest możliwe. Możesz częściowo zautomatyzować proces konwersji w następujący sposób:
- Konwertuj pliki RDF na XML.
- Wyodrębnij zapytanie raportu.
- Konwertuj XML na BIRT (lub JRXML) za pomocą XSLT.
Konwersja XML
Pierwszy krok jest dość prosty, używając 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
Ekstrakcja
Drugi krok jest również stosunkowo łatwy, używając starlet
(zmień nazwę xml.exe
do starlet.exe
aby uniknąć konfliktów z xml.exe
Oracle ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Możesz także użyć xmllint, ale zawiera on select
i CDATA
elementy, które musiałbyś przeanalizować osobno:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Konwersja formatu
Trzeci krok jest trudny. Utwórz szablon XSL, który odczytuje układy RDF (np. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Następnie przekonwertuj te układy na odpowiedni format używany przez docelowy aparat raportowania (taki jak BIRT lub JasperReports).
Nie dostaniesz 100% rozwiązania, ale 80% rozwiązanie może znacznie zmniejszyć ilość monotonnej, podatnej na błędy pracy wymaganej do konwersji raportów.