|
Nelson, When an object is moved to production we update our catalog. We also allow entries to be added through an entry program. When a module is moved to production we scan the source for procedure references. These are identified by looking for a "(" which are not arrays. We also use the retrieve module information API to retrieve the exports. We also add module and service program references for service programs through the entry program. For items in production we do not allow references to be updated through the entry program. We use this information for a CRTOBJ command. That information is what we read to remove obsolete exports. To add exports we have a command that takes up to 75 export items and a module name for comment and a signature. It starts out by loading the current source into an array. As the array is loaded each line is converted to upper case and scanned for STRPGMEXP. When the first one is hit that line is stored. It then locates the ENDPGMEXP and stores the line. It then clears the source (previously copied to a backup member) and re-writes the source to the ENDPGMEXP line. The new exports are inserted at this point. The original export is then converted to *PRV from *CURRENT and the source is written to the end. We made the job of cataloging procedures much easier by implementing standards. One is no procedure name exceeds 15 characters. Thus we avoid the ... in names. We also use one prototype with the same name as the module in a source library QPROTOSRC. We also allow exported names to be defined in only one module and a module may only be used in one service program or program. We also use binding source. That may cost us slightly in performance, but it makes it much easier to change a procedure. From our catalog program we allow options like searching, and sub-setting by type, text, etc. From the catalog program we also allow a procedure's prototype heading (where the interface is documented) to be brought up. We allow SEU or CODE/400 for this option. I saw an application repository utility demonstrated at COMMON. It was from Wincap software WWW.WINCAPSOFTWARE.COM. The demo was impressive. When I got back from COMMON I requested more information and they sent me a useless QuickTime movie demo. Nothing I could use to convince my boss to get a trial. Another option, if you have abstract probe is to update their cross reference files directly. We asked about adding our own information to their repository when we started cataloging our applications. At the time they said it couldn't be done. Recently I brought it up again and they sent me information on their file structure and told me we could probably add our own objects/types to their repository. As far as I know their shipping version does not catalog procedures. Their may be other utilities available, these are just the ones I have used or looked at recently. David Morris >>> Nelson Smith <ncsmith@gate.net> 08/05 10:04 PM >>> David Morris wrote: > > We ended up writing a command to add service exports. It automates the >process that you describe below. We also created a remove obsolete signitures >command. To do this you need to have a cross reference of modules to service >programs and programs/service programs to service programs. > I guess I'll have to do the same if IBM is not going to fix their command. How are you cataloging and keeping track of existing procedures? Have you found any good utilities for this? I'm up to several hundred now, and it is becoming very difficult to keep track of them all. In addition to cross-referencing where used and used by, I also need some way of letting other programmers know what procedures exist, what they do, and how to call them. I've organized them into a dozen or so service programs (by function) and included a documentation header with each prototype in the single /COPY member that contains all the prototypes, but this is not good enough. I can see that in a couple of years we will have thousands to deal with. We need to be able to search by function, keywords, etc. -- Nelson Smith "Standards are Wonderful....cause there's so many to choose from!" ncsmith@gate.net +--- | 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.