Auditing and Versioning in SCLM
Auditing provides a record of who changed which member, and when it was changed. Versioning provides a delta showing exactly what was changed. Versioning and auditing are often discussed together. This is because the same database stores information for both functions, and because you can use the versioning function as part of your audit process. In fact, to use versioning you must also enable auditing.
A version is a way of recreating an editable member the way it used to be. If you have defined your SCLM project to perform versioning, you can have a history of the changes made to your members. Whenever a member is changed, SCLM creates a list of the differences between the old and new member. This list is called a delta. When you need to retrieve the member, the changes are stripped from the new member until it is restored to its former condition.
Auditing SCLM Activity
If auditing is requested, SCLM records every change to accounting data. Every time a member's accounting data is created, updated, or deleted, a record is made. This record includes the accounting information, the type of operation, the user ID of the user who performed the operation, and the date and time the operation occurred. The following is an example of an audit record, as displayed by the SCLM Audit and Version Utility (ISPF option 10.3.8):
Once versioning is turned on, any time you perform a STORE or a PROMOTE, versions are saved in the versioning partitioned data set. STOREs are most often done through the SCLM Edit process (ISPF option 10.2) or the Migration Utility (ISPF option 10.3.3). They also occur when you use the EDIT, STORE or MIGRATE service. PROMOTEs are done either through the Promote option (ISPF option 10.5) or the PROMOTE service.
To retrieve versions of a member, you have two choices:
1. Audit and Version Utility (ISPF option 10.3.8)
2. VERRECOV service
The fields on the utility panel and the service parameters are very similar.
The SCLM Audit and Version Utility - Entry Panel requests the following information:
The panel gives you the choice of getting a list of the version and audit information or just the version information. (If versioning is enabled, you get auditing for free.)
The Group, Type, and Member fields let you specify which version information is displayed. To further limit the amount of information displayed, you can type in a start date or end date. The Date From and Date To fields let you specify the earliest and latest dates you are interested in.
The SCLM Audit and Version Selection panel allows you to view Audit Information, Compare to either an existing version or an eXternal data set, Delete versions or audit records, view version History, Retrieve a version, or View a version, as shown:
This panel shows both the audit and the version data. A # in the V (Version) column shows that the record has a version associated with it. Use the R line command in the S column to select the version to retrieve. When you use the R command, the following panel displays:
You can either recover a version to a non-SCLM data set, or you can recover directly into a development group in the SCLM hierarchy. Some people like to recover into a non-SCLM data set, so they can verify that the version is the one they want. Other people like the convenience of recovering the member directly into the hierarchy.
If you recover a version into a non-SCLM controlled data set, you will want to replace the one in the hierarchy. To do this, use SCLM Edit (ISPF option 10.2) to draw the broken member down into a development group. Then you can either COPY the new member from the version in the non-SCLM data set, or you can COMPARE the member in the hierarchy with the other data set and make changes based on the highlighted differences.
Whichever way you recovered your member, you will need to rebuild it to recreate any outputs for that member. After you test it, you will want to promote it to the appropriate level of the hierarchy.
For an example of how to use the VERRECOV service, SCLM provides a member, FLMSVERR, in the ISPF sample library ("ISP.SISPSAMP").
If you are not sure which version you want to retrieve, you can look at the differences between two versions to see which one is correct.
There are two types of comparisons.
- Compare - compare a version against another version of the same member.
- External compare - compare a version against a data set member or other data set.
To compare two versions of a member, select the member name with the line command C. On the SCLM Audit and Version Utility - Compare Panel, enter the Compare Type, Listing Type, and Sequence Number Values. Put a data set name in the Listing DS Name field. Then, use the S line command to select the member version you want to compare against, as shown:
Similarly, you can compare a version of a member to an external data set by selecting the member name with the line command X. The SCLM Audit and Version Utility - External Compare panel lets you select to compare the version to an SCLM group or an ISPF data set and member.
The comparison results are displayed in standard SuperC format.
Using Auditing and Versioning
Auditing is useful, both for letting a Quality Assurance team track changes, or just allowing a developer to know who changed what members on what day. Versioning is useful for developers, in case they have to drop back to a previous level, or just to see what change might have caused a particular behavior.