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



In my opinien you may have a lot of subprocedures that is heavely dependend
of each other and you can also use service programs to store variables
across programs like:

program A:
setClientId(clientID);

program B:
clientID = getClientId();
or

you may have subprocedures that generates a lot of variables:

xmlReader();

Node = xmlGetNote();
Attr = xmlGetAttr();
Data = xmlGetData();
xPath = xmlGetXpath();

You could of couse pass the complete set back in a DS from xmlReader, but
you have to descide on field length and you create a interface where you
have to recompile all programs if the interface changes, where you by just
applying new subprocedures can add new variables to the service program.



On Mon, Nov 8, 2010 at 5:10 PM, Mark Murphy/STAR BASE Consulting Inc. <
mmurphy@xxxxxxxxxxxxxxx> wrote:

The problem with global variables is that they involve tight coupling of
procedures. This reduces the re-usability of your code. All procedures
that use a particular global variable must use it in the same way, and as
such are tied together such that they cannot be used or modified
independently. Sometimes this can be okay for procedures that are defined
in the same class or module because they are tied together in the same
source, but even this may cause issues. Best practice for code reuse is to
create small independent sub-procedures with a single well defined
interface. All data comes in through that interface, and all responses go
out through that interface. No side effects allowed.

Mark Murphy
STAR BASE Consulting, Inc.
mmurphy@xxxxxxxxxxxxxxx

-----rpg400-l-bounces@xxxxxxxxxxxx wrote: -----
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
From: Jeff Young
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
Date: 11/05/2010 02:44PM
Subject: Re: MAIN or cycleless programs.

Just curious, but if your proceedure needed a variable that had been
defined
globaly and was not changing it, why would you not use the global value
instead
of passing it.

Also, if you *wanted* your proceedure to update a global variable, why not
just
use it instead of passing it as a parm?

Thanks,

Jeff Young
Sr. Programmer Analyst
IBM -e(logo) server Certified Systems Exper - iSeries Technical Solutions
V5R2
IBM Certified Specialist- e(logo) server i5Series Technical Solutions
Designer V5R3
IBM Certified Specialist- e(logo)server i5Series Technical
Solutions Implementer V5R3









________________________________
From: Vern Hamberg <vhamberg@xxxxxxxxxxx>
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
Sent: Fri, November 5, 2010 1:03:36 PM
Subject: Re: MAIN or cycleless programs.

David

So far as I know, anything you declare outside of any procedures is
global - put them at the top, ahead of everything else.

But not having done this, I could be mistaken.

Of course, some, including me, would say NOT to use global variables.
Use parameters - that's what procedures are for. Declare what you need
at the earliest opportunity, then pass it to your various procedures.

I think some stuff still needs to be global - I don't remember what I've
run into, but something recently.

Vern

On 11/5/2010 8:39 AM, David FOXWELL wrote:
Hi,

I've just done my first program using the MAIN keyword. I have to admit
that I
didn't see any benefit from doing so. I particularly missed having a main
procedure with all the global definitions in it. Especially the program
parameters.

Any thoughts would be welcome.

--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.

--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.