|
Jake, First off I recommend you read the ILE concepts manual, found here: http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/books/sc4156 06.pdf A binding directory is simply a list of modules and or service programs search by the binder to find a called procedure. I personally don't put any modules in my binding directory. The only things in my binding directory are service programs. Procedures intended to be called by even a couple of "external" programs/procedures belong in a service program. So the public interfaces to my code are always in a service programs. Thus, the binding directory for my code only has *SRVPGMs listed. Now if I didn't have a CMS package, I'd have additional binding directories, one unique for each *SRVPGM to make it easier to recreate the service program if needed. 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 11:00 AM > To: RPG programming on the AS400 / iSeries > Subject: Re: Calling RPGLE module. > > 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 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.