× 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'm learning more everyday lol

Thanks,
Tommy Holden


-----Original Message-----
From: Bob Cozzi [mailto:cozzi@xxxxxxxxx]
Sent: Wednesday, October 13, 2004 9:31 AM
To: 'RPG programming on the AS400 / iSeries'
Subject: RE: Trying to use my procedure from a pgm complied with
CRTBNDRPG


Nope, the procedure has to match what was exported with the EXPORT keyword,
or rather ExtProc in RPG IV. 
So if you code:
0001.00 D GetSocSec       PR             9P 0 Extproc('GetSocSec')
When you're compiling the module that has the implementation of GetSocSec,
then the compiler will export the GETSOCSEC procedure as "GetSocSec" (mixed
case). Therefore the EXPORT in the binder source must specify the
"GetSocSec" name or it will not find it in the module and you'll get a
binder error.

Originally, the EXPORT keyword on the P spec was supposed to be used to
provide the exported name for the procedure. If not specified, it was to
default to the name on the P spec (in upper case). For some screwy reason,
the ExtProc keyword on the prototype was used instead. So this is yet
another reason to always store your prototypes in /COPY members and /COPY or
/INCLUDE them rather than hard coding them!

-Bob Cozzi


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Holden Tommy
Sent: Wednesday, October 13, 2004 9:18 AM
To: 'RPG programming on the AS400 / iSeries'
Subject: RE: Trying to use my procedure from a pgm complied with CRTBNDRPG

could be wrong but I thought that the EXPORT SYMBOL() the procedure had to
be in all caps???

Thanks,
Tommy Holden


-----Original Message-----
From: Brenzel, Wendy [mailto:bmis06@xxxxxxxxxxxxxxxxxxxxx]
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.
--
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 ...


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.