× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Binder Language problems
  • From: "David Morris" <dmorris@xxxxxxxxxxxxx>
  • Date: Thu, 06 Aug 1998 08:05:56 -0600

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 thread ...

Follow-Ups:

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.