DB API-based ADF Business Components

184 views
Skip to first unread message

Avrom Roy-Faderman

unread,
Oct 27, 2009, 12:38:26 AM10/27/09
to ADF Enterprise Methodology Group
Hi all,

Not 100% sure this is appropriate here--mods, please delete if it
isn't.

I wanted to announce an ADF project I just started on SampleCode: A
completely rewritten framework for DB API-based ADF Business
Components. The first public beta version (0.1b) is available for
download now, but I'm especially interested in finding any community
members who might be interested in participating in the project--
either as beta testers (apply as an "Observer") or as developers
(apply as a "Developer")--there are a lot of expansions and
enhancements I think the framework could still stand. You can find it
at https://database-api-based-adf-bc.samplecode.oracle.com/ (you need
to log in with your Oracle SSO account; the same one you use for the
forums or to download JDeveloper).

The reason I think it *might* be relevant here is that it really
demonstrates what I've been pushing as part of the Extreme Reusability
methodology--the serious use of custom framework classes + custom
metadata as a way of avoiding per-component, and preferably even per-
application, Java code. This is a bit more in-depth than many
organizations might want to go to enable a single feature--I wanted to
preserve as much standard ADF functionality, and come as close to
standard ADF performance profiles, as I possibly could (and I want to
do still more in the future)--but this should give you an idea of just
how simple development of individual applications can be with a
reusable custom framework.

Michael Koniotiakis

unread,
Oct 31, 2009, 7:04:58 AM10/31/09
to ADF Enterprise Methodology Group
This is very inderesting.
i signed in and walked through the manual.
It seems realy good, yet i wander what is the scope of the project.
Is it just an easier way to implement procedure based entities?
The requirements that i have seen about this is to migrate oracle
Forms applications with procedure based blocks.
Yet in Forms applications the input parameters was of Table types, and
could handle more than one row in the same execution.
is this included in the scope of the project?

Generaly, when you create new applications what are the reasons that
can lead you to base BC on DB procedures and functions?
this could be a nice subject for discussion.

On Oct 27, 5:38 am, Avrom Roy-Faderman <av...@avromroyfaderman.com>
wrote:
> Hi all,
>
> Not 100% sure this is appropriate here--mods, please delete if it
> isn't.
>
> I wanted to announce an ADF project I just started on SampleCode: A
> completely rewritten framework for DB API-based ADF Business
> Components. The first public beta version (0.1b) is available for
> download now, but I'm especially interested in finding any community
> members who might be interested in participating in the project--
> either as beta testers (apply as an "Observer") or as developers
> (apply as a "Developer")--there are a lot of expansions and
> enhancements I think the framework could still stand. You can find it
> athttps://database-api-based-adf-bc.samplecode.oracle.com/(you need

Andrejus Baranovskis

unread,
Oct 31, 2009, 8:40:19 AM10/31/09
to adf-met...@googlegroups.com
Indeed very interesting topic. From my experience, same as Michael points, its very important in Forms modernization to have some kind of standard solution for existing PL/SQL procedure blocks reusability. In my opinion, there are no too much use cases for completely new applications, when you use PL/SQL blocks. However its really important in those projects where existing Forms systems are modernized to Fusion (I guess majority of current projects).

Andrejus

2009/10/31 Michael Koniotiakis <mko...@hotmail.com>

--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com



--
Oracle ACE Director

My Blog - http://andrejusb.blogspot.com/
My JDev/ADF Samples list - http://andrejusb-samples.blogspot.com/

Andrejus Baranovskis

unread,
Oct 31, 2009, 9:11:02 AM10/31/09
to adf-met...@googlegroups.com
Here is good post for the same topic: http://www.oraclenerd.com/2009/07/sql-objects-jdeveloper-jpublisher-and.html

We can generate Java through JPublisher. But, we would like to have EO's.

Andrejus

2009/10/31 Andrejus Baranovskis <andrejus.b...@gmail.com>

Avrom Roy-Faderman

unread,
Oct 31, 2009, 11:43:46 AM10/31/09
to ADF Enterprise Methodology Group
Thanks for the replies. I agree that the ability to post table types
would be useful...but I think it would be pretty hard to do at the
entity object level, at least alone. You might get entity objects to
add themselves (during their DML operations) to some table-like
structure at the transaction level (as opposed to posting directly),
and then override Transaction.postChanges to, at the end, pass these
table-like structures into the appropriate procedures. Or maybe
something with DML batching? Not quite sure. At any rate, please file
it as an ER, although it will probably be a "post-1.0" thing.

I also agree that this is *mostly* useful for modernizing existing
apps. I am familiar with a copule of other use cases, though. One
relates to extreme reusability. Even if you're creating a new
application, there's still a substantial chance you're doing so in a
shop where PL/SQL is a much more common skill than Java. For an
application with a lot of business logic, the shop will be more
productive if the PL/SQL coders can stay in their comfort zones and
write packages in the database to implement the business logic. For
simple validation, this can be done with triggers, but for more
complex business logic, it may be useful to have a standalone
procedure.

The last use case relates not to entity objects but to view objects.
Sometimes you'll need to populate a view object in such a way that
using a table or view would be extremely difficult. Here's an example:

In the database (and used by lots of other code), you have three
tables of hour ranges: OPERATING_HOURS, CLINIC_HOURS, and
CALL_NURSE_HOURS. Each table has the columns ID (the PK), PROGRAM_ID
(the FK), START_TIME, STOP_TIME and DAY_OF_WEEK. With me so far?

OK, there's a business rule in place (let's not worry about enforcing
it yet--just take it for granted) that no hours of the same type for
the same program on the same day can overlap, and another that there
can only be (at most) three sets of hours of the same type for the
same program on the same day (although there might be less--even
zero). Now, here's our UI requirements:

We need to be able to plug in a PROGRAM_ID (e.g., through a view link
with the PROGRAMS table), and get a table with the following columns:
DayOfWeek, IntervalNumber (1-3 for each DayOfWeek),
OperatingHoursStart, OperatingHoursStop, ClinicHoursStart,
ClinicHoursStop, CallNurseHoursStart, CallNurseHoursStop. The times
within each day (of each type) needed to be sorted with the earliest
StartTime first.

That's pretty easy to do in a PL/SQL stored procedure, but *really*
hard to do with a SQL view--getting the various rows of the subqueries
(including "null rows" in cases where, say, a program has only one
CLINIC_HOURS interval on a particular day) to line up is an intense
challenge.

This is just intended as an example--there are of course many cases
like this.

Avrom Roy-Faderman

unread,
Nov 9, 2009, 9:20:31 PM11/9/09
to ADF Enterprise Methodology Group
Hi all,

This project is looking for someone to take it over after release 1.0.
Anyone interested?

Thanks much,
Avrom

prasad narahari

unread,
Nov 10, 2009, 1:41:39 AM11/10/09
to adf-met...@googlegroups.com
I will be interested to be part of it( but only after Jan 20th i will be able to start spending time towards that), my current project goes live on Jan 4th and expecting to be busy two weeks of go live support.

--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com



--
Thanks
Prasad
Cell:510-565-5008

Nirav Shah

unread,
Nov 10, 2009, 2:14:36 AM11/10/09
to adf-met...@googlegroups.com
I'm interested to work as a developer on this project.

Thanks,
Nirav Shah

Avrom Roy-Faderman

unread,
Nov 10, 2009, 1:42:59 PM11/10/09
to adf-met...@googlegroups.com
Hi Nirav,

Go to the following link and apply as a developer (I'll approve you). Go
ahead and check the projects out of Subversion. If you haven't read the
developer's guide, start with that, and then start looking through the
source code. When you feel like you've got a general sense of what's going
on, let me know again and we'll talk about next steps.

The link:

https://database-api-based-adf-bc.samplecode.oracle.com/servlets/ProjectMembershipRequest

Thanks much,
Avrom
>> adf-methodolo...@googlegroups.com<adf-methodology%2Bunsu...@googlegroups.com>
>>
>
> --
> You received this message because you are subscribed to the ADF Enterprise
> Methodology Group (http://groups.google.com/group/adf-methodology). To
> unsubscribe send email to adf-methodolo...@googlegroups.com


--
Avrom�s Java EE and Oracle ADF Blog
http://www.avromroyfaderman.com

Nirav Shah

unread,
Nov 21, 2009, 2:02:24 AM11/21/09
to adf-met...@googlegroups.com
Hi Avrom,

Please approve my request as a developer.

Thanks,
Nirav Shah

david...@radussoftware.com

unread,
May 5, 2016, 8:28:04 AM5/5/16
to ADF Enterprise Methodology Group

The link no longer works.

Perhaps there is an alternative to this code? Any ideas?

Thanks,
David

Florin Marcus

unread,
May 5, 2016, 8:40:29 AM5/5/16
to adf-met...@googlegroups.com
Hi David,

If I remember correctly, this code was written by Avrom just before he moved away from ADF and nobody maintained it ever since.
Still, this was rather a concept than a proven solution.
Since 2009, ADF community gained lot of production experience with ADF, so I would bet there are already better design solutions for integrating PL SQL with ADF.

If you can describe what are you trying to achieve, maybe we can help.


Thanks,
Florin


--
--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com
 
All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/). Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).

---
You received this message because you are subscribed to the Google Groups "ADF Enterprise Methodology Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adf-methodolo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

John Flack

unread,
May 5, 2016, 8:46:09 AM5/5/16
to adf-met...@googlegroups.com

That’s old – the samplecode site was shut down by Oracle several years ago.  I don’t know if Avrom Roy-Faderman moved his project somewhere else.  I do know that he is no longer working in the ADF arena (I think he now works for Salesforce.com), and was looking for someone else to carry the project forward.

david...@radussoftware.com

unread,
May 5, 2016, 4:34:15 PM5/5/16
to ADF Enterprise Methodology Group
Thanks for the information.

What I'm tasked with is creating read-only grids in ADF that are basically reports. They have to be dynamic. The meta-data for each grid is stored in a table in the database. The users may request that a field be moved or added and they don't want to have to retest/redeploy the app. Instead they manipulate the meta-data table and the app picks up those changes.

In doing searches to implement this I found Avroms code and it looks like it will work for this task so I was looking for the latest build. I tried using code examples from Avrom's site but got a cast error that I couldn't fix.

My approach now is to make an empty VO and they in app module access the meta-data table and define the VO attributes and populate the VO with data via Stored Procedure call.

Regards,

Dave

Florin Marcus

unread,
May 5, 2016, 4:55:16 PM5/5/16
to adf-met...@googlegroups.com
Hi David,

You can create dynamic  view objects using:

Furthermore, you can generate af:tables dynamically as well.

Hope this helps,
Florin



 

Shay Shmeltzer

unread,
May 5, 2016, 5:08:54 PM5/5/16
to adf-met...@googlegroups.com

david...@radussoftware.com

unread,
May 6, 2016, 9:04:09 AM5/6/16
to ADF Enterprise Methodology Group
Here is the approaching I'm taking:


The result set has to be from a PLSQL function via ref cursor.

I didn't see a way to make createViewObjectFromQueryStmt() work with PLSQL function.
Reply all
Reply to author
Forward
0 new messages