Introduction
This chapter describes the basic concepts and structure of IPF.
1. Overview
Interactive Programming Facilities (IPF) is a program that can perform I/O operations for display terminals or calling Time Sharing Option (TSO) commands from applications such as COBOL. For more information, refer to OpenFrame TSO Administrator’s Guide.
As computer systems are more and more widely used, the demand for systems that can be easily manipulated by end users is increasing every day. Hence, there is a need for easily and efficiently manipulating or querying data on databases, and outputting the results to users on a display terminal. Executing TSO commands results in the need for I/O processing via display terminals for user convenience. To meet this need, IPF provides an interactive programming package through display terminals between users and systems.
2. IPF Functions
IPF provides the following functions.
-
TSO Command Processing
IPF provides a function for executing CLIST or TSO command in programs written in high-level languages such as COBOL and PL/I. To use this function, you must call the CALL statement by specifying a character line that describes the CLIST name or the TSO command in the parameter of the IPFCM subroutine. For more information about IPFCMD, refer to IPF Subroutines.
-
Full Screen I/O Processing
IPF provides a function for easily processing data I/O by screen on display terminals even in high-level languages. In full screen display terminals, the entire display screen is regarded as a set of units called a field. A field is the minimum unit for data I/O processing and can be divided into a text field, input field, and output field. Hence, a full screen display terminal is a display terminal that can simultaneously process input and output on a group of fields. The standard size of full screen display terminals is 80 by 24. You can design a larger screen regardless of the fixed size of the display terminal. This is called a logical screen, and the display terminal is called a physical screen. A logical screen can be defined in a map file called a menu definition, and can use an IPF subroutine such as IPFMIO to display the logical screen on the physical screen. For more information about IPFMIO and menu definitions, refer to IPF Subroutines and Menu Definition.
3. IPF Structure
IPF is a set of subroutines for high-level languages such as COBOL and PL/I. An application can execute an intended function by calling this IPF subroutine. When an IPF subroutine receives a call from an application program, it calls TSOMGR’s Tmax service to send data and parameters. For IPF subroutines related to screen I/O, TSOMGR reads the previously compiled map file to configure the screen’s field information and sends it to the display terminal via OpenFrame GW. If there is a screen input value, then TSOMGR receives it from OpenFrame GW and extracts the input data, which is then returned to the application program via the IPF subroutine.
The following is a diagram of the structure of the IPF system.
-
TSOMGR
Receives data and parameters from the IPF subroutine called from an application to read the map information required in the already compiled map file. It then configures the screen’s field information and then sends it to OpenFrame GW. If the screen contains the input field, then it receives the value via OpenFrame GW and extracts the required data. It then returns the application via the IPF subroutine.
-
IKJEFT01
If a user connects to IPF by using a display terminal, TSOMGR executes jobs for each TSO user. Each job analyzes the CLIST script specified via the IKJEFT01 utility to execute the TSO command. Applications such as COBOL programs can be called by using the TSO CALL command.
-
IPF Subroutine
Described in applications such as COBOL programs. It calls a Tmax service to TSOMGR. The IPFCMD subroutine performs the calling of the TSO command, and the IPFMIO subroutine performs I/O processing for screens. When calling each subroutine of IPF, calls are made with the parameters of the CALL statement while an application sends/receives information to an IPF subroutine.
-
OpenFrame GW
Sends the data entered by the user in the display terminal such as Webterminal, which is provided by OpenFrame, to TSOMGR. OpenFrame GW also receives the data processed in the application via TSOMGR and outputs it to the display terminal screen.
-
TSOMAPGEN
Reads and parses the map file written by the customer, compiles it to the .map file format, and stores it to the specified library.
4. IPF Connection and Shutdown
To execute IPF, you must connect to a display terminal such as the 3270 terminal or Webterminal provided in OpenFrame. If you enter a command named TSO after connecting to the display terminal, a login screen will be displayed. To execute a desired IPF operation, you can enter the login information and then enter the TSO command or the CLIST name when the starting screen is displayed. After finishing all the necessary tasks, shut down IPF by logging off.
4.1. Connection and Execution
If you connect to a display device such as Webterminal provided by OpenFrame, a prompt with a cursor appears. Then, enter the TSO command to execute IPF as follows:
TSO
After entering the TSO command, press <Enter>. Then, the following login screen is displayed.
--------------------------------------------------------------- USERID : PASSWORD : PROCEDURE : ---------------------------------------------------------------
Enter the user ID, password, and procedure name and press <Enter>. Then, the following starting screen is displayed.
READY
A prompt with a cursor is displayed under READY. Here, you can execute a desired operation by entering the TSO command or the name of a CLIST to execute.
4.2. Shut Down
The shut down message is displayed once TSO or CLIST command is executed. Pressing <Enter> here initializes the screen and the status returns to the READY status. To perform a shut down, enter the LOGOFF command in the prompt.
READY LOGOFF
The LOGOFF command calls the following log-off screen, and then ends IPF.
--------------------------------------------------------------- SESSION LOGOFF ---------------------------------------------------------------