|
Phil Our solution here at CMI involves a tagged pair concept for passing information to RPG programs. Our data is exchanged with a parameter in the RPG programs with the following format: ID1=Value1<tab>ID2=Value2<tab>ID3=...<crlf>ID1=Value1<tab>... We chose the Tab and CRLF simply because they are not regularly part of data values and are easily produced in the keyboard (yes, the multiline text box has been a issue). Flat text editors, like notepad, show the data quite well and imbedding the control characters in HTML has no impact. We use a horizontal tab as a field delimiter and carriage return/line feed as a record delimiter. This format has been highly useful and can be coded in most languages. We have written routines to parse the information, converting dates and numerics when needed. We then modify our existing RPG programs with /COPY statements and create new subroutines to post values to program variables and perform the proven business logic, data retrieval and posting. Most programs require a parsing subroutine to process the incoming parameter string and another subroutine to return the results in the same parameter. High demand programs are coded with a return opcode whereas rarely used ones simple turn on the LR indicator. We have been using this technique to integrate with many different platforms, from Web apps to custom interfaces and GUI front ends. We have reserved a set of Tag IDs for program flow and execution and developed specialized front end programs to control job stacks and 24hr execution. We use data areas to keep statistics and interface flags. Stats show hit counts. Configured counts allow limit of concurrency. There is actually more to it than this and this certainly isn't the only available approach, but hopefully this gets you thinking in the right direction. Good Luck and keep us posted, Ken Slaugh (707) 795-1512 x118 Chouinard & Myhre, Inc. AS/400 Professional Administrator/MSE Client Access Specialist http://www.cm-inc.com/ Phil Groschwitz <sublime78ska@yahoo To: MIDRANGE-L@midrange.com .com> cc: Sent by: Subject: RE: Web apps on the AS/400 owner-midrange-l@mi drange.com 03/18/01 09:19 AM Please respond to MIDRANGE-L Great discussion going on. I thought I'd add my perspective to it. Isn't possible to do this: Use net.data to do nothing but call rpg pgms and to place the result where net.data says to. All the html is in the net.data macro, not in any rpg pgms. The macro can be maintained by webdevelopers while the business programs are maintained by rpg programmers. -- or -- Develop your own tag language to control calling rpg pgms, again not putting any html in rpg pgms. The special tag language and html is maintained by webdevelopers while the business programs are maintained by rpg programmers. -- or -- use JSP's and java to do the same thing, again not putting any html in the java classes (which is what you had to do not too long ago before jsp's.) The jsp's are maintained by webdevelopers while the business programs are maintained by java developers. -- I agree that hardcoding html (in any language) is not a good thing. But I disagree that java/jsp's is the **absolute** best solution for **all** business problems. Why? ROI. The existing, installed as/400's are in many cases incapable of running a java solution. Many companies would lose money on upgrading now. They have to wait. (Or use a different server but you may never get that business back) Here's a simplistic analogy that I think demonstrates my point: I have a 2 year old car. I now have a need to put a baby in the car so I need a car seat. While it is true that I could buy a new car that comes with an integrated car seat, I can't buy a new car now because I'm still paying for the one I have. I can't wait another three years for my car to be paid for. So I'll just buy a car seat that I can use in my existing car. Problem solved. Best solution when all the factors are considered. Would not have been the best solution if I had no car, or if the car was deficient in another way. Maybe I need room for five but the car only has four seats. You get the idea, I hope. Phil --- Joe Pluta <joepluta@PlutaBrothers.com> wrote: > Holy Cripe Joe, that almost sounds like a RPG-CGI > program !! > ----- > > Yes and no, John. With this technique, there's no > HTML formatting in the > RPG programming, which is my primary gripe against > RPG-CGI (or any CGI) > techniques. Here's a typical change to an RPG > program: > > RV01dC** WRITELINCTL01 > RV01aC EXSR DQM001 > > RV01aC DQM001 BEGSR > WRITELINCTL01 > RV01aC DQMTYP IFEQ '1' > RV01aC WRITELINCTL01 > RV01aC ELSE > RV01aC CALL 'DQMBAPI2' > RV01aC PARM 'LINCTL01'DQMSCR 8 > RV01aC PARM 'WRITE' DQMOPC 5 > RV01aC *IN PARM *IN XIIND > RV01aC PARM DQMDS2 > RV01aC ENDIF > > This program runs both green screen and browser. > Most CGI programs that > I've seen won't perform in both environments. > > Joe > > +--- > | This is the Midrange System Mailing List! > | To submit a new message, send your mail to > MIDRANGE-L@midrange.com. > | To subscribe to this list send email to > MIDRANGE-L-SUB@midrange.com. > | To unsubscribe from this list send email to > MIDRANGE-L-UNSUB@midrange.com. > | Questions should be directed to the list > owner/operator: david@midrange.com > +--- __________________________________________________ Do You Yahoo!? Get email at your own domain with Yahoo! Mail. http://personal.mail.yahoo.com/ +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +--- +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.