Here's the source that produces that message.
CREATE PROCEDURE &LIB/MATCHANITEMCODE (
IN @STORER DECIMAL(4, 0) ,
IN @SUFFIX CHAR(2) ,
INOUT @ITEM CHAR(20) ,
OUT @LOT1 CHAR(20) ,
OUT @LOT2 CHAR(10) ,
OUT @LOT3 CHAR(10) ,
OUT @QUANTITY DECIMAL(7, 0) )
CALLED ON NULL INPUT
EXTERNAL NAME '*LIBL/ITP20R'
PARAMETER STYLE GENERAL ;
Remove *LIBL, then RUNSQLSTM fails with this message.
SQL0449 30 4 Position 74 External program name for routine
MATCHANITEMCODE in Z_PD3464 not valid.
On Tue, May 15, 2012 at 11:08 AM, Michael Schutte wrote:
I was wrong, it was reason code 1. Program not found. *LIBL is not
valid on EXTERNAL NAME. However, check out reason code 3. It says
"The external program was not an ILE *PGM or *SRVPGM"
Hence me asking the question.
Message . . . . : Routine MATCHANITEMCODE was created, but cannot
be saved and restored.
Cause . . . . . : The routine MATCHANITEMCODE was created
successfully in MSCHUTTE with a specific name of MATCHANITEMCODE,
but the routine's attributes could not be saved in the associated
program or service program object. If the *PGM or *SRVPGM object
is saved and then restored, the SQL catalogs will not be updated
with the attributes for this routine. Reason code is 1. Reason
codes and their meanings are: 1 -- The external program did not
exist when the CREATE statement was issued. 2 -- The external
program schema is QSYS. 3 -- The external program was not an ILE
*PGM or *SRVPGM. <<SNIP 4-8>>
Recovery . . . : Do one of the following based on the reason
code: 1 -- Ensure that the external program exists when the CREATE
statement is issued. 2 -- Ensure that the external program schema
is not QSYS. 3 -- Ensure that the external program is an ILE *PGM
or *SRVPGM. <<SNIP 4-8>>
This isn't my issue, but the question still remains.