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.
To make sure that you can generate your exception messages successfully,
and that messages will translate successfully at runtime, use the
following guidelines to help you calculate the length of each message
line to make sure that each line is 71 characters or less:
- 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.
When you specify NLSCHECK(Y) and run the HZSMSGEN exec with he
HZSNPSKE and
HZSNLSKE DD
statements uncommented, your message skeletons are generated in the
output data set specified on the HZSNLSKE DD statement.
- 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)
/*
When you use the HZSMSGEN exec to generate skeletons for the following
messages:
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.
For predefined system symbols &hzsgmttime; and &hzslocaltime;
the format used in the skeletons is as follows:
&DATE;=DATEMDY4. &TIME;=TIMEHMSCD6
Parmlib
members CNLENU00 and CNLJPN00 now include symbol TIMEHMSCD6.
Because the length of class=gmltime and localtime
variables might vary (for example, if you specify field size, <mv
class="gmltime" xreftext=" fieldsize(11)"), the format used in the
skeletons will also vary by length as follows. Note that using other
lengths than those shown produces results that will not match a date/time
NLS skeleton.
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.