CEDS is one of a set of TFG2000 products that integrate with each other. These relationships vary according to which products are installed. In addition, there are certain functions within these products that may need to be customized to suit the environment and specific requirements. CEDS uses TFG2000 Bill of Materials Online II (BOM/O II) or its equivalent, and that product should be tailored for multiple environment operation.
Note: This chapter contains Product-Sensitive Programming Interface and Associated Guidance Information.
Tables used in common by TFG2000 products, such as the Environment Table, are discussed in the TFG2000 Installation and Administration Guide (for MVS or VSE). The guide also discusses multiple environment support, multiple language support, the Help Text Database, the Standard Text Database, and changing message texts.
This section describes the most common areas in which these changes may be required.
The topics discussed are:
Where a name is given in parentheses above, it indicates the name of the member on the provided source library. These members include default settings that are normally suitable to run the Sample Problem of CEDS. Normally these members should be transferred into an online editor system and modified to suit the environment.
The Multiple Environment Support (MES) function gives CEDS the ability to maintain two versions of the Product Definition Database within the bill of material product.
The load edit environment is created when CEDS is installed.
CEDS creates the load edit bill of material version in the X environment after receiving data from a computer engineering system. CEDS uses BOM/O II transactions to review or change bill of material information before copying it to the production databases.
CEDS also defines a second version of the Environment Table that CEDS and BOM/O use in the load edit environment. The CEDS installation creates the X environment databases, environment table, and bill of material PSBs.
The production version that you maintain with the BOM/O II product, or its equivalent, functions in the production environment. It contains information that applications such as TFG2000 Material Requirements Planning, Purchasing and Shop Order Release can use.
The various TFG2000 products, when they are all installed, make up an integrated manufacturing control system. Because they are not likely to be installed simultaneously, the Environment Table communicates to all TFG2000 products details about other applications and databases that are installed. This is necessary because the functions available within each individual product can vary depending upon which of the other products are installed. The Environment Table also contains general codes and control data. You can use this information to control and tailor the CEDS programs to fit your requirements. This way, you can install new TFG2000 products in an appropriate sequence, while maintaining control over the integration of these products.
The Environment Table is distributed with the TFG2000 Base Product and the values are set according to the installation parameters you choose. Some products assume the presence of other products and, in these cases, the prerequisite product is assumed to have been installed.
In order to run the Sample Problem as described in Appendix B. "TFG2000 Engineering Data Support Sample Problem", of this manual, the Environment Table should be used as distributed with CEDS and modified by the CEDS installation process. The production environment continues using the existing Environment Table.
Two versions of the Environment Table are required for use within the load edit environment. For more information, see "Multi-environment operation".
The Environment Table is provided as an Assembler source member, which consists of a set of parameter values. The current values should be stored in an online editor system and updated from there. When a change is made, the table should be reassembled and catalogued with the name of ENVTABLEx, where "x" indicates the environment in which the table is used. Every batch or online TFG2000 program loads the table or accesses data from it each time it is run, so the new version of the Environment Table is then accessed without further intervention.
In addition to details of which products and databases are installed, the Environment Table contains a series of parameters that can be used by one or more of the TFG2000 products. The parameters that apply to CEDS are listed later in this section.
The Environment Table is divided into the following sections:
This section describes which TFG2000 products are installed. The value 'YES' indicates that the application product is installed and operational. When an application is installed, but is not yet operational (for example, during testing), the appropriate table value must be set as 'NOT'.
This section describes which databases are installed. Generally, the databases correspond to the applications that require them. In some instances, however, the presence of a database determines whether or not a particular function can be performed. Valid entries are 'YES' or 'NOT'.
Note: It is important to make sure that the Applications and Database sections correspond with each other.
This section describes the function codes that can be entered for online transactions. It also describes codes that define product cost types and codes for display screen handling functions, such as paging and scrolling. These values are not normally changed. However, they may need to be changed in certain instances, such as for non-English speaking users.
This section describes the values that are used by several TFG2000 products. It is used as a common section to hold values such as the date format, number of working days per year, inventory location identifiers, and the primary language indicator.
This section describes the two-character codes used by the IAET transaction of TFG2000 Inventory Accounting (IA). They can be modified if required.
This section describes the two-character codes used to identify certain categories of standard text. Because these settings relate to values actually stored on the database, the implications must be closely investigated before considering any changes.
This section contains a list of valid names of engineers who are authorized to perform engineering change transactions in TFG2000 BOM/O.
This section contains a list of valid names of storemen who are authorized to enter inventory transactions in TFG2000 IA.
Complete details about the Environment Table supplied with the CEDS product can be found in the TFG2000 Administration, Operations, and Users' Guide.
CEDS can communicate with PES or CADI using the File Transfer Program. CEDS processes the data placed in the interface files, then prepares feedback data. The feedback data tells PES or CADI whether or not the bills of material were received intact. To send the feedback data, CEDS retrieves Job Control Language (JCL) from the Standard Text Database. This JCL must be tailored to suit your machine requirements.
Figure 4-1. FTP 2.2 MVS or VSE system

| Note: |
The FTPSECUR program should be in a library accessed by both the
resident session partner job and the batch job that sends feedback.
This program deletes feedback records after they are sent and
synchronizes access to the interface file and the feedback file
between CEDS and FTP.
A DD/DLBL statement referencing the interlock file (EMTVIKE) must be in both the resident session partner and the FTP batch job. |
Figure 4-2. Netview FTP, MVS on VSE side

| Note: |
The PPEXIT parameter should be set to FTPSECUR in both Netview FTP
servers.
The FTPSECUR program should be moved to a library that is accessed
by the servers.
The FTPSECUR program deletes feedback records after they are sent and synchronizes access to the feedback and interface files by FTP and CEDS. A DD statement referencing the interlock file (EMTVIKE) should be in both Netview FTP servers. |
The Standard Text Database contains a table (0800E) with references to the specific JCL used to transmit feedback data to the originating system or node ID. The figure below illustrates how CEDS relates an originating system to the JCL used to transmit feedback data:
Figure 4-3. Sample table in the standard text database
TEXT
FN: S T A N D A R D T E X T M A N A G E M E N T
TEXT CD: CD800E<<<<<<<<<<<< DATE: 07/07/90
------ -----
FUNC SEQ FREE TEXT (60 CHARACTERS MAXIMUM)
---- --- -----------------------------------------------------------------
001 01PESEMTV1KEWAA7FTP
002 02PDIEMTV1EEWAA5FTP
003 ENDPDI
---- --- --- COMMAND LINE (P/N,P/P,P/1,UP,DOWN,REPL,DLET,ISRT) -----------
P/N
----- 006 : CURRENT DATA
FUNCTION CODE : ISRT - INSERT A PAGE DLET - DELETE A FULL PAGE
REPL - UPDATE (SEE COMMAND) INQUŽBWSE - DISPLAY
|
XXTTTDDDDDDDDNNNNNNwhere:
XX
Standard Text Key that contains the JCL for the node referenced by this entry. For example:
TTT
Data format received from this node. There are two possible values:
DDDDDDD
Name of the data set that contains the feedback for this node. This name should be unique for each originating location. The default value for PES is EMTV1KE. The default value for PDI is EMTV1EE.
NNNNNN
Identifies the originating data format.
For PES, this value uses the FTP LU name assigned to the FTP job that sends the data to CEDS.
For PDI, this value uses the node name in the administrative header record.
After CEDS processes a batch of data from an external engineering system, it must send feedback to the source of the data. To identify the source of the data, CEDS refers to the data format, PES or PDI, and the location ID of the external system. It then searches the JCL table for a matching entry.
CEDS uses the DDDDDDD portion of the entry to name a file where it stores feedback messages before transmitting them back to the source.
CEDS then uses the XX portion of entry to determine the key of the Standard Text Database records. They contain the JCL used to transmit the data. Sample JCL is shipped on the CEDS product tape.
CEDS also scans the JCL for the FTP keyword RFILEID (starting in column 1). If found, the JCL is further scanned for an eight-dollar-sign ($$$$$$$$) character string. These dollar signs are replaced with date/time stamp information in the form of DDHHMMSS (see below). This information allows the user to send feedback to a unique dataset for each batch processed. If time/date stamp information is not found, the JCL is processed as is.
The examples in Figure 4-4 and Figure 4-5 show how the feedback JCL uses information in the Standard Text Database. The first two numbers of the free text line reflect the Standard Text Key. Sequence numbers do not affect the Standard Text Key.
Figure 4-4. Feedback JCL to segment CD801 of the Standard Text Database
*¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
| TEXT |
| FN: S T A N D A R D T|
| TEXT CD: CD800E<<<<<<<<<<<< |
| ------ |
| FUNC SEQ FREE TEXT (60 CHARACTERS |
| ---- --- -------------------------|
*¦¦¦¦¦+¦¦¦¦¦¦¦¦¦>01PESEMTV1KEWAA7FTP |
| | 002 02PDIEMTV1EEWAA5FTP |
| | 003 ENDPDI |
| | ---- --- --- COMMAND LINE (P/N,P/P|
| | |
| *¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
|
*¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
|
|
*¦¦¦¦¦¦¦¦¦¦¦¦¦+¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
| TEXT | |
| FN: V S T A N D A R D T|
| TEXT CD: CD801E<<<<<<<<<<<< |
| ------ |
| FUNC SEQ FREE TEXT (60 CHARACTERS |
| ---- --- -------------------------|
| 001 //FTPSEND JOB (A9K,N3,'F|
| 002 // MSGCLASS=X|
| 003 //***********************|
| 004 //* FILE TRANS|
| 005 //***********************|
*¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
Figure 4-5. Feedback JCL to segment CD802 of the Standard Text Database
*¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
| TEXT |
| FN: S T A N D A R D T|
| TEXT CD: CD800E<<<<<<<<<<<< |
| ------ |
| FUNC SEQ FREE TEXT (60 CHARACTERS |
| ---- --- -------------------------|
| 001 01PDIEMTV1KEWAA7FTP |
*¦¦¦¦¦+¦¦¦¦¦¦¦¦¦>02PESEMTV1EEWAA5FTP |
| | 003 ENDPDI |
| | ---- --- --- COMMAND LINE (P/N,P/P|
| | |
| *¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
|
*¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
|
|
*¦¦¦¦¦¦¦¦¦¦¦¦¦+¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
| TEXT | |
| FN: V S T A N D A R D T|
| TEXT CD: CD802E<<<<<<<<<<<< |
| ------ |
| FUNC SEQ FREE TEXT (60 CHARACTERS |
| ---- --- -------------------------|
| 001 //FTPSEND JOB (A9K,N3,'F|
| 002 // MSGCLASS=X|
| 003 //***********************|
| 004 //* FILE TRANS|
| 005 //***********************|
*¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦*
The fields in the Environment Table that are directly affected by the installation of CEDS are described in this section. The values of the fields in the Environment Table distributed with CEDS that are necessary to run the Sample Problem are described. You should review these settings when planning the production environment for CEDS, and the entries affected by the installation of other TFG2000 products.
The CEDS dependent entries are described in the following format:
Before installing CEDS, review the setting of the segment default values in the appropriate copybooks and the setting of the options in the Environment Table. If you follow the installation procedures described in the TFG2000 Installation Guide (for MVS or VSE), these settings do not influence the running of the Sample Problem.
CORMES is a sophisticated message-switching system that, although not an actual TFG2000 product, greatly enhances the usability and control offered by TFG2000 products.
The steps required to integrate TFG2000 products with CORMES are included in the installation instructions. Different steps are required, depending upon whether or not CORMES is installed.
Make sure that CORMES is successfully installed before attempting integration.
If you install CORMES after installing a TFG2000 product, run the CORMES installation steps from the appropriate product installation instructions. These steps are required to add entries to the CORMES databases, reflecting the messages and addresses required by the TFG2000 products.
If your location alternates between using and not using CORMES, perform the installation steps assuming that CORMES is installed. Then, use the Environment Table setting for final control.
Certain situations detected within CEDS cause the generation of action messages. These messages are explained in Chapter 1. "System description" of this manual.
If CORMES is not installed, these messages are written to the VSAM ESDS data set CCIVSAM and it is your responsibility to maintain and print this file.
CORMES handles the action messages generated by TFG2000. The integration of CORMES with TFG2000 is accomplished by the COPICS-CORMES Interface (CCI). Action messages issued by the application programs are processed by CCI and passed to CORMES so that the information can be communicated to specific users. Because CORMES is not a prerequisite for TFG2000, CCI also provides an option to process action messages and place them in a VSAM data set for further processing.
If you encounter any problems with the COPICS-CORMES Interface (CCI), check through the following steps:
The value associated with the parameter "&CORMESI" should indicate if CORMES is installed ('YES' or 'NOT'). If the value is incorrect, change it and recatalogue the copybook to the source library.
If CORMES is installed, each action message generated by CEDS refers to a CORMES Message Information Block (MIB), which contains information such as message-ID, department, function, individual identification, and message text.
CORMES then checks that the message-ID and the addressee (department, function, and individual) are defined in the CORMES Action File and Action Table and that the addressee is authorized to receive that particular message-ID. If an error is detected at this point, CORMES assumes default values and the message is distributed accordingly.
See the TFG2000 Administration, Operations, and Users' Guide for more information on the COPICS-CORMES Interface program.
For details of how to set up or modify a Message Information Block and the CORMES Action File and Action Table, refer to the CORMES Program Reference Manual.
Help text for CEDS online programs are stored in the Help Text Database.
Two kinds of TFG2000 online help functions are available:
Transaction help. The transaction help is initiated during online activity by a defined program function key (default is PF1). This invokes the transaction HETR.
Message help. The message help is initiated during online activity by a defined program function key (default is PF2). This invokes the transaction HEER.
See the TFG2000 Administration, Operations, and Users' Guide for more information on help and managing the Help Text Database.
The following description of CCI applies to all TFG2000 products. All TFG2000 products, however, do not use all the CCI features.
Application programs can issue action messages by calling CCI. If CORMES is installed, up to 20 action messages, each to a different CORMES addressee, can be generated from a single call. A call requests the processing of a single CORMES MIB. The MIB is generated by specifying and assembling CORMES macros (DSRGEN) that describe the action messages to be sent. Each macro described in the MIB must be defined in the CORMES Action Table. Addressees, along with each message that they can receive, must also be defined in the CORMES Action File.
A CORMES action message is built using information from the following sources:
Certain parts of a message may be defined in one place, such as the Action Table, and then overwritten for a specific situation at another level of definition, such as the MIB. The application program can overwrite the MIB definition dynamically during processing.
The following functions are supported by CCI:
CCI only handles the variable message information, leaving the remainder of the action message information to be handled in accordance with the normal CORMES rules. CCI can substitute each field within an action message as variable data of the application using the parameter list. CCI can also combine it with a predefined MIB.
The variable information is passed to CCI by the application program using the following parameters:
An application program determines the name of the MIB, containing the action messages it wants to use, and places this name into the MIB-name field. The application can overwrite the above-mentioned fields. If CCI finds anything other than binary zeroes in these user fields, it overwrites the corresponding fields, in each action message issued by the MIB, with the data found.
CCI provides an optional function, called responsibility identification or responsibility lookup, that can dynamically change the addressee for a message to a different employee within a specified department and function. This function is called responsibility identification or responsibility lookup, and allows you to assign a unique set of items to an employee within a given department and function.
The Item Responsibility Segment (ITMRES) in the Product Definition Database designates the specific employee responsible for any message sent to a given department and function concerning the item.
The Sequence Control field for the ITMRES segment is the first seven bytes of the CORMES address (department&or.function). The remaining seven bytes are a CORMES address (employee).
To indicate that responsibility identification is required for a given message, the employee portion of the addressee in the MIB, or in the parmlist (CCI-EMPL), must contain '**PRDEF'. Application programs must place the Item number in the OTXTNO portion of the OTXT parameter. Then, by using the department/function (DEPT/FCTN) portion of the addressee, the unique Item Responsibility Segment can be retrieved.
If this Responsibility Segment exists, the Employee Segment portion of the Addressee field is updated from this segment before the message is sent to CORMES. If the correct ITMRES segment is not found, the department, function, and employee for that message is cleared by CCI. CORMES then sends the message to the default addressee specified in the Action Table.
Another way of looking at the responsibility identification is through the database that includes the responsibility segment. Within the parameter list, the field CCI-DBD contains the name of the database in which the specific responsibility segment is stored and the field CCI-APPLID contains the application identification from which the message will be sent. In this case, the whole addressee is taken out of the ITMRES segment. This also occurs when the value of CCI-APPLID is blank or zero.
If the MIB or parmlist does not contain '**PRDEF' in the employee portion of the addressee and CCI-DBD contains zero, the responsibility identification is not performed and the addressee remains unchanged.
Therefore, individual responsibilities can be specified for some items and not for others. Responsibility identification may be required for certain action messages and not for others. If the field CCI-RESP of the parameter list has the value 'N', a responsibility segment is not processed.
The application program creates a record in CICS/VS temporary storage and requests initiation of the CCI asynchronous task. The application uses a copybook to initialize CCI parameters. The copybooks used are DSRCPARM for ANS COBOL and DSRAPARM for Assembler Language. The name of the MIB to be sent must be specified. Optionally, the application program can overwrite the initialized low-value CCI entries for UKEY, OTXT, and TX01. These are referred to as CCI parameters in the following discussion.
The following is a list of the application coding steps to use CCI in an online environment.
01 CCI-PARMS. 00280000
* TRANSACTION IDENTIFICATION 00290000
03 CCI-TRANS PIC X(4) VALUE LOW-VALUES. 00300000
* EVENT NUMBER 00310000
03 CCI-EVNT PIC X VALUE LOW-VALUES. 00320000
* SELECT CRITERIA 00330000
03 CCI-SELC PIC X(19) VALUE LOW-VALUES. 00340000
* ADDITIONAL CHARACTERISTIC 00350000
03 CCI-ACHAR PIC X(10) VALUE LOW-VALUES. 00360000
* 00370000
* RESPONSIBILITY SEGMENT TO PROCESS 00380000
* Y = YES, N (OR BLANK) = NO 00390000
03 CCI-RESP PIC X VALUE LOW-VALUES. 00400000
* NAME OF THE DATA BASE FOR THE RESPONSIBILITY SEGMENT 00410000
03 CCI-DBD PIC X(8) VALUE LOW-VALUES. 00420000
* MIB NAME 00430000
03 CCI-MIB PIC X(8) VALUE LOW-VALUES. 00440000
* ADDRESSEE IF NOT USED IN MESSAGE 00450000
03 CCI-PADDR. 00460000
* CONSISTS OF DEPARTMENT 0047000
05 CCI-PDEPT PIC X(4) VALUE LOW-VALUES. 00480000
* FUNCTION 00490000
05 CCI-PFCTN PIC X(3) VALUE LOW-VALUES. 00500000
* EMPLOYEE 00510000
05 CCI-PEMPL PIC X(7) VALUE LOW-VALUES. 00520000
* MESSAGE IDENTIFICATION IF NOT USED IN MESSAGE 00530000
03 CCI-PMGID PIC X(4) VALUE LOW-VALUES. 00540000
* DESTINATION IDENTIFICATION 00550000
03 CCI-DEST PIC X(10) VALUE LOW-VALUES. 00560000
* LANGUAGE IDENTIFICATION 00570000
03 CCI-LANGID PIC X(01) VALUE LOW-VALUES. 00580000
* DATA BASE IDENTIFICATION 00590000
03 CCI-DBID PIC X(01) VALUE LOW-VALUES. 00600000
* APPLICATION IDENTIFICATION 00610000
03 CCI-APPLID PIC X(03) VALUE LOW-VALUES. 00620000
* PROGRAM NAME FOR ASYNCHRON. PROCESSING 00630000
03 CCI-PGMNAME PIC X(08) VALUE LOW-VALUES. 00640000
* N = MESSAGE WILL NOT BE SENT TO CORMES. 00650000
03 CCISEND PIC X VALUE LOW-VALUES. 00660000
* PCB-POSITION OF RESPONSIBILITY SEGMENT. 00670000
03 CCI-RPCB PIC S9(3) COMP-3 VALUE ZEROS. 00680000
* FILLER 00690000
03 CCI-FILLER PIC X(4). 00700000
**************************************************************** 00710000
* DSRAM LAYOUT FOR ACTION MESSAGE 00720000
********************************************************* 00730000
* ACTION MESSAGE PART IDENTIFICATION 00740000
03 CCI-DSR PIC X(3) VALUE 'DSR' 00750000
02 CCI-AM. 00760000
* MESSAGE TYPE : A=INSERT , E=REPLACE. 00770000
* T=CANCEL , W=WITHDRAW. 00780000
05 CCI-TYPE PIC X VALUE LOW-VALUES. 00790000
* INTERNAL USE. 00800000
05 CCI-SEND PIC X VALUE LOW-VALUES. 00810000
* UNIQUE CURRENT NUMBER. 00820000
05 CCI-UCNR PIC X(8) VALUE LOW-VALUES. 00830000
* MESSAGE ADDRESS. 00840000
05 CCI-ADDR. 00850000
* DEPARTMENT NUMBER. 00860000
08 CCI-DEPT PIC XXXX VALUE LOW-VALUES. 00870000
* FUNCTION NUMBER. 00880000
08 CCI-FCTN PIC XXX VALUE LOW-VALUES. 00890000
* EMPLOYEE NUMBER. 00900000
08 CCI-EMPL PIC X(7) VALUE LOW-VALUES. 00910000
* MESSAGE IDENTIFIER. 00920000
05 CCI-MGID PIC XXXX VALUE LOW-VALUES. 00930000
* EXTERNAL PRIORITY OF MESSAGE. 00940000
05 CCI-EXPY PIC X VALUE LOW-VALUES. 00950000
* ARCHIVE SWITCH. 00960000
05 CCI-ARCH PIC X VALUE LOW-VALUES. 00970000
* OVERVIEW TEXT OF MESSAGE. 00980000
05 CCI-OTXT. 00990000
08 CCI-OTXT-TYPE PIC X(5) VALUE LOW-VALUES. 01000000
08 CCI-OTXT-NUMBER PIC X(20) VALUE LOW-VALUES. 01010000
08 CCI-OTXT-ENVIRM PIC X(3) VALUE LOW-VALUES. 01020000
* USER KEY DATA. 01030000
05 CCI-UKEY. 01040000
08 CCI-UKEY-TYPE PIC X(3) VALUE LOW-VALUES. 01050000
08 CCI-UKEY-NUMBER PIC X(12) VALUE LOW-VALUES. 01060000
* DISTRIBUTION LIST NUMBER. 01070000
05 CCI-DLNR PIC XXXX VALUE LOW-VALUES. 01080000
* ACTION INDICATOR. 01090000
05 CCI-ACTI PIC X VALUE LOW-VALUES. 01100000
* DEFERRAL CODE. 01110000
05 CCI-DEFC PIC X VALUE LOW-VALUES. 01120000
* DUE DATE 0YYMMDDHH. 01130000
05 CCI-DUDA PIC S9(9) COMP-3. 01140000
* NUMBER OF TEXT RECORDS. 01150000
05 CCI-NTRC PIC S9(3) COMP-3. 01160000
* LENGTH OF PROGRAM DATA. 01170000
05 CCI-LDAT PIC S9(5) COMP-3. 01180000
* RESERVED FOR CORMES INTERNAL USE. 01190000
05 CCI-RES1 PIC X VALUE LOW-VALUES. 01200000
* MESSAGE ORIGINATOR. 01210000
05 CCI-ORIG PIC X(14) VALUE LOW-VALUES. 01220000
* RESERVED FOR CORMES INTERNAL USE. 01230000
05 CCI-RES2 PIC X(106). 01240000
* START OF TEXT RECORDS 01250000
05 CCI-TX01 PIC X(70) VALUE LOW-VALUES. 01260000
05 CCI-TX02 PIC X(70) VALUE LOW-VALUES. 01270000
05 CCI-TX03 PIC X(70) VALUE LOW-VALUES. 01280000
05 CCI-TX04 PIC X(70) VALUE LOW-VALUES. 01290000
* CCI-DATA. 01300000
* IF DATA ARE USED WITHIN THIS MESSAGE, A STRUCTURE 01310000
* SHOULD BE DEFINED HERE WITH THE NAME CCI-DATA. 01320000
* THE LENGTH OF THIS CCI-DATA FIELD IS PREPARED IN 01330000
* THE FIELD CCILDAT IN PACKED FORMAT. 01340000
If CORMES is not installed, CCI writes a copy of the parameter structure CCI-PARMS on the DDXVCCI Message Collection file. You can then process this file with a user-written program.
If CORMES is installed, the contents of the CCI parameters UKEY, OTXT, and TX01 overwrite the corresponding parts of each action message issued by the MIB that is being processed, unless the parameters contain only LOW-VALUES. In this case, the MIB-defined fields remain unchanged. The parameter structure definition initially sets all fields to LOW-VALUES, but if the program calls CCI more than once, it should clear parameters before reusing them to prevent incorrect information being passed to CORMES.
EXEC CICS START TRANSID('CCIA')
FROM(CCI-PARMS)
LENGTH(PARLENG)
END-EXEC.
The same rules as those used for online COBOL coding apply, except for the Assembler format differences.
************** SUBROUTINE TO CLEAR CCIPARMS 00210000
************** BAL R14,CLEARCCI 00220000
CLEARSAV DS F 00230000
CLEARCCI ST R14,CLEARSAV 00240000
MVI CCIPARMS,X'00'. 00250000
MVC CCIPARMS+1(255),CCIPARMS
00260000
MVI CCIPARMS+256,X'00'
00270000
MVC CCIPARMS+1+256(255),CCIPARMS+256
00280000
MVI CCIPARMS+512,X'00'
00290000
MVC CCIPARMS+1+512(80),CCIPARMS+512
00300000
L R14,CLEARSAV 00310000
BR R14 00320000
******************************************************************* 00330000
* LAYOUT OF APPLICATION INTERFACE TO SEND MESSAGES 00340000
********************************************************** 00350000
** PARAMETERS FOR CONTROLLING MESSAGE HANDLING 00360000
*********************************************************** 00370000
CCIPARMS DS 0CL592 00380000
CCITRANS DS CL4 TRANSACTION IDENTIFICATION 00390000
CCIEVNT DS CL1 EVENT NUMBER 00400000
CCISELC DS CL19 SELECT CRITERIA 00410000
CCIACHAR DS CL10 ADDITIONAL CHARACTERISTIC 00420000
* 00430000
CCIRESP DS CL1 RESPONSIBILITY SEGMENT TO PROCESS 00440000
* Y = YES, N (OR BLANK) = NO 00450000
CCIDBD DS CL8 NAME OF THE DB FOR THE RESP. SEGMENT 00460000
CCIMIB DS CL8 MIB NAME 00470000
CCIPADDR DS 0CL14 ADDRESSEE IF NOT USED IN MESSAGE 00480000
CCIPDEPT DS CL4 DEPARTMENT 00490000
CCIPFCTN DS CL3 FUNCTION 00500000
CCIPEMPL DS CL7 EMPLOYEE 00510000
CCIPMGID DS CL4 MESSAGE IDENTIFIC. IF NOT USED IN MSG 00520000
CCIDEST DS CL10 DESTINATION IDENTIFICATION 00530000
CCILAID DS CL1 LANGUAGE IDENTIFICATION 00540000
CCIDBID DS CL1 ENVIRONMENT IDENTIFICATION 00550000
CCIAPID DS CL3 APPLICATION IDENTIFICATION 00560000
CCIPGMN DS CL8 PROGRAM NAME FOR ASYNCHR.PROCESSING 00570000
CCISEND DS CL1 N=MESSAGE IS NOT SENT TO AF (ASYN/BATCH) 00580000
CCIRPCB DS PL2 PCB-POSITION FOR RESPONSIBILITY SEGMENT 00590000
DS CL4 FILLER 00600000
* 00610000
CCIDSR DS CL3 'DSR' ACTION MESSAGE PART IDENTIFICATION 00620000
CCILGPAR EQU *-CCIPARMS LENGTH OF PARAMETER PART 00630000
********************************************************************** 00640000
* DSRAM MESSAGE LAYOUT OF ACTION MESSAGE (INSERT,REPLACE, 00650000
* CANCEL AND WITHDRAW) 00660000
* 00670000
ORG CCIDSR+L'CCIDSR 00680000
CCIAM DS 0C 00690000
CCISTRT DS 0C 00700000
CCITYPE DS CL1 MESSAGE TYPE,A=INSERT,E=REPLACE,T=CANCEL 00710000
* W=WITHDRAW 00720000
DS CL1 INTERNAL USE 00730000
CCIUCNR DS XL8 UNIQUE CURRENT NUMBER 00740000
CCIADDR DS 0CL14 MESSAGE ADDRESSEE 00750000
CCIDEPT DS CL4 DEPARTMENT NUMBER ) 00760000
CCIFCTN DS CL3 FUNCTION NUMBER ) ADDRESSEE 00770000
CCIEMPL DS CL7 EMPLOYEE NUMBER ) 00780000
CCIMGID DS CL4 MESSAGE IDENTIFIER 00790000
CCIEXPY DS PL1 EXTERNAL PRIORITY 00800000
CCIARCH DS CL1 ARCHIVE SWITCH 00810000
* ARCHIVE = YES, ARCHIVE =NO 00820000
CCIOTXT DS 0CL28 OVERVIEW TEXT 00830000
CCIOTTYP DS CL5 OVERVIEW TEXT TYPE 00840000
CCIOTNO DS CL20 OVERVIEW TEXT ITEM NUMBER 00850000
CCIENVI DS CL3 OVERVIEW TEXT ENVIRONMENT 00860000
CCIUKEY DS 0CL15 USER KEY DATA 00870000
CCIUKTYP DS CL3 USER KEY DATA TYPE 00880000
CCIUKNO DS CL12 USER KEY DATA NUMBER 00890000
CCIDLNR DS CL4 DISTRIBUTION LIST NUMBER 00900000
CCIACTI DS CL1 ACTION INDICATOR 00910000
* W= WORKON ACTION INDICATOR 00920000
* I= INFORMATION ACTION INDICATOR 00930000
CCIDEFC DS CL1 DEFERRAL CODE 00940000
CCIDUDA DS PL5 DUE DATE 0YYMMDDHH 00950000
CCINTRC DS PL2 NUMBER OF TEXT RECORDS PREPARED WITH 4 00960000
CCILDAT DS PL3 DATA LENGTH 00970000
DS CL1 RETURN CODE SWITCH(INT.USE) 00980000
CCIORIG DS CL14 MESSAGE ORIGINATOR 00990000
DS CL106 RESERVED FOR CORMES 01000000
CCITX01 DS CL70 DETAIL TEXT LINE 1 01010000
CCITX02 DS CL70 DETAIL TEXT LINE 2 01020000
CCITX03 DS CL70 DETAIL TEXT LINE 3 01030000
CCITX04 DS CL70 DETAIL TEXT LINE 4 01040000
CCIDATA DS 0C DATA AREA 01050000
CCIEND DS 0C END OF PARAMETER LIST 01060000
CCILGHD EQU *-CCIPARMS LENGTH OF PARAMETER LIST 01070000
* END OF DSRAM 01080000
EXEC CICS START TRANSID('CCIA')
FROM(CCI-PARMS) LENGTH(PARLENG)
The interface for batch programs is functionally identical to the CICS/VS design, except that the called routine performs the functions of the asynchronous task immediately.
Batch programs must follow all the rules described above for online programs, except that they invoke CCI via a CALL, specifying the structure CCI-PARMS as the first parameter of the CALL.
If CORMES is installed, additional rules apply. There must be a modification to the PSB of each batch program using CCI. In addition to whatever PCBs the batch program itself requires, CCI requires six more. One of these is a PCB for the Product Definition Database, providing get-only access to the ITEMID and ITMRES segments in the Product Definition Database. The other five PCBs are those required by CORMES itself. They can be copied into the application's PSBGEN by the statements COPY RESPPCB and COPY DSRAFHP. An example of the necessary coding can be found in the PSB CCIPSB.
The batch program must pass the six PCB addresses to CCI as the second through seventh parameters of the call. The second parameter is the PCB for retrieving the responsibility segment and the next five are for CORMES. For example:
CALL 'CCIBATCH'
USING CCI-PARMS, R-PCB, C1-PCB, C2-PCB, C3-PCB, C4-PCB, C5-PCB
The same rules as those for batch COBOL apply, except for format differences.
The six PCB addresses must be saved upon entry to the program. This can be done by moving these addresses to the area provided in the copybook CCIAPCBS as follows:
MVC RPCB(24),nn(REG1)
where nn is the offset from register one, which is found by multiplying the program's original number of PCBs by 4. For example, if a batch program originally had five PCBs, then the offset is 20.
On certain CORMES error conditions, CCI sends messages to the CCI Administrator. To retrieve these error messages, sign-on to CORMES as follows:
ADMS - DEPARTMENT
CCI - FUNCTION
- EMPLOYEE
If an application requests a MIB that contains an invalid message-ID or an invalid addressee, CCI sends one of the following:
CI38 - ACT.TABLE - INVALID MESSAGE ID CI44 - ACT. FILE - INVALID ADDRESSEE
Each CORMES message-ID (MGID) in each MIB must be defined to CORMES in the Action Table. If a program tries to send a message that has not been defined, CCI receives an unsatisfactory return code when it tries to process the message. In this situation, CCI changes the failing MGID to the CCI information message-ID 'CI38' and resends the message.
The original MGID (MMMM) is saved in the first four
bytes of the OTXT field and the addressee changed to
the CCI Administrator
(ADMS-CCI- ).
The OTXT is saved in the last 28 bytes of TX01.
REQUIRED USER ACTION:
If a 'CI38' message is received, either the MGID must be defined in the Action Table or the MIB containing that MGID must be changed to a valid MGID.
Each addressee (DDDD-FFF-EEEEEEE) with the associated MGIDs must be defined in the CORMES Action File. If a program tries to send a message to an addressee/message-ID combination that has not been defined, an unsatisfactory return code is given back to CCI. This situation can be caused by an Item Responsibility Segment that causes CCI to complete an address with an employee who has not been defined to CORMES. In this situation, CCI changes the failing MGID to the CCI information message-ID 'CI44'. The attempted addressee MGID (MMMM) is saved in OTXT and the addressee changed to the CCI ADMINISTRATOR (ADMS-CCI- ). The OTXT is saved in the last 28 bytes of TX01.
REQUIRED USER ACTION:
If a 'CI44' is received, this combination of addressee and MGID is not defined in the Action File. If this combination is valid, the Action File must be updated.
If this message is being sent to an invalid address, the most likely problem is that a new Item Responsibility Segment has been added and the CORMES Action File has not been updated. The last 28 bytes of TX01 contain the Item number to be used with the transaction BMBR to review the responsibility segments. Addressing errors can also be caused by invalid default addressees in the Action Table or an invalid addressee in the MIB. The origin of the message contains the MIB name that was used to send the message.
If the CCI processing routine CCIASYCR is unable to load the MIB or the Environment Table, it ABENDS with a dump code 'CCIP'. In this case, the PPT entries must be checked to see that the modules exist and the proper entries have been made.
If other error conditions occur, it ABENDS with a dump code 'CCIE'. This dump may also be accompanied by a CORMES dump 'DSRE'. These dumps must be analyzed to determine the cause of the problem.
One other dump code exists. In the asynchronous transaction dump code 'CCI2' can occur under severe error conditions where CORMES has passed back a return code indicating a system error. These dump codes are also written to the CICS 'CSMT' destination.