|
Hi Rob! First of all: Have you already downloaded the redbook "Who knew you could do that with RPG?" http://www.redbooks.ibm.com/abstracts/sg245402.html It's worth (almost) any online fee and also worth registering. Don't forget to download the "additional material" with a save file with all the examples in it. - - - >Ok, so I decide I want to create prototypes for external programs. Great! >I want to use /copy. Great! > I thought of having a separate member for each programs >prototype. If I do this what should the member name be? Or is this >something better handled by Conditional Compilation? When you really use a prototype per program, then i'd call the member the same as the program is called. That should make life a bit easier. (You need to hold the prototypes in another source file then, like QPTSRC or QCOPYSRC or whatever you like.) But it's also possible to hold all prototypes in a single source member. The compiler just picks those he needs; this reduces no overhead. - - - >For example, let's say we have the program XYZ123. And this program had: >C *ENTRY PLIST >C PARM PHONE 15 >C PARM FAX# 30 > >Now I change this to: >D XYZ123 PR >D PhoneNbr 15A >D Faxing# 30A > * Replaces *ENTRY PLIST >D XYZ123 PI >D Phone 15A >D Fax# 30A There's something wrong with your prototype; i think you mixed up some things. A procedure (or a function) can only have a single return value, which is the procedure interface. I assume you wanted to tell the compiler / your coworkers that both parameters could be changed by XYZ123. The prototype should just look like this: D XYZ123 PR D PhoneNbr 15A D Faxing# 30A That would be fine for a procedure. As you told us that XYZ123 is an external program, you have to use EXTPGM. D XYZ123 PR EXTPGM('XYZ123') D PhoneNbr 15A D Faxing# 30A This leads to a dynamic call at run time, just as if it was a CALL. - - The other thing is the PI thing. You need this when you write your own procedures, not for calling external programs. Let's assume XYZ124 is a procedure. Then i'd have the prototype D XYZ124 PR D PhoneNbr 15A D Faxing# 30A in a copy. In the source, where you code the procedure, you'll have P XYZ124 B D PI D PhoneNbr 15A D Faxing# 30A C* processing P E Mind the P in column 6! The two lines tell us where the procedure "B"egins and where it "E"nds. - - - >Or is it better to leave the PR in XYZ123 and use conditional compilation >to just pull in the prototype? If so, how? > >I try to put the comment * Replaces *ENTRY PLIST, in there for the people >who scan for this. But they won't see it; unless they scan the spooled file. And then it's in the wrong place. When you call, say, seven external programs this way, you'll have seven comments like that - and one usually has only one *ENTRY PLIST in a program. That would And there it makes more sense to scan for the program's name... Do keep the prototypes in copies; otherwise the advantage of easier parameter change is gone. For your purpose you do not need conditional compiling. - - - >================== >Remember the Cole! Just curious: what does that mean? Mit freundlichen Grüssen / best regards Anton Gombkötö Avenum Technologie GmbH Wien - Mattsee - Stuttgart e-mail Office : mailto:Anton.Gombkoetoe@avenum.com Homepage : http://www.avenum.com Lest das Redbook / read the redbook "Who knew you could do that with RPG?": http://www.redbooks.ibm.com/abstracts/sg245402.html +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-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.