|
Personally, I'd prefer a more well defined interface...
setFromAddress()
setToAddress()
And I try to stay away from those...to much like the old move to a work
variable before calling a subroutine IMO.
But for certain functionality, such as your mailtool. I can see the
benefit.
Not sure if it's a technique you want to use as an introduction to ILE
however ;)
Charles
On Tue, Jan 6, 2015 at 5:13 PM, Bradley Stone <bvstone@xxxxxxxxx> wrote:
One thing I've been doing lately for subprocedures instead of passing alot
of parameters (which can change over time) is using "setters" beforesecond
calling the real subprocedure.
An example is the ILE subprocedures I did for our MAILTOOL application.
Instead of sendEmail(fromAddr:toAddr:subject:message:......)
I use "setters" to set the value of values that can be used by the
subprocedure. The first parm in the setter is the value to set, the
is the actual value which is set up as a global field in themodule/service
program.statement
Inside the setValue() subprocedure is really just a large select
that sets the values as they are passed in.http://iprodeveloper.com/rpg-programming/introducing-ile-service-programs
setValue('fromAddress':'jclarkson@xxxxxxxxxxx')
setValue('toAddress':'rhammond@xxxxxxxxxxx')
setValue('subject':'Come drive the new Ariel Atom')
setValue('message':message)
sendEmail();
This is a very high level explanation of how I do it, but so far it's
working quite splendidly.
Just something to think about if you're just starting out with
subprocedures.
ps.. I also prefix them according to their use, so these would all be
mailtool_setValue, mailtool_sendEmail, etc...
Just an idea while you take your exciting journey down the ILE road. :)
Brad
www.bvstools.com
On Tue, Jan 6, 2015 at 3:25 PM, Roger Harman <roger.harman@xxxxxxxxxxx>
wrote:
iProDeveloper.com is one good site for references. Code400.com is
another.
Take a look at this:
a
Jon & Susan have done a number of presentations on this topic. Here's
islink to one they did eons ago at my LUG.
http://www.partner400.com/advancedsubprocs.pdf
Roger Harman
COMMON Certified Application Developer – ILE RPG on IBM i on PowerOCEAN
User Group – Vice-President, Membership (2014)
From: ACassidy@xxxxxxxxxxxxxx
To: rpg400-l@xxxxxxxxxxxx
Subject: RE: Service programs, procedures, not sure what to do
Date: Tue, 6 Jan 2015 19:58:22 +0000
It looks to me like Jack hasn't done subprocedures before, and this
alooking
first step. Correct me if I'm wrong.
functions in the same program.
For my first few times writing them, I just created my procedure
explained in a short list email.
Then I went to service programs, which involve more than can be
There are some good articles in the midrange press. I recommend
Ofat their examples.procedure
(They might be kind of old, and fixed-format, but they still work andserve the purpose)
wrote:
--Alan
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
Jeff Young
Sent: Tuesday, January 06, 2015 2:19 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: Service programs, procedures, not sure what to do
Jack,
You need to specify NOMAIN in the H specification keyword.
Jeff Young
Sr. Programmer Analyst
On Tue, Jan 6, 2015 at 2:14 PM, Jack Tucky <jacktucky@xxxxxxxxx>
program
That's what I was trying to figure out. Compiling as a service
I get the same error, return value not allowed for the main
FCodeFF00 if e k disk
d CODE001R PR 1n
d cdGroup_ 3s 0 const
d cdCode_ 50a const
d CODE001R PI 1n
d cdGroup_ 3s 0 const
d cdCode_ 50a const
d exists_ like(*in01)
**
chain (cdGroup_:cdCode_) Codeff00r;
if %found;
exists_ = *on;
else;
exists_ = *off;
endif;
return exists_;
Thanks for quick responses...
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf
returnJeff Young
Sent: Tuesday, January 06, 2015 1:47 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: Service programs, procedures, not sure what to do
Jack,
A *program* can not return data.
If you need to return data from another program, define the
definereturnfield a parameter in the caller and called program.
If you create a service program with your procedure, that can
a
parameter with no problem.
Jeff Young
Sr. Programmer Analyst
On Tue, Jan 6, 2015 at 1:38 PM, Jack Tucky <
<mailto:jacktucky@xxxxxxxxx> jacktucky@xxxxxxxxx> wrote:
If I want to put this code in another program, how would I
can'tthe
procedure there?
kc2hiz@xxxxxxxxx> wrote:On Jan 6, 2015, at 1:31 PM, Buck Calabro <
<mailto:kc2hiz@xxxxxxxxx>
On 1/6/2015 12:29 PM, Jack Tucky wrote:
I tried to code the PR/PI in my first RPG and it says I
so
return a value. Do I need something different? Sorry I'm
JackhereThe
vague. I'm still
not
where I need to be on procedures/service programs, etc.
In order to return a value, you need to tell the procedure
interface
(and prototype) that. Here is an example of a procedure that
takes
a 10 character 'date' and converts it into an 8 digit number.
place where we define what gets returned is on the PI spec;
statement'8s 0'.it's
The actual /value/ that gets returned is in the return
(here, unimaginatively called retVal).
* convert 'yyyy-mm-dd' to yyyymmdd
p date10to8 b
d date10to8 pi 8s 0
d date10 10a const
...
d retVal s 8s 0 inz
...
return retVal;
p e
procedure.You'd do something similar with your 'return the next number'
--
--buck
'I had nothing to offer anybody except my own confusion' -
--------------------------------------------------------------------------------
Kerouac
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L)
mailing list
RPG400-L@xxxxxxxxxxxx To subscribe,To post a message email: <mailto:RPG400-L@xxxxxxxxxxxx>
unsubscribe, or change list options,
visit: <http://lists.midrange.com/mailman/listinfo/rpg400-l
takeRPG400-L@xxxxxxxxxxxxhttp://lists.midrange.com/mailman/listinfo/rpg400-lsubscribe,
RPG400-L-request@xxxxxxxxxxxx Before posting, please takeor email: <mailto:RPG400-L-request@xxxxxxxxxxxx>
a moment to review the archives at
http://archive.midrange.com/rpg400-l.<http://archive.midrange.com/rpg400-l>
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list To post a message email:<mailto:RPG400-L@xxxxxxxxxxxx> RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: <http://lists.midrange.com/mailman/listinfo/rpg400-l>http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: <mailto:RPG400-L-request@xxxxxxxxxxxx>RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives athttp://archive.midrange.com/rpg400-l.
<http://archive.midrange.com/rpg400-l>
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list To post a message email:
<mailto:RPG400-L@xxxxxxxxxxxx> RPG400-L@xxxxxxxxxxxx To
unsubscribe, or change list options,
visit: <http://lists.midrange.com/mailman/listinfo/rpg400-l>
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: <mailto:RPG400-L-request@xxxxxxxxxxxx>
RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
<http://archive.midrange.com/rpg400-l>
http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list To post a message email:
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
a
http://archive.midrange.com/rpg400-l.moment to review the archives at
(RPG400-L)--
This is the RPG programming on the IBM i (AS/400 and iSeries)
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.
informationConfidentiality Notice: This email may contain confidential
itsor information covered under the Privacy Act, 5 USC 552(a), and/or the
Health Insurance Portability and Accountability Act (PL 104-191) and
withvarious implementing regulations and must be protected in accordance
those provisions. It contains information that is legally privileged,
confidential or otherwise protected from use or disclosure. This
ismessage, including any attachments, is for the sole use of the intended
recipient(s). Any unauthorized review, use, disclosure or distribution
--------------------------------------------------------------------------------prohibited. You, the recipient, are obligated to maintain it in a safe,
secure and confidential manner. If you are not the intended recipient,
please contact the sender by reply e-mail and destroy all copies of the
original message. Thank you.
(RPG400-L)(RPG400-L)
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
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 (AS/400 and iSeries)
--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 (AS/400 and iSeries) (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 (AS/400 and iSeries) (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 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.