Ü
H SPEC
·
F is the alphabetic code used
for Control Specification. It is
used to define the controlling entity
of the program e.g. date/ time format, default program name, program as PEP, to
define the decimal precision etc.
·
It is also used to define the compiler options to be used while we
are compiling the program.
e.g. default activation group, authority, compiler source generation
options etc.
To prompt H SPEC
given the line command: IPH
Prompt type . . . H Sequence number . . . '''''''
Keywords
___________________________________ >>>>> multiple keywords can be written here
Comment
___________________
Ü
H SPEC Keywords
o
DEBUG (*Yes)
Use this keyword to indicate whether or not to perform DUMP
operations in your RPG program. The default is *NO, which means DUMP operations
will not be performed. If you have an error handler that uses the DUMP
op-code, you should specify DEBUG(*YES) in your H-spec.
o
DATEDIT (*DMY)
o
OPTION(*{NO}XREF *{NO}GEN *{NO}SECLVL *{NO}SHOWCPY *{NO}EXPDDS
*{NO}EXT *{NO}SHOWSKP) *{NO}SRCSTMT) *{NO}DEBUGIO)
As of V4R5, below are the options available:
*{NO}XREF: Determines whether or not to create a cross-reference
listing when the module is compiled.
*{NO}GEN: Determines whether or not to generate a compiled object.
*{NO}SECLVL: Sets
the level of message displayed on compile listing.
*{NO}SHOWCPY: If
*NOSHOWCPY is specified, /copy members are not expanded in the compile
listing.
This may be useful if you have a large copy
member that defines many procedure
prototypes.
*{NO}EXPDDS: If
*NOEXPDDS is coded, externally defined data will not be expanded in the compile
listing.
The two most useable options however are still
probably *{NO}SRCSTMT and *{NO}DEBUGIO.
*{NO}SRCSTMT: If *NOSRCSTMT is coded or this statement is
excluded (*NOSRCSTMT is the default), statements will be re-numbered when
compiling the program. If your program
gets a run-time error, the statement indicated will be virtually useless unless
you have a copy of compile. *SRCSTMT
will prevent the compiler from renumbering the program's statements.
*{NO}DEBUGIO: If you use the interactive source debugger to
step through a program, you'll notice that the debugger will break many times
on every I/O statement. This is because
a separate breakpoint is inserted for every field returned from the I/O
buffer. This is not a major problem, and
very inconvenient. Coding *NODEBUGIO
will break only once for each I/O statement.
o
DATFMT (FMT)
Specify this keyword to define the default format for date
fields within the program.
Choose one of the following date formats:
*MDY (mm/dd/yy)
*DMY (dd/mm/yy)
*YMD (yy/mm/dd)
*ISO (yyyy-mm-dd)
*USA (mm/dd/yyyy)
*EUR (dd.mm.yyyy)
e.g. H
datfmt(*MDY)
By
default FMT will be *ISO.
o
TIMFMT (FMT)
Choose one of the following time formats:
*HMS (hh:mm:ss)
*ISO (hh.mm.ss)
*USA (hh:mm AM or hh:mm PM)
*EUR (hh.mm.ss)
By default FMT will be *ISO.
o
ACTGRP (*NEW | *CALLER | 'activation-group-name')
If ACTGRP(*NEW) is specified, then
the program is activated into a new activation group. If ACTGRP(*CALLER) is
specified, then the program is activated into the caller's activation group. If
an activation-group-name is specified, then that name is used when this program
is called.
H datedit(*YMD)
datfmt(*ISO) option(*SRCSTMT *NODEBUGIO)
o
NOMAIN
Specify this keyword to indicate that this module does not contain a
main (program-entry) procedure.
o AUT
(*LIBRCRTAUT | *ALL | *CHANGE | *USE | *EXCLUDE | 'authorization-list-name')
The AUT keyword specifies the
authority given to users who do not have specific authority to the object.
o BNDDIR ('library-name/binding-directory-name')
We can mention the bind directory name here that is to be used at
the time of compilation.