TAA Tools
Library List Requirements
Before making any decisions, you should run the CHKTAAPRD command as
described in an Information member on the HELPTAA menu. CHKTAAPRD is
also run as part of any install of the TAA Productivity Tools. The
command to run is (you must have *ALLOBJ special authority):

        SBMJOB JOB(CHKTAAPRD) CMD(CHKTAAPRD LIB(*ALL))

CHKTAAPRD will provide a listing of:

-   Any command names on your system that use the same name as a TAA
    Tool command name.

-   Any objects on your system that begin with TAA that are outside of
    the TAA Productivity Tools libraries.

-   Any program names on your system that use the same name as some of
    the special TAA Productivity Tools APIs such as SNDESC and
    HLRMVMSG.

Any old forms of TAA Tools from QUSRTOOL should be deleted.

If you can eliminate duplicate names with any of the TAA Productivity
Tool objects, you should do so.

The information from CHKTAAPRD will assist you in cleaning up your
system and in in selecting the best strategy for how to access the TAA
Productivity Tools.

Previous users of the TAA Tools from QUSRTOOL

If you were using the TAA Tools when they were a part of the QUSRTOOL
i5/OS library and you have a working solution for accessing the tools,
you may retain your current solution.

If the CHKTAAPRD output has described 'Duplicate command names' that
you cannot resolve, you may want to consider one of the alternatives
described in later sections.

You may be interested in changing your solution based on the
information in the other sections.

No Duplicate object names

If after running CHKTAAPRD and performing any cleanup so that there
are no duplicate object names, the simplest solution for accessing the
TAA Tools is to place TAATOOL on the system portion of the library
list.

While this is a simple solution, it will cause problems if you already
have programs that add TAATOOL to the library list (with ADDLIBLE,
CHGLIBL). An escape message will be sent stating that the TAATOOL
library is already on the library list. Job Descriptions that name
TAATOOL will also cause similar problems as well naming TAATOOL in the
INLLIBL parameter of SBMJOB.

To place the TAATOOL library on the system portion of the library
list. Use:

        WRKSYSVAL SYSVAL(QSYSLIBL)

Add TAATOOL at or near the end of the list. Be sure it is after QSYS.

Note that you do not need a separate command library. Use the primary
versions of the commands in TAATOOL.

This simple solution provides all of the TAA Productivity Tools to all
users without any special programming or initialization functions.
Note that some tools require special authorizations or users with
*ALLOBJ special authority (similar to i5/OS commands).

If you are at Level 10 or 20 security, all functions will be available
to any user just as all system commands are available to any user.

Other solutions

If modifying the system portion of the library list is not acceptable
or will cause problems, other solutions include:

-   Using ADDLIBLE for TAATOOL when needed.

-   Modifying specific job descriptions to include TAATOOL.

-   Using initial programs at signon that specify TAATOOL be added to
    the library list.

-   Using the product portion of the library list (see the later
    section).

-   Library qualifying the use of the TAA Tool commands (this could be
    a significant workload).

-   Placing the TAA Tool commands in a separate library and inserting
    this 'command library' on the system portion of the library list.
    This may allow for a simpler handling of exceptions (see the next
    section).

-   Placing a subset of the TAA Tool commands in a separate library
    (or a library such as QGPL) that is available to all users may be
    done, but is not recommended. If required, the use of a proxy
    command is preferred which will minimize your exposure when a new
    TAA version is installed. See the later section on 'Separate
    library for some TAA Commands'.

Combinations of these solutions may also be desirable. The following
sections describe alternatives.

Separate library for all TAA Commands (Command library)

A separate library of just the TAA commands may be established. While
this is described as the 'command library' it will contain:

-   All TAA Tool commands. The commands are created as proxy commands.

-   All TAA Tool menus.

-   A few physical files used as data structure definitions during
    compilations.

If you want a separate library for just the TAA commands, a
recommended name to use is TAACMD. If you are already using a
different name or want a library with more than just the TAA commands,
there is no restriction.

There are a few reasons you may want to consider a separate command
library:

-   It may assist you in resolving duplicate command name problems.

-   You may want to place the TAA commands in a library with other
    user commands so that they are all handled in the same manner.

Not all of the TAA functions are performed by menus or commands. For
example, the SNDESCMSG tool allows a HLL program to easily send an
escape message by just calling the SNDESC program. If you make a
command library and do not have TAATOOL on your library list, you will
have to library qualify the calls to TAA programs such as SNDESC.

To create a command library, you must use the system CRTLIB command to
create a library or use one of your existing libraries. There are two
methods of placing the objects into this library:

-   Using an option at the time of the install of the TAA Productivity
    Tools.

-   Using the DUPTAACMD TAA Tool after the TAA Productivity Tools have
    been installed.

It is important to note that the command library will contain a
duplicate version of each of the TAA commands. These are created by
the use of CRTTAAPRX to create a proxy command. The TAATOOL library
will contain the primary versions of all commands.

If you create a tool with CRTTAATOOL, it will access the TAACTL data
area in TAATOOL to determine your command library. If it is other than
TAATOOL, a duplicate version of any commands created by the tool will
be created in your command library.

The DLTTAACMD TAA Tool will allow you to delete the TAA objects in the
command library if you change your mind and want to use only a TAATOOL
library approach.

Each time you install a version of the TAA Productivity Tools product,
the command library (if it exists) is refreshed automatically.

The CHGCMDLIB command will allow you to change the command library.
Depending on the existing command library and the new command library,
you may be asked to run DLTTAACMD and/or DUPTAACMD.

Separate library for some TAA Commands

Duplicating some TAA commands in a separate library is generally not a
good idea.

TAA tools are often enhanced and new parameters may be added or
changed. When a new version of TAA is installed, your duplicate
command may be out of synch with the TAA version.

If duplicating a TAA command is required, the best solution is to
create a proxy command. A special TAA command many be used for this:

        CRTTAAPRX CMD(xxx) CMDLIB(yyy)

Using a proxy command instead of a regular command type is a preferred
because:

-   The proxy version uses the authorizations of the real command in
    TAATOOL. This eliminates duplicate effort.

-   When a new version of TAA is installed, some TAA commands will
    have a new parameter added. In this case, there are probably no
    changes required on your part as the command definition is in
    TAATOOL and will agree with the command processing program. If
    CRTDUPOBJ is used to create a duplicate of a TAA command and a new
    parameter is added, the command definition will not agree with the
    TAA processing program.

    While proxy commands will not always protect you on a new version,
    it is a safer thing to do.

Use of the Product Library Portion of the Library List

All of the TAA Tool commands and menus specify PRDLIB(TAATOOL) with
the exception of the commands that operate on the product portion of
the library list. When a TAA Tool command (or menu) is run, the system
automatically places the library specified for PRDLIB on the 'product
library portion' of the library list. This means that if you can
access the command, you will be able to run the command processing
program without the need for the TAATOOL library to be a permanent
part of the library list.

You may also use the Product Library portion of the Library List in
your own applications and in most cases use TAA Tools as well. See the
CHGPRDLIB tool and/or the later discussion.

Using the System Portion of the Library List for the Command Lib

By placing the command library on the system portion of the library
list, you may be able to easily resolve conflicts by just deleting the
version that is in the command library.

For example, assume that you have run CHKTAAPRD and have found a
duplicate command named PRINT on your system that is part of another
product. Assume the other product exists in a library named PRODUCT2
and the product functions are run by placing PRODUCT2 on the user
portion of the library list.

If you place the TAATOOL library on the system portion of the library
list, the picture would look like this:

        Library list         Libraries
        ------------         ---------
                    .....
                        ...  QSYS
                        .        DSPPGM  *CMD
                        .        ENDJOB  *CMD
        System portion  ...  QUSRSYS
                        ...  TAATOOL
                        .        ADDDAT  *CMD
                        .        PRINT   *CMD
                    .....
                    .....
        Product portion .
                    .....
                    .....
                        ...  PRODUCT2
        User portion    .        BUMP    *CMD
                        .        PRINT   *CMD
                        ...  QGPL
                    .....

If the PRODUCT2 product attempts to access the BUMP command using
*LIBL, the system finds the command because the name BUMP is not used
as a command in QSYS or TAATOOL. However, if PRODUCT2 attempts to
access its version of the PRINT command using *LIBL, the TAATOOL
version will be used instead.

A way to resolve this is to create a command library for the TAA
Productivity Tools. The recommended name is TAACMD, but any name is
valid. The TAACMD library would be placed on the system portion of the
library list instead of TAATOOL. The command name conflict could then
be solved by deleting the TAACMD version of the PRINT command.

The picture would then look like this:

        Library list         Libraries
        ------------         ---------
                    .....
                        ...  QSYS
                        .        DSPPGM  *CMD
                        .        ENDJOB  *CMD
        System portion  ...  QUSRSYS
                        ...  TAACMD
                        .        ADDDAT  *CMD
                    .....
                    .....
        Product portion .
                    .....
                    .....
                        ...  PRODUCT2
        User portion    .        BUMP    *CMD
                        .        PRINT   *CMD
                        ...  QGPL
                    .....

The PRODUCT2 function now works properly because its version of the
PRINT command is now found using *LIBL.

If a TAA Tool uses the PRINT command as a sub function, the system
will place the TAATOOL library on the product portion of the library
list when a TAA Tool command is run. Consequently, the TAATOOL version
of PRINT would be found instead of the PRODUCT2 version and the TAA
Tool would run properly.

If you want to use the TAA Tool PRINT command directly, you would need
to special case the situation with a solution such as:

-   Qualify the command name (TAATOOL/PRINT).

-   Temporarily add TAATOOL to the user portion of the library list
    ahead of PRODUCT2 using ADDLIBLE.

-   Temporarily place the TAATOOL library or command library on the
    product portion of the library list (described in a later
    section).

RMVSYSLIBE TAA command

If you place TAATOOL or a TAA command library on the system portion of
the library list, there may be special situations where you need to
remove it.

The system CHGSYSLIBL command can be used, but this is a security
sensitive command and is not authorized to all individuals.

You could consider the TAA command RMVSYSLIBE. To use RMVSYSLIBE, the
Security Officer must identify those libraries that are eligible to be
removed. By default, no libraries are valid. By following the
instructions for RMVSYSLIBE, the Security Officer could identify
TAATOOL or the command library to be valid to be removed.

Assume you have TAATOOL on the system portion of the library list and
the Security Officer has identified it for use by RMVSYSLIBE. The job
that wanted to remove TAATOOL would specify:

        RMVSYSLIBE LIB(TAATOOL)

The system does not support a method of placing a library back onto
the system portion of the library list after QSYS. Therefore, the
inverse function of adding TAATOOL back to the system portion of the
library list (after QSYS) cannot be done.

However, the job which had used RMVSYSLIBE could then use ADDLIBLE or
the CHGPRDLIB TAA command (described in the next section) to change
the library list. Note that the system portion of the library list is
not being changed.

Placing TAATOOL in the Product Portion of the Library List

Another alternative for unique situations is to use the product
portion of the library list.

You may add TAATOOL (or the command library) to the product portion of
the library list with the CHGPRDLIB TAA Tool. This would have to be
done as a command in each job that needed to use the TAA Productivity
Tools or only those jobs where a unique requirement exists (such as
where you had TAATOOL on the system portion of the library list and
used RMVSYSLIBE to avoid a problem).

Using CHGPRDLIB can be an effective solution if you (or any products
you have acquired) are not already using this technique.

To help determine if you or any of your products are currently using
the product library function, you should use DSPLIBL from the job that
is considering the use of CHGPRDLIB. If the second library in the
product library portion of the library list is not being used,
CHGPRDLIB will probably provide the solution you need.

The command to add the library to the product portion of the library
list would be:

        CHGPRDLIB PRDLIB1(TAATOOL) PRDLIB2(TAATOOL)

Note that you must specify TAATOOL in both positions.

CHGPRDLIB will also let you remove TAATOOL at any time to avoid any
library list conflicts.

For a complete explanation of this technique, see the CHGPRDLIB tool
documentation.

Copyright TAA Tools, Inc. 1995, 2021
					

Added to TAA Productivity tools April 1, 1995


Home Page Up to Top