Một giải pháp hoàn toàn tự động có lẽ là không thể. Bạn có thể tự động hóa một phần quá trình chuyển đổi như sau:
- Chuyển đổi tệp RDF sang XML.
- Trích xuất truy vấn báo cáo.
- Chuyển đổi XML thành BIRT (hoặc JRXML) bằng XSLT.
Chuyển đổi XML
Bước đầu tiên khá đơn giản, sử dụng 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
Trích xuất
Bước thứ hai cũng tương đối dễ dàng, sử dụng starlet
(đổi tên xml.exe
sang starlet.exe
để tránh xung đột với xml.exe
của Oracle ):
starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml
Bạn cũng có thể sử dụng xmllint, nhưng nó bao gồm select
và CDATA
các phần tử mà bạn phải phân tích cú pháp riêng:
xmllint --xpath /report/data/dataSource/select filename.rdf.xml
Chuyển đổi định dạng
Bước thứ ba là thử thách. Tạo mẫu XSL đọc bố cục RDF (ví dụ:<displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />
). Sau đó, chuyển đổi các bố cục đó sang định dạng tương ứng được sử dụng bởi công cụ báo cáo đích (chẳng hạn như BIRT hoặc JasperReports).
Bạn sẽ không nhận được giải pháp 100%, nhưng giải pháp 80% có thể giảm đáng kể số lượng công việc đơn điệu, dễ xảy ra lỗi cần thiết để chuyển đổi báo cáo.