*PROCESS MACRO;
/*Module/File Name: IBMSETL */
/****************************************************/
/* Example for callable service CEESETL */
/* Function: Set all global locale environment */
/* categories to country. Query one category. */
/****************************************************/
PLISETL: PROC OPTIONS(MAIN);
%INCLUDE CEEIBMAW; /* ENTRY defs, macro defs */
%INCLUDE CEEIBMCT; /* FBCHECK macro, FB constants */
%INCLUDE CEEIBMLC; /* Locale category constants */
/* CEESETL service call arguments */
DCL LOCALE_NAME CHAR(14) VARYING;
/* CEEQRYL service call arguments */
DCL LOCALE_NAME_TIME CHAR(256) VARYING;
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);
/* init locale name with IBM default for Sweden */
LOCALE_NAME = 'Sv_SE.IBM-1047';
/* use LC_ALL category const from CEEIBMLC */
CALL CEESETL ( LOCALE_NAME, LC_ALL, FC );
/* FBCHECK macro used (defined in CEEIBMCT) */
IF FBCHECK( FC, CEE2KE ) THEN
DO; /* invalid locale name */
DISPLAY ( 'Locale LC_ALL Call '||FC.MsgNo );
STOP;
END;
/* retrieve active locale for LC_TIME category */
/* use LC_TIME category const from CEEIBMLC */
CALL CEEQRYL ( LC_TIME, LOCALE_NAME_TIME, FC );
IF FBCHECK( FC, CEE000 ) THEN
DO; /* successful query, check category name */
IF LOCALE_NAME_TIME ^= LOCALE_NAME THEN
DO;
DISPLAY ( 'Invalid LOCALE_NAME_TIME ' );
STOP;
END;
ELSE
DO;
PUT SKIP LIST('Successful query LC_TIME',
LOCALE_NAME_TIME);
END;
END;
ELSE
DO;
DISPLAY ( 'LC_TIME Category Call '||FC.MsgNo );
STOP;
END;
END PLISETL;