The programs described in this document can be used in Natural applications (or in Open NSPF routines) to access Natural ISPF internal information.
All programs and required Natural ISPF modules are loaded into the Exit Library and into
the library SYSTEM. If you wish to use the API programs, it is strongly
recommended that you define either SYSTEM or SYSISPE as
STEBLIB for your application.
This document covers the following topics:
This program is supplied in object form only. It is a Natural subprogram which returns information about the current Natural ISPF session and can be called from user programs outside Natural ISPF.
The following parameters must be defined:
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#OBJECT |
(A2) | O | Contains 2-character abbreviation of the object type. For a list of possible values, see the Table of Exits and Object Abbreviations in section User Exits in the Natural ISPF Administration Guide. |
#FUNCTION |
(A2) | O | Contains 2-character abbreviation of the function currently executed. |
#SES-DATA |
(A253) | O | Contains all parameters; must be redefined according to object type. A special local data area is delivered in source form for this redefinition. |
The following example is a short Natural macro object which users can call using the
COPY MACRO command from an edit session. It generates a
program header and uses program ISP-U000 to obtain the name and library of
the program being edited:
§ * § * MACRO GENERATES A STANDARD PROGRAM HEADER FOR THE PROGRAM § * BEING CURRENTLY EDITED § * § DEFINE DATA § LOCAL USING ISPN---L /* Redefinition of Natural data § LOCAL § 1 #OBJECT (A2) § 1 #FUNCTION(A2) § 1 #DATA (A253) § 1 #PROGRAM (A8) § 1 #TEXT (A50/5) § 1 #I (N2) § END-DEFINE § * § * GET NATURAL SESSION DATA § * § CALLNAT 'ISP-U000' #OBJECT #FUNCTION #DATA § MOVE #DATA TO #SES-DATA-N /* Move to redefinition § MOVE #MEMBER TO #PROGRAM § SET KEY PF3 § SET CONTROL 'WL70C12B005/005F' § INPUT (AD=MIL'_') § WITH TEXT '----- PROGRAM HEADING INFORMATION -------------' § 'PROGRAM:' #PROGRAM (AD=OI) § 'LIBRARY:' #LIBRARY (AD=OI) § / 'PURPOSE:' #TEXT (1) § / ' ' #TEXT (2) § / ' ' #TEXT (3) § / ' ' #TEXT (4) § / ' ' #TEXT (5) § IF #TEXT(1) = ' ' § REINPUT WITH TEXT 'PURPOSE IS REQUIRED' § END-IF *********************************************************************** * PROGRAM: §#PROGRAM DATE CREATED: §*DATD BY: §*USER * --------------------------------------------------------------------- * PURPOSE: § FOR #I = 1 TO 5 § IF #TEXT(#I) NE ' ' * §#TEXT(#I) § END-IF § END-FOR * --------------------------------------------------------------------- * PROGRAM HISTORY * DATE USER-ID REF-NO DESCRIPTION *********************************************************************** *
The following figure shows the result of the INPUT statement in the macro
when the program is invoked from an edit session with program NEWPROG in
library NSPFWORK:
EDIT-NAT:NSPFWORK(NEWPROG)-Program->Struct-Free-29K - >>> Versioning is invoked
COMMAND===> COPY MAC MAC-HEAD SCROLL===> CSR
****** ****************************** top of data *****************************
****** **************************** bottom of data ****************************
+-------------------------------------------------------------------+
! ----- PROGRAM HEADING INFORMATION ------------- !
! PROGRAM: NEWPROG LIBRARY: NSPFWORK !
! PURPOSE: This program demonstrates something _____________ !
! _________________________________________________ !
! _________________________________________________ !
! _________________________________________________ !
! _________________________________________________ !
! !
! Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10- !
! Help Split End Suspe Rfind Rchan Up Down Swap Left !
+-------------------------------------------------------------------+
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso
|
Another useful example called COPYSYS can be found in the Example Library.
This program copies a member which is edited to the library SYSLIB.
This program allows user programs to access short library names defined in Natural ISPF either in the user profile or in the global shortlib table. If an entry is found, the data set name and volser of the data set is returned.
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#IN-SHORT |
(A2) | I | 2-byte library abbreviation. |
#OUT-DSN |
(A44) | O | Data set name, if given abbreviation was found. |
#OUT-VOLSER |
(A6) | O | Volser, if defined in profile. |
This program can be used to retrieve error texts from the Natural ISPF Error Message
Library SYSISPSx (where
x is the current language code). If a text is not found for
the current language code, the English text is returned. Parameters can be replaced in the
error text.
This program can only be used by Open NSPF programs, which are executed from
SYSLIB. This program will not work if invoked from any user application.
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#ERR-NUMBER |
(N4) | I | Error number to be retrieved. |
#ERR-TEXT |
(A75) | O | Text, including substituted parameters. |
#ERR-PARM |
(A75) | I | Parameters separated by (;). Formal parameters in the text
must be specified as :n:, where
n is the number of the parameter.
|
Note
Error messages 9000 - 9999 are reserved for use by your site.
This program can be used to read data from an edit session. When using this program, you
must use the ISP-U03A data area which contains the following fields:
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#LINES |
(A132/20) | O | Data lines from the Editor session, a maximum of 20 lines can be read in one call. |
#ED-SESNUM |
(B2) | I | Editor session number. |
#ERROR-NUMBER |
(N4) | O | Error number, 0 if function was executed
correctly.
|
#LINES-READ |
(N2) | O | Number of lines returned in field #LINES.
|
#LINES-TO-READ |
(N2) | I/O | Number of lines to read in 1 call |
#LINE-LENGTH |
(N4) | O | Length of the lines. |
#ED-NUM |
(N6) | W | Do not modify between calls. |
#EOF |
(L) | O | True if the last lines have been read. |
#TRACE |
(L) | O | If true, the number of lines, the information about the last line and the first 60 characters of each line read are displayed. |
DEFINE DATA
LOCAL USING ISP-U03A
LOCAL
1 #I (N2)
END-DEFINE
INPUT #ED-SESNUM
*
MOVE 20 TO #LINES-TO-READ
*
WRITE 'user processing of a macro result' //
*
REPEAT
CALLNAT 'ISP-U003' #READ-PARM
IF #ERROR-NUMBER NE 0
WRITE '=' #ERROR-NUMBER
ESCAPE BOTTOM
END-IF
FOR #I = 1 TO #LINES-READ
PERFORM LINE-PROCESSING
END-FOR
IF #EOF
ESCAPE BOTTOM
END-IF
END-REPEAT
*
DEFINE SUBROUTINE LINE-PROCESSING
PRINT #LINES(#I)
END-SUBROUTINE
END
This subprogram can be used to pass a command script (that is, a sequence of Natural ISPF
commands) to Natural ISPF and to execute it when Natural ISPF is invoked next time. See
also member ISP-COAP in the example library.
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#IN-COMMANDS |
(A50/10) | I | Command lines to be processed. |
#IN-LINES |
(N2) | I | Number of lines to be processed in
IN-COMMANDS.
|
#COMMAND-POS |
(A1) | For future use. | |
#FUNCTION |
(A1) | For future use. | |
#RC |
O |
Return code: 0 - Processing terminated ok. 1 - Natural ISPF is not active. 2 - Processing terminated with error. |
Subprogram checks whether versions (update decks) for a Natural member exist.
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#IN-LIBRARY |
(A8) | I | Natural library name. |
#IN-MEMBER |
(A8) | I | Natural member name. |
#RC |
(N4) | O |
Return code:
|
#OUT-VERSION |
(L) | O | TRUE Versions for this member exist.
|
#GEN-VERSION |
(L) | O | FALSE Natural ISPF versioning is not active in
this environment.
|
Subprogram sets source area attributes and is used in macro processing.
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#IN-MEMBER |
(A8) | I | Member name to be set. |
#IN-TYPE |
(A1) | I | Natural object type to be set. |
#IN-MODE |
(A1) | I | Programming mode (S/R) to be set.
|
This subprogram checks whether the current user is authorized to use Natural ISPF or certain parts of its functionality.
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#IN-OBJECT |
(A2) | I | 2-character code of Natural ISPF object being checked (leave blank to check if user is authorized to access any object). |
#IN-FUNCTION |
(A2) | I | 2-character code of Natural ISPF object being checked (leave
blank to check if user is authorized to use any function valid for a specific
object; irrelevant if IN-OBJECT is blank).
|
#RC |
(N4) | O |
Return code:
|
This program is supplied in object form only. It is a Natural subprogram which returns
information about the current Natural ISPF session and can be called from user programs
outside Natural ISPF. It works like ISP-U000 but includes global data
The following parameters must be defined:
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#OBJECT |
(A2) | O | Contains 2-character abbreviation of the object type. For a list of possible values, see the Table of Exits and Object Abbreviations in the section User Exits in the Natural ISPF Administration Guide. |
#FUNCTION |
(A2) | O | Contains 2-character abbreviation of the function currently being executed. |
#CURR-SES-NUM |
(N2) | O | Contains session number of SAG edit session. |
#L-COMMAND |
(A50) | O | Contains command line to be interpreted. |
#MACRO-CHAR |
(A1) | O | Contains character which will be interpreted as macro character. |
#CMD-DEL |
(A1) | O | Contains command delimiter character for command line. |
#SES-DATA |
(A253) | O | Contains all parameters; must be redefined according to object type. A special local data area is delivered in source form for this redefinition |
This program is supplied in object form only. It is a Natural subprogram which returns
information about the current Natural ISPF session and can be called from user programs
outside Natural ISPF. It works in the same way as ISP-U000 except when
executing a Natural program. In this case, the data of the previous session is returned.
The following parameters must be defined:
| Parameter | Format | Type | Meaning |
|---|---|---|---|
#OBJECT |
(A2) | O | Contains 2-character abbreviation of the object type. For a list of possible values, see the Table of Exits and Object Abbreviations in section User Exits in the Natural ISPF Administration Guide. |
#FUNCTION |
(A2) | O | Contains 2-character abbreviation of the function currently executed. |
#SES-DATA |
(A253) | O | Contains all parameters; must be redefined according to object type. A special local data area is delivered in source form for this redefinition. |