Other PL/I Notes

Other PL/I Notes

The example program PLI2 demonstrates how to call SSA-NAME3.
There are strict requirements for the parameters for a PL/I call to the SSA-NAME3 API. The parameters must be defined as follows (these examples are for an SSAOPEN call):
DCL ADDR BUILTIN; DCL J FIXED BIN(31,0); DCL SSAOPEN EXTERNAL ENTRY RETURNS(FIXED BIN(31,0)); DCL SSACLOS EXTERNAL ENTRY RETURNS(FIXED BIN(31,0)); DCL GETKEYS EXTERNAL ENTRY RETURNS(FIXED BIN(31,0)); DCL GETRNGS EXTERNAL ENTRY RETURNS(FIXED BIN(31,0)); DCL SSAINFO EXTERNAL ENTRY RETURNS(FIXED BIN(31,0)); DCL SSAMTCH EXTERNAL ENTRY RETURNS(FIXED BIN(31,0)); DCL SOCKH FIXED BIN(31,0) INIT(-1); DCL SESSION FIXED BIN(31,0) INIT(-1); DCL SYSTEM PTR; DCL POPULATION PTR; DCL CONTROLS PTR; DCL SSARSP PTR; DCL SSAMSG PTR; DCL P1 CHAR(32) INIT(’ ’); DCL P2 CHAR(32) INIT(’ ’); DCL P3 CHAR(1924) INIT(’ ’); DCL P4 CHAR(2) INIT(’99’); DCL P5 CHAR(1024) INIT(’ ’)
The
CHAR
parameters are setup as follows: The System, Population and Controls must be null terminated using "
||
00
x
".
SYSTEM = ADDR(P1); POPULATION = ADDR(P2); CONTROLS = ADDR(P3); SSARSP = ADDR(P4); SSAMSG = ADDR(P5); P1 = ’default’ || ’00’x; P2 = ’usa || ’00’x; P3 = ’FIELD=PERSON_NAME’ || ’00’x
Finally the call is done as follows:
J = SSAOPEN( ADDR(SOCKH), ADDR(SESSION), ADDR(SYSTEM), ADDR(POPULATION), ADDR(CONTROLS),
Do not leave out any of these steps otherwise the call will fail with an abend or simply not return anything. Make sure
SOCKH
and
SESSION
are set to -1 before the call to
SSAOPEN
.
The entry point names differ slightly from the Cobol interface as PL/I is limited to 7 character external names.
The entry point names for the static call are:
SSADISC SSACONN SSAOPEN SSACLOS GETKEYS SSAINFO SSAMTCH GETRNGS
Alternatively the
SSA.N3
V100
.PLIDYN.LOAD
library contains entry points that can be called dynamically.

0 COMMENTS

We’d like to hear from you!