IBMi External Procedures in TURNOVER
Turnover (the one written by Softlanding that does Change Management, not the little pastry that is full of apple and tastes delicious) is a pretty cool Software Change Management application native to IBMi. But of course, you already knew that.
But, did you know that you can promote an EXTERNAL PROCEDURE to a specific library and then have it invoke its program component from that library, or from any library that you care to define to Turnover or of course from the *LIBL?
It’s all down to these basic rules:
- &LIBRARY is the variable that TURNOVER will replace with the name of your target library during promotion
- if you quote the procedure name (ie: ‘program’) then it must have either a hardcoded library (‘QGPL/THING’) or the variable (‘&LIBRARY/THING)
- If not quotes (ie: EXTERNAL NAME THING) then *LIBL will be used to call the THING program
Example *EXTPRC using &LIBRARY VARIABLE:
CREATE PROCEDURE CHKCASACT
(OUT ACCOUNTNUM9 DEC(9,0),
IN BIRTHDATE DEC(6,0),
IN DRIVERSLIC CHAR(25),
IN DRIVERSLICSTATE CHAR(2),
IN PASSPORTID CHAR(20),
IN OTHERID CHAR(30),
IN RZIPCODE CHAR(15),
IN LASTNAME CHAR(25),
IN FIRSTNAME CHAR(25),
IN RADDRESS1 CHAR(25),
OUT RETURN_CODE CHAR(25),
OUT RETURN_MSG CHAR(100))
DYNAMIC RESULT SETS 2
LANGUAGE RPGLESPECIFIC CHKCASACTNOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULLINPUT
EXTERNAL NAME '&LIBRARY/CHKCASACT'
PARAMETER STYLE GENERAL ;
And of course to change that external name to :
EXTERNAL NAME CHKCASACT
will result in it calling it from the *LIBL.
If you want to check the stored proc settings use SQL
SELECT * FROM qsys2.sysprocs WHERE SPECIFIC_NAME like ‘%CHKCASACT%’
This SQL statement will show all stored procedures with the words CHKCASACT as part of their name:
It took me a lot of head scratching to figure it out… and YES…. I know I probably could have just opened a manual and found that out. 🙂