Guidelines for coding translatable exception message text lines
If you want to generate skeletons for message translations for your check exception WTO messages, it will impact the way you code the message text for your messages in the message table. For example, if you want to generate NLS skeletons for your messages, you must break up message text in the message table into lines of 71 characters or less. The line length is calculated based on the total length of the message text, and the maximum length that each insert is defined. When you use HZSMSGEN, you can specify NLSCHECK(Y) to specify that the system enforce the NLS length guideline. HZSMSGEN enforces these restrictions when messages are created.
- On the first line of the message text, remember that the message identifier, or number, can require up to 11 characters.
- You must use <lines></lines> to define a new line before you reach the WTO limit of 71 characters.
- Specify <mv class="variable_class" xreftext="maxlen(nnn)>" for all the variables in your exception messages to define the maximum length possible for each variable. This will make it much easier for you to calculate where you need to insert a <lines></lines> tag to break up a message text to avoid exceeding the 71 character limit. If you do not specify maxlen, you must allow for the maximum space allowed for the type of variable when calculating where you want to break your line with <lines></lines>. See Table 1 for specifics on variable lengths.
- For a predefined system symbol, which is resolved at check run time, you must allow for the maximum space allowed for the element when calculating the number of characters it will take up. See Table 1.
- Both system symbols and variables can be longer than 71 characters themselves. This is OK, as long as the lengthy item is followed by a new line indicator (<lines></lines> tags together) or is the very last thing in the message text.
- Set variable HZSNPSKE to the name of a sequential data set or a member of a PDS that contains the NLS prologue. The product version record is required by MMS and must be included in NLS prologue to produce a compilable NLS skeleton.
- Set variable HZSNLSKE to the name of a sequential data set or a member of a PDS to be used as output. It will contain the NLS message skeleton when NLSCHECK(Y) is specified and message generation completes with a return code of 0. This data set must have a variable record length of 259.
//HZSMSGEN JOB
//*
// SET SYSPROC=SYS1.SBLSCLI0(HZSMSGEN)
// SET HZSMDSN=SYS1.SAMPLIB(HZSSMSGT)
// SET HZSADSN=&SYSUID..TEMP.ASM;
// SET HZSSDSN=SYS1.SAMPLIB(HZSSSYMD)
// SET HZSNPSKE=&SYSUID..DUMMY.NLS.PROLOGUE;
// SET HZSNLSKE=&SYSUID..TEMP.SKEL;
//*
//HZSMSG EXEC PGM=IKJEFT01,REGION=32M,
// PARM='%HZSMSGEN NLSCHECK(N) SOURCE(ERROR)'
//SYSTSPRT DD SYSOUT=*,DCB=(LRECL=132,BLKSIZE=132,RECFM=FB)
//SYSPROC DD DISP=SHR,DSN=&SYSPROC;
//SYSTSIN DD DUMMY
//HZSMDSN DD DISP=SHR,DSN=&HZSMDSN;
//HZSSDSN DD DISP=SHR,DSN=&HZSSDSN;
//HZSADSN DD DSN=&HZSADSN;,DISP=(NEW,KEEP),
// SPACE=(TRK,(10,10)),UNIT=SYSDA,DCB=(LRECL=80,BLKSIZE=0,RECFM=FB)
//HZSNPSKE DD DSN=&HZSNPSKE;,DISP=SHR
//HZSNLSKE DD DSN=&HZSNLSKE;,DISP=(NEW,KEEP),
//* SPACE=(TRK,(10,10)),UNIT=SYSDA,DCB=(LRECL=259,BLKSIZE=0,RECFM=VB)
/*
CSVH0970E New extents were detected in LNKLST set(s).
CSVH0980E Some LNKLST sets include data set(s) allocated
with secondary space defined.
You will get the following
skeletons generated:CSVH0970E New extents were detected in LNKLST set(s).
CSVH0980E 01001 Some LNKLST sets include data set(s) allocated with
CSVH0980E 01002 secondary space defined.
You can customize the timestamp, date, or day generated by timestamp symbols or variables in your messages, by customizing the format for the symbols in the system configuration SYS1.PARMLIB CNL members. See CNLcccxx (Time and date format for translated messages) in z/OS MVS Initialization and Tuning Reference for additional information.
&DATE;=DATEMDY4. &TIME;=TIMEHMSCD6
Parmlib
members CNLENU00 and CNLJPN00 now include symbol TIMEHMSCD6.Fieldsize Formatted date/time NLS skeleton
26 mm/dd/yyyy.hh.mm.ss.tttttt &DATE=DATEMDY4. &TIME=TIMEHMSCD6.
25 mm/dd/yyyy.hh.mm.ss.ttttt &DATE=DATEMDY4. &TIME=TIMEHMSCD5.
24 mm/dd/yyyy.hh.mm.ss.tttt &DATE=DATEMDY4. &TIME=TIMEHMSCD4.
23 mm/dd/yyyy.hh mm.ss.ttt &DATE=DATEMDY4. &TIME=TIMEHMSCD3.
22 mm/dd/yyyy.hh.mm.ss.tt &DATE=DATEMDY4. &TIME=TIMEHMSCD2.
21 mm/dd/yyyy.hh.mm.ss.t &DATE=DATEMDY4. &TIME=TIMEHMSCD1.
19 mm/dd/yyyy.hh.mm.ss &DATE=DATEMDY4. &TIME=TIMEHMSC.
16 mm/dd/yyyy.hh.mm &DATE=DATEMDY4. &TIME=TIMEHMC.
13 mm/dd/yyyy.hh &DATE=DATEMDY4. &hh.
10 mm/dd/yyyy &DATE=DATEMDY4.