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



Here's a stripped out module.  Just an example.  You will know what to work
with binding directories.  You can name the source to this anything you
want and add as many procedures you want.  To compile this source, you will
need to use option 15 in PDM (CRTRPGMOD).  Then goto WRKBNDDIR and add the
source of this module to a binding directory of your choice.

Then in programs that you want to reference this procedure, you will need
to bind the procedure to that program.  Which can be as easy as using the
HSPECS and entering the Procedure Prototype to that program.

In the calling program,

     H BNDDIR('BNDDIR')

     D PROTO_02        PR            15P 5
     D  num1                         15P 5 Const
     D  num2                         15P 5 Const

      /free
            answer = proto_02(1, 2);
      /end-free



Module holding the procedure (name the module anything you want)


     h Option(*NoDebugIO)
     h NoMain
      *‚- - - - - - - - - - - - - - - - - - - - - - - - - - - -
      *‚Name.........:
      *‚Description..:
      *‚
      *‚NOTE.........:
      *‚
      *‚Written By...:
      *‚Date.........:
      *‚Mnt Request..:
      *‚
      *‚- - - - - - - - - - - - - - - - - - - - - - - - - - - -
      *‚MODIFICATIONS
      *‚- - - - - - - - - - - - - - - - - - - - - - - - - - - -
      *‚
      *‚- - - - - - - - - - - - - - - - - - - - - - - - - - - -

ˆ*--------------------------------------------------------------------*
     ˆ*‚                    File Specifications
ˆ*

ˆ*--------------------------------------------------------------------*
     ˆ*‚Add your file names here, this will allow all procedures to access
     ˆ*‚this files.


ˆ*--------------------------------------------------------------------*
     ˆ*‚Global Variables (To Be Used In Any Procedure At Any Time).
ˆ*

ˆ*--------------------------------------------------------------------*


      *‚List Procedure Prototypes Here
     D PROTO_02        PR            15P 5
     D  num1                         15P 5 Const
     D  num2                         15P 5 Const


˜*---------------------------------------------------------------------
     ˜*‚Procedures To Use In External Programs.

˜*---------------------------------------------------------------------
     P PROTO_02        B                   Export

     ˆ*‚list this procedures interface
     D PROTO_02        PI            15P 5
     D  num1                         15P 5 Const
     D  num2                         15P 5 Const

     ˆ*‚list local variables here, can only be used in this procedure.
     D rtnVal          S             15P 5

      /Free

        //‚Do your stuff here.
        rtnVal = num1 + num2;

        //‚return results to calling program
        Return rtnVal;
      /End-Free
     P PROTO_02        E

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 02:50          Re: newbie prototype question...    
             PM                                                            
                                                                           
                                                                           
             Please respond to                                             
              RPG programming                                              
              on the AS400 /                                               
                  iSeries                                                  
             <rpg400-l@midrang                                             
                  e.com>                                                   
                                                                           
                                                                           




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.



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.