Authorization codes restrict promotions and draw downs on a
member-by-member basis for source code only. This section discusses
some uses of authorization codes.
First, some facts about authorization codes:
- An authorization code is a character string up to 8 characters
and cannot contain commas.
- When you create the project definition, you assign zero or more
authorization codes to each group.
- Each member of every group within an SCLM-controlled project is
assigned one authorization code.
- In order to put a member into a group, the authorization code of
that member must match one of the authorization codes that have been
assigned to the group.
- When all the authorization codes are removed from a group, no
members can be promoted into or out of that group.
- When you promote a member from one group to the next, the member
retains its authorization code. Thus, the group being promoted into
and the group being promoted from must have a matching authorization
code. If, as a result of a promote, an older version of the module
was replaced, the authorization code assigned to that older version
is not kept.
Figure 1 shows a simple hierarchy with four groups:
RELEASE, TEST, DEV1 and DEV2. The group RELEASE has been assigned
only one authorization code: DEV. Group TEST has two authorization
codes: DEV and TESTONLY. Three authorization codes (DEV, PROTO, and
TESTONLY) have been assigned to DEV1. Group DEV2 has DEV and L0 as
its authorization codes.
Figure 1. Sample Hierarchy with Authorization Codes
Code this information in the project definition as follows:
RELEASE FLMGROUP KEY=Y,AC=(DEV)
TEST FLMGROUP KEY=Y,AC=(DEV,TESTONLY),PROMOTE=RELEASE
DEV1 FLMGROUP KEY=Y,AC=(DEV,TESTONLY,PROTO),PROMOTE=TEST
DEV2 FLMGROUP KEY=Y,AC=(DEV,L0),PROMOTE=TEST
In
Figure 1, the following relationships
exist:
- A member in DEV1 with an authorization code of PROTO cannot be
promoted because group TEST does not have PROTO as an authorization
code.
- For the same reason, a member in DEV1 with an authorization code
of TESTONLY can be promoted to TEST, but cannot be promoted to
RELEASE.
- Similarly, a member in DEV1 or DEV2 with an authorization code of
DEV can be promoted all the way up to group RELEASE.
- A member in DEV2 cannot have an authorization code of TESTONLY or
PROTO; it must be either DEV or L0.
- A member in DEV2 with an authorization code of L0 cannot be
promoted because group TEST does not have L0 as an authorization
code.
When you edit a member in a development group, SCLM looks at the
authorization code you specified on the edit panel and tells you the
following information:
- If that authorization code is not valid for that development
group, you must enter an authorization code that is assigned to that
group. If you enter an invalid authorization code and then press the
help key, SCLM shows authorization codes for that group.
- If use of that authorization code prevents promotion of that
member at some point in the group hierarchy, SCLM gives you the name
of the group into which promotion is not allowed.
- If use of that authorization code leads to a potential promotion
conflict with another member of the same name, SCLM does not allow
the edit. An example of this problem follows.
SCLM allows you to have two members of the same name and type
residing in two different development groups (such as DEV1 and DEV2
in Figure 1) under certain conditions.
Each of those members has an authorization code assigned to it.
Those codes, along with the authorization codes assigned to the
higher groups in the hierarchy, determine how far up the hierarchy
each of those members can be promoted. If the two promotion paths
do not intersect, SCLM lets you edit those members in those groups.
However, if there is at least one group through which both members
can be promoted, changes made to one member would be lost when the
other member is promoted. In that case, SCLM does not let you edit
the members in those groups.
If a member exists in group DEV1, SCLM uses authorization codes
to determine whether you can edit a member with the same name and
type in group DEV2:
Table 1. Authorization Code AllowancesAuth. Code for member in DEV1 |
Auth. Code for member in DEV2 |
Allowed? |
Why? |
---|
DEV |
DEV |
No |
Both members can be promoted through TEST. |
DEV |
L0 |
Yes |
Promotion paths do not intersect. |
PROTO |
TESTONLY |
No |
TESTONLY is not a valid authorization code
for DEV2. |
PROTO |
L0 |
Yes |
Promotion paths do not intersect. |
TESTONLY |
DEV |
No |
Both members can be promoted through TEST. |
TESTONLY |
L0 |
Yes |
Promotion paths do not intersect. |