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



The idea is to be able to have new versions of module in the service
program without disturbing the old ones.

For example:

1st version: MyProc   pr  extproc('MyProc.01.00')
2nd version: MyProc   pr  extproc('MyProc.01.01')
3rd version: MyProc   pr  extproc('MyProc.02.00')

Each version would replace the previous one in the copy file forcing
each new program to all the most recent version transparently.  Any old
programs that are recompiled would default to the newest version.  All
other programs would not need to be changed or updated.

All I am trying to do is provide a single object in a service program
that can be distributed to all systems without having to also update all
the programs. Simplifying modification/enhancement of the service
program and the programs that use it.

Marvin


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jon Paris
Sent: Thursday, September 15, 2005 6:20 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: RE: Service Programs and Naming Conventions

 >> 1a. How do I get the upper/lower case name?  The D-Spec always comes
out
in upper case.

You can't get lower case in a program name no matter what you do - but
from
other parts of your post it sounds as if you mean in a procedure name.
The
answer to that is that you must specify ExtProc on the Proto.  In the
absence of this keyword the compiler generates and EXTPROC with the
procedure name in upper case.  If you want 'MyProc' you need
ExtProc('MyProc').

 >> 1b. Can I append a number.number to the end of the name?  I tried
but
the compiler rejects the dots.

Any attempt to add .x to the end of the procedure name will fail.  RPG
will
treat it as a qualified name and that makes no sense in the context.  If
it
were to be supported in the future it would make sense for the
qualification
to be used to associate with a specific module or something - now that
we
have qualified data names, a period can never be used just as part of a
name.

This compiles just fine:

     H NoMain
     D MyProc_x        Pr                  ExtProc('MyProc_x')

     P MyProc_x        B
     D                 pi

     C                   Return
     P                 E

Having said all that - I hate the idea of building version numbering
into a
procedure name.  If I need procx I should just be able to call it - not
worry about which .n version I need.

 >> 2. When an enhancement/improvement is made to a module, ....

It seems to me that you are going to a whole bunch of trouble to try and
ensure future compatibility while avoiding design control.  I think you
will
have a great g=deal of difficulty making this kind of scheme to work and
it
will be highly error prone.  There are many better ways of handling
upward
compatibility and many have been discussed previously on this list.  It
would help us top advise you if you could explain why you think you need
this elaborate process.

Jon Paris
Partner400

www.Partner400.com
www.RPGWorld.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.