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



I suppose so.  Myself, I learn by running first.  LOL.  Trail and error.

Michael Schutte
Work 614-492-7419
email  michael_schutte@xxxxxxxxxxxx


                                                                           
             rob@xxxxxxxxx                                                 
             Sent by:                                                      
             rpg400-l-bounces@                                          To 
             midrange.com              RPG programming on the AS400 /      
                                       iSeries <rpg400-l@xxxxxxxxxxxx>     
                                                                        cc 
             03/29/2006 09:41                                              
             AM                                                    Subject 
                                       Re: newbie prototype question...    
                                                                           
             Please respond to                                             
              RPG programming                                              
              on the AS400 /                                               
                  iSeries                                                  
             <rpg400-l@midrang                                             
                  e.com>                                                   
                                                                           
                                                                           




I agree Michael.  However, sometimes it's better to take baby steps before
you try running.

Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com





Michael_Schutte@xxxxxxxxxxxx
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
03/29/2006 08:29 AM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc

Subject
Re: newbie prototype question...






In my opinion, you should think about learning how to create modules with
procedures that are using the EXPORT keyword and then adding these modules
to a binding directory.  See my previous email.

If you have everything set up correctly, all you will need to do is
reference the prototype in the calling program, then at compile, the
procedure will be bound to the program.

I'm more than happy to help if you need assistance and interested in
learning this.

Michael Schutte
Work 614-492-7419
email  michael_schutte@xxxxxxxxxxxx



             "Jake M"
             <jakeroc@xxxxxxxx
             m>                                                         To

             Sent by:                  "RPG programming on the AS400 /
             rpg400-l-bounces@         iSeries" <rpg400-l@xxxxxxxxxxxx>
             midrange.com                                               cc


                                                                   Subject

             03/28/2006 04:55          Re: newbie prototype question...
             PM


             Please respond to
              RPG programming
              on the AS400 /
                  iSeries
             <rpg400-l@midrang
                  e.com>






Rob,
I created a Physical Source File called QPROTOSRC and in that I created a
member named PROTO_02. This has

     D PROTO_02        PR                  EXTPGM('PROTO_02')
     D  num1                         15P 5
     D  num2                         15P 5

and in my QRPGLESRC I have another member named PROTO_02, also. This has

      /include QPROTOSRC(PROTO_02)

     D PROTO_02        PI
     D  num1                         15P 5
     D  num2                         15P 5


     D  num3           S             15P 5

      /free
         num3 = num1 + num2;
         dsply num3;
         dsply 'DONE';
         *inlr = *on;
      /end-free

but I am getting an error saying..

RNF0273 Compiler not able to open the /COPY or /INCLUDE file; directive
ignored.

Am I doing something wrong here?

Jake.

On 3/28/06, rob@xxxxxxxxx <rob@xxxxxxxxx> wrote:
>
> Jake,
>
> I - Calling from a different program.
> What is often done is cutting out the
>      D PROTO_02        PR                  EXTPGM('PROTO_02')
>      D  num1                         15P 5
>      D  num2                         15P 5
> and putting that into a seperate source member.  Like
QPROTOSRC,PROTO_02.
> And in the PROTO_02 program replace what you cut out with
>       /include QPROTOSRC(PROTO_02)
> Now, in the new program that you wrote, that you want to call PROTO_02
you
> also include this:
>       /include QPROTOSRC(PROTO_02)
>      D nbr1            s             15p 5
>      D nbr2            s                   like(nbr1)
> then, in your calcs you do a simple
> /free
>   callp PROTO_02(nbr1:nbr2);
> or simply the implied callp
>   PROTO_02(nbr1:nbr2);
>
>
> II - Subroutine
> You meant subprocedure.  They are different from a subroutine.  See if
you
> understand this simple program named JAKE, compiled, tested.
>      h dftactgrp(*no) actgrp(*caller)
>      D Jake            PR                  EXTPGM('JAKE')
>      D  Input1                       15p 5
>      D  Input2                       15p 5
>
>      D Jake            PI
>      D  Input1                       15p 5
>      D  Input2                       15p 5
>
>      D MyCalc          PR             5i 0
>      D  SomeNbr1                      7p 2 const
>      D  SomeNbr2                      7p 2 const
>
>      D DsplyVar        s              5i 0
>
>       /free
>        *inlr=*on;
>        // Take the parameters sent to this program, use a simple
>        // subprocedure to add them together and display the result.
>        DsplyVar=MyCalc(Input1:Input2);
>        dsply DsplyVar;
>       /end-free
>
>      P MyCalc          B
>      D MyCalc          PI             5i 0
>      D  ThisNbr1                      7p 2 const
>      D  ThisNbr2                      7p 2 const
>       /free
>        return ThisNbr1 + ThisNbr2;
>       /end-free
>      P MyCalc          E
>
> DSPJOBLOG
> CALL PGM(JAKE) PARM(X'000000000100000F' X'000000000200000F')
> DSPLY      3
>
> Rob Berendt
> --
> Group Dekko Services, LLC
> Dept 01.073
> PO Box 2000
> Dock 108
> 6928N 400E
> Kendallville, IN 46755
> http://www.dekko.com
>
>
>
>
>
> "Jake M" <jakeroc@xxxxxxxxx>
> Sent by: rpg400-l-bounces@xxxxxxxxxxxx
> 03/28/2006 02:50 PM
> Please respond to
> RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
>
>
> To
> "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
> cc
>
> Subject
> Re: newbie prototype question...
>
>
>
>
>
>
> Okay, the following code snippet works.
>
>      D PROTO_02        PR
>      D  num1                         15P 5
>      D  num2                         15P 5
>
>      D PROTO_02        PI
>      D  num1                         15P 5
>      D  num2                         15P 5
>
>
>      D  num3           S             15P 5
>
>       /free
>          num3 = num1 + num2;
>          dsply num3;
>          dsply 'DONE';
>          *inlr = *on;
>       /end-free
> Can somebody please give me an example of how I could call this function
> from an outside program. Can it be done like Michael suggested:
>
> DIFFPROG.RPGLE
> /free
>   var3 = PROTO_02(5:6);
>   dsply var3;
> //var3 would have 11.
> //ofcourse var1, var2, var3 are already declared as 15 P 5(I surmise it
is
> a
> language necessity).
> /end-free
>
> I was also wondering if somebody could give some sample code for a
simple
> subroutine program. For example a subroutine which takes two numbers and
> gives out the product.
>
> Thanks for all the assistance.
>
> Jake.
>
>
>
>
>
>
> On 3/28/06, cozzi@xxxxxxxxx <cozzi@xxxxxxxxx> wrote:
> >
> >    If someone already answered this, sorry.
> >
> >
> >    Numeric parameters MUST be coded at Packed(15,5) when the program
is
> to
> > be
> >    called from Command Entry.
> >    The only way around it is to code hex values (as Kurt illustrated).
> Use
> > a
> >    CMD definition or compile the call into a CL program with variables
> >    defined to match that of the RPG program.
> >
> >    -BOB
> >
> >
> >
> >      -------- Original Message --------
> >      Subject: RE: newbie prototype question...
> >      From: "Kurt Anderson" <kjanderson@xxxxxxxxxxxxx>
> >      Date: Tue, March 28, 2006 12:58 pm
> >      To: "RPG programming on the AS400 / iSeries"
> <rpg400-l@xxxxxxxxxxxx>
> >
> >      Does this work?
> >
> >      CALL PGM(MYLIB/PROTO) PARM(x'1f' x'2f')
> >
> >      Our system defaults unspecified numerics to zoned, but I think
it's
> a
> >      system thing and some people's default to packed.
> >      I suggest explicitly stating in the definition if the number is
> zoned
> > or
> >      packed.
> >
> >      Kurt Anderson
> >      Application Developer
> >      Highsmith Inc
> >
> >      -----Original Message-----
> >      From: rpg400-l-bounces+kjanderson=highsmith.com@xxxxxxxxxxxx
> >      [mailto:rpg400-l-bounces+kjanderson=highsmith.com@xxxxxxxxxxxx]
On
> >      Behalf Of Jake M
> >      Sent: Tuesday, March 28, 2006 10:47 AM
> >      To: RPG programming on the AS400 / iSeries
> >      Subject: newbie prototype question...
> >
> >      I am trying to execute a simple prototype program but I keep
> getting
> > an
> >      error(it compiles fine). I am calling the program as follows:
> >
> >      CALL PGM(MYLIB/PROTO) PARM(1 2)
> >
> >      There might be a very simple mistake I am doing..I am also
looking
> > for a
> >      very simple example on a subroutine program and a program which
> uses
> >      /COPY.
> >      Any help in this matter will be greatly appreciated.
> >
> >          D addnums         PR                  EXTPGM('PROTO')
> >          D  num1                          1  0
> >          D  num2                          1  0
> >
> >          D addnums         PI
> >          D  num1                          1  0
> >          D  num2                          1  0
> >
> >          D  num3           S              1  0
> >
> >           /free
> >              num3 = num1 + num2;
> >              dsply num3;
> >              dsply 'DONE';
> >              *inlr = *on;
> >           /end-free
> >
> >      Error:
> >
> >      D
> >      Pointer or parameter error (C G D F).
> >
> >      Thanks in advance,
> >
> >      Jake.
> >      --
> >      This is the RPG programming on the AS400 / 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 AS400 / 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 AS400 / 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 AS400 / 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 AS400 / 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 AS400 / 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 AS400 / 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 AS400 / 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 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.