This action might not be possible to undo. Are you sure you want to continue?
It allows companies to develop systems to access data in real time. The current version of CICS - CICS Transaction Server - provides various facilit ies to interface with web technology while providing continuing access to legacy systems. The CICS Application Program Interface (API) lets you write programs that will w ork with CICS in a variety of programming languages (Cobol, PL/1, C and HLASM). Within this section of the website you will find information to help you learn a bout programming for CICS. Introduction CICS is a transaction processing system, it allows a user to input data online. A transaction can be thought of as a unit of work, usually it is a single progra m that performs an update or returns the result of an enquiry. CICS appears to the user to be a separate environment, but is actually a job tha t runs under the main operating system (OS/390, Z/OS, etc). CICS has a number of programs that handle resources, such as storage. There are various CICS tables which define files programs and transactions to the CICS sy stem. When developing programs you can access files, storage and other programs and r esources using the application programming interface (API). The API lets you iss ue CICS commands from within the program. This is known as Command Level Program ming. In the first versions of CICS the API was not available and you had to acc ess CICS resources using Assembler Macros, this was known as Macro Level program ming. Macro Level is no longer supported under newer versions of CICS, so it wil l not be covered here. A transaction is started in CICS by entering a 4 character transaction id. When you enter the transaction id this starts the program associated with that transa ction id. Note that this is not intended to be a complete course in CICS, it merely introd uces some CICS concepts. Top of Page General Concepts Pseudo Conversational Programming Executing CICS Commands Differences between batch and CICS Cobol programs Passing Data between Programs Defining Resources to CICS CICS Screens Calling Other Programs CICS Supplied Transactions Pseudo Conversational Programming
say. Ordinary conversational programs run and stay in memory for the duration of the interaction between the computer and the operator. The usual file access commands like OPEN. CLOSE. This means that all the reso urces that the program requires are held and not released. The CICS command can be spread over a number of lines. leaving the terminal logged in and running a transaction. so if an operator wen t off for lunch. no one else would be able to access the resources held by that program.The majority of CICS application programs are coded to take advantage of a techn ique called pseudo conversational programming. GOBACK or END PROGRAM. or if there was no calling program. This frees up the resources while the opera tor is typing at the terminal (or off for lunch). because the pre-compiler has been integrated into the compiler. To terminate a CICS program you should use the CICS RETURN command instead of a STOP RUN. but is usually worth it Top of Page Executing CICS commands from COBOL programs When you want to execute a CICS command from your program. The Pre compiler will read your program and convert the CICS comma nds into COBOL CALL commands. you start the command by specifying EXEC CICS before the CICS command. You terminate the CICS command with the END-EXEC terminator. The EXEC CICS . is that the files should be de fined to CICS in the File Control Table (FCT). I/O operations on files are carri ed out using CICS commands in your program. (If you are going to be using a new file then you will need to have it defined in the FCT before you can use it. without the need for a co ntinuation character. The FCT contains all the informat ion needed by CICS to access the file. The transaction is re-initiate d when the user presses the Enter or a PF Key. END-EXEC structure must start after column 12 as with normal COBOL commands. The reson you do not define files in the program. The Op ening and Closing of files is handled by CICS.). The biggest difference you will notice in CICS programs is that you do not defi ne files in your program. The RETURN command will return control to the c alling program. This is required because the Cobol compiler does n ot understand CICS commands. Pseudo conversational program overcomes this limitation by terminating the trans action when the screen is displayed. Top of Page Passing data between CICS Cobol Programs . In order to compile a CICS Cobol program you must first run the program through a Pre-Compiler . READ. Top of Page Differences between batch COBOL and CICS COBOL programs. control is returned to CICS. This involves a bit more programmin g effort. You can also specify a Transid to which control returns. In newer versions of CICS (CICS TS V2 and above) th e pre-compile step is not required. WRITE are not used.
The first method is to use Resource Definition Online (RDO). There will always be a DFHCOMMAREA in your program whether you specify it or not. Files are defined to CICS in the FCT (File Control Table). key length and types of I/O allowed on the file. Definitions of CICS resources are stored in the CICS System Definitions (CSD) fi le. use files to pass data between programs. The va program runs. This is een programs. 4)Files. In additi on Transient Data Queues must be declared to CICS before use. It contains system information by your program. The information requi red include an 8 character ID that uniquely identifies the file. Programs must be defined in the PCT (Program Control Table). the File name. The commarea is used to pass user data between program s. The Commarea is specified in the LINKAGE SECTION of your program. The information required in the PPT includes the Program name that the transaction is to run. The information req uired includes the program name and program language. The EIB is copied into your riables are populated by the system when the a special block of data passed betw that can be used (but not changed) program when you compile it. The maximum size of DFHCOMMAR EA is 32K. you may have to rely on support or change management procedur es to have CICS updated. As mentioned above. It s possible that security restrictions at your site mean that you cannot define resources to CICS.Data is passed between programs in a number of different ways. Top of Page . of course. There are a number of transactions in CICS which allow you to define resources to CICS. The transaction nam e is 4 characters. This is r un as a batch job. Transactions are defined in the PPT (Program Process Table). You can. (The compiler will also insert the USING DF HCOMMAREA after the Procedure Division statement). however it is recommended (by IBM) that it not exceed 24K. before you can use them. and the definitions normally become available when CICS is re started. Top of Page Defining Resources to CICS. 1)The Execute Interface Block (EIB). DFHCSDUP. These are special areas of stora ge that you can use to keep information and pass it between programs. The second method is to use the CSD offline update utility. whil e Transient Data Queues (TD Queues) can only be accessed sequentially. 2)COMMAREA (DFHCOMMAREA). If you do n t specify a DFHCOMMAREA in the program then a one byte DFHCOMMAREA is placed in the Linkage Section at compile time. Temporary Storage Queues (TS Queues) can be accessed either sequentially or randomly. 3)Temporary Storage and Transient Data Queues. The length of the Commarea is returned to your program in the variable EIBCALEN. you must define resources such as files to CICS. There are two usual methods of adding and defining resources to CICS.
READ REWRITE DELETE Writing a Browse Program STARTBR WRITE UNLOCK READNEXT CALL . Exa mples of CICS transactions are CEMT. they tend to be very similar for each screen.. You don t have to be an assembler programmer to use the macros.. These trans actions let you manage and view CICS resources online. Top of Page CICS Supplied Transactions There a number of transaction that are supplid with the CICS system. Another way to define screens is to use one of the many screen painters availabl e.. The CECI transaction lets you execute CICS commands without needing to write a p rogram. LINK . etc. Examples o f screen painters are IBM s SDF II and BMS/GT. because they allow you to desi gn the screen on-line and automatically generate the required macros. amongst other things. Once the called program has fin ished control is returned to the calling program at the next statement after the LINK.Similar to a standard Cobol CALL command. size. File Handling in CICS Note: only some of the command options are specified here. If you use assembler macros to define your screens then you will define the attr ibutes of each field that will appear on the screen. command to transfer temporary contro . Control is NOT returned to the calling program. CEDA. such as colour. and the calling pro gram is terminated. It stops your program bef ore and after each CICS command and lets you view storage areas.. it is fairly easy to code the macros. See the CICS BMS Maps page for details of how to create Maps Top of Page Calling other Programs You can call other programs from a CICS Cobol program in a number of ways. You can also use the Cobol l to another program. please see the CICS m anuals for a full list of available options. USING . Screens are defined using special Assembler Macros. CESN and CSSF.This command transfers control to the called program. XCTL . The CEDF CICS supplied transaction is a debugging aid. These take the hard work out of coding macros.CICS Screens You can design screens for your programs to display the screens are usually refe rred to as Maps or BMS Maps .
EQUAL and GTEQ refer to the collating sequence in which record keys occur in the file. The UPDATE option is used to establish exclusive control over a record. The data value associated with the KE YLENGTH option may be a constant number. The SYSID option is needed only if your installation uses the Intersystem Commun ication (ISC) facility to communicate with other systems. in quotes. The four character sys tem ID that you specify tells Cics on which system the file to be read is locate d. The LENGTH option is mandatory for reading variable length records. If this length excee ds the maximum length that the program had specified. the LENGERR exception cond ition is raised. INTO names the da ta area within your program into which the record should be copied from the file . RIDFLD stands for Record IDentification FieLD. This option names the data area that contains the key value of the record you wish to read from the file. The WRITE command WRITE DATASET (file name) FROM (data area) RIDFLD (record key area) [LENGTH (data value)] [KEYLENGTH (data value)] [SYSID (system name)] With the exception of FROM and LENGTH. tells CICS how many bytes of the RIDFLD key should be used to retrieve the record. DATASET gives the name. When CICS executes the READ it stores the actual length of the record it reads into the data area specified in the LENGTH option. By default. The FROM option indicates the name of the data area in working storage from whic . whic h is mandatory with the GENERIC option. all of these options are coded in the sam e way that they are coded for the READ command. Whenever you specify the SYSID option. the READ command will only read a record whose key is equal t o the key specified in RIDFLD. INTO and RIDFLD options are required in every READ command. or it may be a variable data area defin ed in working storage.ENDBR The READ Command READ DATASET (file name) INTO (data area) RIDFLD (record key area) [UPDATE] [EQUAL / GTEQ] [LENGTH (record length area)] [GENERIC] [KEYLENGTH (data value)] [SYSID (system name)] READPREV The DATASET. If GTEQ is specified. of the file that you wish to read. GENERIC tells CICS that the RIDFLD specifies only a partial key. This is necessary to prepare CICS to update or delete a record later in your program. the LENGTH and KEYLENGTH options must be specified. the first record whose key is greater than or equal to the RIDFLD is read. KEYLENGTH. It specifies a data area that contains the maximum length input record that the program is e xpecting.
and the program has updated fields within the record. in the WRITE command. the LENGTH option can be specifi ed by a constant number instead of by the name of the data area. The UNLOCK Command UNLOCK DATASET (file name) [SYSID (system name)] When a record is read with the UPDATE option. it is determined that an update is not necessa . Therefore. One way is to issu e a DELETE command using the DATASET and RIDFLD options. the DELETE command may be issued without the RIDF LD option.h the record will be written. These options are unnecessary because. The KEY LENGTH and SYSID options need to be issued only when the record to be de leted resides in a file on another system. The REWRITE Command REWRITE DATASET (file name) FROM (data area) [LENGTH (data value)] [SYSID (system name)] After a record has been READ from a file with the UPDATE option. exclusive control for that record remains in effect until the record is either rewritten or deleted or until the t ransaction is terminated. The program can the inspect fields within the record to help determine whether the record should be deleted. as in the READ command. if used at all they must be specified in the READ UPDATE co mmand which must precede a REWRITE. The LENGTH option specifies the exact length of the record to be written. RIDFLD is unnecessary in this instance because it was already specifi ed on the READ UPDATE command. method is to issue a READ UPDATE command prior to deleting the record. There is no need for CICS to return a length value to the program after the record has been written. safer. the REWRITE command can be issued to rewr ite the record to the file and complete the update option. The DELETE Command DELETE DATASET (file name) [RIDFLD (record key area)] [LEYLENGTH (data value) [SYSID (system name)] The DELETE command can be used in two ways to delete records. Notice that the options that affect the WRITE command also affect the REWRITE co mmand with the exception of the RIDFLD and KEYLENGTH options. The other. If a record is deleted after being retriev ed with a READ UPDATE command. the LENGTH option is required for variable le ngth records. If once the record has been read. As with the READ command.
unlike the READ command. records are actually being read into the pro gram. Unlike READ. or until some earlier end point (such as end of file) has been reached . The STARTBR Command STARTBR DATASET (file name) RIDFLD (data area) [GTEQ / EQUAL] [GENERIC] [KEYLENGTH (data value)] [SYSID (system name)] Most of these options are the same as for the READ command. These options are unnecessary because STAR TBR does not actually read a record into the program.Initiates the browse by establishing the key of the first record to be read. The KEYLENGTH and SYSID options are required if the file to be read resides on another system. Writing a Browse Program A browse transaction reads and displays multiple records from a file in a single transaction. therefore a browse program must include a loop that issues the READNEXT command multiple ti mes. .Terminates the Browse. The READNEXT command READNEXT DATASET (file name) INTO (data area) RIDFLD (data area) [LENGTH (data area)] [KEYLENGTH (data value)] [SYSID (system name)] The READNEXT command reads just one record each time it is executed. Also note that. STARTBR takes GTEQ as a default option. * READNEXT . All browse programs contain the following CICS commands: * STARTBR . exclusive control should be released from the record so that it can be acces sed by other transactions. It merely sets up a starti ng record key from which the READNEXT command works. except that STARTBR does not have INTO or LENGTH options. because these options establish the starting browse key.ry.Reads the first and all subsequent records in a browse * ENDBR . Browse programs are usually coded to allow the user to continue br owsing the file by pressing enter. The READNEXT command looks a lot like the READ command. READNEXT does not have the GTEQ and GENERIC options. The loop should terminate after enough records have been read to fill up th e screen. When a STARTBR command is issued with the GENERIC option the transaction is know n as a generic browse. Unlike STARTBR it does i nclude the INTO and LENGTH options. which is taken care of by START BR. The UNLOCK command releases the program's exclusive control over a record.
The ENDBR Command ENDBR DATASET (file name) [SYSID (system name)] The ENDBR command has two options. a file handling command may raise an exceptional conditi on when executed. The RESETBR command can be used for a skip-seque ntial browse. It's options are ide ntical to those of the STARTBR. Your programs should include either a HANDLE CONDITION or RESP options and some corresponding routines to handle the more common conditions th at may occur Note: only some of the command options are specified here. the program loop executed the READPREV command instead of the READNEXT command. except that. The options of the READPREV command are identical to those of th e READNEXT command. Use the COMMAREA option of the RETURN command in case the user wishes to continue the browse. The READPREV Command A browse that reads a file in descending key sequence is called a reverse browse . you must issue a RETURN command to return contr ol of the program to CICS. the starting key of the browse is reset one or more times during the same transaction. During this type of application. DATASET and SYSID. They perform the same func tions in ENDBR as they do in all the other file handling commands. The RESETBR Command The RESETBR combines the effects of an ENDBR and a STARTBR. Using the COMMAREA After issuing the ENDBR command. Exceptional Conditions Like any CICS commands. It is common practice to store the last record key returned by the READNEXT command into a COMMAREA field. the key stored in DFHCOMMAREA may be moved t o the data area referenced by the RIDFLD option of the STARTBR command. When the use r resumes execution of the program. A reverse browse program is coded just like a normal browse. A reverse browse program is coded using the READPREV command instead of the RE ADNEXT command. please see the CICS m anuals for a full list of available options. On this page you can find out how to use Temporary Storage and Transient Data Qu eues and the CICS commands used to access them. after an initial mandatory READNEXT command is issued. Temporay Storage Queues Transient Data Queues Temporary Storage Queues WRITEQ TS QUEUE (queue name) FROM (data area) [LENGTH (data value)] [ITEM (data area)] [MAIN / AUXILLIARY] [SYSID (name)] .
Reading an intrapartition da ta queue is destructive. Unlike temporary storage queues. This definition takes place in a special Cics table called the Dest ination Control Table (DCT). Like file s. Once created. transient data queues are task dependent. .READQ TS QUEUE (queue name) INTO (data area) [LENGTH (data area)] [ITEM (data value) / NEXT] [NUMITEMS (data area)] [SYSID (name)] WRITEQ TS QUEUE (queue name) FROM (data area) [LENGTH (data value)] [ITEM (data area) [REWRITE]] [MAIN / AUXILLIARY] [SYSID (name)] DELETEQ TS QUEUE (queue name) [SYSID (name)] Temporary Storage Queues Temporary storage provides a means for storing data records in queues. from a temporary storage queue. * The READQ TS command allows you to read records. one will be created and the re cords will be written to it. The DCT is usually maintained by a sys prog. Intrapartition Data Queues Intrapartition transient data queus may only reside on auxilliary storage and ca n only be read sequentially by other CICS programs. Temporary Storage Queue Commands There are three commands that process data in temporary storage queues. transient data queues must be defined before th ey are used. Whe n the number of records in an intrapartition queue reaches a predefined count a special task is automatically initiated. these records can be read either se quentially or randomly by any other CICS program. Temporary storage queues are not directly attached to a task. If no queue exists when this command is issued. Individual records cannot be deleted * The queue name specified in a temporary storage command must not exceed eight characters in length Transient Data Queues Like temporary storage queues. Intrapartition queues may also be associated with Automatic Task Initiation. it remains intact after the task that created it has terminated. * The WRITEQ TS command allows you to write records to a temporary storage queue . * Records in a temporary storage queue can be updated and rewritten by using the REWRITE option of the WRITEQ TS command * The DELETEQ TS command allows you to delete an entire temporary storage queue. these records are identified by a unique symbolic name. either sequentially or random ly. However transient data queues can only be read sequentially. Once a temporary storage queue is w ritten. One of the fields in each DCT entry tells whether the queue is an intrapartition or ex trapartition queue. They can be created in main storage or on auxiliary storage devices. Temporary storage que ues do not have to be predefined to CICS. This means that te mporary storage queues are task independent.
The specified remote system is unavailable or not defined CICS maps are created using special Assembler Language macros. It is not necessa ry to know much about assembler to create CICS maps. There are special screen painters available (eg IBM's SDF II) which take the ha rd work out of coding assembler macros. extrapartition queues can be accessed by other Cics programs as well as batch programs executing outside of the CICS partition or r egion.The requested queue cannot be found QZERO .A write has failed due to lack of space QIDERR . WRITEQ TD QUEUE (queue name) FROM (data area) [LENGTH (data value)] [SYSID (name)] READQ TD QUEUE (queue name) INTO (data area) [LENGTH (data area)] [SYSID (name)] DELETEQ TD QUEUE (queue name) [SYSID (name)] * The WRITEQ TD command allows you to write records sequentially to a transient data queue * The READQ TD command allows you to read sequentially from a transient data que ue * The DELETEQ TD command allows you to delete the contents of an intrapartition TD queue.The requested item number is invalid LENGERR .An undetermined error has occured during input or output ISCINVREQ . such as disk or tape. They can reside on any sequential device. these screen painters will generate the necessary assembler macros to create your map. check out the CICS Application Programming Guide. many other options are available.A read has been attempted on an empty queue SYSIDERR .an undetermined error has occured on a remote system ITEMERR . or be sen t directly to an off line printer. * Transient Data Queues are referenced by these commands using a symbolic name w hich must be predefined in the DCT * The queue name specified in transient data commands must not exceed four chara cters in length Exceptional Conditions IOERR . Symbolic and Physical Maps . This page will show you how to code the assembler macros necessary to create a CICS map for your program. if you want to know more.Extrapartition Data Queues Unlike intrapartition queus. Reading records in an extrapartition queue is non-destructive.The length of a record is invalid or missing NOSPACE . This page is intended as a quick guide only.
Columns 73 to 80 are for a line sequence number of comment. The second pass through the assemble r.Creating a Map Coding the Map Generating the Load module (Physical Map) and Copybook (Symbolic Map) Using The Generated Copybooks (Symbolic Map) Arrays Symbolic and Physical Maps Two terms commonly used when creating maps are the Symbolic Map and the Physical Map. The symbolic map is essentially a copy library member which allows you to refer to fields on the map from your COBOL (or PL/1 or C or Assembler) program. The DFHMSD macro defines a The DFHMDI macro defines a The DFHMDF macro defines a used when coding your map. Don't worry too much about the first two macros. you specify TYPE=MAP. the operands which specify the parameters and an option al comment. The first statement in your program should be a DFHMSD macro statement. The physical map is the code generated by the assembler to allow the system to d isplay the map i. but don't worry they are fairl y simple to get your head round. They are DFHMSD. this wi . starting in colum n1 (max length seven characters). The Assembler Statement: The statement consists of four components: The optional name. The first pass throught th e assembler. There are normally 3 macro nd DFHMDF. you specify TYPE=DSECT. DFHMDI a mapset. the mandatory operation specifying the assembl er instruction or macro. this will create a copy library member that you can copy into your CICS/COBOL program.e. To continue a line you put any character (except blank) in column 72. Coding the CICS Map. There may seem to be a lot of rules. and comment lines can NOT be continued. Comments: Comment line are indicated by placing an asterisk ('*') in column 1. The m ap must be assembled twice with different parameters. this will create an object module which will be passed through the link editor (binder) to produce a CICS load library member. map within a mapset defined by by DFHMSD field within the map defined by DFHMDI. Column 72 is for a continuation marker if you need to continue a line. A comment line can NOT be placed between continuation lines. Columns: Columns 1 to 71 are where you code your assembler statements. Creating A Map Once you have created your map. you need to run it through the assembler. You cannot have blank lines in the assembler program. they won't change much from map to map. Continuation Lines: Any statement can have only two continuation lines. Some Rules Before coding your map you must be aware of some rules for coding the assembler statements. the object module. The text of the continuatio n line must start in column 16.
LINE=1. PICOUT='X(10)'. x is the l ine and y is the column. INITIAL='XXXXXXXXXX'."LINE=1" and "JUSTIFY=(LEFT.TERM=3270.5). (ie the important bit). "LENGTH=" specifies the length of the field to be generated. It will look something like this: MAPNM DFHMDI COLUMN=1. SIZE=(24. CTRL=FREEKB. It will look something like this: MAPSN DFHMSD TYPE=DSECT. The next statement you should include is the DFHMDI macro statement to define th e map charcteristics.DATA=FIELD. "MODE=INOUT" specifies that the mapset is to be used for both input and output. NUM that the fi . "DATA=FIELD" specifies that the data is passed as a contiguous stream.FIRST)" establish the position of the ma p on the page.COLOR=RED * DOB DFHMDF POS=(2. "TERM=" specifies the terminal type associated with the mapset.LENGTH=8.DATA=FIELD.5). UNPROT means you can typ e data in to the field.NUM.PICOUT='9(8)' X X X X X First in the definition is the field name ("FNAME" and "DOB") followed by the ma cro DFHMDF "POS=(x. "TYPE=" is used to specify whet her a copybook member is to be generated (TYPE=DSECT) or an object library membe r is to be created (TYPE=MAP).ll define the mapset.TIOAPFX=YES X X "MAPSN" is the name of the mapset to be created.PICIN='X(10)'. th e only changes will be the mapset name and map name.y)" specifies where on the screen the field is to be placed. ATTRB=(UNPROT.FSET). BRT means the field intensity is BRighT. JUSTIFY=(LEFT. ATTRB=(UNPROT.ASKIP). Once you have coded these statements you can now get on with defining the field s that will appear in your map.LENGTH=10. INITIAL='00000000'.FIRST). "TIOAPFX=YES" specifies that fillers should be included in the generated copy l ibrary member. "CTRL=" specifies the characteristics of the 3270 terminal "DATA=FIELD" specifies that data is passed as contiguous fields.BRT. "LANG=COBOL" specifies the source language for generating the copy library memb er. MODE=INOUT. "ATTRB=" specifies a list of attributes for the field. We'll start out with a couple of sample definintions: FNAME DFHMDF POS=(1.LANG=COBOL. "COLUMN=1".80) X X "MAPMN" is the name of the map.NORM. Most of the time the DFHMSD and DFHMDI operands will not need to be changed.
BRT.5).LENGTH=10.LANG=COBOL. You specify the DFHMDF macro with the operand TYPE=FINAL.BRT.FSET). suffixed by 'A'. to create the load module the TYPE parameter of the DFHMSD macro mus t be set to MAP. like this : DFHMDF TYPE=FINAL And that's it. This will let you pass t he MAP or DSECT parms when you assemble the map.FSET). and to create the copybook the TYPE parameter must be set to DS ECT. the second time is to create the Copybook layout. The code you ha ve created has to be passed through the assembler twice. "COLOR=" is used to define the colour of the field. X PICIN='X(10)'. As menti oned above.eld is numeric only. X ATTRB=(UNPROT. To make life easier you can specify TYPE=&SYSPARM. X COLOR=RED. and an Attribute field.MODE=INOUT. X PICIN='X(10)'. X ATTRB=(UNPROT.CTRL=FREEKB. There is an IBM supplied JCL PROC called DFHMAPS which can be used to assemble the maps. Using The Generated Copybooks (Symbolic Map). Th is lets you specify editing characters such as Z to suppress leading zeros. for Input.5). X ATTRB=(UNPROT. X TERM=3270-2 MAP1 DFHMDI SIZE=(24. this will handle the assembling of maps for you and pass the appropria te value for TYPE when required.TIOAPFX=YES. "PICIN=" and "PICOUT=" allows you to specify a picture clause for the field.NUM. T he first is the mapname suffixed by an 'I' . The first time is to cr eate the load module. the second is the mapnam e suffixed by an O. There w . Once you have specified all the fields to be included on the map (the maximum n umber of fields is 1023) you must then specify a final macro to indicate the end of the map.PICOUT='X(10)' CRLIM DFHMDF POS=(3.LENGTH=10. Here's a quick example mapset definition (note this has not been tested): MAPS1 DFHMSD TYPE=&SYSPARM.FSET). for Output.80).PICOUT='X(10)' LNAME DFHMDF POS=(1. The input definition is used to display the map field via the SEND MAP CICS command. Within the Input definition you will see al l the fields you specified defined.99' DFHMSD TYPE=FINAL END Generating the Load module (Physical Map) and Copybook (Symbolic Map) Once you have defined your map. If you take a loo k at the copybook you will see that there are two main definitions (Level 01). For each of these fields there will also be a length field suffixed by 'L'. "INITIAL=" specifies an initial value for the field.25). When your map has been generated you will have a new Copybook.you must then 'Assemble' the map. X PICOUT='ZZZZ9. or you site may have it's own way of assembling maps.MAPATTS=COLOR FNAME DFHMDF POS=(1.NORM.LENGTH=8. Note that you must specify MAPATTS=COLOR on the DFHMDI macro to use the COLOR option .
T o do this you should copy the DFHBMSCA copybook into working storage. For CICS running under MVS prior to SP 4.An Overview Introduction . You can omit the apostrophes ro und the command if you wish. When using a screen painter such as IBM s SDF II you can specify the array direct ion. The following job shows you how to submit commands: //CICSMOD01 (acct-info).ill also be a Flag field suffixed by F... INTO..MSGCLASS=X.CLASS=A. The JCL uses the MVS Modify command to execute the CICS commands. To do this you u se the OCCURS= parameter on the DFHMDF macro. for CICS running under SP 4. Then move the required attribute to the 'A' field.1) //* //* //STEP01 EXEC PGM=IEFBR14 // F CICSREG1. Note: In order for this to work. but if there are sequence numbers at the end of the line a warning message is displayed on the console (the command will be execute d never-the-less.. The output part of the copybook definition should be used as a receive area aft er the user has pressed Enter (or a PF Key) . a console entry in the CSD must have been defi ned. Arrays You can use BMS Macros to define an array of fields with the same name.RECEIVE MAP. The length field can be used to set where the cursor will be positioned when the map is displayed.'CEMT SET PROG(EBR001) NEW' // F CICSREG1.cicscommand jname is the job name or taskid of the CICS region. However using Assembler Macros you can only specify a horizontal array. You can change the colour. and the screen painter will generate the correct symbolic map to let you us e horizontal arrays.'CEMT I TER' // The format of the modify command is : F jname.1 or later it will be CONSNAME(INTERNAL)..) External CICS Interface . cicscommand is the CICS command to be executed. It is possible to submit commands to a CICS region from a jcl jobstream.. This conta ins definitions for attributes eg DFHBMASK to set a field to SKIP.MSGLEVEL=(1. If you want to specify a Vertical array then you must specify each field in the array seperatley using BMS Macros and then edit the generated symbolic map (Copy book). prior to the SEND MAP.. this isn't normally used.1 it will be CONSOLE(00). Simply move -1 to the length field. and protection attributes by changing the A field.without the need for editing the generated code.
(You can open and close files and enable or dis able individual transactions) Requirements To run programs using the external CICS interface you must be using CICS/ESA Ver sion 4. The client program can only connect to the server CICS region only through the i nterregion communication program DFHIRP. Programming Interfaces Two forms of interface are provided by the External CICS Interface: 1) The EXCI Call Interface. This consists of six commands which let you initiali ze and open the interface. Choosing the correct Interface. For single requests or infrequent requests it is recommended that you use the EX EC CICS LINK command. which must be installed in the extended link pack area. This provides a single command (EXEC CICS LINK) to s ubmit a request. the opening .This document will provide a quick overview of the External CICS interface. This should be used in these circumstances because all DPL functions must be executed for each invocation of the LINK command causing addi tional overheads. closing and initialization is done automatically. The batch program is known as the client program and the CICS program is known as the server program. t o execute a program that exists in an CICS environment. Your choice of interface will depend on the requirements of the application. In order to connect the client program to the CICS region a connection definitio n must be defined to CICS using the CONNECTION and SESSIONS resource definition facility (via RDO or DFHCSDUP). befo re deallocating the pipe at the end of the prog . submit a request or requests and close the interface. The interface lets you open a session (also known as a pipe) in the CICS region and pass a request (or several requests) to CICS (known as a distributed program link request or DPL request). Overview The external CICS interface (EXCI for short) allows programs running in batch. what it is and options available. Data is passed between the programs via a commanications area. This is more efficient because you only have to perform th e Initialize and Allocate once at the beginning of your program. Where your application requires frequent or multiple requests you should use the EXCI Call Interface. 2) The EXEC CICS interface. The CICS (server) program is invoked as if it was called/linked to by anot her CICS program.1 or later. Using the External CICS interface you can udate resources while CICS is using th em or alternatively take resources offline at the start of a job and put them ba ck online when the job finishes. You can then op en and close the pipe as necessary and issue as many DPL calls as required.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.