According to aspects of the present disclosure, a method for creating a jcl job card comprises obtaining job control language (jcl) function choices and parameters associated with the jcl function choices and transmitting the jcl function choices to a graphical user interface. A selection of a function choice is received from the user, and a customized panel for display is created based on the received function choice selection and the parameters associated with the received function choice selection. The customized panel is transmitted to the graphical user interface, and values for at least a subset of the parameters associated with the received function choice selection are received from the user. The received function choice selection and received values are mapped to an associated jcl command, and a jcl card is created based on the mapping.
|
1. A method for creating a job control language (jcl) card, the method comprising:
obtaining jcl function choices and parameters associated with the jcl function choices from a storage device of a computer, wherein the jcl function choices are functions associated with an exec line of the jcl card;
transmitting for display the jcl function choices to a graphical user interface (gui) of the computer;
receiving a function choice selection in response to a user interacting with the gui to specify a job;
customizing, by the computer, a panel for display based on the received function choice selection and the parameters associated with the received function choice selection;
transmitting for display the customized panel to the gui;
receiving values for at least a subset of the parameters associated with the received function choice selection via the user interacting with the gui;
mapping, by the computer, the received function choice selection and received values to an associated jcl command, wherein the mapping includes context and syntax required by the jcl command;
creating, by the computer, the jcl card that instructs a mainframe computer to execute the specified job based on the mapping; and
executing the jcl card by the mainframe computer.
11. A system comprising:
a hardware processor coupled to memory, wherein the processor is programmed to create a job control language (jcl) card by:
obtaining jcl function choices and parameters associated with the jcl function choices from a storage device of the system, wherein the jcl function choices are functions associated with an exec line of the jcl card;
transmitting for display the jcl function choices to a graphical user interface (gui) of the system;
receiving a function choice selection in response to a user interacting with the gui to specify a job;
customizing, by the system, a panel for display based on the received function choice selection and the parameters associated with the received function choice selection;
transmitting for display the customized panel to the gui;
receiving values for at least a subset of the parameters associated with the received function choice selection via the user interacting with the gui;
mapping, by the system, the received function choice selection and received values to an associated jcl command, wherein the mapping includes context and syntax required by the jcl command; and
creating, by the system, the jcl card that instructs a mainframe computer to execute the specified job based on the mapping, wherein the jcl card is executed by the mainframe computer.
2. The method of
presenting the jcl function choices via a dropdown box generated by the gui; wherein:
receiving a function choice selection further comprises receiving the function choice selection in response to the user selecting a jcl function choice via the dropdown box.
3. The method of
4. The method of
5. The method of
identifying an expected value type for a select parameter associated with the received function choice selection;
comparing a type of the received value for the select parameter with the expected value type for the select parameter; and
transmitting a prompt to the gui indicating that the received value is of an incorrect type if the type of the received value does not correspond to the expected value type for the select parameter.
6. The method of
7. The method of
8. The method of
determining if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line;
determining a destination operating system requires DOS jcl; and
placing a character at space 72 if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line and the destination operating system requires DOS jcl.
9. The method of
determining if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line;
determining a destination operating system requires OS jcl; and
placing a comma at an end of the line if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line and the destination operating system requires OS jcl.
10. The method of
prompting, via the graphic user interface, the user to select one of: save, submit, and both for the created jcl card;
receiving a response from the user;
writing the jcl card to a file if the response indicates that the jcl card should be saved; and
submitting the jcl card for execution if the response indicates that the jcl card should be submitted.
12. The system of
presenting the jcl function choices via a dropdown box generated via the gui; wherein:
receiving a function choice selection further comprises receiving a function choice selection in response to the user selecting a jcl function choice via the dropdown box.
13. The system of
14. The system of
15. The system of
identifying an expected value type for a select parameter associated with the received function choice selection;
comparing a type of the received value for the select parameter with the expected value type for the select parameter; and
transmitting a prompt to the gui indicating that the received value is of an incorrect type if the type of the received value does not correspond to the expected value type for the select parameter.
16. The system of
17. The system of
18. The system of
determining if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line;
determining a destination operating system requires DOS jcl; and
placing a character at space 72 if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line and the destination operating system requires DOS jcl.
19. The system of
determining if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line;
determining a destination operating system requires OS jcl; and
placing a comma at an end of the line if mapping the received function choice selection and received parameters to an associated jcl command requires more than one line and the destination operating system requires OS jcl.
20. computer-readable hardware with program code stored thereon, wherein the program code instructs a hardware processor to perform the method recited in
|
Various aspects of the present disclosure relate generally to mainframe systems and more particularly to running batch jobs on a mainframe system.
In order to batch-test applications or start a subsystem of a mainframe system, a user writes code in a job control language (JCL) to create a JCL card that is used to instruct the mainframe system to perform a job. The job includes several steps, with each step representing one specific program. For example, a simple copy function may include six separate steps. There are two lineages of JCL: DOS/360 (e.g., z/VSE) and OS/360 (e.g., primary control program (PCP)). While both lineages have actual implementation differences, they share some basic syntax rules and a few basic concepts.
According to aspects of the present disclosure, a JCL job card is created. To create a JCL job card, job control language (JCL) function choices and parameters associated with the JCL function choices are stored. The JCL function choices are obtained from storage, and are transmitted to a graphical user interface. A function choice selection (i.e., user-selection of a function choice) is received in response to a user interacting with the graphical user interface to specify a job. The parameters associated with the JCL function that corresponds to the function choice selection are obtained, and a customized panel for display is created based on the received function choice selection and the parameters associated with the received function choice selection. The customized panel is transmitted to the graphical user interface, and user-entered values for at least a subset of the parameters associated with the received function choice selection are received. The received function choice selection and received values are mapped to an associated JCL command, and a JCL card is created that instructs a mainframe computer to execute the specified job based on the mapping.
According to aspects of the present disclosure, systems, methods, and devices (e.g., computer-readable hardware) are disclosed for creating a job control language (JCL) card via a graphical user interface (GUI). A user is presented with JCL function choices (e.g., copy, compare, sort, etc.) via the GUI, and the user selects one of the functions. Then, the user is presented with a panel customized to the selected function such that the user can supply values for parameters associated with the selected function. Once the values are received, a JCL card is created based on the selected function and the user-entered parameter values. Therefore, the systems, methods, and devices described herein assist a user who is new to mainframe systems by allowing the user to create a JCL card without learning JCL concepts or syntax.
Referring now to the figures, and in particular
At 102, JCL function choices and parameters associated with those JCL function choices are obtained from a storage device. For example, a JCL function may be a “copy” function that includes parameters of “source” and “destination.” Another JCL function may be a “compare” function that includes “file 1,” “file 2,” and “output” as parameters. Basically, the function choices may be any value that can be a program (PGM) on an EXEC line of a JCL card. Further, other complex functions (e.g., instream or nested procedures) may be obtained that require several basic functions.
The JCL function choices may be stored anywhere that is convenient for access. For example, the JCL function choices may be stored locally on a mainframe system or machine that executes the method 100. Alternatively, the JCL function choices may be stored in memory remotely (e.g., a different machine within the system, a separate system, a remote server not controlled by the system, etc.), where the system running the method 100 may access the JCL function choices.
At 104, the JCL function choices are transmitted to a graphical user interface (GUI) that displays the JCL function choices to a user. For instance, the method may also perform any necessary processing necessary to pass the JCL function choices to the GUI.
The GUI may be displayed on any device that supports such a display. For example, a tablet device, a smartphone, a monitor coupled to a computer, a laptop, etc. Also, the manner in which the JCL function choices are displayed may vary. For example, the JCL function choices may be transmitted to a GUI that displays the JCL function choices in a dropdown menu when the user clicks on a designated portion of the GUI. When the GUI presents the dropdown menu, the user can then select one of the viewable JCL function choices (i.e., make a function choice selection). Alternatively, the GUI may display the JCL function choices in any other practical way such that the user may select one of the JCL functions. Further, the GUI may display entry boxes for information required for all functions, such as boxes for account information, programmer name, job name, destination operating system, etc. Moreover, the GUI may display options for conditional procedures. For example, there may be an option for a checkbox to include an IF-THEN-ELSE statement that performs two different functions based on a runtime condition (IF the runtime condition is TRUE, THEN perform JCL function 1, ELSE perform JCL function 2).
At 106, a function choice selection is received in response to the user interacting with the graphical user interface to specify a job. In response to receiving the user's function choice selection, the method may need to obtain the parameters associated with the JCL function, which corresponds to the received function choice selection.
At 108, a panel (e.g., screen, page, window, etc.) is customized for display based on the received function choice selection and the parameters associated with the received function choice selection. For example, if the selected function includes two parameters (one requiring a free-form answer and the other one requiring a binary answer), then the system may customize the panel to include a text entry box and a checkbox. Once the panel is displayed, the user may type in a value for the first parameter in the text box and check the checkbox (or leave unchecked) for the second parameter of the selected function.
Another example of a parameter entry method may be a dropdown menu for parameters that have limited choices for proper values. For example, the parameter NOTIFY (which indicates who should receive an output message indicating success or failure of the job) may have the value “userid” or “&SYSUID.” A dropdown box may then include the choices: USER and DETERMINE AT RUNTIME. Also, there may be an interface that allows a user to insert checkpoints at certain points in a created JCL card.
Further, the customized panel may have a notification that a subset (including the whole set) of the parameters are mandatory parameters for which the user must provide a value. For example, an asterisk may be placed adjacent to any text box that requires a value.
At 110, the customized panel is transmitted to the GUI for displaying. The customized panel may be displayed by the GUI as a screen (i.e., encompassing the entire display), a window (i.e., encompassing a portion of the display that may be moved), a page (i.e., running in some other application (e.g., a web browser)), etc., or combinations thereof. The GUI displays the panel, and the user may fill in values for the parameters displayed.
At 112, the method receives the values entered by the user. For instance, values are received for at least a subset of the parameters associated with the user's function choice selection via the graphical user interface. In some embodiments, the system may check to determine that the received value is proper for the parameter. For example, an expected value type for the parameter associated with the selected function may be identified. Then, a type of the received value for the parameters is compared to the identified value type, and if the type of the received value is different than the identified type, a prompt is transmitted to the GUI that the received value is of an incorrect type. For example, if a parameter requires an integer and the received value is a non-integer (e.g., a fractional number, an alphabetical character, etc.), then a prompt would be transmitted to the GUI for display indicating that the received value includes a non-integer but the parameter requires an integer value.
At 114, the received function choice selection and the corresponding received parameter values are mapped to an associated JCL command. As noted more fully above, the mapping may also include other information, such as information entered into common entry boxes, conditional procedures, and other information that may be collected by the GUI.
At 116, a JCL card (e.g., a script, batch file, etc.) is created that instructs a mainframe computer to execute the specified job based on the mapping. The JCL card created includes proper context and syntax for the desired lineage of JCL and may be in any appropriate JCL format. For example, the created JCL card may have a JOB statement, an EXEC statement, one or more DD statements, etc. Further, the card may include a JOBLIB statement, a STEPLIB statement, an INCLUDE statement, an instream procedure, a catalog procedure, conditional statements, checkpoints, generation data groups, etc.
The received values are mapped to the parameters in any desired way that fits the syntax required by JCL. For example, the resulting JCL card may map the parameters and values using a keyword-parameter approach, where the parameter is listed, and then the value for the parameter is listed after the parameter (e.g., PARAMETER=VALUE). On the other hand, the resulting JCL card may map the parameters and values using a positional-parameter approach, where the parameters are not listed, and the position of the value within the sequence of values indicates which parameter the value is for (e.g., the first parameter associated with the JCL function corresponds to the first value listed in the card for that function). The positional-parameter approach allows for JCL cards to require less text overall (and thus less memory), but requires a user to know the sequence of parameters if the user reads the created JCL card. On the other hand, the keyword-parameter approach requires more text (and thus more memory), but does not require the user to know the sequence of parameters if the user reads the created JCL card. In some instances, both positional- and keyword-parameter mapping may be used.
As another example of another format for the JCL card, if the JCL card is of a DOS JCL format and if the selected JCL function requires more than one line, then a character will be placed at space seventy-two (72) to indicate that the function continues on the next line. However, if the JCL card is of a DOS JCL format and if the selected JCL function requires more than one line, then a comma will be placed at the end of the line(s) to indicate that the function continues on the next line.
In some embodiments, the user may be prompted to save the created JCL card, submit the created JCL card for processing, or both. If the user selects saving the created JCL card, then the JCL card is written to a file. If the user selects submitting the JCL card, then the JCL card is submitted to the mainframe for execution. Alternatively if the user selects both, then the JCL card is saved and submitted to the mainframe for execution. A saved job may be used as a catalog procedure at a later date.
Further, the parameter values in the JCL card do not have to be identical to the received parameter values. For example, in the NOTIFY parameter, the user may pick USER, but the value placed in the card may be “userid” (which may be derived from another parameter if desired). On the other hand, if the user picks SUBMITTER, then the value placed in the JCL card may be &SYSUID.
Through use of the method 100, a user does not need to understand JCL or the syntax and concepts associated with JCL in order to create a JCL card. Instead, the user can choose a function and supply parameters for the function, and the method will create the JCL card.
Referring to
Based on the selection, the system checks for the parameters associated with the selected function and customizes a panel (108 in
Referring to
If instead, the user had chosen the COMPARE JCL function choice, then the system would determine the parameters needed for the compare function by consulting the memory storing the JCL function choices and the associated parameters and determine that there are three parameters for the compare function: file 1, file 2, and output.
The user then enters values for the SOURCE and DESTINATION parameters by typing in “OldFile” and “NewFile” into the text boxes 306, 308, respectively. The system receives the values for the parameters (112 in
//IS198CPY
JOB
(IS198T30500),‘COPY JOB’,CLASS=L,
MSGCLASS=X
//COPY01
EXEC
PGM= IEBCOPY
//SYSPRINT
DD
SYSOUT=*
//SYSUT1
DD
DSN=OLDFILE,DISP=SHR
//SYSUT2
DD
DSN=NEWFILE,
//
DISP=(NEW,CATLG,DELETE),
//
SPACE=(CYL,(40,5),RLSE),
//
DCB=(LRECL=115,BLKSIZE=1150)
//SYSIN
DD
DUMMY
As mentioned above, the created JCL card may be of any JCL lineage (e.g., OS, DOS), include any type of parameter mapping (e.g., keyword, positional), etc. Further, the created card may be saved to a file and/or submitted to the mainframe system for execution.
Referring to
Referring to
Also connected to the I/O bus may be devices such as a graphics adapter 580, storage 590 and a computer usable storage medium 595 having computer usable program code embodied thereon. The computer usable program code may be executed to implement any aspect of the present disclosure, for example, to implement any aspect of any of the methods and/or system components illustrated in
An example hardware computer suitable for use with the systems and methods herein is a hardware mainframe computer system, such as a zSeries mainframe computer, a product of International Business Machines Corporation in Armonk, N.Y., running z/OS operating system. An object oriented programming system such as Java may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on data processing systems.
As will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable storage medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), Flash memory, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. Specifically, a computer readable signal medium is not a computer readable storage medium.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. Aspects of the disclosure were chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.
Navani, Richa, Parikh, Ravish M.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4873625, | Nov 17 1987 | INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Method and apparatus for extending collation functions of a sorting program |
5872970, | Jun 28 1996 | Verizon Patent and Licensing Inc | Integrated cross-platform batch management system |
5987251, | Sep 03 1997 | Verizon Patent and Licensing Inc | Automated document checking tool for checking sufficiency of documentation of program instructions |
6044394, | Jul 21 1997 | International Business Machines Corporation | Managing independently executing computer tasks that are interrelated by dataflow |
6128730, | Dec 29 1997 | Bull HN Information Systems Inc. | Method and apparatus for multilevel software configuration having administrator and software driven override limiting capabilities |
6131190, | Dec 18 1997 | TERACLOUD SA | System for modifying JCL parameters to optimize data storage allocations |
6430708, | Apr 17 1998 | Visa International Service Association | Method and apparatus for testing job control language (JCL) members |
6499041, | Dec 29 1998 | International Business Machines Corporation | Methods, systems and computer program products for copying between templates having associated field designations |
7127672, | Aug 22 2003 | Microsoft Technology Licensing, LLC | Creating and managing structured data in an electronic spreadsheet |
7844966, | Jul 12 2005 | Liberty Peak Ventures, LLC | System and method for generating computing system job flowcharts |
8386939, | Jun 30 2001 | CoKinetic Systems Corp. | Internet interface and integration language system and method |
20040172634, | |||
20050149924, | |||
20050198636, | |||
20060020942, | |||
20070216927, | |||
20080170254, | |||
20080177798, | |||
20080275944, | |||
20090240988, | |||
20090300617, | |||
20100088619, | |||
20100242024, | |||
20100318920, | |||
20120192191, | |||
20130091511, | |||
20130198223, | |||
20150100136, | |||
20150178034, | |||
20150193243, | |||
20150248226, | |||
20150370871, | |||
20160070698, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 07 2015 | PARIKH, RAVISH M | CA, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036024 | /0127 | |
Jul 07 2015 | NAVANI, RICHA | CA, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036024 | /0127 | |
Jul 08 2015 | CA, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
May 24 2021 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 28 2020 | 4 years fee payment window open |
May 28 2021 | 6 months grace period start (w surcharge) |
Nov 28 2021 | patent expiry (for year 4) |
Nov 28 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 28 2024 | 8 years fee payment window open |
May 28 2025 | 6 months grace period start (w surcharge) |
Nov 28 2025 | patent expiry (for year 8) |
Nov 28 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 28 2028 | 12 years fee payment window open |
May 28 2029 | 6 months grace period start (w surcharge) |
Nov 28 2029 | patent expiry (for year 12) |
Nov 28 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |