User exit
   HOME

TheInfoList



OR:

A user exit is a
subroutine In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Functions may ...
invoked by a
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
package for a predefined event in the execution of the package. In some cases the exit is specified by the installation when configuring the package while in other cases the users of the package can substitute their own subroutines in place of the default ones provided by the package vendor to provide customized functionality. In some cases security controls restrict exits to authorized users, e.g., EXCP
appendages An appendage (or outgrowth) is an external body part, or natural prolongation, that protrudes from an organism's body. In arthropods, an appendage refers to any of the homologous body parts that may extend from a body segment, including anten ...
in
MVS Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated ...
. The earliest use of this term involved operating systems to let customized code temporarily take control when a pre-designated event occurred.IBM term: OS/MFT, MVT A more typical use is replacing the user exits provided by a sort/merge package, whereby the user program provides its own subroutines for comparing records. The procedures provided by the user take the place of the default routines (usually stubs that do nothing but
return Return may refer to: In business, economics, and finance * Return on investment (ROI), the financial gain after an expense. * Rate of return, the financial term for the profit or loss derived from an investment * Tax return, a blank document or t ...
to their caller) provided by the package vendor. Procedures provided as user exits are typically
compiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
into a
static library In computer science, a static library or statically-linked library is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, produci ...
and linked directly with the package to produce an
executable program In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file ...
. Another approach employs
dynamic libraries In computing, a dynamic linker is the part of an operating system that loads and links the shared libraries needed by an executable when it is executed (at "run time"), by copying the content of libraries from persistent storage to RAM, fillin ...
to accomplish the same thing. Finally, user exits may be external programs executed at specific points in the execution of a host package.


History

Historically, this term is commonly used in IBM mainframe vernacular. * Title: z/OS V1R10 DFSMS Installation Exits Document Number: SC26-7396-11 * Title: z/OS V1R10.0 JES2 Installation Exits Document Number: SA22-7534-10 * Title: z/OS V1R10.0 MVS Installation Exits Document Number: SA22-7593-14


Restrictions

If the user site specific code is substituted for the software vendor provided default exit it must interface to the software package using the defined parameters as documented for the default exit. User exits are important because while they enable site specific customization they isolate such installation specific customization to defined and supported points enabling the site to upgrade to follow-on releases of the software package without adverse impact to preexisting customized functionality. Some references to IBM user exit manuals are given below. Other vendors such as SAP, Oracle, IFS, HP, Macro4, Compuware, CA all employ user exits in some of their software products.


Example

In SAP, A 'COMMIT WORK' must never be used inside a User Exit, as it may affect the program processing. Furthermore, error messages may not be issued from inside an exit, as they halt the processing of the code that follows the message.


Enforcing standards

If files containing user-created content are meant to follow a standard, the (file) ''Open'' command of a word-processing document can invoke a user exit that does validation and, if necessary, returns an error code.Sample: Opinion.AnalystID.StockSymbol.DateTime - Opinion.Q347.IBM.201907031321 - alternatively, the date/time portion may be filled in by the user exit.


Applications

Some applications that provide user exits: *
Apache Subversion Apache Subversion (often abbreviated SVN, after its command name ''svn'') is a software versioning and revision control system distributed as open source under the Apache License. Software developers use Subversion to maintain current and hist ...
allows "hooks", which are "scripts that run when an action is performed" * IBM
CICS IBM CICS (Customer Information Control System) is a family of mixed-language application servers that provide online transaction management and connectivity for applications on IBM mainframe systems under z/OS and z/VSE. CICS family products ...
* IBM CMVC user exits in the form of
Kornshell KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
scripts * IBM JES 2 and 3 * IBM MVS,
SMS Short Message/Messaging Service, commonly abbreviated as SMS, is a text messaging service component of most telephone, Internet and mobile device systems. It uses standardized communication protocols that let mobile devices exchange short text ...
,
z/OS z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions.Starting with the earliest: * O ...
and dozens of sub-components such as
RACF Introduction RACF, ronounced Rack-Effshort for Resource Access Control Facility, is an IBM software product. It is a security system that provides access control and auditing functionality for the z/OS and z/VM operating systems. RACF was in ...
, SMF, etc. * IBM sort/merge package * Oracle CC&B *
SAP Sap is a fluid transported in xylem cells (vessel elements or tracheids) or phloem sieve tube elements of a plant. These cells transport water and nutrients throughout the plant. Sap is distinct from latex, resin, or cell sap; it is a separa ...
R3


See also

*
Callback Callback may refer to: * Callback (comedy), a joke which refers to one previously told * Callback (computer programming), executable code that is passed as a parameter to other code * Callback (telecommunications), the telecommunications event tha ...
* Linking *
Hook A hook is a tool consisting of a length of material, typically metal, that contains a portion that is curved or indented, such that it can be used to grab onto, connect, or otherwise attach itself onto another object. In a number of uses, one e ...


References

{{reflist Control flow Subroutines