*PROCESS MACRO;
/*Module/File Name: IBMSCOL */
/****************************************************/
/* Example for callable service CEESCOL */
/* Function: Compare two character strings and */
/* print the result. */
/****************************************************/
PLISCOL: PROC OPTIONS(MAIN);
%INCLUDE CEEIBMAW; /* ENTRY defs, macro defs for LE */
%INCLUDE CEEIBMCT; /* FBCHECK macro, FB constants */
%INCLUDE CEEIBMLC; /* Locale category constants */
/* CEESCOL service call arguments */
DCL STRING1 CHAR(256) VARYING;/* first string */
DCL STRING2 CHAR(256) VARYING;/* second string */
DCL RESULT_SCOL BIN FIXED(31);/* result of compare */
DCL 01 FC, /* Feedback token */
03 MsgSev REAL FIXED BINARY(15,0),
03 MsgNo REAL FIXED BINARY(15,0),
03 Flags,
05 Case BIT(2),
05 Severity BIT(3),
05 Control BIT(3),
03 FacID CHAR(3), /* Facility ID */
03 ISI /* Instance-Specific Information */
REAL FIXED BINARY(31,0);
STRING1 = '12345a789';
STRING2 = '12346$789';
CALL CEESCOL( *, STRING1, STRING2, RESULT_SCOL,FC);
/* FBCHECK macro used (defined in CEEIBMCT) */
IF FBCHECK( FC, CEE3T1 ) THEN
DO;
DISPLAY ('CEESCOL not completed '||FC.MsgNo );
STOP;
END;
SELECT;
WHEN( RESULT_SCOL < 0 )
PUT SKIP LIST(
'"firststring" is less than "secondstring" ');
WHEN( RESULT_SCOL > 0 )
PUT SKIP LIST(
'"firststring" is greater than "secondstring" ');
OTHERWISE
PUT SKIP LIST( 'Strings are identical' );
END; /* END SELECT */
END PLISCOL;