11.07.2015 Views

Extract Utility User's Guide - Supra - Cincom

Extract Utility User's Guide - Supra - Cincom

Extract Utility User's Guide - Supra - Cincom

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

SQL Access for SUPRA Server PDM ®<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>Publication Number P25-9513-03© 2007, 2009, 2011 <strong>Cincom</strong> Systems, Inc.All Rights ReservedThis document contains unpublished, confidential, and proprietary information of <strong>Cincom</strong>. Nodisclosure or use of any portion of the contents of these materials may be made without theexpress written consent of <strong>Cincom</strong>.See http://www.cincom.com/legal/terms.html for a list of <strong>Cincom</strong> trademarks and othertrademarks that may appear in <strong>Cincom</strong> product documentation.All other trademarks are trademarks or registered trademarks of their respective companies.<strong>Cincom</strong> Systems, Inc.55 Merchant StreetCincinnati, Ohio 45246-3732USAPHONE: (513) 612-2300FAX: (513) 612-2000WORLD WIDE WEB: http://www.cincom.comAttention:Some <strong>Cincom</strong> products, programs, or services referred to in this publication may not beavailable in all countries in which <strong>Cincom</strong> does business. Additionally, some <strong>Cincom</strong> products,programs, or services may not be available for all operating systems or all product releases.Contact your <strong>Cincom</strong> representative to be certain the items are available to you.


Release information for this manualSQL Access for SUPRA Server PDM <strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03, isdated September 1, 2011. This document supports Release 2.0 of SQL Accessfor SUPRA Server PDM.<strong>Cincom</strong> Technical Support for SQL Access for SUPRA Server PDMAll customers Web: http://supportweb.cincom.comUSA customers Phone: 1-800-727-3525Fax: (513) 612-2000Attn: SQL Access for SUPRA Server PDMSupportMail: <strong>Cincom</strong> Systems, Inc.Attn: SQL Access for SUPRA Server PDMSupport55 Merchant StreetCincinnati, OH 45246-3732USAOutside of USA All: Visit the support links athttp://www.cincom.com to find contactinformation for your nearest CustomerService Center.


5. Coding the <strong>Extract</strong> function ....................................................... 32Overview .................................................................................................. 32Coding the UCL for the <strong>Extract</strong> function ............................................................ 33Coding the XML for the Layout Control file ......................................................... 48<strong>Extract</strong> examples ........................................................................................ 59Example 1 ........................................................................................... 60Example 2 ........................................................................................... 62Example 3 ........................................................................................... 66Example 4 ........................................................................................... 70Index ....................................................................................... 75<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 5Contents


1. Installing the <strong>Extract</strong> utilityThe <strong>Extract</strong> utility is available on OpenVMS and MVS. This chapter contains theinstallation and tailoring instructions for this utility.MVS installation and tailoringDuring the CID Adapter Server installation, the files necessary for the <strong>Extract</strong><strong>Utility</strong> were FTP’d to the same PDS as the Adapter Server files.The EXTALLOC member should be run first to create the linklib and maclib forthe <strong>Extract</strong> <strong>Utility</strong>. Add the Jobcard as you did when installing the CID AdapterServer. Then the EXTRECV member can be run to receive the linklib and maclibfiles that are in XMIT format.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 6Chapter: 1. Installing the <strong>Extract</strong> utilitySection: MVS installation and tailoring


OpenVMS installation and tailoringDuring the CID Adapter Server installation, the CSUNEXTR.ZIP file was FTP’d tothe same directory as the Adapter Server zip file. This zip file contains theexecutable for the <strong>Extract</strong> <strong>Utility</strong>.Use the unzip utility to unzip the file. The unzip utility is supplied on thefreeware CD-ROM that comes with OpenVMS from HP. For example:$ UNZIP CSUNEXTR.ZIPYou must define logical names for XTRCTIN and XTRCTOUT. XTRCTIN points tothe xml Layout Control file, and XTRCTOUT points to the comma separatedvalue (CSV) file to be extracted.$ DEFINE XTRCTIN filename.XML$ DEFINE XTRCTOUT filename.OUTThe UCL file is passed in as SYS$INPUT. You can either manually type the UCLcommands terminated by CTRL/Z after starting the program, or you canredirect a UCL file as stdin:$ PIPE RUN CSUNEXTR.EXE < filename.UCLYou may also redirect SYS$OUTPUT and SYS$ERROR to output files:$ PIPE RUN CSUNEXTR.EXE > filename.LOG 2> filename.ERR<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 7Chapter: 1. Installing the <strong>Extract</strong> utilitySection: OpenVMS installation and tailoring


2. Using the <strong>Extract</strong> utilityYou can use the <strong>Extract</strong> utility to retrieve data from a SUPRA PDM database andreformat it into a flat file suitable for input to a data warehouse application,such as <strong>Cincom</strong>BI for SUPRA.<strong>Extract</strong> utility overviewThe <strong>Extract</strong> utility allows you to identify standard SUPRA PDM database filesfrom which you wish to extract data. On z/OS these can be SUPRA native,converted, or Series 80 files. They can be primary or related files, and you cantake advantage of secondary keys. You also specify the layout of the records inthe output flat file. <strong>Extract</strong> also performs data conversions you specify.You supply three input control files:Z/OS ♦ CSIPARM file (z/OS only). Described in the SUPRA Server PDM and DirectoryAdministration <strong>Guide</strong> (OS/390 & VSE), P26-2250.♦ <strong>Utility</strong> Control Language (UCL). Described in more detail in Chapters "4.Coding the control section" on page 28 and "5. Coding the <strong>Extract</strong> function"on page 32.♦Layout Control file. Described in more detail in Chapter "5. Coding the<strong>Extract</strong> function" on page 32. This file conforms to XML syntax rules.The UCL input tells <strong>Extract</strong> which files to extract data from, how to retrieverecords from those files, and how to navigate from file to file to find data forextraction. The Layout Control file describes which fields to extract from thedatabase files and their order in the records of the output flat file. It alsoallows you to subdefine a SUPRA database file’s fields into subfields.Z/OSYou submit the UCL program and Layout Control file by executing theCSUNEXTR load module in z/OS. You can also use the general utility catalogedprocedure TISUTUTL. For more information, refer to the SUPRA Server PDM andDirectory Administration <strong>Guide</strong> (OS/390 & VSE), P26-2250.You define two output files:♦♦Status and progress listing file<strong>Extract</strong>ed output flat fileOverview of UCLTo program the <strong>Extract</strong> utility function, you must use UCL. UCL is a procedurallanguage that uses statements to identify the processing to be performed. TheCONTROL statement initiates the control section, which establishes theprocessing environment for the <strong>Extract</strong> function.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 8Chapter: 2. Using the <strong>Extract</strong> utilitySection: <strong>Extract</strong> utility overview


The FUNCTION statement initiates the <strong>Extract</strong> function. You can code theFUNCTION statement only once in a single UCL program. The following exampleshows how to organize a simple UCL program:CONTROL (BEGIN)supporting control statementsFUNCTION (EXTRACT)supporting function statementsCONTROL (END)Using the hierarchical structure of UCLUCL has a hierarchical structure. After each CONTROL or FUNCTION statement,you code a number of subordinate statements. For example, in the followingUCL program, LIST is subordinate to CONTROL, and FILE is subordinate toFUNCTION. This manual shows the subordinate statements by indenting them.CONTROL (BEGIN)LIST (name)FUNCTION (EXTRACT)FILE (name)CONTROL (END)To code a subordinate statement, you must code all of its superordinatestatements. For example, you must code a FUNCTION statement before youcode a FILE statement. This restriction also applies when subordinatestatements have subordinates. In the following UCL example, the CONTROLstatement has a subordinate statement, LIST, which has a subordinatestatement, HEADER. You must code the LIST statement before you code theHEADER statement.CONTROL (BEGIN)LIST ()HEADER(YES)FUNCTION (EXTRACT)STATISTICS (ALL)FILE (PTMF)QUALIFIER(SERIAL)SELECT(PTMFFELD.EQ.RANVCTRL)FILE (RANV)CONTROL (END)<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 9Chapter: 2. Using the <strong>Extract</strong> utilitySection: <strong>Extract</strong> utility overview


Formatting UCLUCL has a free-form format that allows almost any coding style. Even thoughthis manual lists only one statement per line and indents to showsubordination, you do not need to follow this structure. For example, you cancode the following example this way:COMMAND (argument)STATEMENT (argument)STATEMENT (argument)STATEMENT (argument)Or this way:COMMAND (argument)STATEMENT (argument) STATEMENT (argument) STATEMENT(argument)When you put statements on the same line, you can put any number of spacesbetween them, or you can leave out spaces.You can also insert comments in your UCL program. You can provide anyinformation you wish about your program in these comments. To show thatinformation is a comment, put an asterisk in column 1. You must place yourcomments after CONTROL (BEGIN) and before CONTROL (END) as in thefollowing example:CONTROL (BEGIN)*** THIS UCL PROGRAM EXTRACTS CUSTOMER AND* PURCHASE ORDER INFORMATION.**ENV-DESC (MYDESC)SCHEMA (MYSCHEMA)FUNCTION (EXTRACT)* CUSTOMER FILE *FILE (CUST)* PURCHASE ORDER FILE*FILE (PORD)CONTROL (END)<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 10Chapter: 2. Using the <strong>Extract</strong> utilitySection: <strong>Extract</strong> utility overview


Coding null argumentsDefault values are provided for many statements so that you need not code allstatements. Whenever you code a subordinate statement to specify an option,however, you must also code the subordinate statement's superordinatestatement even if you code it with a null argument. To code a null argument,put open and close parentheses after the statement. You do not need toinclude a space between them. The following is an example of a statementwith a null argument:LIST ()HEADER (YES)To code the HEADER statement, you must first code the LIST statement. If youwere to code the HEADER statement without coding the LIST statement, youwould receive an error message.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 11Chapter: 2. Using the <strong>Extract</strong> utilitySection: <strong>Extract</strong> utility overview


Coding argumentsWhen you code a statement name and an argument, you must enclose theargument in parentheses. You can use spaces or not as you like (but a singleargument with multiple parts must not contain embedded spaces). Forexample, all of the following statement formats are valid:STATEMENT(argument)STATEMENT (argument)STATEMENT ( argument )STATEMENT ()STATEMENT ( )STATEMENT()If the format shows the argument can be a list, it looks like the followingexample:⎛⎧ALL⎫⎞ELEMENT ⎜⎟⎨⎬⎝⎩element-list⎭⎠If you code a list of elements instead of ALL, separate the elements withcommas, as shown in the following example:ELEMENT(ELEMENT1,ELEMENT2,ELEMENT3)You can also separate the items in a list with any number of spaces, as shownin the following examples:ELEMENT (ELEMENT1, ELEMENT2, ELEMENT3)ELEMENT (ELEMENT1, ELEMENT2, ELEMENT3)Do not embed spaces within an item. For example, ELEMENT1 and ELEMENT 1do not mean the same thing.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 12Chapter: 2. Using the <strong>Extract</strong> utilitySection: <strong>Extract</strong> utility overview


Validating programsThe program listing follows the opening message CSUL0101I: COMMENCINGCOMMAND VALIDATION. The listing is an image of your input program.Errors are identified by an error flag (**ERROR**), error pointer (@), and athree-digit number. These three indicators appear immediately after each linein which an error occurs. The following annotated listing identifies errors inlines 18 and 21:Line number Line text Indicator1 CONTROL (BEGIN) Valid Command2 ENV-DESC (MYDESC) Valid Command..17 FUNCTION (EXTRACT) Valid Command18 FILE CUST Invalid Command**ERROR** @001 Inserted Error InformationError NumberError Pointer19 RECORD (ALL) Valid Command20 ELEMENT (ALL) Valid Command21 FILE (ABC#) Invalid Command**ERROR** @015 Inserted Error InformationError NumberError Pointer..44 CONTROL (END) Valid CommandThe error flag appears in the line number column in the left margin. Thepointer identifies the error's exact location in the line. The three-digit numberspecifies the error's cause or condition. Only one error is reported in each line.For example, in line 18, the number 001 indicates the open parenthesis ismissing. The pointer is immediately below the file called CUST where the openparenthesis should be. Since only one error is reported in each line, nothingindicates that the close parenthesis is also missing.If a UCL programming error occurs, validation continues flagging errors to theend of the program. No function processing is done until you correct all errorsand rerun the job.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 13Chapter: 2. Using the <strong>Extract</strong> utilitySection: <strong>Extract</strong> utility overview


Executing utilities with different types of filesYou can execute the <strong>Extract</strong> utility with SUPRA PDM native files. On z/OShowever, you can also execute it with Series 80 or SUPRA converted files.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 14Chapter: 2. Using the <strong>Extract</strong> utilitySection: Executing utilities with different types of files


Running debug and trace for DBA utilitiesDebug and trace facilities are available for the DBA Utilities. On occasion, youmay need debug output to help your technical service center resolve a usage orproduction problem. Use <strong>Utility</strong> Control Language statements to activatedebugging and tracing.Z/OSIn z/OS environments, the debug or trace output goes to the same output fileas the standard progress and status listing output. This file is specified by the//OUTPUT DD statement://OUTPUT DD SYSOUT=*Using the DEBUG functionThe DEBUG function causes the <strong>Extract</strong> utility to print debugging informationduring utility execution. DEBUG produces a substantial amount of output.The DEBUG parameter must be part of the CONTROL section of a UCL program.Code the parameter as follows:⎧ALL⎫⎪DML⎪DEBUG ( ⎨ ⎬)⎪FUNCTION⎪⎪⎩TRACE⎪⎭where:♦♦♦♦ALL returns all types of debugging informationDML returns a listing of Physical View DML CALL parametersFUNCTION returns the activities of all function processingTRACE returns logical calls<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 15Chapter: 2. Using the <strong>Extract</strong> utilitySection: Running debug and trace for DBA utilities


Using the XTRACE functionThe XTRACE function enables tracing in the utilities’ parser. Each modificationof the parsing stack triggers a listing of the stack and other relevantinformation. This information provides a history of the parsing stack includingpushing and popping of tokens according to the grammar rules.This information is meaningful only to <strong>Cincom</strong> engineering and supportpersonnel, so you would be unlikely to use this option except with the help of<strong>Cincom</strong> personnel.Code the XTRACE parameter as follows:⎧ON⎫XTRACE ( ⎨ ⎬)⎩OFF⎭You may code XTRACE anywhere in a UCL program. You may enable the tracefunction for the entire UCL program or trace only a few statements in theprogram.Using extended execution tracingExtended execution tracing is a diagnostic tool that <strong>Cincom</strong> support personnelmay request that you run. It can be useful in debugging internal logic errors.You are unlikely to enable it except on advice from <strong>Cincom</strong> support personnel,who will ask that you send the output to them for analysis.Z/OSExtended execution tracing can be enabled by coding a value in the PARMparameter of the EXEC JCL statement, as follows:CSUNEXTR_T RACECALLS⎧YES⎫= ⎨ ⎬⎩ TRUE ⎭The output generated by this parameter also requires that you add thefollowing statement to your JCL://SYSTERM DD SYSOUT=*OPENVMSExtended tracing is enabled by defining a logical name:$ DEFINECSUNEXTR_TRACECALLS⎧YES⎫⎨ ⎬⎩TRUE⎭<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 16Chapter: 2. Using the <strong>Extract</strong> utilitySection: Running debug and trace for DBA utilities


3. Executing the <strong>Extract</strong> utilityOverviewTo execute the <strong>Extract</strong> utility, you must supply UCL and the Layout Controlfile. You must also define other files and code run-time options. This chapterdiscusses these topics.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 17Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Overview


Defining filesTo execute the <strong>Extract</strong> utility, you must define files for libraries, input, output,work, Directory, and PDM using the following file definitions. You do not needto read further unless you want more details about defining files.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 18Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Defining files


File definitions in z/OSThese files are defined for you in the cataloged procedure TISUTUTL.Type of file Name of file Use of fileLibraries in z/OS STEPLIB In this data set concatenation, you declare thelibraries where the system looks for <strong>Extract</strong>'s loadmodule and the single-task PDM load module.Input INPUT You code the UCL in this data set.XTRCTIN You code the XML for the Layout Control file in thisdata set. This describes the layout of the extractedoutput flat file. It also is the place to definesubfields.DTDLIB You refer to the <strong>Cincom</strong>-supplied DTD file with thisDD name.CSIPARM In this data set and in the SCHEMA and ENV-DESCstatements in the UCL control section, you code theinput to the single-task PDM.Output OUTPUT You define this data set to hold the status andprogress output listing that <strong>Extract</strong> creates.XTRCTOUT <strong>Extract</strong> writes the flat file output data in this file.SYSOUT You define this data set to hold output that theoperating system creates. XML processing errormessages can appear here.SYSTERM If you request extended execution tracing, thatoutput goes in this file.SYSUDUMP You define this data set to hold output from adump, if you request one.Work CSUWORK You define this data set for <strong>Extract</strong> to use as a workfile as it interprets and executes the UCL.Other files Directory You must define these files.PDMYou define one of these for each file that appearson a FILE statement in your UCL. If you are usingthe dynamic file allocation feature of PDM, you mayomit these file definitions.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 19Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Defining files


The following figure illustrates the configuration of the z/OS files needed forthe <strong>Extract</strong> utility:OUTPUTINPUTXTRCTINDTDLIBCSIPARMCSUOUTIL (z/OS)XTRCTOUTSYSOUTSYSTERMSYSUDUMPCSUWORKDirectoryFilesYourPDMFiles<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 20Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Defining files


File definitions in OpenVMSYou must define logical names for XTRCTIN and XTRCTOUT.Type of file Name of file Use of fileInput SYS$INPUT You pass the UCL file here.XTRCTIN You code the XML for the Layout Control file in thisdata set. This describes the layout of the extractedoutput flat file. It also is the place to definesubfields.DTDLIB You may refer to the <strong>Cincom</strong>-supplied DTD file withthis logical name (if defined), or include the fullfilespec (including path) in your XTRCTIN XML files.Output XTRCTOUT <strong>Extract</strong> writes the flat file output data in this file.SYS$OUTPUT Output messages are written here.SYS$ERROR Error messages are written here.Work CSUWORK You define this data set for <strong>Extract</strong> to use as a workfile as it interprets and executes the UCL.Other files PDM You have one of these for each file that appears ona FILE statement in your UCL.On OpenVMS you must define logical names for XTRCTIN and XTRCTOUT.XTRCTIN points to the xml Layout Control file, and XTRCTOUT points to thecomma separated value (CSV) file that will hold the extracted data.$ DEFINE XTRCTIN filename.XML$ DEFINE XTRCTOUT filename.OUTOn OpenVMS the UCL file is passed in as SYS$INPUT. You can either manuallytype the UCL commands terminated by CTRL-Z after starting the program, oryou can redirect a UCL file as stdin:$ PIPE RUN CSUNEXTR.EXE < filename.UCLOn OpenVMS you may also redirect SYS$OUTPUT and SYS$ERROR to output files:$ PIPE RUN CSUNEXTR.EXE > filename.LOG 2> filename.ERR<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 21Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Defining files


The following figure illustrates the configuration of the OpenVMS files neededfor the <strong>Extract</strong> utility:SYS$INPUTXTRCTINDTDLIBCSUNEXTR (OpenVMS)XTRCTOUTSYS$OUTPUTSYS$ERRORCSUWORKYourPDMFiles<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 22Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Defining files


Choosing run-time options in z/OSZ/OSSeveral parameters affect the run-time environment. To set the run-timeenvironment, you must code the size of the address space, the stack, andpossibly the I/O buffers. You must also indicate whether you want to print adump or just messages. Your code would look like the following example.//stepname EXEC CSUNEXTR,PARM='[your run-timeparameters to the operating system]/[your function's run-time parameters]'An example would look like this://FUNCTION EXEC CSUNEXTR,PARM='/STACK=300K,NOSPIE,NODUMP'OPENVMSN/ADefining the amount of storageYou must have sufficient storage available to hold the following:♦ The function's program♦ The size of the stack/heap you code in the STACK parameter in the JCL♦ The single-task PDMZ/OSCode the size of the address space in the REGION parameter of the JOB or EXECstatement in the JCL.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 23Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Choosing run-time options in z/OS


IOBUF=yyyKCoding the run-time interface parametersAfter you set the amount of memory, code the following run-time parametersin any order. The last two interact with each other. To see the results of theirpossible combinations, see “Results of different combinations of SPIE andDUMP” on page 25. Follow the coding recommendations to avoid difficulty.Z/OS This parameter indicates the amount of storage to return to z/OS for I/Obuffers and control blocks after the STACK value is allocated. Since little of thefunction's I/O uses this storage, the 36K default is sufficient.TIP We recommend not coding this parameter.STACK=xxxKThis parameter sets the amount of storage for the run-time stack/heap. The<strong>Extract</strong> needs at least 400K. If you do not code this parameter, the default isthe entire region.You will want to leave room in your region for loading other programs, such asthe PDM or an exit program, so <strong>Cincom</strong> recommends that you always code thisparameter.SPIE/NOSPIEFor further information and recommended values, see “Setting the z/OS STACKparameter” on page 26.This parameter indicates whether the run-time interface should interceptprogram checks by the operating system.The default is SPIE, however, <strong>Cincom</strong> recommends coding NOSPIE (notintercept them).DUMP/NODUMP You can use this parameter to indicate whether you want a dump of theaddress space in z/OS. This parameter determines whether you get a dumpwhen:♦♦The run-time interface intercepts a program check. If you coded NOSPIE,the run-time interface does not catch a program check and the operatingsystem creates a dump.A run-time error occurs. If a run-time error occurs, you do not need adump. The default is DUMP, however, <strong>Cincom</strong> recommends codingNODUMP.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 24Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Choosing run-time options in z/OS


Run-timeoptionsResults of different combinations of SPIE and DUMPAction on abend generated byrun-time system (2506, astack/heap collision)Action on abend generated byoperating system (SOC1, anoperation exception)SPIE, DUMP Run-time system generates abend Run-time system catches abendRun-time system prints messages Run-time system may printmessagesRun-time system returns abendcode (2506)Run-time system prints dumpRun-time system returns abendcode (2531)Run-time system prints dumpSPIE, NODUMP Run-time system generates abend Run-time system catches abendRun-time system prints messages Run-time system may printmessagesRun-time system returns abendcode (2506)Run-time system prints no dumpRun-time system returns abendcode (2531)Run-time system prints no dumpNOSPIE, DUMP Run-time system generates abend Run-time system does not catchabendRun-time system prints messages Operating system performsabend logicNOSPIE, NODUMP(recommended)Run-time system returns abendcode (2506)Run-time system prints dumpRun-time system generates abendRun-time system prints messagesRun-time system returns abendcode (2506)Run-time system prints no dumpOperating system returns abendcode (50C1)Operating system may printdumpRun-time system does not catchabendOperating system performsabend logicOperating system returns abendcode (50C1)Operating system may printdump<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 25Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Choosing run-time options in z/OS


Setting the z/OS STACK parameterWhen you code the STACK parameter, you set aside an area of memory calledthe stack/heap for <strong>Extract</strong> to use. The stack/heap has two areas, theProcedure Call Stack and the Dynamic Memory Heap, as shown in the followingfigure:Stack0(Unused)Heapxxx KAs the figure shows, the stack starts at the beginning of the area. It storessome run-time information and all global variables. In addition, when eachprocedure starts, it allocates an area on the stack to store its local variables,and call and return information.As the procedure calls more nested procedures, the stack grows larger. As thenested procedures return, the stack grows smaller. Thus, the size of the stackdepends on the levels of nesting in the procedure calls, and the number andsize of the procedures' parameters and local variables. As the stack gets larger,it allocates space toward the heap area.The heap is the area that <strong>Extract</strong> dynamically allocates at run-time. Here,<strong>Extract</strong> stores internal context information, that is, variables that are notstored in the stack area. When <strong>Extract</strong> no longer needs the space, it is freed.As an area is freed, it can be reallocated. Thus, this area varies in size. When aprocedure allocates the first heap area, it starts at the end of the space. Whena procedure allocates a new area, it takes the new area from the space closerto the stack. As the following figure shows, when the stack and heap getlarger, the unused space between them gets smaller:Stack0(Unused)Heapxxx K<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 26Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Choosing run-time options in z/OS


Estimating the size of the stack/heapBecause the size of the stack/heap varies, it is difficult to provide reliableestimates or formulas to determine the size. It is best to use the STACK valueof at least 400K. If this number proves to be insufficient, increase it as neededuntil <strong>Extract</strong> runs successfully.You know when the size is too small because you receive an error message andan abend code at run-time. The message states that the stack and heap havecollided; that is, they are out of memory.To estimate how much larger to make the stack, consider the level ofcomplexity in the UCL program. Complex tasks require more space. Forexample, if the files from which you extract data have extraordinarily largelogical records, you may discover you need to increase the STACK value.Because the heap area is allocated dynamically, its size varies more than thestack and is harder to predict. The heap gets larger as the UCL gets morecomplex. The size of the heap depends on the number of control blocks <strong>Extract</strong>creates for internal use.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 27Chapter: 3. Executing the <strong>Extract</strong> utilitySection: Choosing run-time options in z/OS


4. Coding the control sectionOverviewThe <strong>Extract</strong> utility requires UCL. You must begin by coding a control section.The control section defines the processing environment for <strong>Extract</strong> and cancontain the following parts of the environment:♦The names of the database Schema and Environment Description♦ The content and format of the output listingThe sample UCL program below shows the names of the Schema andEnvironment Description.Within the control section, you can code exactly one FUNCTION statement toperform an extract. You begin the function statement with a FUNCTIONcommand. (In this example, the function section has been abbreviated forclarity.) After the control and function sections, you code CONTROL (END).CONTROL (BEGIN)Initiates UCL program.ENV-DESC (MYDESC)Names Environment Description.SCHEMA (MYSCHEMA) Names Schema.FUNCTION (EXTRACT)Invokes the <strong>Extract</strong> function.CONTROL (END)Terminates program.For information on how to code the function section, see "5. Coding the <strong>Extract</strong>function" on page 32.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 28Chapter: 4. Coding the control sectionSection: Overview


Coding the UCL for the control sectionThe following format and format descriptions show how to code a controlsection. You must always code CONTROL and FUNCTION statements. Moststatements have supplied defaults; however, you must supply values for theSCHEMA and ENV-DESC statements.⎧CONTROL ( BEGIN ⎫⎨ ⎬)⎩END⎭ENV-DESC (environment-description-name)SCHEMA (schema-name)⎡⎡ABEND⎤ ⎤⎢DIAGNOSTICS (⎢⎢SIMPLE⎥ ⎥⎢⎥) ⎥⎢⎣⎣⎢EXTENDED⎦⎥⎥⎦⎧BEGIN⎫⎩END⎭CONTROL ( ⎨ ⎬ )DescriptionOptionsConsiderationsRequired. Marks the beginning and end of a utility control program.BEGINEND♦♦♦CONTROL (BEGIN) must be the first statement and CONTROL (END) must bethe last statement in every program.If you code any statements before CONTROL (BEGIN), they cause an error inyour program. If you code any after CONTROL (END), they are ignored.If you do not code an argument for CONTROL, you receive unpredictableresults.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 29Chapter: 4. Coding the control sectionSection: Coding the UCL for the control section


ENV-DESC (environment-description-name)DescriptionFormatConsiderationsRequired. Identifies the Environment Description and requests sign-on to thedatabase.1–8 alphanumeric characters. The first character must be alphabetic.♦♦This statement is required.The Schema and Environment Description combine to define the databaseto the <strong>Extract</strong> utility and the PDM.OPENVMS ♦ This is the PDM server name as defined by the logical names CSI_PDMID orCSI_SYSPDMID.Z/OS ♦ <strong>Extract</strong> operates on your SUPRA database files. You must name your ownSchema and Environment Description. You must also code a DIRECTORYparameter in the CSIPARM file. In the DIRECTORY parameter, name thebootstrap Schema and Environment Description used when the PDMinitializes. Do not code the REALM parameter in the CSIPARM file.Z/OS ♦ Do not code a bootstrap Environment Description with your own Schema orvice-versa.Z/OS ♦ Code all database files with a file open mode of NONE, an access option ofRDONLY, and an OPENX option of PROCESS. For more information, refer tothe SUPRA Server PDM and Directory Administration <strong>Guide</strong> (OS/390 & VSE),P26-2250.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 30Chapter: 4. Coding the control sectionSection: Coding the UCL for the control section


SCHEMA (schema-name)Description Required. Identifies the Schema you want used for <strong>Extract</strong>.Format Z/OS 1–8 alphanumeric characters. The first character must be alphabetic.OPENVMS 6 character dbmod name.Considerations♦♦This statement is required.The Schema and Environment Description combine to describe the databaseto <strong>Extract</strong> and the PDM.Z/OS ♦ <strong>Extract</strong> operates on your SUPRA database files. You must name your ownSchema and Environment Description. You must also code a DIRECTORYparameter in the CSIPARM file. In the DIRECTORY parameter, name thebootstrap Schema and Environment Description used when the PDMinitializes. Do not code the REALM parameter in the CSIPARM file.Z/OS ♦ Do not code a bootstrap Schema with your own Environment Description orvice-versa.⎡ABEND⎤⎢⎥⎢⎥⎣⎢EXTENDED ⎦⎥DIAGNOSTICS ( SIMPLE )DescriptionDefaultOptional. Determines the type of diagnostic report to be provided on abnormaltermination.EXTENDEDOptions ABEND You receive simple and extended diagnostics and a systemdump when necessary.SIMPLEEXTENDEDYou receive simple diagnostics normally of only one line.You receive simple and extended diagnostics.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 31Chapter: 4. Coding the control sectionSection: Coding the UCL for the control section


5. Coding the <strong>Extract</strong> functionOverviewUse the <strong>Extract</strong> function when you want to extract records from one or moredatabase files to a flat output file.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 32Chapter: 5. Coding the <strong>Extract</strong> functionSection: Overview


Coding the UCL for the <strong>Extract</strong> functionAfter you code the control section as shown in "4. Coding the control section"on page 28, you can code the <strong>Extract</strong> function as shown in the followingformat. For UCL examples, see "<strong>Extract</strong> examples" on page 59.FUNCTION (EXTRACT)FILE ( file-name ) ...⎡DIRECT⎤⎢⎥⎢SERIALQUALIFIER (⎥ )⎢SEQUENTIAL⎥⎢⎥⎣INDEX⎦[ LINKPATH ( access-linkpath)]⎡ ⎧D'dec-string'⎫ ⎤⎢ ⎪⎪ ⎥⎢KEY ( ⎨X'hex-string'⎬)⎥⎢ ⎪⎪ ⎥⎣ ⎩C'char-string'⎭ ⎦[ RRN( record-rrn)]⎡⎡low-rrn⎤ ⎤⎢⎢⎥ ⎥⎢RRN-RANGE (⎢--high-rrn⎥) ⎥⎢⎥⎣⎢⎣low-rrn--high-rrn⎥⎦⎦<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 33Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


FUNCTION (EXTRACT)DescriptionFILE (file-name) …DescriptionFormat⎡⎤⎢⎥⎢⎡⎡b⎤ ⎤⎥⎢⎢MAXIMUM ( ⎢⎥ ) ⎥⎥⎢⎣⎣record-count⎦⎦⎥⎢⎥⎢⎥⎢[SECONDARY -KEY ( secondary-key)]⎥⎢⎥⎢⎥⎢[CRITERIA ( element1[element2 ,...,⎥⎢elementn] . operator.datavalue1 ⎥⎢⎥⎢[. datavalue2 ... datavaluen]END.)⎥⎢⎥⎢⎥⎢[SELECT ( f1element1[,f1element2 ,..., ⎥⎢⎥⎢f1elementn] . operator.⎥⎢f2element1[,f2element2 ,..., ⎥⎢⎥⎢f2elementn]END.)⎥⎢⎥⎢⎣⎥⎦⎡⎧ALL⎫⎤⎢RECORD ( ⎨⎬ )⎥⎢⎩record-code⎭⎥⎢⎥ ...⎢⎥⎢⎧ALL⎫ ⎥⎢ELEMENT ( ⎨⎬ ) ⎥⎣⎩element-list⎭⎦Required. Invokes the <strong>Extract</strong> function.Required. Indicates the name of a file from which you want records extracted.4 alphanumeric characters. The first character must be alphabetic.Consideration You cannot code multiple file names (that is, FILE (file-name-list)) with oneFILE statement. Instead you must code multiple FILE statements to requestextraction of data from multiple files.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 34Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


⎡DIRECT⎤⎢SERIAL⎥QUALIFIER ( ⎢⎥ )⎢SEQUENTIAL⎥⎢⎥⎣INDEX⎦DescriptionDefaultOptional. Indicates the access mode you want <strong>Extract</strong> to use to access thecurrent file.SERIALOptions DIRECT Reads a specific record either by RRN or by key. For moreinformation, see considerations below.ConsiderationsSERIALAccesses the file serially without regard to chain sequence.SEQUENTIAL Accesses the related file sequentially by a specific linkpath.INDEX♦♦Accesses the file using a specific Secondary Key.Do not code QUALIFIER (SEQUENTIAL) for a primary file.As shown in the format, QUALIFIER has four options. Depending on the typeof file (primary (P) or related (R)) and the access mode you code, thefollowing statements are either required (r), optional (o), or invalid (i):QUALIFIER: DIRECT SERIAL SEQUENTIAL INDEXFile Type: P R P R P R P RRRN i r i i i i i iLINKPATH i i i i i r i iKEY r i i i i o o oRRN-RANGE i i o o i i i iMAXIMUM i i o o i o o oSECONDARY-KEY i i i i i i r r♦♦♦If you code the QUALIFIER statement, you must put it before the RECORDstatements.If you code a QUALIFIER(DIRECT) statement subordinate to the first FILEstatement in your UCL, the function extracts only one record from thespecified file. For subsequent FILE statements in your UCL, however, asubordinate QUALIFIER(DIRECT) statement extracts one record for each keyvalue supplied from an earlier file. Therefore, multiple records may beextracted if multiple key values are passed by the program.If you code QUALIFIER (SEQUENTIAL) and the LINKPATH and KEYstatements, the function extracts only the chain containing the key valueyou coded.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 35Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


♦If you code QUALIFIER (SEQUENTIAL) and the LINKPATH statement, but notthe KEY statement, the function extracts all the chains associated with thelinkpath.LINKPATH (access-linkpath)RestrictionsDescriptionFormatConsiderationsYou can use this statement only after a QUALIFIER (SEQUENTIAL) statement fora related file. In all other cases, it is invalid.Optional. Determines the access linkpath for a related file you are readingsequentially.ffffLKxx, where ffff is a primary file linked to a related file through linkpathLKxx♦♦♦♦The access linkpath may exist in either the base or the redefined portion ofa coded record.If you code RECORD (ALL) with an access linkpath, that linkpath must existin all records.You cannot code LINKPATH (linkpath-list).If you code the LINKPATH statement, you must put it before any RECORDstatement.OPENVMS ♦ This is not a valid combination in OpenVMS if it is the first File in the UCL.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 36Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


⎧D'dec-string'⎫⎪⎪KEY ( ⎨X'hex-string'⎬ )⎪C'' ⎪⎩ char-string ⎭RestrictionsDescriptionYou can use this statement only after a QUALIFIER statement. Specifically, thefollowing restrictions apply:♦♦♦♦After QUALIFIER(DIRECT). KEY is required for primary files but invalid forrelated files. The <strong>Extract</strong> function generates a KEY statement if you do notcode one and you code a SELECT statement subordinate to the precedingFILE statement.After QUALIFIER(SERIAL). KEY is invalid.After QUALIFIER(SEQUENTIAL). KEY is invalid for primary files but optionalfor related files.After QUALIFIER(INDEX). KEY is optional.Indicates the key you want the function to use for direct access to a primaryfile, sequential access to a related file, or indexed access to either type of file.Format D'dec-string' A decimal string of 1 to 256 characters preceded by a D andsurrounded by single quotes. This string is a 1–256 byte key thatmust match the actual key length.X'hex-string'C'char-string'A hexadecimal string of 2 to 512 characters preceded by an Xand surrounded by single quotes. This string is a 1–256 bytekey. The length must be an even number and twice the actualkey length.A character string of 1 to 256 characters preceded by a C andsurrounded by single quotes. This string is a 1–256 byte key andmust match the actual key length.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 37Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


Considerations♦♦♦♦♦If a character string contains one or more quotes, you must code twoquotes for each actual quote. For example, you must code ABCD'EF'G asC'ABCD"EF"G'.Any key you code must be the correct length for the file.If you code the KEY statement, you must put it before any RECORDstatement.A KEY statement is automatically generated when the SELECT statementcontains at least one control key field. This acts as a place holder for thekey value passed from the previous FILE statement.if you do not code a KEY statement, the <strong>Extract</strong> function generates one ifyou coded a SELECT statement subordinate to the preceding FILEstatement. This acts as a placeholder for the key value passed from thepreceding FILE statement.RRN (record-rrn)RestrictionsDescriptionFormatConsiderationsYou can use this statement only after a QUALIFIER (DIRECT) statement for arelated file. In all other cases, it is invalid.Optional. Selects a relative record number in a non-KSDS related file that youwant the function to read directly.1–9 decimal characters♦♦♦You must code a record-rrn if you are extracting a related file and youcoded QUALIFIER (DIRECT).You must code a record-rrn that is within the boundaries of the file.If you code the RRN statement, you must put it before any RECORDstatement.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 38Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


⎡low-rrn⎤⎢⎥RRN - RANGE (⎢- high-rrn⎥)⎣⎢low-rrn - high-rrn⎦⎥RestrictionsDescriptionFormat♦♦Do not use with key-sequenced data sets.You can use this statement only after a QUALIFIER (SERIAL) statement for arelated file. In all other cases, it is invalid.Optional. Indicates a range of relative record numbers you want retrieved. Thefunction does not retrieve records outside the range you code.1–9 decimal characters for each rrnOptions low-rrn Retrieves records having RRNs from low-rrn through the endof the file.Considerations-high-rrnlow-rrn–high-rrn♦♦♦Retrieves records having RRNs from the beginning of the fileto high-rrn.Retrieves records having RRNs from low-rrn through high-rrn.If the low-rrn you code is not a valid data record, the function accesses thefirst data record with a higher RRN than the one you coded.If you are extracting a related file and the RRN you code is in the middle ofa chain, the function does not extract prior records on that chain.If you code the RRN-RANGE statement, you must put it before any RECORDstatement.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 39Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


MAXIMUM ( ⎡b/⎤⎢⎥⎣record-count )⎦RestrictionDescriptionFormatYou can use this statement only after a QUALIFIER statement. Specifically, thefollowing restrictions apply:♦♦♦♦Default b/After QUALIFIER(DIRECT). MAXIMUM is optional if doing a select where akey value was passed; otherwise, it is invalid.After QUALIFIER(SERIAL). MAXIMUM is optional.After QUALIFIER(SEQUENTIAL). MAXIMUM is invalid for primary files butoptional for related files.After QUALIFIER(INDEX). MAXIMUM is optional.Determines the maximum number of records that are written to the XTRCTOUTfile.1–9 decimal charactersOptions b/ <strong>Extract</strong> all recordsConsiderationsrecord-count♦♦♦♦Maximum number of valid data records (those that pass allother selection criteria) to extractIf you code MAXIMUM (b/), the function extracts all records. This isequivalent to omitting the MAXIMUM statement.If you code the MAXIMUM statement, you must put it before any RECORDstatement.The function includes in this count only valid data records that pass allother selection criteria. For example, if you specify an argument (via theCRITERIA statement), all data records must first pass the argumentvalidation before the function adds them to the maximum record counter.If you code a value that exceeds the total number of records in this file,the function stops at the end of the file.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 40Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


SECONDARY-KEY(secondary-key)RestrictionsDescriptionFormatConsiderations♦♦You can use this statement only after a QUALIFIER statement.After QUALIFIER(INDEX), SECONDARY-KEY is required. After all other valuesof QUALIFIER, SECONDARY-KEY is invalid.Determines the secondary key to use during indexed access to a file.ffffSKxx, where ffff is a primary or related file for which the named secondarykey has been defined and populated.♦♦If you code the SECONDARY-KEY statement, you must put it before anyRECORD statement.It is subordinate to the Qualifier statementCRITERIA (element1[,element2,...,elementn].operator.datavalue1[.datavalue2...datavaluen]END.)RestrictionsDescriptionConsiderations♦You can use this statement only after a QUALIFIER statement.Optional. Establishes an argument string to select the records you wantextracted.♦♦You can code any number of spaces before the element list, after END.,and on either side of the separating commas.If you do not code END., the function considers the rest of the program asdata. This is often an input coding error.Format for elementOne or more alphanumeric 8-character element names. You must make thefirst character in each name alphabetic and separate the names with commas.The rules for coding values of the KEY parameter (see above) apply to thisvalue.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 41Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


Considerations for element♦♦♦If you code an element name in the argument, you must also code it in theELEMENT statement unless you code ELEMENT (ALL).You cannot code a null element list in the CRITERIA argument.If you name an element in the CRITERIA argument, it must be in all therecords you want extracted from the file.Options for operatorValid operators are as follows:.EQ.Equal.NE.Not equal.GT.Greater than.LT.Less than.GE.Greater than or equal to.LE.Less than or equal toConsideration for operatorYou must code a period before and after the Boolean operator. Only oneoperator may be specified.Format for datavalueAny valid EBCDIC value on z/OS, or ASCII value on OpenVMS. You can code theactual hexadecimal representation of any value of any data type in your UCLstatement. You must put a period before data value and “END.” after it.Considerations for datavalue♦♦♦You must make data values the same length as the element lengths in theelement list.Do not put spaces or any other separator between data values.Your data may cross input line boundaries if necessary. You must stop incolumn 72 and continue on the next line in column 1. (If you put data incolumns 73–80, it is lost.)<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 42Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


SELECT (f1element1[,f1element2,...,f1elementn].operator.f2element1[,f2element2,...,f2elementn]END.)RestrictionDescriptionConsiderationsYou can use this statement with an element list only if you also code theFILE(f2) statement immediately following the UCL statements for f1..Optional. Establishes an argument string for joining records from two files inthe extracted output. The names f1elementn are names of Physical Fieldsoccurring in the file identified by the FILE statement to which this SELECTstatement is subordinate. The names f2elementn are names of Physical Fieldsoccurring in the subsequent FILE statement.♦♦You can code any number of spaces before the element list, after END.,and on either side of the separating commas.If you do not code END., the function considers the rest of the program asdata. This is often an input coding error.Format for elementOne or more alphanumeric 8-character element names. You must make thefirst character in each name alphabetic and separate the names with commas.The rules for coding values of the KEY parameter (see above) apply to thisvalue.Considerations for element♦♦If you code an element name in the SELECT argument, you must also codeit in the ELEMENT statement, unless you do not code the RECORD orELEMENT statements but use the default for RECORD (ALL) and ELEMENT(ALL).If you name an element in the SELECT argument, it must be in all therecords you want extracted from the file.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 43Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


Options for operatorValid operators are as follows:.EQ.Equal.NE.Not equal.GT.Greater than.LT.Less than.GE.Greater than or equal to.LE.Less than or equal toConsideration for operatorYou must code a period before and after the Boolean operator. Only oneoperator may be specified.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 44Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


⎧RECORD ( ALL ⎫⎨⎬)⎩record-code⎭DescriptionFormatDefaultOptional. Indicates the record codes of records from which you want dataextracted.2 alphanumeric charactersALLOptions ALL <strong>Extract</strong>s from all recordsConsiderationsrecord-code♦♦♦♦♦♦♦<strong>Extract</strong>s from the specified record code onlyIf you code this statement, you must code the ELEMENT statement.Do not code RECORD (ALL) if you intend to code the element list withredefined element names for a coded related file.For primary files, always code RECORD (ALL) or omit the statement.The record code you indicate must be defined for the file to be extracted.If you code RECORD (ALL), you cannot code RECORD (record-code).If you code RECORD (record-code), you cannot code RECORD (ALL).If you code RECORD (), the function extracts no records.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 45Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


⎧ELEMENT ( ALL ⎫⎨⎬)⎩element-list⎭RestrictionDescriptionRequired if you code the RECORD statement; optional otherwise.Indicates the data elements you want extracted.Format Element names must be 8 alphanumeric characters. The first character must bealphabetic. Separate names with commas.Default ALLOptions ALL <strong>Extract</strong>s all data elementsConsiderations♦element-list♦♦♦<strong>Extract</strong>s the specified data elements onlyALL specifies that all elements in the record are used and, therefore, mustnot be used with RECORD(nn) where nn is a record code.ALL cannot be used in conjunction with an element-list (for the reasonstated in the previous consideration). For example, the following is notallowed:RECORD (01)ELEMENT (ELEMENT1,ELEMENT2)RECORD (02)ELEMENT (ALL)ALL means all the elements in the record, not all elements in the recordcode. Therefore, to use all elements in the record code, you must code anelement-list specifying all those elements.The key element for a related file is the referback associated with theaccess linkpath you coded.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 46Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


♦Additional constraints apply in the following situations:In this context:FILE(primary-file)FILE(related-file)no access-linkpathFILE(related-file)FILE(coded-file)no access-linkpathFILE(coded-file)LINKPATH(ffffLKxx)RECORD(record-code)FILE(coded-file)RECORD(ALL)ELEMENT (element-list)must conform to these rules:Do not include the root element in element-list.Do not include linkpaths in element-list.Do not include linkpaths in element-list.First entry in element-list must be ffffCODE where ffff is thecoded file name. Do not include linkpaths in element-list.First entry in element-list must be ffffCODE where ffff is thecoded file name. Do not include linkpaths in element-list.Names appearing in the element list must exist in the baserecord code or the redefined portion for this record code.Names appearing in the element list must exist in the baserecord code. Do not include redefined element names in theelement list.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 47Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the UCL for the <strong>Extract</strong> function


Coding the XML for the Layout Control fileThe Layout Control file describes to <strong>Extract</strong> the records in the extracted outputflat file. You must always supply a Layout Control file. You can extract allfields from a given database file or only some fields. The fields can be in thesame layout as in the database file or a different order. You can also specifyextraction of subfields even if they are not defined in the SUPRA Directory.The Layout Control file is a plain text file with characters encoded using ASCIIon OpenVMS and EBCDIC on z/OS.The Layout Control file conforms to the standard rules of XML. The generalstructure of the file is as follows:<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 48Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


This section explains the detailed rules for the XML tags <strong>Extract</strong> recognizes. Asper international standard, capitalization of tags is significant. For example,you must code File, not file or FILE. Also, all values of attributes withinelements must be enclosed in quotation marks.OPENVMSThe first two lines of the above syntax are correct for z/OS. For OpenVMS,however, you would replace the first two lines with the following:<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 49Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


OPENVMS Z/OS RestrictionDescriptionFormatThis must be the first XML element of the Layout Control file.Required. The XML declaration, which specifies the XML version being used,and the encoding declaration, which specifies the character encoding.You must code it exactly as shown.OPENVMS Z/OS DescriptionFormatDescriptionRequired. This XML element refers to the <strong>Cincom</strong>-supplied Document TypeDefinition (DTD).OPENVMS You may optionally add a path to find the DTD file as in“disk:[dir.subdir]extract.dtd”. Or you may define a logical name DTDLIB topoint to the DTD file and then use that definition as in “DTDLIB”. Otherwise,code as shown.Z/OS Code as shown. The SYSTEM attribute refers to the DTDLIB DD JCLstatement that you must supply or that <strong>Cincom</strong> supplies in the distributed JCLprocedure. <strong>Cincom</strong> supplies the DTD in the distributed product MACLIB.Required. This XML element must immediately follow the tag.The closing tag must be the last XML element of the LayoutControl file. All other XML elements of the file must appear between theseelements.RestrictionsDescriptionFormatDefaultIf you code an Options tag, it must immediately follow the tag.Required. Defines the character <strong>Extract</strong> places between fields in the extractedoutput flat file.A single character, (comma)<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 50Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


RestrictionsDescriptionFormatConsiderationsYou must ensure that a file whose name appears as a Name attribute within a tag also appears on a FILE statement in the associated UCL input. Agiven file name may appear no more than once as an attribute of a tag.At least one tag must appear in the Layout Control file. This file namemust be defined in the database Schema and environment descriptor specifiedin the UCL.Required. Identifies the name of a file from which <strong>Extract</strong> extracts data.A 4-character string♦♦You must specify at least one field to be extracted for each file specified.Since you may supply a given file name in no more than one tag, allfields extracted from that file are contiguous in the extracted outputrecords.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 51Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


RestrictionsDescriptionAttributesYou must ensure that a field whose name appears as a Name attribute within a tag also is defined as a Physical Field entity on your SUPRA Directorywithin the File identified in the tag surrounding this tag. TheName attribute is required but the other attributes are optional.Required. Describes a parent field you want to appear in the extracted outputflat file (if no subfields are specified). <strong>Extract</strong> places data in the extractedoutput flat file field by field as described by the tags. The order inwhich you code tags determines the order in which the associated dataappears in each extracted output record.Name=”field-name” Required. Identifies the Physical Field entity from which<strong>Extract</strong> generates the extracted output field. Supply the entity name of aPhysical Field that resides in the file whose name appears as a Name attributein the surrounding tag.Type=”field-type” Optional. Not used if Subfield tags are coded. Required ifno Subfield tags are coded. Identifies the data type of the extracted field.Valid values are:C Character text stringB Binary integer numbersF Floating point numbersP Packed decimal stringZ Zoned decimal numericD Zoned leading decimal numericOPENVMS L Leading separate numericOPENVMS N Numeric trailing overpunchOPENVMS T Trailing separate numericOPENVMS O Numeric leading overpunch<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 52Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


Format=”field-format-mask” Optional. Specifies an editing mask forformatting extracted numeric fields. If you omit this attribute, <strong>Extract</strong> copiesthe data unchanged from the database file to the extracted output flat file. Ifyou specify this attribute, you must ensure that the incoming data to <strong>Extract</strong> isnumeric. This attribute specifies only the following conditions: sign, number ofinteger digits, decimal position, number of decimal places. Specify the maskusing the following characters:- Indicates that the data type is signed and you want an explicit leadingminus included in the extracted output.. Indicates you want a decimal point inserted within the extracted output.# Indicates a digit. If you code a decimal point in the mask, you must code asingle # to the left of the decimal point in the mask. This allows for anynumber of digits to the left of the decimal point in the extracted output.Multiple # characters to the left of a decimal point have the same effect asa single # character. On the other hand, the number of # symbols youprovide to the right of the decimal point in the mask tells <strong>Extract</strong> the exactnumber of digits to generate to the right of the decimal point in theextracted output.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 53Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


Consider the examples in the following table:Input data Format mask Output file value43715 # 4371543715 -# 4371543715 -#.## 437.1543715 -#.####### 0.4371500-43715 # 43715-43715 -# -43715-43715 -#.## -437.15-43715 -#.####### -0.4371500Length=”field-length” Optional. Not used if Subfield tags are coded. Requiredif no Subfield tags are coded. Identifies the data length of the extracted field.Valid values are integers in the range 1 to the length of the Physical Field. Youmust supply the length as a two-digit number, with a leading zero for lengthvalues less than 10.If you omit the Length attribute, <strong>Extract</strong> uses the length of the physical fieldentity found on the directory.Null=”field-null-value” Optional. Not used if Subfield tags are coded.Identifies the null value for the extracted field. If the extracted field matchesthis value , then nothing is written in the extracted output flat file, resulting intwo consecutive delimiters (see Considerations below).<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 54Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


Considerations♦♦♦♦♦Each XML tag must appear within a pair of XML tags and, which directs <strong>Extract</strong> to extract the field data from the identifieddatabase file.Specify the Physical Fields you wish to extract from a given file in whateverorder you want them to appear in the output file, then supply theappropriate (and perhaps ) elements between the and tags.If you do not wish to extract subfields, the XML elements may beterminated with />. If you wish to extract subfields of a given field, theXML elements for the subfields must appear between the and tags for such a field. See the description of the tag,which follows. When you code tags, you must omit the Type,Length, Format, and Null attributes from the controlling tag.When you code a tag, the parent field is not extracted to theoutput flat file, only the subfield is extracted.If you have defined a NULL value in the PDM Directory, it will be usedunless you supersede that value with the NULL= attribute above. The rulesfor a PDM defined NULL are the same as one specified in the XML above.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 55Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


RestrictionsDescriptionAttributesIf you code a element, it must appear after a tag but beforethe matching tag. You cannot have a without identifyingthe of which it is a subfield.Optional. Describes a field in the extracted output flat file. <strong>Extract</strong> placesdata in the extracted output flat file field by field as described by the tags. The order in which you code tags determines the order in whichthe associated data appears in each extracted output record. With the tag, however, you direct <strong>Extract</strong> to place only part of the data ofthe Physical Field in the extracted output.Name=”subfield-name” Required. Identifies the subfield. This can be anyname.Type=”subfield-type” Required. Identifies the data type of the extractedsubfield. Valid values are:C Character text stringB Binary integer numbersF Floating point numbersP Packed decimal stringZ Zoned decimal numericD Zoned leading decimal numericOPENVMS L Leading separate numericOPENVMS N Numeric trailing overpunchOPENVMS T Trailing separate numericOPENVMS O Numeric leading overpunchLength=”subfield-length” Required. Identifies the data length of theextracted subfield. Valid values are integers in the range 1 to the length of thefield of which this is a subfield. You must supply the length as a two-digitnumber (with a leading zero for length values less than 10, e.g. 06).<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 56Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


Displacement=”subfield-displacement” Conditional. Defines the offsetwithin the field at which the subfield begins. You may omit this attribute ifthe subfield starts at the beginning of the parent field. Otherwise, you mustcode a Displacement. Valid values are integers in the range 1 to the length ofthe field of which this is a subfield. You must supply the displacement as atwo-digit number (with a leading zero for length values less than 10, e.g. 06).Null=”subfield-null-value” Optional. Identifies the null value for theextracted subfield. If you specify the Null attribute, <strong>Extract</strong> compares thesubfield-null-value against the data value of the extracted field. If theymatch, then nothing is written in the extracted output flat file, resulting in twoconsecutive delimiters.Format=”subfield-format-mask” Optional. Specifies an editing mask forformatting extracted numeric subfields. If you omit this attribute, <strong>Extract</strong>copies the data unchanged from the database file to the extracted output flatfile. If you specify this attribute, you must ensure that the data incoming to<strong>Extract</strong> is numeric. This attribute specifies only the following conditions: sign,number of integer digits, decimal position, and number of decimal places.Specify the mask using the following characters:- Indicates the data type is signed and you want an explicit leading minusincluded in the extracted output.. Indicates you want a decimal point inserted within the extracted output.# Indicates a digit. If you code a decimal point in the mask, you must code asingle # to the left of the decimal point in the mask. This allows for anynumber of digits to the left of the decimal point in the extracted output.On the other hand, the number of # symbols you provide to the right of thedecimal point in the mask tells <strong>Extract</strong> the exact number of digits togenerate to the right of the decimal point in the extracted output.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 57Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


ConsiderationsConsider the examples in the following table:<strong>Extract</strong>ed data Format mask Output file value43715 # 4371543715 -# 4371543715 -#.## 437.1543715 -#.####### 0.4371500-43715 # 43715-43715 -# -43715-43715 -#.## -437.15-43715 -#.####### -0.4371500♦♦♦♦♦♦♦Subfield names are not expected to correspond to any entities defined onthe SUPRA Directory. The choice of name is up to the user and is notchecked against any directory physical field names.All of the data from a field may be included in the output by specifyingsubfields whose total length is equal to the length of the parent field. Thiswould be desirable when the data types of the subfields differ from eachother and you need to have the FORMAT parameter for at least one of thesubfields.Each XML tag must appear within a pair of XML tags and, which directs <strong>Extract</strong> to extract the subfield data from theidentified field.When you code tags, you must omit the Type, Length, Format,and Null attributes from the controlling tag. See the description ofthe tag above.If you wish to extract only certain parts of a Physical Field from a givenFile, or if you wish to extract parts of a Physical Field in an order otherthan the one in which they appear in the File, then supply the appropriate elements between the and tags.The sum of the Length attributes within the elements for agiven must not exceed the data length of that Physical Field in thedatabase.You must not nest tags within other tags. In other words, you cannot request extractionof subfields of subfields.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 58Chapter: 5. Coding the <strong>Extract</strong> functionSection: Coding the XML for the Layout Control file


<strong>Extract</strong> examplesThe examples in this section process the standard <strong>Cincom</strong>-supplied Burrysdatabase. This database is very similar but not identical between z/OS andOpenVMS. Certain file relationships on linkpaths are different between theplatforms, and the file contents are different. Nevertheless, there is a directcorrespondence of file names between the platforms. You could run theseexamples on either platform with slight modifications.The correspondence of the file names appearing in these examples is describedin the following table:z/OS file nameE$BRE$MBE$CUOpenVMS file nameBRANBRMACUST<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 59Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


Example 1This example navigates to the CUST primary file using a supplied key value.The extracted output flat file contains data values selected from two fields inthe file. This example generates a single output record.The input UCL is:CONTROL(BEGIN)ENV-DESC(BS23PDM)SCHEMA(BURRYS)FUNCTION(EXTRACT)FILE(CUST)QUALIFIER(DIRECT)KEY(C'D99883')CONTROL(END)The input XML is:<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 60Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The output report listing is:---TTTTTTTT IIIIII SSSSSSS / XX XX AAATTTTTTTT IIIIII SSSSSSSSS // XX XX AAAAATT II SS SS // XX XX AA AATT II SS // XX XX AA AATT II SSSSSSSS // XXX AA AATT II SSSSSSSS // XXX AAAAAAAAATT II SS // XX XX AAAAAAAAATT II SS SS // XX XX AA AATT IIIIII SSSSSSSSS // XX XX AA AATT IIIIII SSSSSSS / XX XX AA AA-0 DDDDDDDD BBBBBBBB AAADDDDDDDDD BBBBBBBBB AAAAADD DD BB BB AA AADD DD BB BB AA AADD DD BBBBBBBB AA AADD DD BBBBBBBB AAAAAAAAADD DD BB BB AAAAAAAAADD DD BB BB AA AADDDDDDDDD BBBBBBBBB AA AADDDDDDDD BBBBBBBB AA AA-0 UU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSUU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSSSUU UU TT II LL II TT II EE SS SSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EE SS SSUUUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSSSSUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSS+CSUL0101I : COMMENCING COMMAND VALIDATION.+ 1 CONTROL(BEGIN)+ 2 ENV-DESC(BS23PDM)+ 3 SCHEMA(BURRYS)+ 4 FUNCTION(EXTRACT)+ 5 FILE(CUST)+ 6 QUALIFIER(DIRECT)+ 7 KEY(C'D99883')+ 8 CONTROL(END)+CONTENTS OF SOURCE LINES OUTSIDE 1...72 MARGINS IGNORED.+ 0 SYNTAX ERRORS DETECTED.+ 8 COMMAND LINES READ.+ 1 CONTROL SECTIONS ANALYZED.+ 1 FUNCTION COMMANDS ANALYZED.0CSUL0102I : COMMENCING COMMAND EXECUTION.+ CSUL0301I : COMMENCING CONTROL SECTION USING ENVIRONMENT DESCRIPTION BS23PDM AND SCHEMA BURRYS .+ CSUL0302I : COMMENCING EXTRACT PROCESS.+ CSUL0311I : COMMENCING EXTRACT AGAINST FILE CUST.+ CSUL0345I : THE SPECIFIED RECORD IN THE CURRENT FILE HAS BEEN DIRECTLY ACCESSED AND PROCESSED.+ CSUL0321I : EXTRACT PROCESSING AGAINST FILE CUST TERMINATING NORMALLY.+ CSUL0303I : EXTRACT PROCESS TERMINATING.+ CSUL0305I : CONTROL SECTION TERMINATING.+ CSUL0306I : SUMMARY DATA FOR TERMINATING CONTROL SECTION :+ CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 1+ CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 1+ CSUL0363I : NUMBER OF RECORDS PROCESSED = 1+ CSUL0364I : NUMBER OF RECORDS PRINTED = 1+ CSUL0365I : NUMBER OF RECORDS UPDATED = 0+ CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 0+ CSUL0307I : ALL CONTROL SECTIONS PROCESSED.+ CSUL0308I : CUMULATIVE SUMMARY DATA FOR ALL CONTROL SECTIONS :+ CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 1+ CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 1+ CSUL0363I : NUMBER OF RECORDS PROCESSED = 1+ CSUL0364I : NUMBER OF RECORDS PRINTED = 1+ CSUL0365I : NUMBER OF RECORDS UPDATED = 0<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 61Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


+ CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 0+ CSUL0103I : DATA BASE UTILITIES SUCCESSFUL TERMINATION.The extracted output flat file is:"D99883"|"DON MARSHELL "Example 2This example navigates to the E$MB related file by making a serial sweep of thefile. The extracted output flat file contains data values selected from twofields in the file.The input UCL is:CONTROL(BEGIN)ENV-DESC(BURRYENV)SCHEMA(BURRYS)FUNCTION(EXTRACT)FILE(E$MB)QUALIFIER(SERIAL)CONTROL(END)The input XML is:<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 62Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The output report listing is:1TIS/XA DATA BASE ADMINISTRATOR UTILITIES CINCOM SYSTEMS, INC. TUESDAY, MAR. 06, 2007 13:47:02 PAGE 1---TTTTTTTT IIIIII SSSSSSS / XX XX AAATTTTTTTT IIIIII SSSSSSSSS // XX XX AAAAATT II SS SS // XX XX AA AATT II SS // XX XX AA AATT II SSSSSSSS // XXX AA AATT II SSSSSSSS // XXX AAAAAAAAATT II SS // XX XX AAAAAAAAATT II SS SS // XX XX AA AATT IIIIII SSSSSSSSS // XX XX AA AATT IIIIII SSSSSSS / XX XX AA AA-0 DDDDDDDD BBBBBBBB AAADDDDDDDDD BBBBBBBBB AAAAADD DD BB BB AA AADD DD BB BB AA AADD DD BBBBBBBB AA AADD DD BBBBBBBB AAAAAAAAADD DD BB BB AAAAAAAAADD DD BB BB AA AADDDDDDDDD BBBBBBBBB AA AADDDDDDDD BBBBBBBB AA AA-0 UU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSUU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSSSUU UU TT II LL II TT II EE SS SSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EE SS SSUUUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSSSSUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSS+1TIS/XA DATA BASE ADMINISTRATOR UTILITIES CINCOM SYSTEMS, INC. TUESDAY, MAR. 06, 2007 13:47:02 PAGE 2CSUL0101I : COMMENCING COMMAND VALIDATION.1 CONTROL(BEGIN)2 ENV-DESC(BURRYENV)3 SCHEMA(BURRYS)4 FUNCTION(EXTRACT)5 FILE(E$MB)6 QUALIFIER(SERIAL)7 CONTROL(END)0CONTENTS OF SOURCE LINES OUTSIDE 1...72 MARGINS IGNORED.0 0 SYNTAX ERRORS DETECTED.0 7 COMMAND LINES READ.0 1 CONTROL SECTIONS ANALYZED.0 1 FUNCTION COMMANDS ANALYZED.1TIS/XA DATA BASE ADMINISTRATOR UTILITIES CINCOM SYSTEMS, INC. TUESDAY, MAR. 06, 2007 13:47:02 PAGE 30CSUL0102I : COMMENCING COMMAND EXECUTION.0 CSUL0301I : COMMENCING CONTROL SECTION USING ENVIRONMENT DESCRIPTION BURRYENV AND SCHEMA BURRYS .0 CSUL0302I : COMMENCING EXTRACT PROCESS.0 CSUL0311I : COMMENCING EXTRACT AGAINST FILE E$MB.0 CSUL0349I : END-OF-FILE HAS BEEN ENCOUNTERED ON THE CURRENT FILE.0 CSUL0321I : EXTRACT PROCESSING AGAINST FILE E$MB TERMINATING NORMALLY.0 CSUL0303I : EXTRACT PROCESS TERMINATING.0 CSUL0305I : CONTROL SECTION TERMINATING.0 CSUL0306I : SUMMARY DATA FOR TERMINATING CONTROL SECTION :0 CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 300 CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 290 CSUL0363I : NUMBER OF RECORDS PROCESSED = 290 CSUL0364I : NUMBER OF RECORDS PRINTED = 290 CSUL0365I : NUMBER OF RECORDS UPDATED = 00 CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 00 CSUL0307I : ALL CONTROL SECTIONS PROCESSED.0 CSUL0308I : CUMULATIVE SUMMARY DATA FOR ALL CONTROL SECTIONS :0 CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 300 CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 290 CSUL0363I : NUMBER OF RECORDS PROCESSED = 29<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 63Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


0 CSUL0364I : NUMBER OF RECORDS PRINTED = 290 CSUL0365I : NUMBER OF RECORDS UPDATED = 00 CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 00 CSUL0103I : DATA BASE UTILITIES SUCCESSFUL TERMINATION.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 64Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The first few records of the extracted output flat file are:"ST HELEN "|"272 MT ST HELEN MALL"|"PORTLAND "|"OR"|"97223 "||"TEMPE "|"100 TEMPE-PHOENIX PK"|"TEMPE "|"AZ"|"85210 "||"LINWOOD "|"951 BROADWELL ROAD "|"DETROIT "|"MI"|"48034 "||"IRVINE "|"9114 ST VIVIAN AVE "|"IRVINE "|"CA"|"92714 "||"WRIGHT "|"624 BOOEY-BOOEY AVE "|"HONOLULU "|"HI"|"99806 "||"BEECHER "|"16131 YUCATAN PLACE "|"LOS ANGELES "|"CA"|"92278 "||"ANTIETAM "|"4212 AIRPORT ROAD "|"BOSTON "|"MA"|"2184 "|"1274"|"12441""EASTGATE "|"250 MARION ROAD "|"CHICAGO "|"IL"|"60018 "|"1251"|"88100""EASTGATE "|"250 MARION ROAD "|"CHICAGO "|"IL"|"60018 "|"1251"|"80114""S CANYON "|"9104 GRAND BLVD. "|"DENVER "|"CO"|"80224 "||"OAKRIDGE "|"21319 LBJ FREEWAY "|"DALLAS "|"TX"|"75224 "||<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 65Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


Example 3This example navigates to the BRAN primary file by making a serial sweep ofthe file. For each record retrieved from BRAN, <strong>Extract</strong> navigates to the BRMArelated file along the BRANLK03 linkpath.One extracted output record is generated for each pair of records read fromBRAN and BRMA. Data from BRAN may be repeated in multiple consecutiveoutput records if the linkpath chain in BRMA contains multiple records. Notethat if no records exist in BRMA on the BRANLK03 linkpath chain for a givenBRAN record, <strong>Extract</strong> generates null output for the BRMA data fields. Theextracted output flat file contains data values selected from five fields in BRANand two fields in BRMA.The input UCL is:CONTROL(BEGIN)ENV-DESC(BS23PDM)SCHEMA(BURRYS)FUNCTION(EXTRACT)FILE(BRAN)QUALIFIER(SERIAL)SELECT(BRANCTRL.EQ.BRMABRAN)FILE(BRMA)QUALIFIER(SEQUENTIAL)LINKPATH(BRANLK03)CONTROL(END)The input XML is:<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 66Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The output report listing is:---TTTTTTTT IIIIII SSSSSSS / XX XX AAATTTTTTTT IIIIII SSSSSSSSS // XX XX AAAAATT II SS SS // XX XX AA AATT II SS // XX XX AA AATT II SSSSSSSS // XXX AA AATT II SSSSSSSS // XXX AAAAAAAAATT II SS // XX XX AAAAAAAAATT II SS SS // XX XX AA AATT IIIIII SSSSSSSSS // XX XX AA AATT IIIIII SSSSSSS / XX XX AA AA-0 DDDDDDDD BBBBBBBB AAADDDDDDDDD BBBBBBBBB AAAAADD DD BB BB AA AADD DD BB BB AA AADD DD BBBBBBBB AA AADD DD BBBBBBBB AAAAAAAAADD DD BB BB AAAAAAAAADD DD BB BB AA AADDDDDDDDD BBBBBBBBB AA AADDDDDDDD BBBBBBBB AA AA-0 UU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSUU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSSSUU UU TT II LL II TT II EE SS SSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EE SS SSUUUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSSSSUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSS+CSUL0101I : COMMENCING COMMAND VALIDATION.+ 1 CONTROL(BEGIN)+ 2 ENV-DESC(BS23PDM)+ 3 SCHEMA(BURRYS)+ 4 FUNCTION(EXTRACT)+ 5 FILE(BRAN)+ 6 QUALIFIER(SERIAL)+ 7 SELECT(BRANCTRL.EQ.BRMABRAN)+ 8 FILE(BRMA)+ 9 QUALIFIER(SEQUENTIAL)+ 10 LINKPATH(BRANLK03)+ 11 CONTROL(END)+CONTENTS OF SOURCE LINES OUTSIDE 1...72 MARGINS IGNORED.+ 0 SYNTAX ERRORS DETECTED.+ 11 COMMAND LINES READ.+ 1 CONTROL SECTIONS ANALYZED.+ 1 FUNCTION COMMANDS ANALYZED.0CSUL0102I : COMMENCING COMMAND EXECUTION.+ CSUL0301I : COMMENCING CONTROL SECTION USING ENVIRONMENT DESCRIPTION BS23PDM AND SCHEMA BURRYS .+ CSUL0302I : COMMENCING EXTRACT PROCESS.+ CSUL0311I : COMMENCING EXTRACT AGAINST FILE BRAN.+ CSUL0349I : END-OF-FILE HAS BEEN ENCOUNTERED ON THE CURRENT FILE.+ CSUL0321I : EXTRACT PROCESSING AGAINST FILE BRAN TERMINATING NORMALLY.+ CSUL0303I : EXTRACT PROCESS TERMINATING.+ CSUL0305I : CONTROL SECTION TERMINATING.+ CSUL0306I : SUMMARY DATA FOR TERMINATING CONTROL SECTION :+ CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 108+ CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 68+ CSUL0363I : NUMBER OF RECORDS PROCESSED = 68+ CSUL0364I : NUMBER OF RECORDS PRINTED = 49+ CSUL0365I : NUMBER OF RECORDS UPDATED = 0+ CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 0+ CSUL0307I : ALL CONTROL SECTIONS PROCESSED.+ CSUL0308I : CUMULATIVE SUMMARY DATA FOR ALL CONTROL SECTIONS :<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 67Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


+ CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 108+ CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 68+ CSUL0363I : NUMBER OF RECORDS PROCESSED = 68+ CSUL0364I : NUMBER OF RECORDS PRINTED = 49+ CSUL0365I : NUMBER OF RECORDS UPDATED = 0+ CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 0+ CSUL0103I : DATA BASE UTILITIES SUCCESSFUL TERMINATION.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 68Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The first few records of the extracted output flat file are:"FLOSSMER "|"10655 4TH AVE N,E, "|"SEATTLE "|"WA"|"98004 "||"ST HELEN "|"272 MT ST HELEN MALL"|"PORTLAND "|"OR"|"97223 "||"FT WORTH "|"4560 KELLOGG AVE. "|"FORT WORTH "|"TX"|"75423 "||"FLORENCE "|"2167 BERNARD "|"VERONA "|"NJ"|"7044 "|"1264"|"52221""FLORENCE "|"2167 BERNARD "|"VERONA "|"NJ"|"7044 "|"1264"|"12449""JOANER "|"121 19TH ST. N.E. "|"CANTON "|"OH"|"44609 "||"OAKDALE "|"11270 CORNELL PARK "|"TAMPA BAY "|"FL"|"34171 "|"1243"|"91143""OAKDALE "|"11270 CORNELL PARK "|"TAMPA BAY "|"FL"|"34171 "|"1243"|"74133"<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 69Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


Example 4This example navigates to the E$BR primary file by sweeping the file using thesecondary key E$BRSK01. For each record retrieved from E$BR, <strong>Extract</strong>navigates to the E$MB related file along the E$BRLK01 linkpath. One extractedoutput record is generated for each pair of records read from E$BR and E$MB.Data from E$BR may be repeated in multiple consecutive output records if thelinkpath chain in E$MB contains multiple records.Note that if no records exist in E$MB on the E$BRLK01 linkpath chain for agiven E$BR record, <strong>Extract</strong> generates null output for the E$MB data fields. Theextracted output flat file contains data values selected from five fields in E$BRand two fields in E$MB.The input UCL is:CONTROL(BEGIN)ENV-DESC(BURRYENV)SCHEMA(BURRYS)FUNCTION(EXTRACT)FILE(E$BR)QUALIFIER(INDEX)SECONDARY-KEY(E$BRSK01)SELECT(E$BRCTRL.EQ.E$MBE$BR)FILE(E$MB)QUALIFIER(SEQUENTIAL)LINKPATH(E$BRLK01)CONTROL(END)The input XML is:<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 70Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 71Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The output report listing is:1TIS/XA DATA BASE ADMINISTRATOR UTILITIES CINCOM SYSTEMS, INC. TUESDAY, MAR. 06, 2007 11:23:21 PAGE 1---TTTTTTTT IIIIII SSSSSSS / XX XX AAATTTTTTTT IIIIII SSSSSSSSS // XX XX AAAAATT II SS SS // XX XX AA AATT II SS // XX XX AA AATT II SSSSSSSS // XXX AA AATT II SSSSSSSS // XXX AAAAAAAAATT II SS // XX XX AAAAAAAAATT II SS SS // XX XX AA AATT IIIIII SSSSSSSSS // XX XX AA AATT IIIIII SSSSSSS / XX XX AA AA-0 DDDDDDDD BBBBBBBB AAADDDDDDDDD BBBBBBBBB AAAAADD DD BB BB AA AADD DD BB BB AA AADD DD BBBBBBBB AA AADD DD BBBBBBBB AAAAAAAAADD DD BB BB AAAAAAAAADD DD BB BB AA AADDDDDDDDD BBBBBBBBB AA AADDDDDDDD BBBBBBBB AA AA-0 UU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSUU UU TTTTTTTT IIIIII LL IIIIII TTTTTTTT IIIIII EEEEEEEEE SSSSSSSSSUU UU TT II LL II TT II EE SS SSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EEEEEE SSSSSSSSUU UU TT II LL II TT II EE SSUU UU TT II LL II TT II EE SS SSUUUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSSSSUUUUUUU TT IIIIII LLLLLLLLL IIIIII TT IIIIII EEEEEEEEE SSSSSSS+1TIS/XA DATA BASE ADMINISTRATOR UTILITIES CINCOM SYSTEMS, INC. TUESDAY, MAR. 06, 2007 11:23:21 PAGE 2CSUL0101I : COMMENCING COMMAND VALIDATION.1 CONTROL(BEGIN)2 ENV-DESC(BURRYENV)3 SCHEMA(BURRYS)4 FUNCTION(EXTRACT)5 FILE(E$BR)6 QUALIFIER(INDEX)7 SECONDARY-KEY(E$BRSK01)8 SELECT(E$BRCTRL.EQ.E$MBE$BR)9 FILE(E$MB)10 QUALIFIER(SEQUENTIAL)11 LINKPATH(E$BRLK01)12 CONTROL(END)0CONTENTS OF SOURCE LINES OUTSIDE 1...72 MARGINS IGNORED.0 0 SYNTAX ERRORS DETECTED.0 12 COMMAND LINES READ.0 1 CONTROL SECTIONS ANALYZED.0 1 FUNCTION COMMANDS ANALYZED.1TIS/XA DATA BASE ADMINISTRATOR UTILITIES CINCOM SYSTEMS, INC. TUESDAY, MAR. 06, 2007 11:23:21 PAGE 30CSUL0102I : COMMENCING COMMAND EXECUTION.0 CSUL0301I : COMMENCING CONTROL SECTION USING ENVIRONMENT DESCRIPTION BURRYENV AND SCHEMA BURRYS .0 CSUL0302I : COMMENCING EXTRACT PROCESS.0 CSUL0311I : COMMENCING EXTRACT AGAINST FILE E$BR.0 CSUL0349I : END-OF-FILE HAS BEEN ENCOUNTERED ON THE CURRENT FILE.0 CSUL0321I : EXTRACT PROCESSING AGAINST FILE E$BR TERMINATING NORMALLY.0 CSUL0303I : EXTRACT PROCESS TERMINATING.0 CSUL0305I : CONTROL SECTION TERMINATING.0 CSUL0306I : SUMMARY DATA FOR TERMINATING CONTROL SECTION :0 CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 1080 CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 680 CSUL0363I : NUMBER OF RECORDS PROCESSED = 680 CSUL0364I : NUMBER OF RECORDS PRINTED = 490 CSUL0365I : NUMBER OF RECORDS UPDATED = 00 CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 0<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 72Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


0 CSUL0307I : ALL CONTROL SECTIONS PROCESSED.0 CSUL0308I : CUMULATIVE SUMMARY DATA FOR ALL CONTROL SECTIONS :0 CSUL0361I : NUMBER OF READS ISSUED TO THE PDM = 1080 CSUL0362I : NUMBER OF RECORDS RECEIVED FROM THE PDM = 680 CSUL0363I : NUMBER OF RECORDS PROCESSED = 680 CSUL0364I : NUMBER OF RECORDS PRINTED = 490 CSUL0365I : NUMBER OF RECORDS UPDATED = 00 CSUL0366I : NUMBER OF WRITES ISSUED TO PDM = 00 CSUL0103I : DATA BASE UTILITIES SUCCESSFUL TERMINATION.<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 73Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


The first few records of the extracted output flat file are:"ANTIETAM "|"4212 AIRPORT ROAD "|"BOSTON "|"MA"|"2184 "|"1274"|"12441""BEECHER "|"16131 YUCATAN PLACE "|"LOS ANGELES "|"CA"|"92278 "||"BELLVIEW "|"2365 KAPULTA MAU AVE"|"HONOLULU "|"HI"|"99821 "||"BRIGHTON "|"2488 RIVER ROAD "|"PHILADELPHIA "|"PA"|"19055 "|"1261"|"00554""BRIGHTON "|"2488 RIVER ROAD "|"PHILADELPHIA "|"PA"|"19055 "|"1261"|"31441""BRIGHTON "|"2488 RIVER ROAD "|"PHILADELPHIA "|"PA"|"19055 "|"1261"|"44991""BURNMAM "|"2090 MAPLERIDGE RD. "|"BUFFALO "|"NY"|"14031 "|"1273"|"04999""BUTLER "|"3301 DANBURY ROAD "|"FAIRFIELD "|"OH"|"45014 "|"1237"|"58771""BUTLER "|"3301 DANBURY ROAD "|"FAIRFIELD "|"OH"|"45014 "|"1237"|"00001""BUTLER "|"3301 DANBURY ROAD "|"FAIRFIELD "|"OH"|"45014 "|"1237"|"47711""DAYTONA "|"2 REGAL COURT "|"HOUSTON "|"TX"|"77079 "||"DUMMY "|"DEFAULT BRANCH "|"CINCINNATI "|"OH"|"45211 "||<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 74Chapter: 5. Coding the <strong>Extract</strong> functionSection: <strong>Extract</strong> examples


IndexAaccess linkpathspecifying forPrint function 36access modedirect 35Print function 35sequential 35serial 35argumentscoding 12list of 12BBoolean operators in CRITERIAstatement 42, 44Ccoding arguments 11, 12comments in UCL 10control section of UCLcoding 29CONTROL statement 29ENV-DESC statement 30SCHEMA statement 31CONTROL statement 29converted format filesSUPRA 14CRITERIA statementPrint function 41CSIPARM filez/OS 19CSUWORK filez/OS 19, 21Ddata elementsPrint function 46debug facility 15DEBUG parameter 15direct access mode 35Directory filesz/OS 19DUMP parameter 24, 25EELEMENT statementPrint function 46ENV-DESC statement 30errorflag 13number 13pointer 13Ffile definitionsin z/OS 19formatconverted 14Series 80 14SUPRA converted 14UCL 10FUNCTION statementPrint function 34Hheap area 26IINPUT filez/OS 19, 21input filesdefiningin z/OS 19, 21installation 6IOBUF parameter 24KKEY statementPrint function 37Llibrary filesz/OS 19LINKPATH statementPrint function 36list of arguments 12<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 75Index


Mmaximum numberprinted records 40MAXIMUM statementPrint function 40NNODUMP parameter 24, 25NOSPIE parameter 24, 25null arguments 11OOUTPUT filez/OS 19, 21PparametersDEBUG 15DUMP 24, 25IOBUF 24NODUMP 24, 25NOSPIE 24, 25SPIE 24, 25STACK 24, 26XTRACE 16PDM filesz/OS 19, 21Print functionCRITERIA statement 41ELEMENT statement 46FUNCTION statement 34KEY statement 37LINKPATH statement 36MAXIMUM statement 40QUALIFIER statement 35RECORD statement 45RRN statement 38RRN-RANGE 39processing environment 28QQUALIFIER statementPrint function 35RRECORD statementPrint function 45recordsmaximum number printed 40selectingfor Print function 41related filesprinting 38relative record numbers (RRN)selectingin related file 38specifying range to retrieve39RRN statementPrint function 38RRN-RANGE statementPrint function 39run-time interface parameters24SSCHEMA statementcontrol section of UCL 31sequential access mode 35serial access mode 35Series 80 format filesexecuting utilities 14SPIE parameter 24, 25STACK parameterestimating size 27use 24, 26stack/heap area 26statementsCONTROL 29CRITERIA 41ELEMENT 46ENV-DESC 30FUNCTIONPrint function 34KEY 37LINKPATHPrint function 36MAXIMUM 40QUALIFIER 35RECORD 45RRN 38RRN-RANGE 39SCHEMA 31superordinate 9<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 76Index


STEPLIB filez/OS 19storage 23superordinate statement 9SYSOUT filez/OS 19SYSUDUMP filez/OS 19Ttrace facility 15TRACE facility 15Vvalidating programs 13Wwork files 19, 21XXTRACE parameter 16U<strong>Utility</strong> Command Language(UCL)codingcontrol section 29coding control section 28formatting 10programscomments in 10formatting 10sample program 28<strong>Extract</strong> <strong>Utility</strong> <strong>User's</strong> <strong>Guide</strong>, P25-9513-03 77Index

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!