"but introducing what I like to call a "simplicity layer for 80% usage" goes a long way towards greater adoption of a tool or API."


This is exactly right. You and Scott Klement have done a great job of wrapping either Java or C routines into something an RPG programmer can understand. And, yes, if you want to roll your own from the "native" API's, you easily could. But I find that sometimes an RPG programmer will just find the RPG prototypes all the documentation they need to make a solution work.

In my case, I wrapped the Jasper API's with some simplified Java API's of my own to make things even simpler. That means I can be even lazier by only providing RPG wrappers for my API's (at least at the 0.4 release). I would expect that folks who need a little more granularity will add their wrappers to the project over time.

Could you take another direction and use more native RPG techniques to generate the PDF,XLS,TXT,ODT,HTML,RTF out types. I guess so. But you'd probably be wrapping some other API's to do that. Some of the Java stuff is so mature and complete, wrapping them with RPG makes perfect sense.

In particular Aaron, your idea of having the JVM invoked only once is a great idea. I can't wait to implement that in my own project.

Pete


Aaron Bartell wrote:
This is the part I don't understand. If the XML file contains data source
definitions, SQL query definitions, report layout definitions, and
Javascript for handling special data munging and layout requirements, then
what would be the purpose of RPG? Just to call the runtime engine to
generate the report? Pass parameters?

The RPG portions that I write for my open source projects usually entail
doing a lot of Java wrappering of an existing API (i.e. JavaMail,
JFreeChart). I wrapper them in a way that makes them more easily called
from the RPG environment through keyed data queues. This route also has a
huge performance/resource benefit because there is only a single JVM running
on the system for all users. The RPG side is very minimal in nature and is
mostly used to prime some sort of data medium (i.e. physical files) with
data through RPG sub procedures.

To some it may not appear as though RPG wrappers are adding much benefit vs.
calling the Java API's directly, but introducing what I like to call a
"simplicity layer for 80% usage" goes a long way towards greater adoption of
a tool or API.

HTH,
Aaron Bartell
http://mowyourlawn.com


On Tue, Apr 22, 2008 at 8:22 AM, Nathan Andelin <nandelin@xxxxxxxxxxxx>
wrote:

Aaron Bartell wrote:
I have been looking to create an open source reporting
project based on the Eclipse BIRT stuff. Basically you could
have business users build the report in Eclipse and then
upload the report definition to the iSeries.
I stepped through the Flash demo of the BIRT designer and saw the
familiar metaphor of defining data sources (SQL Queries), then dragging
and dropping data source elements onto report bands (header, footer,
groupings, detail, etc.). I understand that the designer creates an XML
document containing data source definitions and report layout
definitions and also allows users to write Javascript which can be
interpreted by the runtime engine to handle special data and report
formatting requirements.

Most of this was intuitive to me because the layout definitions are
similar to HTML, and I've used a number of PC based query and report
design tools over the years. One difference was that Javascript is
interpreted by the runtime engine on the server and used to handle
special layout and data munging requirements.

I understand how the XML (data source and report layout and script
definition) file could be uploaded to the server.

From there a Java component could be written that accepts
input from an RPG process to occupy the BIRT report with
business data. This is similar in concept to my RPGChartEngine
tooling (http://mowyourlawn.com/RPGChartEngine.html).
This is the part I don't understand. If the XML file contains data
source definitions, SQL query definitions, report layout definitions,
and Javascript for handling special data munging and layout
requirements, then what would be the purpose of RPG? Just to call the
runtime engine to generate the report? Pass parameters?

Nathan.
--
This is the Web Enabling the AS400 / iSeries (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.