Because a week, a month, or a year from now, you may decide that you need
to move that procedure into a service program because other programs need
to use that logic as well. If it does not rely on any global variables,
you can just move it. This also protects you from changing code in one
subprocedure and having adverse effects on others. If your subprocedures
only use local variables, you can change procedure 1 without needing to
then retest all procedures in the program.
Brian May
Project Lead
Management Information Systems
Garan, Incorporated
Starkville, Mississippi
Jeff Young <cooljeff913@xxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
11/05/2010 01:45 PM
Please respond to
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
To
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
cc
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.
As an Amazon Associate we earn from qualifying purchases.