The Duplicate Standard Source command is intended for those cases
where you are adding a new source member. The command adds the
member and copies standard source for the appropriate source type.
This allows you to begin with some typical source statements rather
than an empty member.
A typical command is entered as:
DUPSTDSRC MBR(MBRA) SRCTYP(*RPG) TEXT('Member A source')
If no SRCFILE parameter is used, the standard source file name is
derived from the source type. In this case since *RPG is specified,
QRPGSRC would be used. CPYSRCF is used internally to copy from the
standard RPG source provided. This includes typical RPG source
statements to begin a program. The TEXT value is used as the member
description and is also used along with the member name as the first
record in the source.
The intent is to provide you with typical statements that are already
coded for the appropriate source type. After DUPSTDSRC completes,
you can use SEU to begin modifying the source.
It would be normal to use some of the standard source and delete
statements that are not needed.
If the source type requested does not exist in the QATTxxx file in
TAATOOL, the source is copied from the TAA Archive. You can copy
your own version to the QATTxxx file in TAATOOL and retain the
advantages of DUPSTDSRC.
Modifying the standard source
-----------------------------
The standard source is shipped as members in the TAA Archive. You
cannot modify the source in the archive, but you can copy the source
to your own file (in your own library) using the TAASTDAx source
member name. You can then modify the source with SEU.
When you are ready, you should copy the source to the appropriate
QATTxxx file in TAATOOL using the same TAASTDAx name. DUPSTDSRC will
check for the existence of the member in the QATTxxx file and use it
instead of the TAA Archive version.
See the later section for the specific source member name to use.
This 'copying back' would have to be done following a new release or
an update to the TAATOOL product. Therefore, you should keep the
changes in your own library.
*MNUC and *MNUD source types
----------------------------
The *MNUC and *MNUD types supply standard CL and DSPF source for
creating a menu. Using a CL program for a menu allows better
flexibility in handling selections and what to do if an error occurs.
The display file DDS is set for a menu with 12 options. A message
text area is available on the menu. The CL program source provides
standard points you can branch to for the following functions:
** Blank the selection field (Normal choice)
** Place a value in the message text field and blank the select
field (Used for a function that does not have a user
interaction such as SBMJOB).
** Place a value in the message text and retain the selection
(Used for your own error messages).
** Receive the last message sent by your function and blank the
selection field (Good for commands like SBMJOB).
** Receive the escape message and retain the selection field
(Used for general purpose errors).
** Cause the job log to be displayed and a message sent to
QSYSOPR (Used for unexpected errors).
The CL program has the correct parameter list so you can specify a
CRTMNU command and access the menu object with the GO command (If you
don't want a menu object, you can just delete the parameter list).
To use CRTMNU, you would first create your display file and CL
program and then the command:
CRTMNU MENU(xxxx) TYPE(*PGM) PGM(yyyy)
CL Source with and without SNDESCINF
------------------------------------
Two members are provided for standard CL source (TAASTDAC and
TAASTDAC3) which contain the standard error handling used in most TAA
tools.
TAASTDAC includes the TAA Tool SNDESCINF which sends the MI
instruction where the error occurred. This information can be used
in conjunction with the DSPPGMSTMT TAA Tool to pinpoint the HLL
statement where the error occurred.
TAASTDAC3 is the same source without SNDESCINF. Although the source
contains TAA commands such as SNDSTSMSG, the standard error handling
code can be extracted and run on any system (it does not require the
TAA Productivity Tools product).
*SUBFx, *SUBF2x, *SUBF3x, and *SUBF4x source types
--------------------------------------------------
The *SUBFx, *SUBF2x, *SUBF3x, and *SUBF4x source types are associated
with the DMOSUBF, DMOSUBF3, and DMOSUBF4 tools. This tool allows
sample code to be copied to begin a member for a Work Subfile
application.
Command parameters *CMD
------------------
MBR The member name to be added to the file. It must
not exist in the file.
SRCTYP The source type to be added. It must be one of the
values *CMD, *CLP, *CL, *RPG, *RPGLE, *PF, *LF,
*DSPF, *PRTF, *MNUC, *MNUD, *SUBFCMD, *SUBFCLP,
*SUBFDSPF, *SUBFRPG, *SUBF2CMD, *SUBF2CLP,
*SUBF2DSPF, or *SUBF2RPG, *SUBF3CMD, *SUBF3CLP,
*SUBF3DSPF, *SUBF3RPG, *SUBF4CMD, *SUBF4CLP,
*SUBF4DSPF, and *SUBF4RPG. The values *CL and *CLP
are synonymous. See the previous discussion of the
*MNUC, *MNUD, *SUBFx and *SUBF2x types.
The *RPGLE value means the source file name of
QRPGLESRC.
TEXT The text description to be used for the new member.
The same text is also appended to the member name
and written as the first record in the source
member.
SRCFILE The qualified file name of the source file. The
default is *SRCTYP which means to use the standard
source file names associated with the source type
(e.g. *CMD = QCMDSRC, *CL = QCLSRC).
Restrictions
------------
None.
Prerequisites
-------------
The following TAA Tools must be on your system.
TAAARC TAA Archive
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
WRTSRC Write source
Implementation
--------------
None, the tool is ready to use.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
DUPSTDSRC *CMD TAASRCV QATTCMD
TAASRCVC *PGM CLP TAASRCVC QATTCL
The following members exist in the TAA Archive which act as the
standard source to be used.
SRCTYP Member Type Src file
----- ------ ---- --------
*CMD TAASTDA *CMD QATTCMD
*CLP TAASTDAC *CLP QATTCL
*CLP TAASTDAC3 *CLP QATTCL
*RPGLE TAASTDAR *RPGLE QATTRPG
*RPG TAASTDAR2 *RPG QATTRPG Note 3
*PF TAASTDAP *PF QATTDDS
*LF TAASTDAL *LF QATTDDS
*DSPF TAASTDAD *DSPF QATTDDS
*PRTF TAASTDAS *PRTF QATTDDS
*MNUC TAASTDAC2 *CLP QATTCL
*MNUD TAASTDAD2 *DSPF QATTDDS
Note 1 TAASTDBK *PF QATTDDS
Note 1 TAASTDBA *LF QATTDDS
*SUBFDSPF TAASTDBD *DSPF QATTDDS
*SUBFCMD TAASTDB *CMD QATTCMD
*SUBFCLP TAASTDBC *CLP QATTCL
Note 2 TAASTDBC2 *CLP QATTCL
*SUBFRPG TAASTDBR *RPG QATTRPG
*SUBF2DSPF TAASTDCD *DSPF QATTDDS
*SUBF2CMD TAASTDC *CMD QATTCMD
*SUBF2CLP TAASTDCC *CLP QATTCL
*SUBF2RPG TAASTDCR *RPG QATTRPG
*SUBF3DSPF TAASTDDD *DSPF QATTDDS
*SUBF3CMD TAASTDD *CMD QATTCMD
*SUBF3CLP TAASTDDC *CLP QATTCL
*SUBF3RPG TAASTDDR *RPG QATTRPG
*SUBF4DSPF TAASTDED *DSPF QATTDDS
*SUBF4CMD TAASTDE *CMD QATTCMD
*SUBF4CLP TAASTDEC *CLP QATTCL
*SUBF4RPG TAASTDER *RPG QATTRPG
Note 1 - Used only for the demo function
Note 2 - Used only to refresh the demo data
Note 3 - The OPM format of RPG
|