OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

Similar documents
VRIJEDNOSTI ATRIBUTA

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Sberbank Business Online na Mozilla FireFox

Vežbe - XII nedelja PHP Doc

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom

PKI Applet Desktop Application Uputa za instalaciju programske potpore

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Računarske osnove Interneta (SI3ROI, IR4ROI)

Izrada VI laboratorijske vježbe

Jezik Baze Podataka SQL. Jennifer Widom

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

VDSL modem Zyxel VMG1312-B10A/B30A

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

Upute za postavljanje Outlook Expressa

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Cjenovnik usluga informacionog društva

Microsoft Windows Malicious Software Removal Tool CCERT-PUBDOC

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

JavaScript i HTML DOM

Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)

VB komande. Programiranje 1

VHDLPrimeri Poglavlje5.doc

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Editovanje registra u Windowsu

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi

Implementacija MVC arhitekture u JSP tehnologiji

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

Programiranje III razred

Informacioni sistemi i baze podataka

Android. Osobine. Razvojno okruženje

Projektovanje namenskih računarskih struktura

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)

JAVA DESKTOP APLIKACIJA ZA PREGLED I VOĐENJE FINANCIJA

IT101. File Input and Output

Aspektno programiranje u Javi. AOP + AspectJ

INTERNET APLIKACIJA ZA EVIDENCIJU ZALIJEVANJA CVIJEĆA

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

Programski jezik JAVA PREDAVANJE

Unaprjeñenje sigurnosti u mrežama pružatelja

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

GUI - događaji (Events) i izuzeci. Bojan Tomić

WEB SUSTAV ZA UPRAVLJANJE SADRŽAJEM ZA POCDOC APLIKACIJU

Uputstvo za podešavanje mail klijenta

AJAX Asychronous JavaScript And XML (...mali delic WEB 2.0 standarda) Tutorijal za osnovno koriscenje AJAX-a - Vladica Savić

PROGRAMIRANJE. Amir Hajdar

DA LI POSTOJI SAMO JEDNA "ISPRAVNA" ARHITEKTURA WEB POSLOVNIH APLIKACIJA

Fcheck IDS alat CCERT-PUBDOC

Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

Oracle Developer Day

Microsoftova productivity vizija

Operacijski sustavi Laboratorijska vježba 05

Uvod u relacione baze podataka

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

MATIJA RISEK INTEGRACIJA ASP.MVC APLIKACIJE S OFFICE 365 PLATFORMOM

RAČUNARSKI PRAKTIKUM II

Zadano: q o = 1000 N ë mm 2, F= N, E = MPa, n = 0.3, L = 1 m, B = 0.5 m

Lekcija 4. Java programiranje sa bazama podataka. dr Svetlana Cvetanović

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

ILM implementacija DWH baza u T-mobile

DETERMINATION OF THE CHARACTERISTIC PARAMETERS IN THE GENERAL COLLINEAR SPACES IN THE GENERAL CASE UDC (045)=20

CLOUD STORAGE UPUTE ZA KORISNIKE

IZRADA MOBILNIH APLIKACIJA KORIŠTENJEM IZOMORFNOG METEOR.JS RADNOG OKVIRA

Different color bars chart with Popup Box in ADF

Rad sa MySQL bazom podataka

Proširena stvarnost - Augmented Reality (AR) Dr Nenad Gligorić

PRETRAŽIVANJE PODATAKA U OBJEKTNIM WEB APLIKACIJAMA

RAZVOJ PHP APLIKACIJE UZ PODRŠKU ORACLE BAZEPODATAKA

PHP i HTML tagovi. kombinovanje

PRIMJENA ACTIVE RECORDA ZA RAD S BAZOM PODATAKA

Oracle Retail Accelerators for WebLogic Server 11g

SecLab 04. SecLab 04 v2.00. SSH server i upotreba javnog i tajnog ključa. Cilj vežbe

Analiza Proactive Windows Security Explorer alata CCERT-PUBDOC

Oracle Developer Day

Programiranje Internet aplikacija

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) CSS3

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

28/02/2017 Instalacija WP-a. WAMP server

Prva recenica. Druga recenica.

Transcription:

Iskustva u razvoju i implementaciji ADF aplikacije

Sadržaj Opis aplikacije za AZ Mirovinski Fond Internacionalizacija aplikacije Integracija sa Oracle Reports Iskorištenje postojeće PL/SQL logike Kreiranje iskoristivih lista vrijednosti Prikaz grafova

Aplikacija za AZ Mirovinski fond Sastoji se od: podrške za voditelje i agente podrške za krajine korisnike

Za rumunjsko i hrvatsko tržište Ovisi o postavkama pretraživača Internacionalizacija Za podršku višejezičnosti potrebno je: Kreiranje klase UIResources koja nasljeđuje klasu ListResourceBundle Potrebno je registrirati klasu u faces-config.xml datoteci Na svakoj stranici potrebno je registrirati temeljnu klasu

Internacionalizacija- klasa UIResources

Internacionalizacija faces-config.xml

Internacionalizacija registracija UIResources na stranici registrirati temeljnu klasu <f:loadbundle basename="hr.neos.pfm.web.resources.uiresources" var="res"/> primjena: label="#{res[\'dialogagent.searchform.txt.lastnam e\']}"

Integracija sa Oracle Reports omogućena je korištenjem metoda Reports Web Servisa Potrebno je uključiti JAR datoteku (http://<reports_server>/reports/rwwebservice ) koja sadrži slijedeće klase: oracle.reports.rwwebservice.rwjobinfo oracle.reports.rwwebservice.rwreturnmessagehelper oracle.reports.rwwebservice.rwserverinfo oracle.reports.rwwebservice.rwwebservicehelper oracle.reports.rwwebservice.rwwebservicestub

Integracija sa Oracle Reports - 1 Potrebno je definirati slijedeće parametre: soapurl URL Reports web servisa templp direktorij za pohranjivanje PDF datoteka koje su rezultat pokretanja reporta templpalias - alias za templp repservername naziv report servera

Integracija sa Oracle Reports - 2 Prilikom poziva metode za pokretanje reporta potrebno je definirati: naziv reporta parametre reporta naziv pdf datoteke

Integracija sa Oracle Reports - 3 runreport(string p_reportname,string p_reportparam,string p_filename){ //create an instance of the reports web service proxy stub RWWebServiceStub proxy = new RWWebServiceStub(soapURL); // get serverinfo and create ReturnMessage object RWServerInfo serverinfo = new RWServerInfo (proxy.getserverinfo(servername, authid)); RWJobInfo jobinfo; String cmdline = "report=" + p_reportname + " destype=cache" + " desformat=pdf " + " server="+servername + " userid=" + userid +" " + p_reportparam ; // submit a job to the server. jobinfo = new RWJobInfo(proxy.runJob(cmdline, new Boolean(true)));

Integracija sa Oracle Reports - 4 // Read output to client using getoutput method from RWWebServiceHelper class String filename = templp + File.separator + p_filename + ".pdf"; RWWebServiceHelper helper = new RWWebServiceHelper(); helper.setendpointurl(soapurl); //dohvaćam kreirani pdf file na serveru na temelju id-a InputStream inputstream = helper.getoutput( new Integer(jobInfo.getJobId()), servername, ""); FileOutputStream outputstream = new FileOutputStream(filename);

Integracija sa Oracle Reports - 5 // kreiram novi pdf file na temelju postojećeg sa nazivom definiranim od strane korisnika byte b[] = new byte[1024]; int len = 0; while (true) { len = inputstream.read(b); if (len <= 0) break; outputstream.write(b, 0, len); outputstream.flush(); } outputstream.close(); FacesContext context = FacesContext.getCurrentInstance(); ViewHandler viewhandler = context.getapplication().getviewhandler();

Integracija sa Oracle Reports - 6 // definiram URL PDF datoteke UIViewRoot dialog = viewhandler.createview(context, "/faces/app/printfile.jsp?parpage=" + templpalias + p_filename + ".pdf"); AdfFacesContext afcontext = AdfFacesContext.getCurrentInstance(); HashMap properties = new HashMap(); properties.put("width", new Integer(700)); properties.put("height", new Integer(700)); // pokrecem PDF datoteku u novom web browseru afcontext.launchdialog(dialog, null, // not launched from any component null, // no particular parameters true, //show in dialog properties ); inputstream.close();}

Iskorištenje postojeće PL/SQL logike dio logike postoji u bazi koje je potrebno iskoristiti Kreirani su složeni bazni view-i Problemi: dohvaćanja vrijednosti polja generiranih u bazi Problem zaključavanja sloga Prikaz grešaka koje se okidaju na bazi

Dohvaćanje vrijednosti polja generiranih u bazi - 1

Dohvaćanja vrijednosti polja generiranih u bazi - 2

Problem zaključavanja sloga Nije moguće koristiti postojeći lock Riješenje: 1. kreirana je bazna procedura koja izvršava SELECT FOR UPDATE za slogove koji se trenutačno ažuriraju 2. Override lock metode na razini ADF BC entiteta 3. Pozivanje bazne procedure iz lock metode public void lock() { handlestoredproclock(); }

Prikaz grešaka koje se okidaju na bazi Da bi se izbjegao ovakav prikaz potrebno je: 1. kreiranje klase ErrorHandler koja nasljeđuje DCErrorHandlerImpl te smo izvršili override metode reportexception(dcbindingcontainer formbnd, Exception ex) 2. kreriranje klase ErrorPageLifecycle koja nasljeđuje FacesPageLifecycle, a služi za pozivanje nove ErrorHandler klase 3. kreiranje klase MyPhaseListener koja nasljeđuje ADFPhaseListener 4. registriranje nove klase MyPhaseListener

Kreiranje lista vrijednosti 1. Kreiranje Read-Only View-a koji se koristi kao upit za prikaz podataka. 2. kreirati stranicu koja će služiti za prikaz postojećih podataka koja sadrži tablicu kojoj je izvor podataka view 3. kreirati JavaBean sa atributima koje su nam potrebni nakon odabira iz LOV 4. kreirati akciju koja će se okidati pritiskom na tipku 'Pošalji' na listi vrijednosti 5. Na polju za poziv liste vrijednosti implementirati returnactionlistener

Kreiranje lista vrijednosti - stranica koja će služiti za prikaz liste

Kreiranje lista vrijednosti - JavaBean sa atributima koje su nam potrebni nakon odabira iz LOV

Kreiranje lista vrijednosti - akcija koja će se okidati pritiskom na tipku 'Pošalji' na listi vrijednosti JUCtrlValueBindingRef selectedrowdata =(JUCtrlValueBindingRef) this.gettblagent().getselectedrowdata(); ViewRowImpl row = (ViewRowImpl)selectedRowData.getRow(); ListOfAgent la = new ListOfAgent(); la.setfirstname(row.getattribute( Ime ));... afcontext.getcurrentinstance().returnfromdial og(la,null);

Kreiranje lista vrijednosti - implementirati returnactionlistener

Prikaz grafova za prikaz kretanja vrijednosti obračunske jedinice za određeni fond u nekom razdoblju.

Prikaz grafova 1 Za primjenu grafova potrebno je: definirati view na kojem će se graf temeljiti Potrebno je u projekt uključiti tag library Graph 1.0 Uključiti taglib <%@ taglib uri="/webapp/graph.tld" prefix="graph"%> na stranici koja se koristi za prikaz grafa Definirati graf pomoću tag-a <graph:graph> također na stranici koja se koristi za prikaz grafa U PageDef.xml definirati graph unutar binding-a. Potrebno je definirati.xml datoteku koja opisuje svojstva grafa <?xml version="1.0"?> <Graph version="3.2.0.22" name="graph"/>

Prikaz grafova - tag library Graph 1.0

Prikaz grafova registracija grafa Definirati graf pomoću tag-a <graph:graph> na stranici koja se koristi za prikaz grafa Definirati graf u PageDef.xml datoteci

Prikaz grafova jednostavnost rada