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



A binding directory is nothing more than a list of the names of modules and
service programs that contain procedures that you want to access. You could
do the same thing by:

1. Including the module source in the main program (not necessarily a good
thing);
2. Binding the module into a service program and use the two-step method
(CRTRPGMOD, CRTPGM);
3. Specifying the module on the CRTPGM command of the two-step method.

A service program is conceptually like a jar or dll - it contains procedures
that you can access.

On 4/7/06, Jake M <jakeroc@xxxxxxxxx> wrote:
>
> Michael, Charles...
> Okay, I followed Michael's advice and added my module to the already
> existing Binding Directory and then added the H Spec to my CALLCTST
> program
> and the program compiles just fine. So...Michael, thanks a lot for that. I
> appreciate it. Now, is it necessary that whenever I code a module I add
> that
> to a binding directory or is it just a good programming practice? Before
> getting my program to compile I just compiled the module CTSTJSTTST using
> CRTRPGMOD and did not add it to any binding directory. I hope I am making
> sense. I appreciate all your help. Just trying to learn the intricacies of
> the language.
>
> Jake.
>
> On 4/7/06, Wilt, Charles <CWilt@xxxxxxxxxxxx> wrote:
> >
> > Jake,
> >
> > You don't need a binding directory if
> > 1) You're not calling procedures from external modules/*SRVPGMs
> >
> > Or
> >
> > 2) You specify what to bind in on the CRTPGM command.
> >
> >
> > HTH,
> >
> > Charles Wilt
> > --
> > iSeries Systems Administrator / Developer
> > Mitsubishi Electric Automotive America
> > ph: 513-573-4343
> > fax: 513-398-1121
> >
> >
> > > -----Original Message-----
> > > From: rpg400-l-bounces@xxxxxxxxxxxx
> > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jake M
> > > Sent: Friday, April 07, 2006 10:21 AM
> > > To: RPG programming on the AS400 / iSeries
> > > Subject: Re: Calling RPGLE module.
> > >
> > > Michael,
> > > Yes, that is all the source code. So, I need to add..
> > >
> > >      H DftActGrp(*NO)
> > >      H BndDir('BNDDIR')
> > >
> > > to the beginning of my CALLCTST.RPGLE, right? But I am not
> > > using any binding
> > > directories in this at all. Do I still need to include those
> > > two lines?
> > > Thanks again for all your help.
> > >
> > > Jake.
> > >
> > > On 4/7/06, Michael_Schutte@xxxxxxxxxxxx <Michael_Schutte@xxxxxxxxxxxx>
> > > wrote:
> > > >
> > > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> > > >       /COPY QPROTOSRC,EDITOOLTST
> > > >       *
> > > >      D  CSTZIP         S             70
> > > >      D  CITY           S             35
> > > >      D  STE            S              2
> > > >      D  ZIP            S              9
> > > >      D  ERR            S              1
> > > >      D  pass           S              1
> > > >      D   RESULT        S            118
> > > >
> > > >       *
> > > >       *
> > > >       *
> > > >       /FREE
> > > >          CSTZIP = 'SCHULENBURG, TX';
> > > >
> > > >          RESULT = CTSTJSTTST(CSTZIP:CITY:STE:ZIP:pass:err);
> > > >
> > > >        *inlr = *on;
> > > >       /END-FREE
> > > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> > > >
> > > >
> > > > Is this all of your source?  If so, in order to get this to
> > > compile you
> > > > need to add the HSPECS that I sent in another email.   When using
> > > > prototypes, DftActGrp cannot be *YES, so in the HSPECS you
> > > can change it
> > > > to
> > > > *NO
> > > >
> > > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> > > >      H DftActGrp(*NO)
> > > >      H BndDir('BNDDIR')
> > > >
> > > >       /COPY QPROTOSRC,EDITOOLTST
> > > >       *
> > > >      D  CSTZIP         S             70
> > > >      D  CITY           S             35
> > > >      D  STE            S              2
> > > >      D  ZIP            S              9
> > > >      D  ERR            S              1
> > > >      D  pass           S              1
> > > >      D   RESULT        S            118
> > > >
> > > >       *
> > > >       *
> > > >       *
> > > >       /FREE
> > > >          CSTZIP = 'SCHULENBURG, TX';
> > > >
> > > >          RESULT = CTSTJSTTST(CSTZIP:CITY:STE:ZIP:pass:err);
> > > >
> > > >        *inlr = *on;
> > > >       /END-FREE
> > > >
> > > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> > > > 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
> > > >              04/07/2006 09:52          Re: Calling RPGLE module.
> > > >              AM
> > > >
> > > >
> > > >              Please respond to
> > > >               RPG programming
> > > >               on the AS400 /
> > > >                   iSeries
> > > >              <rpg400-l@midrang
> > > >                   e.com>
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Michael,
> > > > This is how I am calling it..still not able to compile. I
> > > bet I am doing
> > > > something outrageously stupid(out of ignorance
> > > ofcourse....). I appreciate
> > > > all the help.
> > > > CALLCTST.RPGLE(my program...does not compile)
> > > >
> > > >
> > > **************************************************************
> > > *******************************************
> > > >
> > > >       /COPY QPROTOSRC,EDITOOLTST
> > > >       *
> > > >      D  CSTZIP         S             70
> > > >      D  CITY           S             35
> > > >      D  STE            S              2
> > > >      D  ZIP            S              9
> > > >      D  ERR            S              1
> > > >      D  pass           S              1
> > > >      D   RESULT        S            118
> > > >
> > > >       *
> > > >       *
> > > >       *
> > > >       /FREE
> > > >          CSTZIP = 'SCHULENBURG, TX';
> > > >
> > > >          RESULT = CTSTJSTTST(CSTZIP:CITY:STE:ZIP:pass:err);
> > > >
> > > >        *inlr = *on;
> > > >       /END-FREE
> > > >
> > > >
> > > **************************************************************
> > > *********************************************
> > > >
> > > > EDITOOLTST
> > > >
> > > >
> > > **************************************************************
> > > *********************************************
> > > >
> > > >      D ctstjsttst      PR           118    opdesc
> > > >      D  ctyzip                       70    options(*varsize)
> > > >      D  city                         35
> > > >      D  ste                           2
> > > >      D  zip                           9
> > > >      D  pass                          1
> > > >      D  err                           1
> > > >
> > > >
> > > **************************************************************
> > > **********************************************
> > > >
> > > > CTSTJSTTST.RPGLE(module...compiles fine).
> > > >
> > > >
> > > **************************************************************
> > > **********************************************
> > > >
> > > >      H NOMAIN
> > > >       /COPY QPROTOSRC,EDITOOLTST
> > > >      PCTSTJSTTST       B                   export
> > > >      DCTSTJSTTST       PI           118    opdesc
> > > >      D CSTZIP                        70    OPTIONS(*VARSIZE)
> > > >      D CITY                          35
> > > >      D STE                            2
> > > >      D ZIP                            9
> > > >      D Pass                           1
> > > >      D ERR                            1
> > > >
> > > *----------------------------------------------------------------
> > > >      D X               S              2  0
> > > >      D Y               S              2  0
> > > >      D LEN             S              5I 0 INZ
> > > >      D FLDLEN          S             +1    LIKE(CSTZIP)
> > > >
> > > *----------------------------------------------------------------
> > > >      C*  ........................
> > > >      C                   IF        CSTZIP = *BLANKS
> > > >      C                   EVAL      ERR = *ON
> > > >      C                   ELSE
> > > >      C*
> > > >      C                   EVAL      ERR = *OFF
> > > >      C                   clear                   FLDLEN
> > > >      C                   MOVEL     CSTZIP        FLDLEN
> > > >      C     X'00'         CHECKR    FLDLEN        LEN
> > > >      C     ' '           CHECKR    FLDLEN:len    LEN
> > >             25
> > > >      C*  ........................
> > > >      C*    *load city/state/zip
> > > >      C*  ........................
> > > >      C* *if city is not blanks....
> > > >      C                   clear                   city
> > > >      C                   clear                   ste
> > > >      C                   clear                   zip
> > > >      C*   look for city/state delimited by ","..
> > > >      C     ','           scan      fldlen        x
> > > > 27
> > > >      C                   if        *in27 = *on
> > > >      C                   eval      %subst(city:1:x-1) =
> > > > %subst(fldlen:1:x-1)
> > > >      C                   else
> > > >      C     ' '           scan      fldlen        x
> > > > 27
> > > >      C                   if        *in27 = *on
> > > >      C                   eval      %subst(city:1:x-1) =
> > > > %subst(fldlen:1:x-1)
> > > >      C                   endif
> > > >      C                   endif
> > > >      C                   eval      x = x+1
> > > >      C* look for non-blank..for state
> > > >      C                   if        x + 2  < LEN
> > > >      C                   eval      Y = 2
> > > >      C                   else
> > > >      C                   eval      y = len - x + 1
> > > >      C                   endif
> > > >      C*
> > > >      C                   dow       x < LEN
> > > >      C                   if        %subst(fldlen:x:1) <> ' '
> > > >      C                   eval      %subst(ste:1:2)  =
> > > %subst(fldlen:x:2)
> > > >      C                   eval      x = x+2
> > > >      C                   leave
> > > >      C                   endif
> > > >      C*
> > > >      C                   eval      x = x+1
> > > >      C                   if        x + 2  < LEN
> > > >      C                   eval      Y = 2
> > > >      C                   else
> > > >      C                   eval      y = len - x + 1
> > > >      C                   endif
> > > >      C*
> > > >      C                   enddo
> > > >      C*
> > > >      C* look for non-blank..zip code
> > > >      C                   if        x + 9  < LEN
> > > >      C                   eval      Y = 9
> > > >      C                   else
> > > >      C                   eval      y = len - x + 1
> > > >      C                   endif
> > > >      C*
> > > >      C                   if        y >  9
> > > >      C                   eval      y = 9
> > > >      C                   endif
> > > >      C*
> > > >      C                   dow       x < len
> > > >      C*
> > > >      C                   if        %subst(fldlen:x:1) <> ' ' AND
> > > >      C                             %subst(fldlen:x:1) <> '.'
> > > >      C                   eval      %subst(zip:1:y)  =
> > > %subst(fldlen:x:y)
> > > >      C*
> > > >      C     '-'           SCAN      ZIP           POS
> > >        2 0
> > > > 20
> > > >      C                   IF        *IN20 = *ON
> > > >      C                   EVAL      Y = Y - POS + 1
> > > >      C                   EVAL      X = X + POS
> > > >      C                   if        y > 9
> > > >      C                   EVAL      y = 9
> > > >      C                   endif
> > > >      C                   EVAL      %SUBST(ZIP:POS:Y) =
> > > %SUBST(FLDlen:X:Y)
> > > >      C                   ENDIF
> > > >      C*
> > > >      C                   leave
> > > >      C                   endif
> > > >      C*
> > > >      C                   eval      x = x+1
> > > >      C                   if        x + 9  <= LEN
> > > >      C                   eval      Y = 9
> > > >      C                   else
> > > >      C                   eval      y = len - x + 1
> > > >      C                   endif
> > > >      C*
> > > >      C                   enddo
> > > >      C                   ENDIF
> > > >      C                   select
> > > >      C                   when      pass = '2'
> > > >      C                   return    ste
> > > >      C                   when      pass = '3'
> > > >      C                   return    zip
> > > >      C                   other
> > > >      C                   return    CITY
> > > >      C                   endsl
> > > >      C*
> > > >      PCTSTJSTTST       E
> > > >
> > > >
> > > **************************************************************
> > > *********************************************
> > > >
> > > >
> > > >
> > > > Jake.
> > > >
> > > > On 4/7/06, Michael_Schutte@xxxxxxxxxxxx
> > > <Michael_Schutte@xxxxxxxxxxxx>
> > > > wrote:
> > > > >
> > > > > Jake,
> > > > >
> > > > > Do you have the Parms for this program in the DSPECS
> > > using the PR and
> > > > PI?
> > > > > If so make sure that that the name on the PR & PI line
> > > are the same as
> > > > the
> > > > > name of this SOURCE.
> > > > >
> > > > > 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
> > > > >              04/07/2006 09:12          Re: Calling RPGLE module.
> > > > >              AM
> > > > >
> > > > >
> > > > >              Please respond to
> > > > >               RPG programming
> > > > >               on the AS400 /
> > > > >                   iSeries
> > > > >              <rpg400-l@midrang
> > > > >                   e.com>
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Birgitta,
> > > > > I used CRTBNDRPG command in RSE. The module CTSTJSTTST
> > > compiles fine
> > > > with
> > > > > the command 'CRTRPGMOD'. But the compile for program
> > > CALLCTST fails when
> > > > I
> > > > > use CRTBNDRPG. Thanks a bunch for enlightening me on the
> > > compilation
> > > > > theory.
> > > > > I appreciate your help.
> > > > >
> > > > > Jake.
> > > > >
> > > > >
> > > > >
> > > > > On 4/7/06, HauserSSS <Hauser@xxxxxxxxxxxxxxx> wrote:
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > how did you try to compile your program?
> > > > > > With option 14 in PDM?
> > > > > >
> > > > > > An ILE compilation is always a two step calculation:
> > > > > > 1. Compile all your modules (Option 15 --> CRTRPGMOD)
> > > > > > 2. Create the program using the CL-Command CRTPGM and
> > > by specifying
> > > > all
> > > > > > bound modules.
> > > > > >
> > > > > > (Even with option 14 CRTBNDRPG a two step compilation
> > > is performed.
> > > > > First
> > > > > > the module gets compiled to the QTEMP library. After
> > > the module gets
> > > > > > converted into a program in your object library and the
> > > module in the
> > > > > > QTEMP
> > > > > > gets deleted.)
> > > > > >
> > > > > > You also can add your modules (or service programs) to
> > > an binding
> > > > > > directory
> > > > > > and specify the binding directory at compile time or
> > > add it in the
> > > > > > H-Specs:
> > > > > > 1. Create Binding directory: CRTBNDDIR
> > > > > > 2. Add Binding directory entries: ADDBNDDIRE
> > > > > >
> > > > > > 3. If you are using a binding directory, it's possible
> > > to use Option
> > > > 14
> > > > > to
> > > > > > compile a program. You have to use an activation group
> > > other than the
> > > > > > default activation group and specify the binding
> > > directory in the
> > > > > compile
> > > > > > command.
> > > > > > Alternatively you can add the following H-Specs to your source:
> > > > > > H/If Defined (*CRTBNDRPG)
> > > > > > H  DftActGrp(*NO) BndDir('MYBNDDIR') ActGrp(*New or *Caller or
> > > > > > 'NAMEDACTGRP')
> > > > > > H/EndIf
> > > > > >
> > > > > > 4. If you use the two step compilation the binding
> > > directory can be
> > > > > > specified in the CRTPGM-Command.
> > > > > >
> > > > > > Mit freundlichen Gru?en / Best regards
> > > > > >
> > > > > > Birgitta
> > > > > >
> > > > > > "Shoot for the moon, even if you miss, you'll land
> > > among the stars."
> > > > > > (Les Brown)
> > > > > >
> > > > > > -----Ursprungliche Nachricht-----
> > > > > > Von: rpg400-l-bounces@xxxxxxxxxxxx
> > > > > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx]Im Auftrag von
> > > Mike Troxclaire
> > > > > > Gesendet: Donnerstag, 6. April 2006 23:34
> > > > > > An: rpg400-l@xxxxxxxxxxxx
> > > > > > Betreff: RE:Calling RPGLE module.
> > > > > >
> > > > > >
> > > > > > As a newbie I would love to know about it too. I was not able to
> > > > compile
> > > > > > the
> > > > > > program??
> > > > > >
> > > > > > Mike.
> > > > > >
> > > > > >
> > > _________________________________________________________________
> > > > > > Express yourself instantly with MSN Messenger! Download
> > > today - it's
> > > > > FREE!
> > > > > > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
> > > > > >
> > > > > > --
> > > > > > 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.
> >
> >
> --
> 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.