CICS TS For Z/OS 4.2: Application Programming Guide - IBM

Transcription

CICS Transaction Server for z/OSVersion 4 Release 2IBMApplication Programming GuideSC34-7158-02

CICS Transaction Server for z/OSVersion 4 Release 2IBMApplication Programming GuideSC34-7158-02

NoteBefore using this information and the product it supports, read the information in “Notices” on page 803.This edition applies to Version 4 Release 2 of CICS Transaction Server for z/OS (product number 5655-S97) and toall subsequent releases and modifications until otherwise indicated in new editions. Copyright IBM Corporation 1989, 2014.US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contractwith IBM Corp.

ContentsWhat this manual is about . . . . . . xiWho should read this manual . . . .What you need to know to understandmanual . . . . . . . . . . .How to use this manual . . . . .Notes on terminology . . . . . .What is not covered in this manual . . . . xithis. . . . xi. . . . xi. . . . xi. . . . xiiChanges in CICS Transaction Serverfor z/OS, Version 4 Release 2 . . . . . xiiiPart 1. Writing CICS applications . . 1Chapter 1. Overview: Writing CICSApplications . . . . . . . . . . . . . 3What is a CICS application? . . . .CICS programs, transactions and tasks.CICS programming . . . . . . .CICS programming commands . . .EXEC interface block (EIB). . . . .Translation . . . . . . . . . .Testing for CICS . . . . . . . .CICS programming roadmap . . . .33455566Part 2. Programming languages andLanguage Environment . . . . . . . 9Chapter 2. Language Environment . . . 11Language Environment callable services . .Language Environment abend and conditionhandling . . . . . . . . . . . .Language Environment storage . . . . .Mixing languages in Language EnvironmentDynamic Link Libraries (DLLs) . . . . .Defining runtime options for LanguageEnvironment . . . . . . . . . . .CEEBXITA and CEECSTX user exits . .CICSVAR: CICS environment variable .CEEBINT exit for Language Environment . 12.13141517.17192021Chapter 3. Programming in COBOL . . 23COBOL programming restrictions and requirementsLanguage Environment CBLPSHPOP option . .Using the DL/I CALL interface. . . . . . .VS COBOL II programs . . . . . . . . . .Using based addressing with COBOL. . . . . .Calling subprograms from COBOL programs . . .Flow of control between programs andsubprograms . . . . . . . . . . . . .Rules for calling subprograms . . . . . . .COBOL2 and COBOL3 translator options . . . .CICS translator actions for COBOL programs . . .Batch compilation for COBOL programs . . . . . Copyright IBM Corp. 1989, 20142427272829303133363739Nested COBOL programs. . . . .Upgrading OS/VS COBOL programs . 41. 44Chapter 4. Programming in C and C 49C and C programming restrictions andrequirements . . . . . . . . . . . . . .Passing arguments in C and C . . . . . . .Accessing the EIB from C and C . . . . . .Locale support for C and C . . . . . . . .XPLink and C and C programming . . . . .XPLink uses X8 and X9 mode TCBs . . . . .Passing control between XPLink and non-XPLinkobjects . . . . . . . . . . . . . . .Global user exits and XPLink . . . . . . .5054555656575758Chapter 5. Programming in PL/I . . . . 59PL/I programming restrictionsLanguage Environment codingPL/I applications . . . .Fetched PL/I routines . . .and requirements .requirements for. . . . . . . . . . . . . 59. 60. 62Chapter 6. Programming in assemblylanguage . . . . . . . . . . . . . . 65Assembly language programming restrictions andrequirements . . . . . . . . . . . . .Language Environment coding requirements forassembly language applications. . . . . . .Calling assembly language programs . . . . . 65. 67. 69Part 3. Translating, compiling,installing and testing applicationprograms . . . . . . . . . . . . . 73Chapter 7. Translation and compilation75The integrated CICS translator . . . . . . . .Using the integrated CICS translator . . . . .Specifying CICS translator options. . . . . .The translation process . . . . . . . . . .The CICS-supplied translators . . . . . . . .Dynamic invocation of the separate translator . .Using a CICS translator . . . . . . . . . .Defining translator options . . . . . . . . .Translator options table . . . . . . . . .Using COPY statements . . . . . . . . . .The CICS-supplied interface modules. . . . . .Using the EXEC interface modules . . . . . .EXAMPLE Assembly language PROGRAM usingLEASM . . . . . . . . . . . . . . .75767677808089919193949497Chapter 8. Installing applicationprograms . . . . . . . . . . . . . 101Program installation steps . . . . . . .Using dynamic program LIBRARY resources . 101. 102iii

Examples of using dynamic LIBRARY resourcesDefining MVS residence and addressing modes . .Establishing a program's addressing mode. . .CICS address space considerations . . . . .Making programs permanently resident . . .Running applications in the link pack area . . .Running application programs in the RDSAs . . .Assembler . . . . . . . . . . . . .C and C/ . . . . . . . . . . . . .COBOL . . . . . . . . . . . . . .PL/I . . . . . . . . . . . . . . .Using BMS map sets in application programs. . .Using the CICS-supplied procedures to installapplication programs . . . . . . . . . . .Installing programs in load library secondaryextents . . . . . . . . . . . . . .Including the CICS-supplied interface modules . .Installing assembly language application programsInstalling COBOL application programs . . . .Sample JCL to install COBOL applicationprograms . . . . . . . . . . . . . .Installing PL/I application programs . . . . .Installing C application programs . . . . . .Sample JCL to install C application programsUsing your own job streams . . . . . . . .Chapter 12. Temporary storagebrowse (CEBR) . . . . . . . . . . 175103112112113114114115115116117117118Using the CEBR transaction . . . . . .What does the CEBR transaction display? . .Using the CEBR function keys. . . . . .Using the CEBR commands . . . . . .Using the CEBR transaction with transient data.What does CECI display? . . . . .The command line . . . . . .The status line . . . . . . . .The screen body . . . . . . .The message line . . . . . . .CECI options on function keys . .Using CECI . . . . . . . . . .Defining variables . . . . . . . .Saving commands . . . . . . . .How CECI runs . . . . . . . .Shared storage: ENQ commands withoutoption . . . . . . . . . . . paring to debug applications from aworkstation . . . . . . . . . . 145CICS TS for z/OS 4.2: Application Programming Guide193. 196. 197199. 201Chapter 16. Using Debug Tool withCICS applications . . . . . . . . . 203About Debug Tool. . . . . . . . . . . . 203Preparing to debug applications with Debug Tool 203. 148. 3183184187188188189190191192Chapter 15. Debugging CICSapplications from a workstation . . . 201. 141. 144. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LENGTH. . . .Debugging profiles . . . . . . . . . .Using debugging profiles to select programs fordebugging . . . . . . . . . . . . .Using generic parameters in debugging profilesPart 4. CICS applicationprogramming techniques . . . . . 205Chapter 11. Execution diagnosticfacility (EDF). . . . . . . . . . . . 151Restrictions when using EDF . . .What does EDF display? . . . .The header . . . . . . . .The body . . . . . . . . .Testing programs using EDF . . .Interrupting program execution .Using EDF in single-screen mode.Using EDF in dual-screen mode .EDF and remote transactions . .EDF and non-terminal transactionsEDF and DTP programs . . . .Stopping EDF . . . . . . .Over typing to make changes . . .EDF responses . . . . . . .Using EDF menu functions . . . .175177178179181Chapter 14. Preparing to usedebuggers with CICS applications . . 195Chapter 10. Testing applications . . . 147Preparing the application for testing.Preparing the system for testing . .Chapter 13. Command-levelinterpreter (CECI). . . . . . . . . . 183Chapter 9. Installing map sets andpartition sets . . . . . . . . . . . 135Installing map sets . . . . . . . . . .Types of map sets . . . . . . . . . .Installing physical map sets . . . . . .Installing symbolic description map sets . .Installing physical and symbolic descriptionmaps together . . . . . . . . . . .Installing partition sets . . . . . . . . .Defining programs, map sets, and partition sets toCICS . . . . . . . . . . . . . . .Chapter 17. Application design . . . . 207 Pseudoconversational and conversational designTerminal interruptibility . . . . . . . .How tasks are started . . . . . . . . .Which transaction? . . . . . . . . . .Separating business and presentation logic . .Multithreading: Reentrant, quasi-reentrant, andthreadsafe programs . . . . . . . . . .Quasi-reentrant application programs . . .Threadsafe programs . . . . . . . . .Making applications threadsafe . . . . .CONCURRENCY(REQUIRED) programs . .OPENAPI programs . . . . . . . . .Using the FORCEQR system initializationparameter . . . . . . . . . . . .207209209210213.214216217219223224. 226

Non-reentrant programs . . . . . . . .Storing data within a transaction . . . . . .Transaction work area (TWA) . . . . . .User storage . . . . . . . . . . . .COMMAREA in LINK and XCTL commandsChannels in LINK and XCTL commands . .Program storage . . . . . . . . . .Temporary storage queues . . . . . . .Intrapartition transient data . . . . . .GETMAIN SHARED command . . . . .Your own data sets . . . . . . . . .Lengths of areas passed to CICS commands . .Minimizing errors . . . . . . . . . . .Protecting CICS from application errors . .Testing applications . . . . . . . . .Non-terminal transaction security . . . . .Chapter 18. Design for performance237Program size . . . . . . . .Virtual storage . . . . . . . .Reducing paging effects . . . .Exclusive control of resources . . .Operational control . . . . . .Operating system waits . . . . .The NOSUSPEND option . . . .Efficient sequential data set access .Efficient logging . . . . . . 37238239241242243243244245Chapter 19. Sharing data acrosstransactions . . . . . . . . . . . . 247Using the common work area (CWA) . . . .Protecting the CWA . . . . . . . . .Using the TCTTE user area (TCTUA) . . . .Using the COMMAREA in RETURN commandsUsing a channel on RETURN commands . . .Using the display screen to share data . . . . 247. 248. 251251. 252. 252Chapter 20. Enhanced inter-programdata transfer using channels. . . . . 255Channels: quick start . . . . . . . . . . .Channels and containers. . . . . . . . .Basic examples . . . . . . . . . . . .Using channels: some typical scenarios . . . . .One channel, one program . . . . . . . .One channel, several programs (a component)Several channels, one component . . . . . .Multiple interactive components . . . . . .Creating a channel . . . . . . . . . . .The current channel . . . . . . . . . . .Current channel example, with LINK commandsCurrent channel example, with XCTLcommands . . . . . . . . . . . . .Current channel: START and RETURNcommands . . . . . . . . . . . . .The scope of a channel . . . . . . . . . .Scope example, with LINK commands . . . .Scope example, with LINK and XCTLcommands . . . . . . . . . . . . .Discovering which containers were passed to aprogram . . . . . . . . . . . . . . 70Discovering which containers were returned from alink. . . . . . . . . . . . . . . . .CICS read only containers . . . . . . . . .Designing a channel: Best practices . . . . . .Constructing and using a channel: an example . .Channels and BTS activities . . . . . . . .Context . . . . . . . . . . . . . .Using channels from JCICS . . . . . . . . .Dynamic routing with channels . . . . . . .Data conversion . . . . . . . . . . . .Why is data conversion needed? . . . . . .Preparing for code page conversion withchannels . . . . . . . . . . . . . .Data conversion with channels . . . . . .Benefits of channels . . . . . . . . . . .Migrating from COMMAREAs to channels . . .Migrating LINK commands that passCOMMAREAs . . . . . . . . . . . .Migrating XCTL commands that passCOMMAREAs . . . . . . . . . . . .Migrating pseudoconversational COMMAREAson RETURN commands . . . . . . . . .Migrating START data . . . . . . . . .Migrating programs that use temporary storageto pass data . . . . . . . . . . . . .Migrating dynamically-routed applications . 85286286287Chapter 21. Program control . . . . . 289Program linking . . . . . . .Application program logical levelsLink to another program expectingPassing data to other programs . .COMMAREA . . . . . . .Channels . . . . . . . . .INPUTMSG . . . . . . . .Using mixed addressing modes . .Using LINK to pass data . . . .Using RETURN to pass data . . . . . . .return . . . . . . . . . . . . . . .290290290291291293293295296298Chapter 22. Affinity . . . . . . . . . 303Types of affinity . . . . . . . . . . .Programming techniques and affinity . . . .Programming techniques that avoid affinity . .The COMMAREA . . . . . . . . . .The TCTUA . . . . . . . . . . . .Using ENQ and DEQ commands withENQMODEL resource definitions. . . . .BTS containers . . . . . . . . . . .Programming techniques that create affinities. .Using the common work area . . . . . .Using GETMAIN SHARED storage . . . .Using the LOAD PROGRAM HOLD commandSharing task-lifetime storage . . . . . .Using the WAIT EVENT command . . . .Using ENQ and DEQ commands withoutENQMODEL resource definitions. . . . .Programming techniques that might createaffinities . . . . . . . . . . . . . .Avoiding affinities when using temporarystorage . . . . . . . . . . . . .304305306307308.309311311311312313. 314. 316. 317. 318. 318Contentsv

Using transient data . . . . . . . . . .Avoiding affinities when using the RETRIEVEWAIT and START commands . . . . . . .Avoiding affinities when using the START andCANCEL REQID commands . . . . . . .Avoiding affinities using the DELAY andCANCEL REQID commands . . . . . . .Avoiding affinities using the POST andCANCEL REQID commands . . . . . . .Detecting inter-transaction affinities . . . . . .Inter-transaction affinities caused by applicationgenerators . . . . . . . . . . . . .Duration and scope of inter-transaction affinitiesAffinity transaction groups . . . . . . . .Affinity relations and affinity lifetimes . . . .321322323325327328329329329330Chapter 23. Recovery design. . . . . 337Journaling . . . . . . . .Journal records . . . . . .Journal output synchronizationSyncpointing . . . . . . .337337337339Chapter 24. Dealing with exceptionconditions. . . . . . . . . . . . . 343Default CICS exception handling . . . . . .Handling exception conditions by in-line code .How to use the RESP and RESP2 options . .An example of exception handling in C . .An example of exception handling in COBOLModifying default CICS exception handling . .Using the HANDLE CONDITION command . .RESP and NOHANDLE options . . . . .How CICS keeps track of what to do . . .Using the HANDLE CONDITION ERRORcommand . . . . . . . . . . . . .Using the IGNORE CONDITION command . .Using the HANDLE ABEND command . . .Using PUSH HANDLE and POP HANDLEcommands . . . . . . . . . . . . .Parsing SOAP fault messages . . . . . . .343344344345347347349350350. 351. 352. 353. 353. 354Chapter 25. Abnormal terminationrecovery . . . . . . . . . . . . . 359Creating a program-level abend exit .Retrying operations . . . . . .Trace . . . . . . . . . . .Trace entry points . . . . . .Monitoring application performance.Dump . . . . . . . . . . .360361362363364364Chapter 26. The QUERY SECURITYcommand . . . . . . . . . . . . . 367Using the QUERY SECURITY command . 367Chapter 27. CICS intercommunication369Design considerations . . .Transaction routing . . . .Function shipping . . . . .Distributed program link (DPL).vi.369370370371CICS TS for z/OS 4.2: Application Programming GuideUsing the distributed program link function . .Examples of distributed program link . . . .Programming considerations for distributedprogram link . . . . . . . . . . . .Asynchronous processing . . . . . . . . .Distributed transaction processing (DTP) . . . .Common Programming Interface Communications(CPI Communications) . . . . . . . . . .External CICS interface (EXCI) . . . . . . .372374378383383383384Part 5. Data mappings . . . . . . 387Chapter 28. Mapping and transformingapplication data and XML . . . . . . 389The CICS XML assistant . . . . . . . . . .DFHLS2SC: high-level language to XML schemaconversion . . . . . . . . . . . . .DFHSC2LS: XML schema to high-level languageconversion . . . . . . . . . . . . .Mapping levels for the CICS assistants . . . .High-level language and XML schema mappingVariable arrays of elements . . . . . . . .Support for XML attributes . . . . . . . .Support for xsd:any and xsd:anyType . . .Support for xsd:choice . . . . . . . .Support for xsd:sequence . . . . . . .Support for substitution groups . . . . . .Support for abstract elements and abstract datatypes . . . . . . . . . . . . . . .How to handle variably repeating content inCOBOL . . . . . . . . . . . . . .Support for variable-length values and whitespace . . . . . . . . . . . . . . .Generating mappings from language structures . .Generating mappings from an XML schema . . .Transforming application data to XML . . . . .Transforming XML to application data . . . . .Querying XML from an application . . . . . .Handling XML by data type . . . . . . . .Handling xsd:any data types . . . . . . .Validating XML transformations . . . . . . 59460461462463464Part 6. Business services andbundles . . . . . . . . . . . . . 467Chapter 29. Creating businessservices from CICS applications . . . 469Service Component Architecture (SCA) .SCA composites and wiring . . . .Best practices for creating and deployingcomposites . . . . . . . . . .Creating a channel-based service . . .Creating an XML-based service . . .CICS processing of services. . . . .Troubleshooting SCA problems . . . 469. 470.472473475476478Part 7. File control . . . . . . . . 479

Chapter 30. Understanding file control 481VSAM data sets: KSDS, ESDS, RRDS . . .Accessing files in RLS mode . . . . .Identifying VSAM records . . . . . . .Key . . . . . . . . . . . . .Relative record number (RRN), relative byteaddress (RBA) and extended relative byteaddress (XRBA) . . . . . . . . .Upgrading to extended addressing for ESDS .Locking of VSAM records in recoverable filesRLS Record level locking . . . . . . .Exclusive locks and shared locks . . . .Lock duration . . . . . . . . . .Active and retained states for locks . . .BDAM data sets . . . . . . . . . .Identifying BDAM records . . . . . .CICS shared data tables . . . . . . . .Coupling facility data tables . . . . . .Techniques for sharing data . . . . . .Transaction deadlocks . . . . . . . .VSAM-detected deadlocks (RLS only) . .Rules for avoiding deadlocks . . . . 500501502Chapter 31. File control operations503Using CICS commands to read records . . . . . 503Direct reading (using READ command) . . . 503Sequential reading (browsing) . . . . . . . 506Browsing records from BDAM data sets . . . 510Skip-sequential processing . . . . . . . . 510Using CICS commands to update records . . . . 511The TOKEN option . . . . . . . . . . 512Conditional VSAM file update requests . . . 512Updating records from BDAM data sets . . . 513Using CICS commands to delete records . . . . 513Updating and deleting records in a browse (VSAMRLS only) . . . . . . . . . . . . . . 514Locks for UPDATE . . . . . . . . . . 515Using CICS commands to add records . . . . . 515CICS locking for writing to ESDS. . . . . . 517Adding records to BDAM data sets . . . . . 517Efficient data set operations . . . . . . . . 518Efficient browsing (in non-RLS mode) . . . . 519Part 8. Terminal control . . . . . . 521Chapter 32. Terminal access methodsupport . . . . . . . . . . . . . . 523Chapter 33. Terminal controlcommands . . . . . . . . . . . . 525Send/receive mode . . . .Contention for the terminal.RETURN IMMEDIATE . .Speaking out of turn . . . .Interrupting . . . . . . .Terminal waits . . . . . .525526526526527527Chapter 34. Using data transmissioncommands . . . . . . . . . . . . 529What you get on a RECEIVE . 529Chapter 35. Device control commands 531Chapter 36. Terminal device support533Chapter 37. Finding out about yourterminal . . . . . . . . . . . . . . 537EIB feedback on terminal control operations . 538Chapter 38. Using SNA . . . . . . . 541Chaining input data . . . . . .Chaining output data. . . . . .Handling logical records. . . . .Response protocol . . . . . . .Using function management headersInbound FMH . . . . . . .Outbound FMH . . . . . .Preventing interruptions with bracket. . . . . . . . . . . . . . .protocol.541541542542543543543543Chapter 39. Using sequential terminalsupport . . . . . . . . . . . . . . 545Coding considerations for sequential terminals .Print formatting . . . . . . . . . .GOODNIGHT convention . . . . . . . 545. 546. 546Chapter 40. Using batch datainterchange . . . . . . . . . . . . 547Chapter 41. Terminal control: designfor performance . . . . . . . . . . 551Chapter 42. The 3270 family ofterminals . . . . . . . . . . . . . 553The 3270 buffer. . . . . .The output datastream . . .3270 display fields. . . . .Display characteristics . .3270 field attributes . . . .Extended attributes . . .Orders in the data stream . .The start field order . . .The modify field order . .The set buffer address orderThe set attribute order . .Outbound data stream exampleInput from a 3270 terminal . .Reading from a 3270 terminal .Inbound field format . . . .Input data stream example . .Unformatted mode . . . 67Part 9. Interval control and taskcontrol . . . . . . . . . . . . . . 569Contentsvii

Chapter 43. Interval control . . . . . 571Expiration times.Chapter 44. Task control. 572. . . . . . 575Controlling sequence of access to resources . 576Part 10. Storage protection andtransaction isolation . . . . . . . 579Chapter 45. CICS storage protectionand transaction isolation . . . . . . 581Storage control . . . . . . . . . .Storage protection . . . . . . . . .Storage categories . . . . . . . .Transaction isolation . . . . . . . .Defining the storage key for applications .System-wide storage areas . . . . .Task lifetime storage . . . . . . .Program working storage specifically forand PLT programs. . . . . . . .Passing data by a COMMAREA . . .The GETMAIN command . . . . .Selecting the execution and storage key .User-key applications. . . . . . .CICS-key applications . . . . . .Protection with transaction isolation . . .MVS subspaces . . . . . . . . . . . . . . . . .exit. . . . . . . . t 11. Transient data andtemporary storage . . . . . . . . 595Chapter 46. Transient data controlIntrapartition transient data queues .Extrapartition queues. . . . . .Indirect queues . . . . . . . .Automatic transaction initiation (ATI).597.597598599599Chapter 47. Temporary storagecontrol . . . . . . . . . . . . . . 601Part 12. CICS documents . . . . . 603Chapter 48. Introduction todocuments and document templates . 605Symbols and symbol lists . . . . . . . .Caching and refreshing of document templates .Code page conversion for documents . . . . 606. 609. 610Chapter 49. Setting up documenttemplates . . . . . . . . . . . . . 613Templates in a partitioned data set . . . .Templates in z/OS UNIX System Services filesTemplates in CICS files, temporary storage, ortransient data . . . . . . . . . . .Templates in CICS programs . . . . . .viii. 613. 613. 614. 615CICS TS for z/OS 4.2: Application Programming GuideDFHDHTL - program template prolog andepilog macro . . . . . . . . . .Templates in exit programs . . . . . . .Communication area for templates in exitprograms . . . . . . . . . . . .Using symbols in document templates . . .Embedded template commands . . . . . 616. 617. 617. 619. 620Chapter 50. Programming withdocuments and document templates . 623Creating a document . . . . . . . . .Defining symbol values . . . . . . . .Rules for specifying symbols and symbol listsAdding more data to a document . . . .Replacing data in a document . . . . . .Retrieving, storing and reusing a document .Deleting a document . . . . . . . . .Part 13. Named counter servers.623624626629630631634635Chapter 51. Overview: Named counterservers . . . . . . . . . . . . . . 637The named counter fields . . .Named counter pools. . . . .Named counter options table . 637. 638. 638Chapter 52. Using the named counterEXEC interface. . . . . . . . . . . 641Chapter 53. Using the named counterCALL interface . . . . . . . . . . . 643Application programming considerationsSyntax. . . . . . . . . . . .Checking for result overflow . . .Example of DFHNCTR calls with nullparameters . . . . . . . . .Return codes . . . . . . . . . 643. 644. 651. 651. 652Chapter 54. Named counter recovery657Part 14. Printing and spool files659Chapter 55. CICS support for printing661Formatting for CICS printers . . . .Requests for printed output . . . .CICS 3270 printers . . . . . . .CICS 3270 printer options . . . . .PRINT option and print control bit .ERASE option . . . . . . . .Line width options: L40, L64, L80, andHONEOM . . . . . . . . .NLEOM option. . . . . . . .FORMFEED . . . . . . . . .PRINTERCOMP option . . . . .Non-3270 CICS printers . . . . . .SCS input . . . . . . . . .661662662663664664.664665666666667667

Chapter 56. Using printers with CICS669Determining the characteristics of a CICS printerUsing CICS printers . . . . . . . . . .Printing with a START command. . . . .Printing with transient data . . . . . .Printing with BMS routing . . . . . . .Using Non-CICS printers . . . . . . . .Formatting for non-CICS printers. . . . .Non-CICS printers: Delivering the data. . .Programming for non-CICS printers . . . .Notifying the print application . . . . .Printing display screens . . . . . . . . .669670671671672673673673674675676Chapter 57. CICS interface to JES . . 679Using the CICS interface to JES .Spool interface restrictions . .Creating output spool files . . .Using the MVS internal readerReading input spool files . . .Identifying spool files . . . .Examples of SPOOL commands .681681682682683684686Part 15. Basic Mapping Support(BMS) . . . . . . . . . . . . . . 689Chapter 58. Basic mapping supportBMS support levels . .A BMS output example .691. 691. 693Attribute value definitions: DFHBMSCA . 719Chapter 61. Using the SEND MAPcommand . . . . . . . . . . . . . 721SEND MAP control options . . . . . . . . 721Merging the symbolic and physical maps . . . . 722Building the output screen . . . . . . . . . 723Positioning the cursor . . . . . . . . . . 726Sending invalid data and other errors . . . . . 727Output disposition options: TERMINAL, SET, andPAGING . . . . . . . . . . . . . . . 727Using SET . . . . . . . . . . . . . 728Chapter 62. Receiving mapped dataAn input-output example . . . . . .The symbolic input map. . . . . .Programming mapped input . . . . .Using the RECEIVE MAP command. . .Getting storage for mapped input . . .Formatted screen input . . . . . . .Modified data . . . . . . . . .Upper case translation . . . . . .Using the attention identifier . . . . .Using the HANDLE AID command . .Finding the cursor. . . . . . . . .Processing the mapped input . . . . .Handling input errors . . . . . . .Sending mapped output after mapped inputMAPFAIL and other exceptional conditionsFormatting other input . . . . . . 743Chapter 63. BMS logical messages745Building logical messages .The SEND PAGE commandRETAIN and RELEASE . .The AUTOPAGE option . .Terminal operator paging: theLogical message recovery . . . . . . . . . . . . . . . . . . . . . . . . .CSPG transaction. . . . . . .Chapter 59. Creating the map . . . . 697Defining map fields: DFHMDF . . . . .Defining the map: DFHMDI . . . . . .Defining the map set: DFHMSD . . . . .Writing BMS macros . . . . . . . . .Assembling the map . . . . . . . . .Physical and symbolic map sets . . . .The SDF II alternative . . . . . . .Grouping maps into map sets . . . . .The Application Data Structure (ADS) . .Using complex fields . . . . . . . . .Composite fields: the GRPNAME option .Repeated fields: the OCCURS option . .Block data . . . . . . . . . . . .Support for non-3270 terminals . . . . .Output considerations for non-3270 devicesDifferences on input . . . . . . . .Special options for non-3270 terminals . .Device-dependent maps . . . . . . . .Device dependent support . . . . . .Finding out about your terminal . . . 10711712714Chapter 60. Sending BMS mappedoutput . . . . . . . . . . . . . . 715Acquiring and defining storage for the maps .BASE and STORAGE options . . . . .Initializing the output map . . . . . . .Moving the variable data to the map . . .Setting the display characteristics. . . . .Changing the attributes . . . . . . .

Calling subpr ograms fr om COBOL pr ograms . . 30 Flow of contr ol between pr ograms and subpr ograms . . 31 Rules for calling subpr ograms . . 33 COBOL2 and COBOL3 translator options . . 36 CICS translator actions for COBOL pr ograms . . 37 Batch compilation for COBOL pr ograms . . 39 Nested COBOL pr ograms . . 41