In my experience, it really depends on the complexity of the application. I’ve created several GUI interfaces into our AS400. If you’re rewriting a report, or if it’s a simple application, or if it’s new development, web based applications are the best, but, if it’s a complicated application sometimes you best bet is to build a GUI over top of the existing application.
approaches I’ve taken in the past :
1) New applicaton, web based – I’ve written a huge number of reports, as well as moved quite a few simple applications to negate the need for unnecessary logins. When I write these, I connect directly to the database, so business logic needs to be reworked, or lost.
2) New applications GUI based – In one situation, I created a program to help move items around in our warehouse. it had it’s own logic, but it also needed to use our warehouse’s business logic. Since that logic was very complicated, it would have taken a long time to rebuild, and probably been very prone to bugs, so I decided to write the program’s logic seperate, and the actual move process using the Rumba session control, and the equivelant of a macro called by the GUI when necessary so that there was no need to rewrite the business logic.
3) Existing application – GUI : One of the processes in our warehouse was very inefficient. it required a lot of repetitive manual typing. I wrote a GUI application that maintained a record of session state, and a couple Rumba session controls to do all of the extra typing for the user, but using the same screens, and background logic. It’s the equivelent of a souped up macro, but it did increas productivity in on of our core functions by 1-200%.
Another option that I’ve heard of, but haven’t actually used is web facing. I know there are some tools that supposedly make it very easy to convert complicated RPG applications to web based applications, but we’re on a system where this hasn’t really made sense for us to do.
I hope some of this helps you make a decision on how you want to handle your project.