Endevor For OS390-API Guide-En390api
Endevor For OS390-API Guide-En390api
API Guide
3.9
This documentation and related computer software program (hereinafter referred to as the “Documentation”) is for
the end user's informational purposes only and is subject to change or withdrawal by Computer Associates Interna-
tional, Inc. (“CA”) at any time.
TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS DOCUMENTATION “AS IS”
WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRAN-
TIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN
NO EVENT WILL CA BE LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR
DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS DOCUMENTATION, INCLUDING WITHOUT
LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF CA IS
EXPRESSLY ADVISED OF SUCH LOSS OR DAMAGE.
THE USE OF ANY PRODUCT REFERENCED IN THIS DOCUMENTATION AND THIS DOCUMENTATION
IS GOVERNED BY THE END USER'S APPLICABLE LICENSE AGREEMENT.
Provided with “Restricted Rights” as set forth in 48 C.F.R. Section 12.212, 48 C.F.R. Sections 52.227-19(c)(1) and
(2) or DFARS Section 252.227.7013(c)(1)(ii) or applicable successor provisions.
All trademarks, trade names, service marks, or logos referenced herein belong to their respective companies.
Contents
Contents iii
2.8 List Approver Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23
2.8.1 ALAGR_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-23
2.8.2 ALAGR_RS Response Structure Fields . . . . . . . . . . . . . . . . . . . 2-23
2.9 List Approver Group Junctions . . . . . . . . . . . . . . . . . . . . . . . . . . 2-25
2.9.1 ALAGJ_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . . 2-25
2.9.2 ALAGJ_RS Response Structure Fields . . . . . . . . . . . . . . . . . . . 2-26
2.10 List Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-27
2.10.1 ALDSN_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-27
2.10.2 ALDSN_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-28
2.11 List Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29
2.11.1 ALELM_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-29
2.11.2 ALELM_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-30
2.11.2.1 Information About the Last Action . . . . . . . . . . . . . . . . . . 2-31
2.11.2.2 Information About the Element Base . . . . . . . . . . . . . . . . . 2-32
2.11.2.3 Information About the Element Delta (Last Level) . . . . . . . . . 2-32
2.11.2.4 Information About the Component List Base . . . . . . . . . . . . 2-33
2.11.2.5 Information About the Component List Delta . . . . . . . . . . . . 2-33
2.11.2.6 Information About the Last Element Move . . . . . . . . . . . . . 2-33
2.11.2.7 Information About the Last Add or Update Data Set . . . . . . . . 2-34
2.11.2.8 Information About the Element Processor Execution . . . . . . . . 2-34
2.11.2.9 Information About the Last Element Retrieve . . . . . . . . . . . . 2-35
2.11.2.10 Information About the Package Last Executed Against the Element
Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-35
2.11.2.11 Information About the Package Last Executed Against the Element
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-35
2.11.2.12 Information About the Last "FROM" Endevor location . . . . . . 2-35
2.11.2.13 Other Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-36
2.12 List Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-37
2.12.1 ALENV_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-37
2.12.2 ALENV_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-38
2.13 List Processor Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-40
2.13.1 ALPGR_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-40
2.13.2 ALPGR_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-41
2.14 List Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-43
2.14.1 ALSIT_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . . 2-43
2.14.2 ALSIT_RS Response Structure Fields . . . . . . . . . . . . . . . . . . . 2-43
2.15 List Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-47
2.15.1 ALSTG_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-47
2.15.2 ALSTG_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-48
2.16 List Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-49
2.16.1 ALSBS_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-49
2.16.2 ALSBS_RS Response Structure Fields . . . . . . . . . . . . . . . . . . . 2-50
2.17 List System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-52
2.17.1 ALSYS_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-52
2.17.2 ALSYS_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-53
2.18 List Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-55
2.18.1 ALTYP_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . . 2-55
2.18.2 ALTYP_RS Response Structure Fields . . . . . . . . . . . . . . . . . . 2-56
2.19 Move Element Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-59
2.19.1 AEMOV_RQ Request Structure Fields . . . . . . . . . . . . . . . . . . 2-59
Contents v
vi Endevor for OS/390 API Guide
About This Guide
This document introduces the Endevor for OS/390 Application Program Interface (API).
The Endevor for OS/390 API lets you retrieve and update information programmatically
from Assembler or an LE-compliant language. This document describes how to use the
API and describes sample programs and contains sample JCL to help you implement the
API. It contains the following chapters:
Chapter 1 — Introduces the Endevor for OS/390 Application Program Interface
(API).
Chapter 2 — Describes the parameters in the API structures.
Chapter 3 — Describes API response and reason codes.
Chapter 4 — Describes the API execution reports and trace facilities.
Appendix A — Describes sample programs and JCL streams.
Related Documentation
Refer to the following manuals for more information about Endevor for OS/390.
1.1 Overview
Endevor for OS/390 is a comprehensive, automated solution for managing the entire soft-
ware development life cycle. From initial design through distribution, it guarantees con-
sistency and control through process automation and life cycle administration.
Endevor for OS/390 provides an Application Program Interface, or API, which lets you
retrieve and update the Master Control File (MCF) and base and delta information pro-
grammatically from programs written in Assembler or an LE-compliant language that run
on platforms supported by IBM's OS/390 operating system.
Endevor functions supported by the API can be categorized into three groups:
Inventory Query and List Functions
Allows you to request inventory lists and perform queries. This includes elements,
environments, systems, subsystems, and all other inventory information stored in the
MCF.
Element Extract
Allows you to extract element and/or component source from the base and delta
libraries. Also, you can extract summary, changes, and history information associ-
ated with element or component data.
Element Actions
Allows you to perform one of the element actions, such as ADD, GENERATE,
MOVE, or PRINT ELEMENT. These functions retrieve information from the MCF
and base and delta libraries, and may update these files, depending on the function.
The SCL SET OPTIONS clause is not supported. All SCL syntax is supported
unless otherwise noted. For more information, see the Endevor for OS/390 SCL Ref-
erence Manual.
Actions not supported include:
– ARCHIVE
– COPY
– LIST from archive
– LIST member from external library
– RESTORE
– TRANSFER element to archive data set
– TRANSFER from archive data set or unload tape
To invoke the Endevor API, an application program calls the Endevor API interface
program, ENA$NDVR, passing it two or three parameters: the control structure, a request
structure, and, depending on the function call, a response structure. List and extract func-
tion calls require all three structures. Element action function calls require the control
and request structures.
Note: Your program that invokes the API must reside in an authorized library. No other
restrictions apply to compiling or linking a user program.
On the first function call to the ENA$NDVR interface program, the Endevor API server
is attached and initialized. The user's request is processed and the results are placed into
the response structure if it exists. The control structure is also updated with return code
and reason code information. The API server remains active and is available to process
additional requests until a request is received to shutdown the API.
The following diagram shows how the Endevor for OS/390 API processes an API func-
tion call:
You can also use the CONAPI utility to execute a program that issues API function calls
from an Endevor for OS/390 processor. For more information about this utility, see
Endevor for OS/390 Processors.
To execute a program that issues API function calls outside of a processor, see A.2,
“Executing an API Program” on page A-4.
There is one control structure used for all types of function calls and a unique request and
response structure for each type of function call. Each structure consists of a header area,
followed by a data area. It is the responsibility of the user program to initialize all the
structures prior to calling the API and to populate some of the data area fields in the
control and request structures.
The API Assembler macros and COBOL copybooks are provided in iprfx.iqual.SOURCE
for each API function call.
Name Description
ExHAACTL Control structure. Where x is H for Assembler macro and C for
COBOL copybook.
ExHAExxx API function call. Where x is H for Assembler macro and C for
COBOL copybook. Where xxx is the Endevor function.
For a description of the data areas included in the control structure, see 2.2, “Control
Structure” on page 2-4.
For extract function calls, the response structure specifies control information about your
request.
Response structures are not applicable for element action function calls.
The Endevor for OS/390 API provides Assembler macros and corresponding COBOL
copybooks that correspond to the function calls. These are delivered in the
iprfx.iqual.SOURCE data set.
For each Assembler API macro, except the initialization macro, API$INIT, there is a cor-
responding COBOL copybook with a similar name. For example, the ENHALENV
Assembler macro has a corresponding COBOL copybook of a similar name except that
Assembler macros begin with ENH and COBOL copybooks begin with ECH. In addi-
tion, COBOL users have a copybook, ENCCNST, that contains Endevor for OS/390 API
constants.
The following table summarizes the types of API function calls that you can make and
their corresponding structure names. Each extract and list function call has its own
unique request and response structure. Response structures are not applicable for element
action function calls. Where x is H for Assembler macros and C for COBOL copybooks.
COBOL Users: COBOL copybook field names are similar to the names used by the
Assembler macros except that COBOL substitutes the underscore character (_) with a
hyphen (-). For example, ALELM_RQ_PATH appears as ALELM-RQ-PATH.
See Chapter 2, “API Function Calls” on page 2-1 for detailed information about each
API function call and its use.
Before you issue an API function call, you must first initialize the control, request, and
response structures passed with the API function call. It is the responsibility of the user
program to initialize all the structures prior to calling the API and to populate some of
the data area fields in the control and request structures.
The following sections explain how to initialize API structures in Assembler and COBOL
programs.
Note: The twelve-character header must not be initialized or modified by the user
program. If it is, the API function call fails with an "invalid request structure"
error condition. The initialization macro, API$INIT properly sets the header
information.
where structure-name is the name of the API macro request or response structure.
For example, these statements initialize the request and response structure for the list
environment macro, ENHLENV:
API$INIT STG=ALENV_RQ,BLOCK=ALENV_RQ
API$INIT STG=ALENV_RS,BLOCK=ALENV_RS
COBOL does not allow the use of the pound character (#). For example,
AACTL_#SELECTED appears as AACTL-SELECTED.
The code below shows how to initialize the ECHAACTL control structure:
INITIALIZE AACTL-DATAAREA.
This code shows an example of initializing the request and response data portion of the
ECHALELM copybook.
INITIALIZE ALELM-RQ-DATAAREA.
INITIALIZE ALELM-RS-DATAAREA.
Note: The control, request, and response header portions of each copybook are initial-
ized by COBOL value clauses. These values must not be changed.
Your first API function call automatically starts the API server, which transfers data to
and from Endevor for OS/390 and your application program. Your last API function call
must shut the API server down.
To shut down the API server, set the ECHAACTL Shutdown field to 'Y'. Below is an
example of COBOL code setting the AACTL-SHUTDOWN field to 'N':
MOVE 'N' TO AACTL-SHUTDOWN.
The following Assembler code shows a sample API function call for a list environment
request. The code:
1. Begins by defining the control structure through the ENHAACTL macro, and the list
environment function call request and response structures through the ENHALENV
macro.
2. Initializes the ENHAACTL control structure, sets the API server Shutdown field
(AACTL_SHUTDOWN) to 'N', and sets the DD names of the message and list envi-
ronment output files.
3. Initializes the list environment function call request and response structures.
4. Defines the search criteria for the function call; in this case, the ALENV_RQ fields
are set to conduct a logical search in all environments and return after finding the
first occurrence.
5. Loads the addresses of the ENHAACTL control structure, ALENV_RQ request struc-
ture, and ALENV_RS response structure in a parameter list stored in register 1.
6. Calls the API server using the ENA$NDVR interface program.
ENHAACTL DSECT=NO
ENHALENV DSECT=NO
PARMLIST DC 3F'+'
API$INIT STG=AACTL,BLOCK=AACTL Initialize the ctl block
MVC AACTL_SHUTDOWN,C'N' Do not shutdown API server
MVC AACTL_MSG_DDN,=CL8'MSG3FILE' Set Message DD name
MVC AACTL_LIST_DDN,=CL8'EXT1ELM' Set DD name for List Env
API$INIT STG=ALENV_RQ,BLOCK=ALENV_RQ Initialize the req block
API$INIT STG=ALENV_RS,BLOCK=ALENV_RS Initialize the rsp block
MVI ALENV_RQ_PATH,C'L' Set to Logical Search
MVI ALENV_RQ_RETURN,C'F' Set to return first hit
MVI ALENV_RQ_SEARCH,C'A' Set search to ALL
MVC ALENV_RQ_ENV,=CL8'PRDENV' Set the environ name
LA R1,PARMLIST Set up the parm list
LA R14,AACTL R1 -> parmlist
ST R14,+(+,R1) +(,R1) = A(AACTL)
LA R14,ALENV_RQ 4(,R1) = A(ALENV_RQ)
ST R14,4(+,R1) 8(,R1) = A(ALENV_RS)
LA R14,ALENV_RS
ST R14,8(+,R1)
OI 8(R1),X'8+' TURN ON HIGHORDER BIT
L R15,=V(ENA$NDVR)
BALR R14,R15 CALL SERVER THRU ENA$NDVR
Copybooks are provided for all API structures. Below are examples of API function calls
from a COBOL program. Note that the first parameter refers to a control structure, the
second a request structure which is followed by a response structure:
In the first example, ALELM-RQ describes a list element request structure and the
ALELM-RS describes the list element response structure. Through the request structure,
Endevor inventory data, pathing information, and return options are specified. After the
API processes the list element request, it places the first response in the list element
response structure, ALELM-RS. All data responses, including the first, are written to the
file identified by the AACTL-LIST-DDN field. If this field is not specified, no responses
are written to this file.
Once the API server processes an API function call, it is recommended to check the
return and reason codes returned to the control structure. The return code indicates the
severity of the error and the reason code indicates the cause of the error. For example,
return code 04 combined with reason code 002 indicates a warning message resulting
from not finding a requested stage. See Chapter 3, “API Return Codes and Reason
Codes” on page 3-1 for a compete list of the return and reason codes you might expect
to get.
To check the return and reason codes returned from an API function call, examine the
AACTL_RTNCODE and AACTL_REASON fields in the control structure. You can also
check the return code value in register 15. Your return code will be one of the following
values:
In addition, you should check the value of the ACCTL_HI_MSGID field, which contains
one of the following values:
The highest API message ID encountered while processing the API function call.
The value of this field has the following format:
APIxxyyyz
where xx is the return code, yyy is the reason code, and z is the severity letter.
The error message ID returned by Endevor. This could be a source management
error, inventory management error, and so on.
You must define a message file to write output messages to. The API server writes the
messages to the message file DD name that you supply to the AACTL_MSG_DDN field.
Endevor messages, such as the Execution Report and Source and Inventory Management
errors (if any), are recorded to this data set. This is NOT a required field, but it is highly
recommended that a file name be provided. If one is not specified, a default DD name of
APIMSGS is used. It is the responsibility of the user to allocate this data set prior to
executing an API function call. For example, if your JCL contains the following DD
statement, assign MSG3FILE to the AACTL_MSG_DDN field:
//MSG3FILE DD DSN=&&MSG3FILE,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=FB,LRECL=133,BLKSIZE=133++)
The API server manages this file. It is not necessary to define, open, or close this file in
your application program.
To write the API responses to a file, define an output file that has a variable block record
format and logical record length of 2048 bytes. For example:
//EXT1ELM DD DSN=&&EXT1ELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=VB,LRECL=2+48,BLKSIZE=228++)
The API server writes the responses to the output file DD name that you supply to the
AACTL_LIST_DDN field. The API server manages this file. It is not necessary to
define, open, or close this file in your application program unless you want to read it as
input after the API server has finished writing all the responses. If you are only per-
forming a query and do not need a file of responses, leave this field blank. The total
count of records selected is included in the Execution Report which is written to the
message file. For example, if your JCL contains the DD statement above, assign
EXT1ELM to the AACTL_LIST_DDN field.
To help you get started using the API, source code for sample COBOL and Assembler
programs is provided in the iprfx.iqual.SOURCE data set. Each of these programs issues
function calls to the API.
COBOL program, CCIDRPT1, produces a list of elements based on user input and
creates a CCID cross-reference report. This program is distributed as a source
module.
Assembler program, ENHAAPGM, issues a list environment function call to list all
the environments defined in the logical map and writes the output to a file. This
program is distributed as a source module.
Assembler program, ENHAEPGM, executes each of the element action function calls
and writes the responses to an output file. This program is distributed as a source
module.
Assembler program, ENTBJAPI, executes different inventory list function calls based
on input. With this program, you can get familiar with the various inventory list
function calls and the output that each function call generates. This program is dis-
tributed as a load module only.
Refer to Appendix A, “Sample API Programs” on page A-1 for additional information
and the JCL required to execute these programs.
2.1 Overview
This chapter describes the fields contained in the control structure and the request and
response structures for each Endevor for OS/390 API function call. The information is
presented in alphabetic order by the name of the API function call. The Assembler
macro layouts and COBOL copybook layouts are delivered in the iprfx.iqual.SOURCE
installation library.
Before issuing an API function call, you must initialize the control, request, and response
structures. You must also populate some of the data areas in the control and request
structures. For instructions on initializing structures, see 1.5, “Initializing API Structures”
on page 1-11.
The control stucture contains the fields that allow you to shutdown the API server as well
as define the output files where the information from each function call is placed. It also
contains the reason and return codes which provide information about the function call
that you have performed.
The first call to the API server automatically starts it. For each new API function call,
the control structure must be modified. The server remains open until the SHUTDOWN
field is set to Y.
The control structure also contains the information about the output files used by the API
on each function call. Each function call opens and closes an output file which is defined
in this structure. If two or more function calls use the same output file, only the response
to the last function call is maintained. Data from the prior function call is overwritten.
Assembler: ENHAACTL
COBOL: ECHAACTL
Endevor functions supported by the API can be categorized into three groups:
Inventory Query and List Functions
Allows you to request inventory lists and perform queries. This includes elements,
environments, systems, subsystems, and all other inventory information stored in the
MCF.
Element Extract
Allows you to extract element and/or component source from the base and delta
libraries. Also, you can extract summary, changes, and history information associ-
ated with element or component data.
Element Actions
Allows you to perform one of the element actions, such as ADD, GENERATE,
MOVE, or PRINT ELEMENT. These functions retrieve information from the MCF
and base and delta libraries, and may update these files, depending on the function.
Within an environment, inventory always goes from Stage 1 to Stage 2. But, when an
administrator maps across to another environment, the administrator may choose Stage 1
or Stage 2 of that environment. If the administrator chooses Stage 1 of the second
enviroment, Stage 1 and Stage 2 of that enviroment represent the route. If the adminis-
trator chooses Stage 2 of the second environment, Stage 1 of that environment does not
become part of the logical map, but does remain part of the physical map.
The example below illustrates the difference. Suppose you have Environment A and
Environment B, both with Stage 1 and Stage 2. Suppose further that the system adminis-
trator maps Environment A to Stage 2 of Environment B.
4. Environment B / Stage 2
In a logical map, the inventory route bypasses Stage 1 of Environment B, and the inven-
tory route becomes:
1. Environment A / Stage 1
2. Environment A / Stage 2
3. Environment B / Stage 2
The add element action API function call allows you to add an element to Endevor.
Assembler: ENHAEADD
COBOL: ECHAEADD
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The delete element action API function call deletes an element from the specified inven-
tory location.
Assembler: ENHAEDEL
COBOL: ECHAEDEL
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names.
The first part is the prefix which contains the location, inventory classification, the
record number, and the record's data length.
The second part contains the element or component source data record.
The extract element and component data API function call extracts elements and compo-
nent data that match the criteria specified in the AEELM_RQ request structure and places
it in the output file defined in the control structure. AEELM_RS, the response structure,
contains information about the location and inventory classification of the element, as
well as the number of records returned by the function call and the record length of the
longest record.
Through the API, you can retrieve element data in both unformatted and formatted
display styles and component data in formatted display style. You can also retrieve
change and history information for both element and component data.
Assembler: ENHAEELM
COBOL: ECHAEELM
The seven extraction types that result in different output record layouts are:
The following sections show the record layouts for each extraction option.
----------------------------------------------------------------------------------------------------
EELR+INT NDVRMVS BASE TEST$API ASMPGM 1+++++++1++++++8+TEST$API $MODNTRY LINKAGE=EXT,STACK=25+++,MSGDD=SYSPRINT
+4+++B++CCDDFCDE44444DCEDDEE4CCEC4444ECEE5CDC44CEDDCD44FFFFFFFFFFFFFFFFFECEE5CDC45DDCDEDE4DCDDCCC7CEE6EECCD7FFF
FF6DECCC7EEEDDCDE444444444444444444444444
+8++41+15539+953+++++5459452+2125++++3523B179++124774++1+++++++1++++++8+3523B179+B4645398+3952175E573B23132E25+
++B42744E28279953++++++++++++++++++++++++
--------------------------------------------------------------------------------------------------------------
-----------------------------------------
EELR+INT NDVRMVS BASE TEST$API ASMPGM 1+++++++2++++++8+ COPY $QIODS
+4+++B++CCDDFCDE44444DCEDDEE4CCEC4444ECEE5CDC44CEDDCD44FFFFFFFFFFFFFFFFF444444444CDDE445DCDCE444444444444444444
44444444444444444444444444444444444444444
+8++41+15539+953+++++5459452+2125++++3523B179++124774++1+++++++2++++++8++++++++++3678++B89642++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++
--------------------------------------------------------------------------------------------------------------
-----------------------------------------
EELR+INT NDVRMVS BASE TEST$API ASMPGM 1+++++++3++++++8+MAIN $FUNCSTG ,
+4+++B++CCDDFCDE44444DCEDDEE4CCEC4444ECEE5CDC44CEDDCD44FFFFFFFFFFFFFFFFFDCCD444445CEDCEEC46444444444444444444444
4444444444444444444444444444444444444444
+8++41+15539+953+++++5459452+2125++++3523B179++124774++1+++++++3++++++8+4195+++++B6453237+B+++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
---------------------------------------------------------------------------------------------------------------
----------------------------------------
EELR+INT NDVRMVS BASE TEST$API ASMPGM 1+++++++4++++++8+GLOBALS +D
+4+++B++CCDDFCDE44444DCEDDEE4CCEC4444ECEE5CDC44CEDDCD44FFFFFFFFFFFFFFFFFCDDCCDE4444FC444444444444444444444444444
4444444444444444444444444444444444444444
+8++41+15539+953+++++5459452+2125++++3523B179++124774++1+++++++4++++++8+7362132+++++4+++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
---------------------------------------------------------------------------------------------------------------
----------------------------------------
The following example shows the first 26 records found in the Browse Display format.
In this example, the records shown have been truncated for display purposes. To view a
complete record, invoke Endevor for OS/390 on-line and go to the Display Element
menu. Select Browse Option against any element.
The following example shows the first 26 records found in the Change Display format.
In this example, the records shown have been truncated for display purposes. To view a
complete record, invoke Endevor for OS/390 on-line and go to the Display Element
menu. Select Change Option against any element.
The following example shows the first 38 records found in the History Display format.
In this example, the records shown have been truncated for display purposes. To view a
complete record, invoke Endevor for OS/390 on-line and go to the Display Element
menu. Select the History Option against any element.
The following example shows the first 42 records found in the Browse Display format.
In this example, the records shown have been truncated for display purposes. To view a
complete record, invoke Endevor for OS/390 on-line and go to the Display Element
menu. Select the Browse Component Option against any element.
The following example shows the first 41 records found in the Change Display format.
In this example, the records shown have been truncated for display purposes. To view a
complete record, invoke Endevor for OS/390 on-line and go to the Display Element
menu. Select the Change Component Option against any element.
The History display lists all of the components and events related to an element. The
following example shows the first 41 records found in the History display format. In this
example, the records shown have been truncated for display purposes. To view a com-
plete record, invoke Endevor for OS/390 on-line and go to the Display Element menu.
Select the History Component Option against any element.
The generate element action API function call executes the generate processor for the
current level of an element.
Assembler: ENHAEGEN
COBOL: ECHAEGEN
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names.
The list approver group API function call extracts information about the approver group
from the MCF that satisfies the criteria you define in the ALAGR_RQ request structure.
After the list approver group function call is processed, the first occurrence is always
placed in your defined response area, ALAGR_RS. This allows you to check the
response quickly if you are looking for a specific approver group. The API also writes
all responses generated by your request to an external data set if you specified a file
output DD name in the control structure.
Assembler: ENHALAGR
COBOL: ECHALAGR
Searching: Map searching is not available for this request. The location value, Envi-
ronment, must be explicitly specified. The approver group name can contain a wildcard.
The list approver group junctions API function call extracts information about the
approver group from the MCF that satisfies the criteria you define in the ALAGJ_RQ
request structure. After the list approver group junctions function call is processed, the
first occurrence is always placed in your defined response area, ALAGJ_RS. This allows
you to check the response quickly if you are looking for a specific approver group junc-
tion. The API also writes all responses generated by your request to an external data set
if you specified a file output DD name in the control structure.
Assembler: ENHALAGJ
COBOL: ECHALAGJ
Searching: Map searching is not available for this request because these key values
can be stored in the MCF with the wild card values. The location value, Environment,
must be explicitly specified. The other keys (System, Subsystem, Type, and Stage) may
be individually wildcarded by leaving the field blank. Otherwise, the values specified for
these fields are treated as explicit key values.
The list data set API function call extracts information about data sets from the MCF that
satisfies the criteria you define in the ALDSN_RQ request structure. After the list data
set function call is processed, the first occurrence is always placed in your defined
response area, ALDSN_RS. This allows you to check the response quickly if you are
looking for a specific data set. The API also writes all responses generated by your
request to an external data set if you specified a file output DD name in the control
structure.
Assembler: ENHALDSN
COBOL: ECHALDSN
Searching: Map searching is not available for this request. All location values (Envi-
ronment, System, and Stage id) must be explicitly specified. The data set id value may
contain a wildcard character.
The list element API function call extracts information about elements from the MCF that
satisfies the criteria you define in the ALELM_RQ request structure. After the list
element function call is processed, the first occurrence is always placed in your defined
response area, ALELM_RS. This allows you to check the response quickly if you are
looking for a specific element. The API also writes all responses generated by your
request to an external data set if you specified a file output DD name in the control
structure.
Assembler: ENHALELM
COBOL: ECHALELM
Searching: If you specify 'B', or 'R' for the ALELM_RQ_SEARCH search argument,
you must specify the To Environment in the ALELM_RQ_TOENV field and the To
Stage Id in the ALELM_RQ_TOSTG_ID field. You cannot use a wildcard. In addition,
these fields will also be ignored unless you use them with the 'B' or 'R' search fields.
If you specify the ALELM_RQ_TOELM field, To Element Name, the element name
must be greater than the ALELM_RQ_ELM field value, Element Name.
2.11.2.10 Information About the Package Last Executed Against the Element
Source
2.11.2.11 Information About the Package Last Executed Against the Element
Outputs
The list environment API function call extracts information about environments in
Endevor that satisfies the criteria you define in the ALENV_RQ request structure. After
the list environment function call is processed, the first occurrence is always placed in
your defined ALENV_RS response area. This allows you to check the response quickly
if you are looking for a specific environment. The API also writes all responses gener-
ated by your request to an external data set if you specified a file output DD name in the
control structure.
Assembler: ENHALENV
COBOL: ECHALENV
The list processor group API function call extracts information from the MCF that satis-
fies the criteria you define in the ALPGR_RQ request structure about the processor
group. It will also extract any symbolic overrides that have been defined for any of the
group's processors.
A record is produced for each processor within a group. Processor group information that
relates to the whole group is replicated on each processor record. Also, if overrides exist
for any processor, the whole record is replicated with an override value appended to the
record. For example, if a group has two processors defined, and the first processor has
two overrides while the second only has one, three records are produced:
The first record contains the group's information. The first processor information is
followed by the first symbolic override data.
The second record contains the same group and processor information followed by
the second override data.
The third record contains the same group information, the second processor informa-
tion, followed by the symbolic override data pertaining to the second processor.
After the list processor group function call is processed, the first occurrence is always
placed in your defined response area, ALPGR_RS. This allows you to check the
response quickly if you are looking for a specific processor group. The API also writes
all responses generated by your request to an external data set if you specified a file
output DD name in the control structure.
Assembler: ENHALPGR
COBOL: ECHALPGR
Searching: Map searching is not available for this request. All location values (Envi-
ronment, System, Type, and Stage id) must be explicitly specified. The processor group
name can contain a wildcard.
The list site API function call extracts information about sites. After the list site function
call is processed, the information is placed in your defined response area, ALSIT_RS.
This allows you to check the response quickly if you are looking for specific site infor-
mation. The API also writes this data to an external data set if you specified a file output
DD name in the control structure.
Assembler: ENHALSIT
COBOL: ECHALSIT
The list stage API function call extracts information about stages in Endevor that satisfies
the criteria you define in the ALSTG_RQ request structure. After the list stage function
call is processed, the first occurrence is always placed in your defined response area,
ALSTG_RS. This allows you to check the response quickly if you are looking for a
specific stage. The API also writes all responses generated by your request to an external
data set if you specified a file output DD name in the control structure.
Assembler: ENHALSTG
COBOL: ECHALSTG
Searching: If you specify 'B', or 'R' for the ALSTG_RQ_SEARCH search argument,
you must specify the To Environment in the ALSTG_RQ_TOENV field and the To Stage
Id in the ALSTG_RQ_TOSTG field. You cannot use a wildcard. In addition, these
fields will be ignored unless the 'B' or 'R' search field is also specified.
The list subsystem API function call extracts information about subsystems from the
MCF that satisfies the criteria you define in the ALSBS_RQ request structure. After the
list subsystem function call is processed, the first occurrence is always placed in your
defined response area, ALSBS_RS. This allows you to check the response quickly if you
are looking for a specific subsystem. The API also writes all responses generated by
your request to an external data set if you specified a file output DD name in the control
structure.
Assembler: ENHALSBS
COBOL: ECHALSBS
Searching: If you specify 'B', or 'R' for the ALSBS_RQ_SEARCH search argument,
you must specify the To Environment in the ALSBS_RQ_TOENV field and the To Stage
Id in the ALSBS_RQ_TOSTG_ID field. You cannot use a wildcard. In addition, these
fields will be ignored unless you also specify the 'B' or 'R' search field.
The list system API function call extracts information about systems from MCF files that
satisfies the criteria you define in the ALSYS_RQ request structure. After the list system
function call is processed, the first occurrence is always placed in your defined response
area, ALSYS_RS. This allows you to check the response quickly if you are looking for a
specific system. The API also writes all responses generated by your request to an
external data set if you specified a file output DD name in the control structure.
Assembler: ENHALSYS
COBOL: ECHALSYS
Searching: If you specify 'B', or 'R' for the ALSYS_RQ_SEARCH search argument,
you must specify the To Environment in the ALSYS_RQ_TOENV field and the To Stage
Id in the ALSYS_RQ_TOSTG_ID field. You cannot use a wildcard. In addition, these
fields will be ignored unless you also specify the 'B' or 'R' search field.
The list type API function call extracts information about types from the MCF that satis-
fies the criteria you define in the ALTYP_RQ request structure. After the list type func-
tion call is processed, the first occurrence is always placed in your defined ALTYP_RS
response area. This allows you to check the response quickly if you are looking for a
specific type. The API also writes all responses generated by your request to an external
data set if you specified a file output DD name in the control structure.
Assembler: ENHALTYP
COBOL: ECHALTYP
Searching: If you specify 'B', or 'R' for the ALTYP_RQ_SEARCH search argument,
you must specify the To Environment in the ALTYP_RQ_TOENV field and the To Stage
Id in the ALTYP_RQ_TOSTG_ID field. You cannot use a wildcard. In addition, these
fields will be ignored unless you also specify the 'B' or 'R' search field.
The move element action API function call moves elements between inventory locations
along a map.
Assembler: ENHAEMOV
COBOL: ECHAEMOV
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names.
The print element action API function call prints selected information about an element or
library member, depending on the data entered in the FROM clause. You can print from
Endevor or selected output libraries (for example, a PDS).
Assembler: ENHAEPRE
COBOL: ECHAEPRE
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names. The stage id field is supported by the
API, but not by SCL.
The print member element action API function call prints selected information about the
member you specify. You can print from Endevor or from selected output libraries (for
example, a PDS).
Assembler: ENHAEPRM
COBOL: ECHAEPRM
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The retrieve element action API function call copies an element to a user data set.
Assembler: ENHAERET
COBOL: ECHAERET
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names.
The signin element action API function call removes a user signout associated with an
element. It also enables you to sign out or reassign an element to another user.
Assembler: ENHAESIG
COBOL: ECHAESIG
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names.
The transfer element action API function call transfers an element from one location to
another.
Note: Only the Endevor to Endevor type transfer action is supported.
Assembler: ENHAETRA
COBOL: ECHAETRA
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
The where CCID clause is limited to eight CCID values and the where processor group
clause is limited to eight processor group names.
The update element action API function call updates an element in Stage 1, thereby cre-
ating a new level for the element in Stage 1. Elements are updated only if there are
differences between the incoming source in the FROM location and the target Stage 1
source.
Assembler: ENHAEUPD
COBOL: ECHAEUPD
All request selection fields are explained in the following table. For default values, see
the Endevor for OS/390 SCL Reference Manual.
3.1 Overview
The Endevor API uses return codes and reason codes to report on the status of your API
function calls. The return code is presented back to the user in two ways, through reg-
ister 15 and through the AACTL_RTNCODE field.
The following lists all possible return codes that may result after an Endevor API func-
tion call.
Each return code has a reason code associated with it. Below lists all possible reason
codes that may accompany a return code. The reason code is presented back to the user
via register 0 and through the AACTL_REASON field.
RC RE Problem Explanation
00 000 No problems Request ended successfully.
04 001 Environment not found Occurs on ALENV function calls. An
IMR error message is associated with
this error. The message can be found in
the output message file specified through
the control structure. If the EN$TRAPI
DD statement is included, the message
will also appear there.
RC RE Problem Explanation
04 004 Subsystem not found Occurs on ALSBS function calls. An
IMR error message is associated with
this error. The message can be found in
the output message file specified through
the control structure. If the EN$TRAPI
DD statement is included, the message
will also appear there.
RC RE Problem Explanation
04 008 Data set not found Occurs on an ALDSN function call. An
IMR error message is associated with
this error. The message can be found in
the output message file specified through
the control structure. If the EN$TRAPI
DD statement is included, the message
will also appear there.
RC RE Problem Explanation
04 14 No component data An element component function call was
exists issued. The element exists, but there is
no component data.
RC RE Problem Explanation
12 004 File validation error A validation error was detected on an
output file by C1SSDVLD. An API
message also with the Endevor vali-
dation error message is written out to
the trace data set (EN$TRAPI), if speci-
fied in the JCL stream. A WTO
message is issued for the Endevor vali-
dation error.
RC RE Problem Explanation
12 008 $SMR error A $SMR error occurred while proc-
essing an extract function call. The
message associated with this error can
be found in the output message file
which was specified through the control
structure. If the EN$TRAPI DD state-
ment was included, the message will
also appear there.
RC RE Problem Explanation
16 003 Too many request struc- ENA$NDVR was presented with a mul-
tures tiple request structure. Only one request
may be presented to the interface. No
error message is produced.
RC RE Problem Explanation
16 009 C1BMINIT failed Endevor initialization failed -
C1BMINIT. An error message is
written out to the file reference by the
BSTERR DD statement. The message
contains more information concerning
the error. The API server terminates.
20 001 Control structure eye- ENA$NDVR was presented with a
catcher is invalid control structure which does not have a
valid eye-catcher string. The control
structure return and reason codes will
not be set. The codes will be returned
through register 15 and 0 respectfully.
The control structure cannot be used to
return the codes since its structure is
damaged.
20 002 Control structure id is ENA$NDVR was presented with a
invalid control structure which has an invalid
control structure id. The control struc-
ture return and reason codes will not be
set. The codes will be returned through
register 15 and 0 respectfully. The
control structure cannot be used to
return the codes since its structure is
damaged.
20 003 Control structure ENA$NDVR was presented with a
version number is control structure which does not have a
invalid valid version number. The control
structure return and reason codes will
not be set. The codes will be returned
through register 15 and 0 respectfully.
The control structure cannot be used to
return the codes since its structure is
damaged.
20 004 Control structure length ENA$NDVR was presented with a
is invalid control structure which has an invalid
control structure length value. The
control structure return and reason codes
will not be set. The codes will be
returned through register 15 and 0
respectfully. The control structure cannot
be used to return the codes since its
structure is damaged.
RC RE Problem Explanation
20 005 ROLLIST error Internal error: ROLLIST error. The
ROLFSPEC is not valid. An API
message is written to the BSTAPI DD
file.
RC RE Problem Explanation
20 011 $PGET failed $PGET failure during an API function
call. An API message is written to the
BSTAPI DD file.
RC RE Problem Explanation
20 018 Internal message area is Internal error. Storage area within the
too small ENA$NDVR interface program is too
small to construct the message request.
RC RE Problem Explanation
20 023 ENAPIMGR parameter Internal error. The API manager
length error received its parameter list with an
invalid length. An API message is
written to the BSTERR DD file. The
API server terminates.
20 024 ENAPIMGR parameter Internal error. The API manager
EYE error expected to receive a parameter list that
maps to $AAPRM. The parameter it
received did not contain the identifier
string of '$AAPRM'. An API message
is written to the BSTERR DD file. The
API server terminates.
20 025 $PHDL failed Internal error. $PHDL failure during an
API server initialization. An API
message is written to the BSTERR DD
file. The API server terminates.
20 026 Invalid request id Not used
20 027 AAMSG structure EYE Internal error. The API received an
invalid invalid message structure which did not
conform to its expected ENHAAMSG
layout. An API message is written to
the BSTERR DD file. The server waits
for another message request.
20 028 No control structure in The API server received a request but
AAMSG the control structure was not found after
the message structure AAMSG. An API
message is written to the BSTERR DD
file. The server waits for another
message request.
20 029 Control structure is The API server received a request which
invalid had an invalid control structure. An
API message is written to the BSTERR
DD file. The server waits for another
message request.
RC RE Problem Explanation
20 030 Structure lengths do not The API server expects to receive a
add up message control request with four
structures: AAMSG, AACTL, request,
and response structure. During the vali-
dation process the total lengths of these
structures did not agree with the value
stored in the message structure. An API
message is written to the BSTERR DD
file. The server waits for another
message request.
20 031 Request structure The request structure within a message
invalid request structure could not be identified.
An API message is written to the
BSTERR DD file. The server waits for
another message request.
20 032 Response structure The response structure within a message
invalid request structure could not be identified.
An API message is written to the
BSTERR DD file. The server waits for
another message request.
4.1 Overview
This chapter contains procedures and sample output for execution reports and trace facili-
ties.
You should refer to trace data found in BSTERR, BSTAPI, and EN$TRAPI DD name
datasets if the return code and reason code from the API request directs you to. You
should scan the files looking for error messages that might be recorded in the files. All
error messages are documented in Endevor for OS/390 Error Codes and Messages. If an
internal error occurs, you should send all traces to Technical Support.
The API writes an execution report to the message file defined by the
AACTL_MSG_DDN file after each function call is processed. This report includes the
requested function calls and their options and the actual processing that occurred.
Sample execution reports are provided below for the following API function calls:
Element action
Inventory list
This report consists of two parts: first, the data from the request structure is formatted and
printed in a format similar to the output you receive when executing an Endevor batch
request; the second part is the action execution log. This is the exact same output you
receive when executing an Endevor foreground or batch action.
From this report, you can determine the ADD element action request field values and
determine the results of your request by viewing the execution log.
E N D E V O R A P I E X E C U T I O N R E P O R T
15:32:43 API++++I STARTING PRINT OF API ACTION REQUEST DATA
15:32:43 API++++I
15:32:43 API++++I ADD ELEMENT: APIB
15:32:43 API++++I THROUGH: APIU
15:32:43 API++++I FROM DSNAME: BST.BUCFR+2.APISRC
15:32:43 API++++I TO ENVIRONMENT: INT
15:32:43 API++++I SYSTEM: NDVRMVS
15:32:43 API++++I SUBSYSTEM: FHB
15:32:43 API++++I TYPE: COBCOPY
15:32:43 API++++I OPTIONS
15:32:43 API++++I CCID: CCIDVALUEADD
15:32:43 API++++I COMMENT: COMMENTADD123456789+123456789+
15:32:43 API++++I UPDATE IF PRESENT: Y
15:32:43 API++++I DELETE INPUT SOURCE: N
15:32:43 API++++I OVERRIDE SIGNOUT: Y
15:32:43 API++++I BYPASS GENERATE PROCESSOR: N
15:32:43 API++++I
15:32:43 API++++I API ACTION REQUEST DATA SUCCESSFULLY PRINTED
15:32:43 API++++I
STATEMENT #1
15:32:43 C1Y++16I REQUEST CARDS SUCCESSFULLY PARSED
This report consists of two parts: first, the data from the request structure is formatted and
printed in a format similar to the output you receive when executing an Endevor batch
request; the second part is a summary of how many records were read and selected and
the highest return and reason codes detected.
From this report, you can see that three records were selected and written to a file defined
to the APIEXTR DD statement and that the highest return code was zero.
E N D E V O R A P I E X E C U T I O N R E P O R T
13:19:12 API+1+1I BEGINNING OF API ACTION PROCESSING
API+1++I LIST ENVIRONMENT
API+1++I TO DDNAME: APIEXTR
API+1++I ENVIRONMENT: INT
API+1++I THRU ENVIRONMENT: PRD
API+1++I OPTIONS
API+1++I PATH: L RETURN: A SEARCH: A
API+1++I
API+1++I API ACTION REQUEST DATA SUCCESSFULLY PRINTED
API+1++I
13:19:12 API+1+2I DISPATCHING API ACTION
13:19:12 API++++I RETURNED COUNT=++++3, SELECTED COUNT=++++3
13:19:12 API++++I PROCESSING COMPLETE - RC=+++++ REASON=+++++
The API Diagnostic Trace records diagnostic and informational messages for each API
transaction. The trace should be run only at the request of Endevor technical support.
To activate the Endevor API Diagnostic Trace, include the following DD statement in
your JCL stream:
//BSTAPI DD SYSOUT=A
Below is an example of an output file created with the BC1PAPI trace facility.
(C) 1987,2+++ Computer Associates International Endevor for OS/39+ +2/+4/++ +7:34:++ PAGE 1
The API Internal Trace records detailed internal trace information along with API data
block dumps. This trace should only be used to debug a problem.
To activate the Endevor API Internal Trace, include the following DD statement in your
JCL stream:
//EN$TRAPI DD SYSOUT=A
Below are examples of output files created with the EN$TRAPI trace facility.
(C) 1987,2+++ Computer Associates International Endevor for OS/39+ +2/+4/++ +7:34:+4 PAGE 1
The following example contains additional trace information for an ADD element action
function call.
(C) 1987,2+++ Computer Associates International Endevor for OS/39+ +2/+4/++ +7:34:+4 PAGE 1
A.1 Overview
This appendix provides a description of sample programs and JCL that you can use to
test the Endevor for OS/390 API. The appendix includes:
A description of how to execute an API program outside of a processor using the
NDVRC1 program.
A description of COBOL program CCIDRPT1 that produces a list of elements and
creates a CCID cross-reference report
JCL to execute program CCIDRPT1
A description of Assembler program ENHAAPGM that produces a list of environ-
ments and writes the responses to an output file
JCL to execute program ENHAAPGM
A description of Assembler program ENHAEPGM that executes each of the element
action function calls and writes the responses to an output file.
JCL to execute program ENHAEPGM
A description of Assembler program ENTBJAPI that executes different inventory list
function calls and writes the responses to an output file.
JCL to execute program ENTBJAPI
The NDVRC1 program allows you to execute a program that issues Endevor for OS/390
API function calls outside of a processor.
A.2.1 Description
You must execute NDVRC1 and pass the name of your program through the PARM=
parameter on the EXEC statement. If your program requires parameter data, you can
append it to the parameter string using a comma to separate the program name from your
parameter data.
For example:
//STEP1 EXEC PGM=NDVRC1,PARM='TESTAPI1,DATA1,DATA2'
NDVRC1 executes program TESTAPI1 and passes the following parameter information
to the program through register 1:
R1 = +++81+1+
+++C6BC4C1E3C1F16BC4C1E3C1F2
where:
length value = 12
NDVRC1 reserves the first eight characters of the PARM parameter for the program
name. All other parameters, starting with the ninth character, are passed to the API
program as parameter data. For Assembler programs, register 1 contains an address that
points to the parameter data where the first two bytes contain the parameter length fol-
lowed by the parameter data.
Note: If you do not want the first comma passed to the program, enter the data imme-
diately after the program name and omit entering the first comma.
COBOL Users: NDVRC1 reserves the first eight characters of the PARM parameter for
the program name. All other parameters, starting with the ninth character, are passed to
the API program and placed into the LINKAGE SECTION storage provided in the API
program. The API program must contain the PROCEDURE DIVISION USING storage
clause, where storage is the 01-level name of the variable specified in the LINKAGE
SECTION.
Using the same parameter information as shown in the Assembler example, the storage
defined in the LINKAGE SECTION must be defined as 14 bytes in length and contain
the two byte-length value (000C) in binary, PIC 9(2) COMP, followed by the 12 bytes of
parameter data (,data1,data2) in character format, PIC X(12).
The COBOL program, CCIDRPT1, produces a list of elements based on user input and
creates a CCID cross-reference report. This program was written to show an application
use of the API feature. JCL that you can use to execute this program appears in the next
section.
A.3.1 Description
The source for this program is distributed with Endevor for OS/390 as member name
CCIDRPT1 in the iprfx.iqual.SOURCE data set.
Only source code is provided for this program. Review the source and make any desired
modifications. You must compile and link-edit this module into the
uprfx.uqual.AUTHLIB library before attempting to execute it. There are no restrictions
on linkage editor AMODE/RMODE parameters. (AMODE=31,RMODE=ANY or
AMODE=24,RMODE=24).
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
K K
K THIS REPORT PRODUCES A CCID CROSS REFERENCE ON ELEMENT K
K INVENTORY SPECIFIED BY THE USER. SEE SPECIFICATION INPUT K
K BELOW. K
K K
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
USER SPECIFICATIONS:
FROM ENVIRON:QAS STGID:2 SYSTEM:NDVRMVS SUBSYS:BASE ELEMENT:K TYPE:ASMPGM
TO ENVIRON: STGID:
SEARCH SETTING - CURRENT LOCATION
PATH SETTING - PHYSICAL
PROCESS FIRST OCCURRENCES OF ELEMENT AND TYPE
CCID: I579711+
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
C1GP2+++ ASMPGM +1.54 24OCT99 13:33 OLEJU+1 QAS 2 NDVRMVS BASE disallow batch adm/ pkg w/in processors
CCID: NMAN
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
C1GSCIPO ASMPGM +1.17 24JUL99 13:15 OLEJU+1 QAS 2 NDVRMVS BASE ADD LOGIC FOR NAME CCID VALID FLAG
CCID: OFT
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
ENCOPTBL ASMPGM +1.+9 16OCT99 14:25 BUCFR+2 QAS 2 NDVRMVS BASE Optional Features Table Source
CCID: PKGESI
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
CONMSGSP ASMPGM +1.48 +5SEP96 11:44 DYSRO+1 QAS 2 NDVRMVS BASE Add package ESI support
C1SPMISC ASMPGM +1.38 31OCT99 1+:33 BUCFR+2 QAS 2 NDVRMVS BASE ESI SUPPORT
ENMP3CRE ASMPGM +1.+3 21JUL99 +9:11 DYSRO+1 QAS 2 NDVRMVS BASE Package exit 1 support
CCID: P++++644
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
C1BML+1+ ASMPGM +1.28 2+MAY96 +9:+9 BERBE+2 QAS 2 NDVRMVS BASE S+c4 at +82 during clear footprnt cmd.
CCID: P++++7+1
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
C1BR2+++ ASMPGM +1.25 3+DEC99 11:++ BERBE+2 QAS 2 NDVRMVS BASE zero days value for reports
CCID: P++++894
ELEMENT TYPE VV.LL DATE TIME USER ENVIRON SID SYSTEM SUBSYS COMMENT
ENBX14++ ASMPGM +1.19 24DEC99 16:26 BERBE+2 QAS 2 NDVRMVS BASE included copybooks have space b4 period
The JCL for this program is distributed with Endevor for OS/390 as member name
BC1JRAPI in the iprfx.iqual.JCL data set. This job shows how to execute program
CCIDRPT1. The load module along with its source is distributed.
A.4.1 JCL
The JCL to execute program CCIDRPT1 appears below. Look at the JCL comment state-
ments that describe updates you need to make before you execute this JCL stream.
In this example, DD name, MSG3FILE, describes the message output file and DD name,
EXT1ELM, describes the output file for the element extract responses.
//K ( COPY JOBCARD )
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//K K
//K BC1JRAPI - THIS IS SAMPLE JCL THAT EXECUTES PROGRAM CCIDRPT1 K
//K WHICH IS DISTRIBUTED IN SOURCE AS AN EXAMPLE OF K
//K HOW TO WRITE (USE) THE ENDEVOR API FACILITY. K
//K K
//K THE FOLLOWING UPDATES MUST BE MADE TO THIS JCL BEFORE K
//K IT CAN BE EXECUTED: K
//K K
//K 1. UPDATE THE JOBCARD TO REFLECT CORRECT SITE INFORMATION K
//K 2. REVIEW THAT THE STEPLIB AND CONLIB DATA SET NAMES ARE K
//K CORRECT. K
//K - uprfx.uqual.AUTHLIB K
//K - iprfx.iqual.AUTHEXT K
//K - iprfx.iqual.CONLIB K
//K 3. MODIFY THE PROGRAMS DATA INPUT. AS AN EXAMPLE, THE K
//K INPUT DATA HAS A SINGLE REQUEST. K
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//STEP1 EXEC PGM=NDVRC1,PARM='CCIDRPT1',DYNAMNBR=15++,REGION=4+96K
//STEPLIB DD DSN=uprfx.uqual.AUTHLIB,DISP=SHR
// DD DSN=iprfx.iqual.AUTHEXT,DISP=SHR
//CONLIB DD DSN=iprfx.iqual.CONLIB,DISP=SHR
//SYSOUT DD SYSOUT=K
//SYSPRINT DD SYSOUT=K
//BSTERR DD SYSOUT=K
//MSG3FILE DD DSN=&&MSG3FILE,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=FB,LRECL=133,BLKSIZE=133++)
//EXT1ELM DD DSN=&&EXT1ELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=VB,LRECL=2+48,BLKSIZE=228++)
//EXT2ELM DD DSN=&&EXT2ELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=VB,LRECL=2+48,BLKSIZE=228++)
//WORKELM DD DSN=&&WORKELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=FB,LRECL=115,BLKSIZE=115+)
//SORTELM DD DSN=&&SORTELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=FB,LRECL=115,BLKSIZE=115+)
//CCIDRPT1 DD SYSOUT=K
//K
//K SYSIN DATA STRUCTURE INFORMATION
//K
//K COLUMN 1 = 'K' STATEMENT TREATED AS A LINE COMMENT & WILL
//K ON THE REPORT
//K
//K COLUMNS 1-4 = 'ELOC' INPUT REQUEST ID
//K COLUMN 5 = PATH SETTING
//K 'L' = LOGICAL PATH
//K 'P' = PHYSICAL PATH
//K COLUMN 6 = SEARCH SETTING
//K 'A' = SEARCH ALL
//K 'B' = SEARCH BETWEEN
//K 'N' = NO SEARCH
//K 'E' = SEARCH NEXT
//K 'R' = SEARCH RANGE
//K COLUMN 7 = RETURN SETTING
//K 'A' = RETURN ALL HITS
//K 'F' = RETURN FIRST HIT
//K COLUMNS 8-15 = ENVIRONMENT NAME (EXPLICIT)
//K COLUMN 16 = STAGE ID (EXPLICIT)
//K COLUMNS 17-24 = SYSTEM NAME (MAY BE WILD)
//K COLUMNS 25-32 = SUBSYSTEM NAME (MAY BE WILD)
//K COLUMNS 33-42 = ELEMENT NAME (MAY BE WILD)
//K COLUMNS 43-5+ = TYPE NAME (MAY BE WILD)
//K COLUMNS 51-58 = TO ENVIRON NAME SPECIFY ON SEARCH ='B' OR 'R'
//K & MUST BE EXPLICIT
//K COLUMN 59 = TO STAGE ID SPECIFY ON SEARCH ='B' OR 'R'
//K & MUST BE EXPLICIT
//K COLUMNS 6+-69 = TO ELEMENT NAME (MAY BE WILD)
//K +----1----+----2----+----3----+----4----+----5----+----6----+----7--
//SYSIN DD K
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
K K
K THIS REPORT PRODUCES A CCID CROSS REFERENCE ON ELEMENT K
K INVENTORY SPECIFIED BY THE USER, SEE SPECIFICATION INPUT BELOW. K
K K
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
ELOCPNFINT 1NDVRMVS BASE K ASMPGM
//K PRINT ANY MESSAGES
//STEP2 EXEC PGM=IEBGENER
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT1 DD DSN=&&MSG3FILE,DISP=(OLD,DELETE)
//SYSUT2 DD SYSOUT=K
A.5.1 Description
The source for this program is distributed with Endevor for OS/390 as member name
ENHAAPGM in the iprfx.iqual.SOURCE data set. The ENHAAPGM program performs
the following actions:
1. Issues a request to the API to read the MCF and build a list of all the environments.
2. Writes the list of environments to an output file.
3. Writes any inventory or source management messages to the message data set.
Only source code is provided for this program. Review the source and make any neces-
sary modifications. The names of the starting and ending environments and the search
options are candidates for modifications. You must assemble and link-edit this module
into uprfx.uqual.AUTHLIB before attempting to execute it. There are no restrictions on
linkage editor AMODE/RMODE parameters (AMODE=31,RMODE=ANY or
AMODE=24,RMODE=24).
The JCL in this section is distributed with Endevor for OS/390 as member name
BC1JAPGM in the iprfx.iqual.JCL data set. This job can be tailored and used to execute
the ENHAAPGM program. The sample API program must be executed from an author-
ized library.
A.6.1 JCL
The JCL to execute program ENHAAPGM appears below.
In this example, the DD name APIMSGS describes the message file, in this case
SYSOUT, and APILIST describes the response output file for the list environment func-
tion call.
//K(JOBCARD)
//K-------------------------------------------------------------------K
//K K
//K (C) 1987,2+++ COMPUTER ASSOCIATES INTERNATIONAL, INC. K
//K K
//K NAME: BC1JAPGM K
//K K
//K PURPOSE - THIS IS SAMPLE JCL TO INVOKE THE ASSEMBLER K
//K SAMPLE API PROGRAM: ENHAAPGM K
//K K
//K THE FOLLOWING UPDATES MUST BE MADE TO THIS JCL BEFORE K
//K IT CAN BE EXECUTED: K
//K K
//K 1. UPDATE THE JOBCARD TO REFLECT CORRECT SITE INFORMATION K
//K 2. REVIEW THAT THE STEPLIB DD STATMENT CONCATENATION CONTAINS K
//K THE NAME OF THE AUTHORIZED LIBRARY CONTAINING THE SAMPLE K
//K PROGRAM AND THE ENDEVOR DEFAULTS TABLE. K
//K 3. REVIEW THAT THE CONLIB DD STATMENT CONCATENATION CONTAINS K
//K THE NAME OF THE LIBRARY CONTAINING THE ENDEVOR SOFTWARE. K
//K-------------------------------------------------------------------K
//STEP1 EXEC PGM=ENHAAPGM,REGION=4+96K
//STEPLIB DD DISP=SHR,DSN=uprfx.uqual.AUTHLIB
// DD DISP=SHR,DSN=iprfx.iqual.AUTHLIB
//CONLIB DD DISP=SHR,DSN=iprfx.iqual.CONLIB
//SYSOUT DD SYSOUT=K
//SYSPRINT DD SYSOUT=K
//BSTERR DD SYSOUT=K
//APIMSGS DD SYSOUT=K,
// DCB=(RECFM=FB,LRECL=133,BLKSIZE=133++)
//APIEXTR DD DSN=&&EXT1ELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=VB,LRECL=2+48,BLKSIZE=228++)
//K TRACE FACILITY K
//KBSTAPI DD SYSOUT=K
//KEN$TRAPI DD SYSOUT=K
//K-------------------------------------------------------------------K
//K PRINT EXTRACTED LIST OF ENVIRONMENTS
//K-------------------------------------------------------------------K
//STEP2 EXEC PGM=IEBGENER
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT1 DD DSN=&&EXT1ELM,DISP=(OLD,DELETE)
//SYSUT2 DD SYSOUT=K
The sample Assembler program, ENHAEPGM, illustrates the use of all the API element
action function calls. JCL to execute this program appears in the next section.
A.7.1 Description
The source for this program is distributed with Endevor for OS/390 as member name
ENHAEPGM in the iprfx.iqual.SOURCE data set. The ENHAEPGM program contains
logic to execute each of the element action function calls supported by the API.
Only source code is provided for this program. Review the source and make any neces-
sary modifications. In order for this program to operate, the name of the input and output
data sets must be modified and the name of the member being ADDed and UPDATEd
must exist in the input library. Also, the inventory location information (ENV, SYS,
SYSSUB, etc.) must exist.
You must assemble and link-edit this module into uprfx.uqual.AUTHLIB before
attempting to execute it. There are no restrictions on the linkage editor
AMODE/RMODE parameters. AMODE=31,RMODE=ANY is recommended.
The JCL in this section is distributed with Endevor for OS/390 as member name
BC1JEPGM in the iprfx.iqual.JCL data set. This job can be tailored and used to execute
the ENHAEPGM program. This sample API program must be executed from an author-
ized library.
A.8.1 JCL
The JCL to execute program ENHAEPGM appears below.
In this example, a series of DD names describes the message, input and output files
defined in the sample program. Also, the optional trace DD statements are coded.
//K(JOBCARD)
//K-------------------------------------------------------------------K
//K K
//K (C) 1987,2+++ COMPUTER ASSOCIATES INTERNATIONAL, INC. K
//K K
//K NAME: BC1JEPGM K
//K K
//K PURPOSE - THIS IS SAMPLE JCL TO INVOKE THE ASSEMBLER K
//K SAMPLE API ELEMENT ACTION PROGRAM: ENHAEPGM K
//K K
//K THE FOLLOWING UPDATES MUST BE MADE TO THIS JCL BEFORE K
//K IT CAN BE EXECUTED: K
//K K
//K 1. UPDATE THE JOBCARD TO REFLECT CORRECT SITE INFORMATION K
//K 2. REVIEW THAT THE STEPLIB DD STATEMENT CONCATENATION CONTAINS K
//K THE NAME OF THE AUTHORIZED LIBRARY CONTAINING THE SAMPLE K
//K PROGRAM AND THE ENDEVOR DEFAULTS TABLE. K
//K 3. REVIEW THAT THE CONLIB DD STATMENT CONCATENATION CONTAINS K
//K THE NAME OF THE LIBRARY CONTAINING THE ENDEVOR SOFTWARE. K
//K 4. THE SAMPLE PROGRAM EXPECTS SEVERAL MEMBERS TO EXIST IN THE K
//K UPRFX.UQUAL.SRCLIB. MAKE SURE THIS LIBRARY EXISTS AT YOUR K
//K SITE OR CHANGE THE DATA SET NAME IN THIS JCL TO ONE THAT K
//K DOES AND CREATE 3 COPYBOOK MEMBERS IN THIS LIBRARY; K
//K APIB--BASE COPYBOOK K
//K APIU--BASE COPYBOOK WITH SEVERAL MODIFICATIONS K
//K APIR--COPY OF APIB FOR DELETE AND RETRIEVE ACTIONS K
//K-------------------------------------------------------------------K
//STEP1 EXEC PGM=NDVRC1,PARM='ENHAEPGM',REGION=4+96K
//STEPLIB DD DISP=SHR,DSN=UPRFX.UQUAL.AUTHLIB (C1DEFLTS, USER PGM)
// DD DISP=SHR,DSN=IPRFX.IQUAL.AUTHLIB (E/OS39+ AUTH PGMS)
//CONLIB DD DISP=SHR,DSN=IPRFX.IQUAL.LOADLIB (E/OS39+ SOFTWARE)
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//K API MESSAGES DD STMT FROM THE AACTL_MSG_DD CONTROL FIELD.
//K IF NOT SPECIFIED, DD NAME DEFAULT OF APIMSGS IS USED.
//K EACH REQUEST SHOULD HAVE A UNIQUE MESSAGE FILE.
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//APIMSGS DD SYSOUT=K,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=+)
//ADDMSG DD SYSOUT=K
//DELMSG DD SYSOUT=K
//GENMSG DD SYSOUT=K
//MOVMSG DD SYSOUT=K
//PREMSG DD SYSOUT=K
//PRMMSG DD SYSOUT=K
//RETMSG DD SYSOUT=K
//SIGMSG DD SYSOUT=K
//TRAMSG DD SYSOUT=K
//UPDMSG DD SYSOUT=K
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//K TO/FROM DD NAMES SPECIFIED ON THE ELEMENT ACTION REQUESTS
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//ADDDDNMI DD DISP=SHR,DSN=UPRFX.UQUAL.SRCLIB
//PREDDNMO DD SYSOUT=K,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=+)
//PRMDDNMI DD DISP=SHR,DSN=UPRFX.UQUAL.SRCLIB
//PRMDDNMO DD SYSOUT=K
//RETDDNMO DD DISP=SHR,DSN=UPRFX.UQUAL.SRCLIB
//UPDDDNMI DD DISP=SHR,DSN=UPRFX.UQUAL.SRCLIB
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//K OPTIONAL TRACE DD STATEMENTS
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//BSTERR DD SYSOUT=K (ENDEVOR TRACE)
//BSTAPI DD SYSOUT=K (API DIAGNOSTIC TRACE)
//EN$TRAPI DD SYSOUT=K (API INTERNAL TRACE)
This program allows you to specify input statements to execute inventory list function
calls. Based on user input, it builds control, request, and response structures and executes
the API to process the function calls. It writes the responses to an output file.
A.9.1 Description
See comment statements in the JCL stream for a full description of each available API
inventory list function call. Each function call is made up of a control structure state-
ment, a request structure statement, and a RUN statement. The API structures are created
from the control structure statement and the request structure statement. The RUN state-
ment executes the API. More than one function call can be executed in one job by speci-
fying a set of statements for each function call. If you are issuing a request to shutdown
the API server only, a request structure statement is not required, as illustrated in the JCL
stream.
The QUIT statement should be the last statement coded in the input stream, which termi-
nates the program.
The JCL in this section is distributed with Endevor for OS/390 as member name
BC1JAAPI in the iprfx.iqual.JCL data set. This job shows how to execute program
ENTBJAPI. This program is distributed as a load module only.
A.10.1 JCL
The JCL to execute program ENTBJAPI appears below. Look at the JCL comment state-
ments that describe updates you need to make before you execute this JCL stream.
In this example, DD name, MSG3FILE, describes the message output file and DD name,
EXT1ELM, describes the output file for the API responses.
//K ( COPY JOBCARD )
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//K K
//K BC1JAAPI - THIS IS SAMPLE JCL TO INVOKE THE ASSEMBLER K
//K VERSION OF OUR SAMPLE API ENDEVOR APPLICATION K
//K PROGRAM: ENTBJAPI K
//K K
//K THE FOLLOWING UPDATES MUST BE MADE TO THIS JCL BEFORE K
//K IT CAN BE EXECUTED: K
//K K
//K 1. UPDATE THE JOBCARD TO REFLECT CORRECT SITE INFORMATION K
//K 2. REVIEW THAT THE STEPLIB AND CONLIB DATA SET NAMES ARE K
//K CORRECT. K
//K - uprfx.uqual.AUTHLIB K
//K - iprfx.iqual.AUTHEXT K
//K - iprfx.iqual.CONLIB K
//K 3. ADD THE NECESSARY DD STATEMENTS NEEDED TO PROCESS ANY K
//K ADDITIONAL API LIST REQUESTS. CURRENTLY THIS JOB IS SETUP K
//K TO HANDLE ONLY ONE LIST REQUEST. K
//K 4. MODIFY THE PROGRAMS DATA INPUT IN STEP1. AS AN EXAMPLE, THE K
//K INPUT DATA HAS A SINGLE ELEMENT EXTRACT REQUEST. K
//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
//STEP1 EXEC PGM=NDVRC1,PARM='ENTBJAPI',DYNAMNBR=15++,REGION=4+96K
//STEPLIB DD DSN=uprfx.uqual.AUTHLIB,DISP=SHR
// DD DSN=iprfx.iqual.AUTHEXT,DISP=SHR
//CONLIB DD DSN=iprfx.iqual.CONLIB,DISP=SHR
//SYSOUT DD SYSOUT=K
//SYSPRINT DD SYSOUT=K
//BSTERR DD SYSOUT=K
//BSTAPI DD SYSOUT=K
//MSG3FILE DD DSN=&&MSG3FILE,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=FB,LRECL=133,BLKSIZE=133++)
//EXT1ELM DD DSN=&&EXT1ELM,DISP=(NEW,PASS),
// UNIT=SYSDA,SPACE=(TRK,(5,5)),
// DCB=(RECFM=VB,LRECL=2+48,BLKSIZE=228++)
//SYSIN DD K
K---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
KKKKK ALPGR = LIST PROCESSOR GROUP STRUCTURE INFORMATION
K V - COLUMN 7 = RETURN SETTING
K VVVVVVVV - COLUMN 1+-17 ENVIRONMENT NAME
K V - COLUMN 18 = STAGE ID
K VVVVVVVV - COLUMN 19-26 SYSTEM NAME
K VVVVVVVV - COLUMN 27-34 TYPE NAME
K VVVVVVVV - COLUMN 35-42 PROC GROUP
K---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
KKKKK ALDSN = LIST DATA SET STRUCTURE INFORMATION
K V - COLUMN 7 = RETURN SETTING
K VVVVVVVV - COLUMN 1+-17 ENVIRONMENT NAME
K V - COLUMN 18 = STAGE ID
K VVVVVVVV - COLUMN 19-26 SYSTEM NAME
K VV - COLUMN 27-28 DATA SET ID
K---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
KKKKK ALAGR = LIST APPROVER GROUP STRUCTURE INFORMATION
K V - COLUMN 7 = RETURN SETTING
K VVVVVVVV - COLUMN 1+-17 ENVIRONMENT NAME
K VVVVVVVV - COLUMN 18-25 APPROVER GROUP NAME
K---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
KKKKK ALAGJ = LIST APPROVER JUNCTION STRUCTURE INFORMATION
K V - COLUMN 7 = RETURN SETTING
K VVVVVVVV - COLUMN 1+-17 ENVIRONMENT NAME
K VVVVVVVVVVVVVVVVVVVVVVVVV - COLUMN 18-42 APPR JUNCTION
K VVVVVVVV - COLUMN 18-25 SYSTEM
K VVVVVVVV - COLUMN 26-33 SUBSYSTEM
K VVVVVVVV - COLUMN 34-41 TYPE
K V - COLUMN 34-41 STAGE NUM
K---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
KKKKK AEELM = EXTRACT ELEMENT STRUCTURE INFORMATION
K V - COLUMN 6 = FORMAT SETTING
K = ' ' FOR NO FORMAT, JUST EXTRACT ELEMENT
K = 'B' FOR ENDEVOR BROWSE DISPLAY FORMAT
K = 'C' FOR ENDEVOR CHANGE DISPLAY FORMAT
K = 'H' FOR ENDEVOR HISTORY DISPLAY FORMAT
K V - COLUMN 7 = RECORD TYPE SETTING
K = 'E' FOR ELEMENT
K = 'C' FOR COMPONENT
K VVVVVVVV - COLUMN 1+-17 ENVIRONMENT NAME
K V - COLUMN 18 = STAGE ID
K VVVVVVVV - COLUMN 19-26 SYSTEM NAME
K VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME
K COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV
K COLUMN 45-52 = TYPE NAME VVVVVVVV
K COLUMN 53-54 = VERSION VV
K COLUMN 55-56 = LEVEL VV
K---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
K EXTRACT AN ELEMENT WITH NO FORMAT - CURRENT VERSION & LEVEL
AACTL MSG3FILEEXT1ELM
AEELM E INT 1NDVRMVS BASE BC1PFPVL ASMPGM
RUN
K LAST CALL, ENSURE THAT THE API SERVER IS SHUTDOWN.
AACTLY
RUN
QUIT
//K
//K PRINT ANY MESSAGES
//STEP2 EXEC PGM=IEBGENER
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT1 DD DSN=&&MSG3FILE,DISP=(OLD,DELETE)
//SYSUT2 DD SYSOUT=K
//K
//K PRINT EXTRACTED ELEMENT
//STEP3 EXEC PGM=IEBGENER
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY
//SYSUT1 DD DSN=&&EXT1ELM,DISP=(OLD,DELETE)
//SYSUT2 DD SYSOUT=K