|
Looks like I was right. The procedure is exported in all upper case. So you did NOT use the same prototype source to compile the module in the service program as you are using now. Shame on you! To get it to work, change this: 0001.00 D GetSocSec PR 9P 0 Extproc('GetSocSec') To this: 0001.00 D GetSocSec PR 9P 0 -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Brenzel, Wendy Sent: Wednesday, October 13, 2004 9:10 AM To: 'RPG programming on the AS400 / iSeries' Subject: RE: Trying to use my procedure from a pgm complied with CRTBNDRPG I got this from DSPSRVPGM... Display Service Program Information Display 5 of 10 Service program . . . . . . . . . . . . : IDSERV Library . . . . . . . . . . . . . . . : MARYWOOD Owner . . . . . . . . . . . . . . . . . : QPGMR Service program attribute . . . . . . . : RPGLE Detail . . . . . . . . . . . . . . . . . : *PROCEXP Procedure Exports: Procedure Name ARGOPT GETSOCSEC *NO And I already had this... *************** Beginning of data ************************************* 0001.00 STRPGMEXP PGMLVL(*CURRENT) 0002.00 EXPORT SYMBOL(GetSocSec) 0003.00 ENDPGMEXP ****************** End of data **************************************** I have been trying several variations on the theme & have been deleting & recreating the service program after recreating the module for GEetSocSec... It is the only module associated with the sevice program so far, because I was trying to get this one to work first :) Then I tied the service program to the binding directory... Display Binding Directory Binding Directory: IDDIR Library: MARYWOOD --------Creation--------- Object Type Library Date Time IDSERV *SRVPGM MARYWOOD 10/12/04 15:58:51 -----Original Message----- From: Bob Cozzi [mailto:cozzi@xxxxxxxxx] Sent: Wednesday, October 13, 2004 9:54 AM To: 'RPG programming on the AS400 / iSeries' Subject: RE: Trying to use my procedure from a pgm complied with CRTBNDRPG This is a binding error. Do you have this... 0001.00 D GetSocSec PR 9P 0 Extproc('GetSocSec') Properly specified when the service program was created? When the module for the service program was created? Is GetSocSec exported from the service program? Do a DSPSRVPGM to see if the procedure is exported. I'm guessing it is either not exported, or is exported as GETSOCSEC. To export it, use EXPORT(*ALL) or better yet, create some binder source and add this line to it: EXPORT SYMBOL("GetSocSec") -Bob Cozzi -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Brenzel, Wendy Sent: Wednesday, October 13, 2004 7:55 AM To: 'rpg400-l@xxxxxxxxxxxx' Subject: Trying to use my procedure from a pgm complied with CRTBNDRPG I am missing the boat... Please help. I am trying to compile an rpg ile test program, using crtbndrpg, which calls a procedure. The procedure is compiled into a module, placed in a service program, which in turn is in a binding directory. The test program Compile message: E x t e r n a l R e f e r e n c e s Statically bound procedures: Procedure References GetSocSec 10 44 Imported fields: Field Attributes Defined No references in the source. Exported fields: Field Attributes Defined No references in the source. Message Totals: Information (00) . . . . . . . : 2 Warning (10) . . . . . . . : 0 Error (20) . . . . . . . : 0 Severe Error (30+) . . . . . . : 0 --------------------------------- ------- Total . . . . . . . . . . . . . : 2 Source Totals: Records . . . . . . . . . . . . : 46 Specifications . . . . . . . . : 25 Data records . . . . . . . . . : 0 Comments . . . . . . . . . . . : 18 * * * * * E N D O F F I N A L S U M M A R Y * * * * * B i n d D i a g n o s t i c M e s s a g e s Errors were found during the binding step. See the job log for more information * * * * * E N D O F B I N D D I A G N O S T I C M E S S A G E S Job log... 30 10/12/04 16:00:16.810368 QBNBIND QSYS *STMT QBNBIND From module . . . . . . . . : QBNBSYMR From procedure . . . . . . : QBNBSYMR__UnresolvedReferenceIterator Statement . . . . . . . . . : 31 To module . . . . . . . . . : QBNBSYMR To procedure . . . . . . . : QBNBSYMR__SignalUnresolvedReferences Statement . . . . . . . . . : 8 Message . . . . : Definition not found for symbol 'GetSocSec'. Cause . . . . . : No definition was found for reference GetSocSec in *MODU object WTESTPROC in library QTEMP. The definition either does not exist or is not of the same data or procedure type as the reference. Recovery . . : Try the Create Program (CRTPGM) command again, supplying an object tha contains a definition for symbol GetSocSec. This procedure receives an id number & sends back soc sec.... I'm missing d spec I think in the test call program.... Test Program... D Spec... /Copy mwdgpl/qrpglesrc,protoid Protoid... *************** Beginning of data ************************************* 0001.00 D GetSocSec PR 9P 0 Extproc('GetSocSec') 0002.00 D InIDNo 9P 0 Value ****************** End of data **************************************** c****************************************** C* Call the procedure c****************************************** c getit begsr /Free socsec=GetSocSec(id#); /End-Free c endsr ...Where id# & socsec are defined as 9p 0 Procedure... FMWDPUNIQ IF E K DISK D* D GetSocSec PR 9P 0 D InIDNo 9P 0 Value D* Status Data Structure D STATUS SDS 333 P************************************************** P* Procedure -GetSocSec P************************************************** P GetSocSec B Export D* Procedure Interface... D PI 9P 0 D InIDNo 9P 0 Value D* Local variables D SocSec S 9P 0 C* Housekeeping C Clear SocSec C* Retrieve Soc Sec from Unique File... C *in87 doueq '0' C InIDNo chain jxrcd 8887 C *in87 ifeq '1' C call 'LOCKMSG' C parm STATUS C end C end C *in88 ifeq '0' C z-add jxssn SocSec C end C* C Return SocSec P GetSocSec E ****************** End of data ************************************** I am compiling with CRTBNDRPG command, DFTACTGRP *NO & BNDDIR(IDDIR)...(Which contains my service program, which contains my procedure module.) Any suggestions? Wendy Brenzel Senior Programmer/Analyst MIS Department Marywood University Scranton, PA 18509 (570) 348-6221 ex2568 -- 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.