[en] Ανάλυση και Σχεδιασμός Πληροφοριακών Συστημάτων
9/21/2017
Skip Navigation Links : [en] Ανάλυση και Σχεδιασμός Πληροφοριακών Συστημάτων : [en] Σύνδεσμοι : [en] Αναλυτικές οδηγίες κλήσης PL/SQL stored procedures από τον Oracle JDeveloper

[en] Αναλυτικές οδηγίες κλήσης PL/SQL stored procedures από τον Oracle JDeveloper

Αναλυτικές οδηγίες - Βήματα:

1) Κατασκευάζουμε το Stored Procedure (SP) που θέλουμε να καλέσουμε σε κάποιον editor ή χρησιμοποιώντας τον wizard που παρέχει για αυτό το σκοπό η Oracle Express

2) Τρέχουμε το SP μέσα από την Oracle Express με κάποιες δοκιμαστικές τιμές για τις IN παραμέτρους και ελέγχουμε ότι λειτουργεί με τα επιθυμητά αποτελέσματα (πχ INSERT, UPDATE, DELETE στα tables που εμπλέκονται)

3) Κατασκευάζουμε κατά τα γνωστά μία σελίδα JSF προσθέτοντας από το Components Palette τα αντίστοιχα ADF ή JSF components για τις IN παραμέτρους που χρειαζόμαστε (πχ inputText, SelectOneChoice (LOVs), SelectInputDate κλπ). Επιπλέον χρειάζεται να κατασκευάσουμε και ένα backing bean για τη συγκεκριμένη σελίδα ώστε να μπορούμε στη συνέχεια να χρησιμοποιήσουμε τις τιμές των components.

4) Στο ApplicationModuleDefinition του project μας κάνουμε δεξί κλικ -> Go To Application Module Class, και κάνουμε edit τον κώδικα της συγκεκριμένης κλάσης.

5) Από το link http://download-uk.oracle.com/docs/html/B25947_01/bcadvgen005.htm αντιγράφουμε την helper μέθοδο που μας ενδιαφέρει και στο finally block προσθέτουμε (ακριβως κάτω από το "st.close();") τη γραμμή:

getDBTransaction().commit();

ώστε οι αλλαγές που προκαλεί το SP να γίνουν commit στη βάση

6) Προσθέτουμε επιπλέον μία public μέθοδο με παραμέτρους, τις παραμέτρους που μας περνάει η JSF σελίδα μας. Η μέθοδος αυτή θα πρέπει να καλεί την helper μέθοδο που κατασκευάσαμε στο προηγούμενο βήμα όπως περιγράφεται και στο link.
 
Προσοχη: To "devguidepkg" που υπάρχει στην public μέθοδο του tutorial είναι το εκάστοτε όνομα του χρήστη στον οποίο αντιστοιχεί το σχήμα της βάσης στην Oracle και επομένως πρέπει να το αλλάξετε.
Ομοίως πρέπει να αλλάξετε και το "proc_with_three_args(?,?,?)", βάζοντας το όνομα της PL\SQL procedure (όπως την έχετε ορίσει στην Oracle) και με ερωτηματικά τόσα όσα τα ορίσματα της procedure σας.

7) Από το ApplicationModuleDefinition κάνουμε δεξί κλικ -> Edit και στο Tab Client Interface προσθέτουμε την μέθοδο που κατασκευάσαμε στο προηγούμενο βήμα. Η μέθοδος θα πρέπει να είναι ορατή πλεον στο Data Control Pallete.

8) Στη σελίδα JSF προσθέτουμε ένα CommandButton (από τη βιβλιοθήκη ADF Faces Core) και στη συνέχεια κάνουμε drag 'n' drop από το Data Control Palette τη μέθοδο στο CommandButton επιλέγοντας Bind Existing Command Button.

9) Επιλέγουμε τις τιμές των παραμέτρων της μεθόδου κάνοντας browse στα διαθέσιμα variables.
Διευκρίνιση: Αν κάνετε οποιαδήποτε αλλαγή στον κώδικα της public μεθόδου της κλάσης ApplModuleImpl, αυτή η αλλαγή δεν μεταδίδετε αυτόματα από τον JDeveloper στη μέθοδο που φαίνεται στο Data Control Pallette (bug). Για να γίνουν update οι αλλαγές και εκεί πρέπει να ακολουθήσετε τη διαδικασία από την αρχή (δεξί κλικ στο AppModule -> Client Interface -> Remove selected method (την πάτε αριστερά) -> Add new (την πάτε δεξιά)).