Integracja JasperReports Server z aplikacją w Oracle APEX.

12 listopada 2015, Mariusz Skóra

Nadszedł czas aby zintegrować gotowy szablon z aplikacją. Kolejny etap projektu to udostępnienie usługi „drukowanie dokumentu z interfejsu użytkownika”. Na przykładzie prostej aplikacji przygotowanej w technologii Oracle APEX opiszę metodę integracji z JasperReports Server. W artykule znajdziesz informację jak wykorzystać usługę – REST Web Service API.

Ten artykuł jest częścią serii o TIBCO Jaspersoft JasperReports. W celu dostępu do pozostałych artykułów, proszę wybrać odpowiedni z poniższej listy. Lista aktualizowana jest na bieżąco wraz z udostępnianiem kolejnych artykułów. Jeżeli artykuł nie jest dostępny, znaczy to, że jeszcze oczekuje na publikację.

1. Wstęp do JasperReports Server.

2. Jak zrobić prosty szablon faktury. Wstęp do Jaspersoft Studio.

3. Integracja Jaspersoft Studio z JasperReport Server.

4. Integracja JasperReports Server z aplikacją w Oracle APEX.

5. Wydajność i bezpieczeństwo JasperReports Server.

6. Inne metody drukowania dokumentów.

Przygotowanie

Przyszedł moment gdy śmiało można podłączyć przygotowany szablon faktury VAT pod działającą aplikację i zobaczyć efekty naszych starań. Z artykułu dowiesz się w jaki sposób wykorzystać to w swojej aplikacji. Przykłady integracji będą prezentowane w aplikacji stworzonej w Oracle APEX 5.0.

JasperReports Server

Zakładam, że zapoznałeś się z poprzednimi artykułami tej serii materiałów. Powinieneś mieć zainstalowany i skonfigurowany JasperReports Server, a w repozytorium powinien znaleźć się prawidłowy szablon faktury VAT. Poza tym potrzebujesz jeszcze użytkownika invoice, którego możesz dodać do systemu Jasper według instrukcji Jaspersoft.

Login: invoice,

Hasło: invoice,

Rola: ROLE_USER.

Oracle APEX

Przygotowanie danych

W artykule Stwórz własny szablon faktury VAT. Wstęp do Jaspersoft Studio udostępniono schemat użytkownika invoice dla bazy Oracle. Przed kontynuacją lektury tego artykułu zalecam instalację schematu zgodnie z załączoną do niego instrukcją. Znajdują się tam potrzebne struktury i dane drukowane na fakturze.

Przygotowanie aplikacji

W dalszej części przygotowana będzie aplikacja w technologii APEX5. Jeżeli nie posiadasz zainstalowanego APEX na swojej instancji bazy, odwiedź stronę Oracle i pobierz aktualną wersję, zainstaluj, a następnie podążaj za krokami ponizej. W razie problemów z instalacją APEX, zachęcam do lektury dokumentacji na stronie Oracle.

1. Zaloguj się na stronę: http://localhost:port/apex/apex_admin, gdzie zamiast port wpisz odpowiednią wartość.

2. Utwórz nowy Workspace, niech nazywa się np.: INVOCING.

3. Dodaj nowego użytkownika, np.: invoice jako workspace administrator.

4. Zaloguj się na stronie http://localhost:port/apex/ wpisując w formularzu kolejno: INVOICING, invoice, invoice.

Jeżeli poprawnie zalogowałeś się do APEX Buildera, możesz utworzyć nową aplikację lub zaimportować tą którą udostępniam >> tutaj <<

apex-inside

APEX, przykładowa aplikacja wewnątrz Buildera

 

Drukowanie dokumentu

Potrzebujesz jednego procesu PL/SQL pod komponentem Button. Poniżej zamieszczam kod, który po małej modyfikacji powinien zrealizować proces wydruku dokumentu.

Powyższy kod to wywołanie REST Web Service API udostępnianego z Twojego serwera JasperReports. W pierwszej kolejności serwer wymaga uwierzytelnienia (linia 24.) a z tego wynika poniższy kod:

W dalszej cześci następuje wywołanie adresu, który pozwala pobrać dokument ze wskazanego szablonu (linia 32.). Zauważ jak podawany jest numer faktury do parametru invoice_id. W wyniku powstaje adres URL jak poniżej i zwracany jest Oracle BLOB.

Uprawnienia ACL

Powyższy kod nie będzie działać poprawnie jeżeli użytkownik invoice na bazie Oracle nie został skojarzony z komputerem localhost w Access Control List (ACL).  Poniższy kod po wprowadzeniu kilku poprawek dopisuje użytkownika invoice i localhost do listy ACL.

Uruchamiamy

Jeżeli pobrałeś i zainstalowałeś udostępnioną aplikację, przejdź teraz na stronę: http://localhost:port/apex/f?p=ID, gdzie port to numer portu na którym nasłuchuje APEX, a ID to identyfikator zaimportowanej aplikacji. Na ekranie powinieneś zobaczyć ekran logowania, a dalej stronę tak jak na screenie poniżej.

apex-invoicing

Uzupełniamy formularz zgodnie z nazwami pól i klikamy przycisk Print invoice, który spowoduje pobranie pliku dla wskazanego numeru faktury. Pobrany plik jest do podglądu można pobrać tutaj -> invoice.pdf

Podsumowanie

Jeżeli wszystkie kroki zostały wykonane zgodnie z instrukcją, na ekranie powinieneś zobaczyć dokument faktury VAT. Z tego miejsca zachęcam do głębszego zapoznania się z momentem kiedy dokument jest drukowany. Proponuję sprawdzić jak zachowa się aplikacja, gdy zmienimy jedną linię udostępnionego kodu PL/SQL, na przykład:

v_file_name VARCHAR2 (25) := 'invoice.pdf';

Zmieniamy na

v_file_name VARCHAR2 (25) := 'invoice.xlsx';

JasperReports Server radzi sobie z wieloma różnymi formatami danych. Dla wnikliwych udostępniam archiwum z dokumentem w najpopularniejszych formatach -> Invoices Pack

Materiały do pobrania

Aplikacja APEX – APEX JasperIntegr

Faktura PDF – invoice.pdf

Dokumenty w najpopularniejszych formatach – Invoices Pack

Tagi: , , , , , , , , , , , ,

Zapraszamy do kontaktu!

Pretius jest firmą tworząca oprogramowanie wspierające biznes.
Tworzymy aplikacje webowe wykorzystując: Java, Oracle DB, Oracle Apex, AngularJS.
Skontaktuj się z nami, aby porozmawiać o tym jak możemy pomóc w realizacji Twojego projektu!