Shared Appendix 8: Exits for the Process Task -- General Information

Table Of ContentsIT Service Vision Help

This appendix explains the exit points available during the process phase of IT Service Vision and guides you in selecting and coding exit points, if you want to use them.

Exits (sometimes referred to as exit points) are specific points, during the processing of data, at which control is transferred to a user-written routine, if a user-written routine is available. The process subsystem used by IT Service Vision allows for "exit" processing. What this means is that during the processing of raw data into the detail level of the PDB there are specific points where control is given to user-written code. Users often use exit points to filter or create data or to meet other custom requirements.

Process exits can be used to provide various types of functionality, for example:

Warnings and Disclaimers:

In any situation where you have the ability to affect and alter the intended flow and execution of code, there exists the possibility of error. As such, SAS Institute makes the following warnings and disclaimers with regard to the use of exits with IT Service Vision.

  1. The example code shown in these "exit" files, while accurate, is subject to change. Any changes to this code that affect user exits will be reported to you via the normal usage notes packaged with maintenance.

  2. There is simply no way that IT Service Vision can anticipate or be responsible for the processing that occurs within an exit. As such, exit code that you provide, if any, is simply included at the documented points. Any generation of reports during the actual execution of the exits is left up to you.

  3. Additionally, it is possible to put code in exits that causes the data that will be stored in the IT Service Vision PDB to be invalid. SAS Institute cannot be responsible for invalid PDB data that is caused by user-written exits.

The bottom line is this: use exits with great caution.


Before getting mired down in the details of the individual exit points, let's first address some of the general "big picture" questions:

We will explore each of these topics and then present more detailed information about the individual exit points.

How Do I Tell IT Service Vision to Use Exits when Running %CxPROCES?

Which Exit Points Should I Use?

This is not a simple question because the answer depends upon what you want to accomplish. The best way to determine the exit points to use is to consult the table that lists all of the exit points by name, includes a description of the locations in the supplied code, and includes the purpose that the exit point could serve.

You should then also look at the relevant code example (for the generic collector and for MVS data processed with SMF, or for Open Systems collectors and PC collectors) to make sure that you understand the context in which the exit point occurs, the purpose that you want to accomplish, and any implications that this may have on the regular processing of data into the PDB.

How Do I Write My Exits?

Are There Any Special Variables Available to My Exits?

Are There Any Considerations That I Need to Be Aware of?

Information about Specific Exit Points

The general flow of the generated code for process is as follows:

MACRO setup:
Macro variables are defined as global, and macro variable assignments are performed for the IT Service Vision macro variables shown at the beginning of the sample code.

DATA step:
To perform variable renames, to add variables SHIFT and HOUR, and to assign values to SHIFT, HOUR, and LSTPDATE. This could be referred to as the final staging of the data. For the MVS generic collector, the output is a SAS DATA step view.

The new (staged) data is sorted by using the BY variables for this table. Any duplicate observations are deleted.

If the detail-level data set is not sorted using the BY variables, then this PROC SORT step is built and executed in order to sort the detail-level data set by using the BY variables from the data dictionary.

DATA step:
To "merge" (actually SET-BY) the new data and the detail-level data. This updates the detail level of the PDB.