Notes
Slide Show
Outline
1
Enterprise COBOL Education Using Rational Developer for System Z

RDz Workbench and z/OS Development
  • Jon Sayles, IBM Software Group, Rational EcoSystems Team
2
IBM Trademarks and Copyrights
    • © Copyright IBM Corporation 2007,2008, 2009.  All rights reserved.


    • The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied.  IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials.  Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement  governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.


    • This information is based on current IBM product plans and strategy, which are subject to change by IBM without notice. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way.


    • IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM Rational products and services are trademarks or registered trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
3
Course Contributing Authors
  • Thanks to the following individuals, for assisting with this course:
    • Reginaldo Barosa/IBM
    • David Bean/IBM



4
Course Overview
  • Audience
    • This course is designed for application developers who have learned or programmed in COBOL, and who need to do z/OS Traditional Development and Maintenance as well as build leading-edge applications using COBOL and Rational Developer for System z.

  • Prerequisites
    • This course assumes that the student has a basic understanding and knowledge of software computing technologies, and general data processing terms, concepts and vocabulary, as well as a working knowledge of COBOL and z/OS.
    • Knowledge of SQL (Structured Query Language) is assumed for database access is assumed as well.
    • Basic PC and mouse-driven development skills, terms and concepts are also assumed.
5
Course Topics
  • Course Name:  Rational Developer for System z Foundation Training


  • Course Description:  Learn how to use Rational Developer for System z to do z/OS traditional development, maintenance, support and for Enterprise Modernization of z/OS applications


  • Pre-requisites: Some experience developing COBOL applications using z/OS is expected.  A working knowledge of SQL is also recommended.


  • Course Length: ~5days – or if done in self-paced mode, at your own pace


  • Topics (Agenda)
      • Getting Started - installing and configuring RDz - and the course  materials, and using Eclipse
      • The RDz Workbench
        • Code analysis tools
        • Editing
        • Compiling programs
        • Debugging local COBOL programs
      • The Data Perspective:
        • Working with relational data sources
        • Modifying test data
        • Editing and testing SQL statements
      • Working with remote system resources:
        • Connecting to a mainframe
        • Data management
        • Accessing and editing files
      • z/OS Application Development
        • Creating MVS Subprojects
        • Creating and customizing project properties
      • Debugging z/OS Applications
        • Debugging Batch Applications
        • Setting Debug Tool for Online Applications
      • Working with File Manager
        • Creating test data
        • Editing complex file-types
      • Working with mainframe ABENDs using Fault Analyzer
        • Creating Fault History views
        • Analyzing and solving mainframe ABENDs
      • Creating and modifying BMS Maps using the BMS Map Editor
6
The RDz Workbench
7
Topic objectives
  • After completing this topic, you should be able to:
    • Show how to set up projects for host development
    • Illustrate how to use the show dependencies option to find the required files to build a COBOL project
    • Explain how to perform remote and local syntax checking
    • Show where errors are displayed and how to navigate to the position of the error in the source code
    • Describe how to generate execution JCL and submit JCL jobs for processing
    • Describe the difference between online and offline Subproject states
8
Types of Projects
  • RDz allows you to organize your files in multiple types of project-formats, based on your application technical and organizational requirements
    • Remote Systems Explorer (RSE)
      • For one-off or trivial (short-term) project tasks that only require you to work on a few programs or JCL files within a single RDz session
      • Use RSE to: analyze/edit/compile
    • z/OS Projects – MVS Subprojects
      • For project tasks that will persist over multiple RDz sessions
      • For large tasks that will require many files
      • Or tasks that may need any number and also different types of source files
      • Notes on MVS Subprojects:
        • No local (only remote - IBM z/OS PD Tools) Debugger
        • All resources ultimately wired back to their mainframe origins
          • Your SCM (source code management) system
          • PDS or sequential files
    • AIX Projects
      • For projects that you intend to develop, debug and deploy onto the AIX platform and run as Unix binaries
    • Workstation (local) z/OS Projects
      • For projects that will ultimately run as Windows .EXE/.DLLs
      • Can do local eclipse debugging
9
What are z/OS Projects and what are MVS Subprojects?
  • z/OS Projects:
    • Are RDz organizational constructs consisting of separate MVS Subprojects
    • Can be imported and exported
  • MVS Subprojects are:
    • Groupings of resources…basically a subset of a z/OS Project
    • Populated by dragging and dropping files from a mainframe RSE connections
    • Kept in-sync – with mainframe host resources, when online
    • (or can be) compiled and linked into a single load module
    • Roughly analogous to an ISPF Library Group

10
Why use MVS Subprojects?
  • Productivity:
    • Organization:
      • Provide simple, useful way of organizing myriad files necessary for tasks within your application development projects
      • Provide hierarchical folder set to manage large number of files
    • Simplified process:
      • You can drag & drop Filtered mainframe files as a group
      • And you can create a:
        • Set of RDz properties to manage different compile/pre-compile source needs for                   Local Syntax Check.
          • 1. Batch COBOL, 2. COBOL/CICS, 3. Batch COBOL/DB2, 4. COBOL/CICS/DB2, etc.
        • Single load module out of all files in one generated JCL stream
  • Quality:
    • Tied in to mainframe assets:
      • All source changes (line-by-line deltas) resolved back to original SCM:
        • Electronically
        • Unconditionally
  • MIPS Reduction:
    • Local syntax check …vs… running mainframe compiles
    • Can develop in Online/Offline mode – for reduced TSO/ISPF session costs – See notes for a deeper explanation of this.
11
How do I Define a z/OS Project and MVS Subprojects?
  • Create a project of type z/OS, of sub-type: MVS Subproject


  • From Remote Systems Explorer (RSE):
    • Connect to the remote system you wish to tie to define a z/OS Project and MVS Subproject
    • Create a Filter for the relevant PDSs
    • From the Filter:
      • Drag & Drop – or select copy & paste all of the host resources you would like to make part of your MVS Subproject
        • Programs
        • Copybooks
        • Other files: Load libraries, JCL, etc.

  • From your new MVS Subproject:
    • Analyze your requirements and program source
    • Edit the COBOL source
    • Compile – Locally or Remote – through JCL or using the RDz tooling
    • Test (debug or run with JCL) – if batch
12
Creating an MVS Subproject (1 of 2)
  • Using RSE:
    • Connect and login to your mainframe

  • From z/OS Project Explorer:
    • Select File > New > Project
    • Type a z under Wizards
    • Select z/OS Project
    • Click Next


  • From New z/OS Project:
    • Name the project
    • Make sure:                     ¤ Create an MVS Subproject is checked
    • Click Finish

13
Creating an MVS Subproject (2 of 2)
  • Type the Subproject Name


  • If you have more than one connection open, you can select the High-Level Qualifier – which becomes the Host Short Name
  • If there is a property group associated with your Workspace you can:
    • Select it (as shown) by checking
    • Edit it – by clicking:


  • If not, you can:
    • Create a new property group by clicking:


    • Import a property group using the Property Group Manager view (not shown)
  • Click Finish


14
MVS Subproject in the z/OS Projects view
15
RDz Project Properties and Property Groups – Reprise***
  • Recall from the unit titled, "RDz Workbench" we introduced the topic of project properties (see slide titled, "Enabling Your Project for Copybooks"
    • In a nutshell, properties or "resource properties", are settings (think of them as analogous to compiler parms) that you use to manage:
      • The RDz product workflow (dialogs and options)
      • How your application resources are generated,                       compiled and linked
        • Just the way you use compiler parms to control how                     the compiler builds your executable files                 (what run-time options to introduce into the machine code)
  • A Property Group is an independent collection                    of resource properties
    • Defined and maintained as a set
    • Associated with one or more:
      • Local (workstation) projects
      • Remote Systems
      • MVS Subprojects
  • As an example of their use, you might define custom properties                                     and assign to different Property Groups for different technology requirements
    • COBOL (Batch) Subprojects
    • COBOL CICS Subprojects
    • COBOL DB2 (Batch) Subprojects
    • COBOL DB2 CICS Subprojects
    • AIX (or Windows-workstation) applications
    • Web Services projects
    • Projects that generate DB2 Stored Procedures
16
Verifying Properties for an MVS Subproject
  • In the previous unit, you:
  • Imported a Property Group (or used one of your                             own shop-specific files)
  • Verified the settings
  • Assigned it to the z/OS System, via RSE
  • And if you didn't, please return to the unit titled:  "RDZ Workbench                 – Using Remote Systems Explorer" and re-do those steps, as you'll             need to have finished that exercise, in order to do the next parts of this lab


  • To verify (that you're set up and ready to go):
  • From z/OS Projects
  • Right-click over your Subproject and select Properties
  • Select the Property Group filter
  • You should see a dialog like this, with a Property Group selected (checked)
17
Add z/OS resources to the MVS Subproject (1 of 2)
18
Add z/OS resources to the MVS Subproject (2 of 2)
19
: Create an MVS Subproject – Workshop
20
: Add Resources to an MVS Subproject – Workshop – 1of 2
21
: Add Resources to an MVS Subproject – Workshop – 2 of 2
22
Open (Edit) the MVS Resource in the Content Area
23
What Happens Upon "File Open"?
  • When you double-click (open) a file in an MVS Subproject:
    • The remote file is downloaded (copied) from z/OS to your PC
    • The source lines (records) are translated from EBCDIC to ASCII
    • A copy of the file is cached on your PC, and subsequent editing reuses the cached file copy (assuming no changes are made to the dataset contents on the host).  This:
      •  Eliminates redundant (unnecessary) z/OS file downloads and saves MIPS
      •  Improves editing performance of opened/copied file
      •  Persists across close/re-open of RDz
    • Whether or not to use cached-copy is based on files “Last Modified” timestamp
      •  Not available for a sequential data set, or a member with no time stamp

24
Working with Copybooks
25
MVS Subproject Show Dependencies…
  • Displays the Copy members or Include files required to do a local syntax check or a project build a COBOL or PL/I program.
  • Show dependencies can be used to bring all the build dependencies into a project.
  • Action is valid from:
    • Remote Systems view
    • z/OS Projects view
    • A file or the entire project

  • A remote syntax check is performed on the resource.
    • For a project, a syntax check for each COBOL or PL/I file


  • The compiler tells you which copy or include files were used for the compile.
26
Show Dependencies – Required Properties
27
Show Dependencies – Process
28
Show Dependencies – Add to Subproject (Results)
29
: Show Dependencies –                    MVS Subproject – Workshop – 1 of 5
30
: Show Dependencies –                       MVS Subproject – Workshop – 2 of 5
31
: Show Dependencies – MVS Subproject – Workshop – 3 of 5
32
: Working With Copybooks in an MVS Subproject – Workshop – 4 of 5
33
: Working With Copybooks in an MVS Subproject – Workshop – 5 of 5
34
Local Syntax Check
35
Local Syntax Check Results
36
Remote Syntax Check (from within the Editor)
37
Remote Syntax Check Errors and the Remote Error List
38
Generate JCL (1 of 2)
39
Generate JCL (2 of 2)
40
Submit the JCL to Run the Job
41
Checking Output in JES
42
JES Output: Link edit step
43
JES output: Go Step – 1 of 2
44
JES output: Go Step – 2 of 2
45
: Syntax Checking Workshop – 1 of 3
46
: Generate JCL Workshop – 2 of 3
47
: Working With JCL Jobs Workshop – 3 of 3
48
States of a z/OS Project
  • z/OS Projects can be in either of two states:
  • 1. Online
    • The project is connected to the z/OS system to which the
        project refers
    • You can directly change the data sets that are
        stored in that system




  • 2. Offline
    • The project can only access mainframe resources that were explicitly taken offline
    • This allows you to work even if TSO is down - and you will notice very quick development response time as well J
49
Working Offline (1 of 5)
50
Working Offline (2 of 5)
51
Working Offline (3 of 5)
52
Return to Online State (4 of 5)
53
Subproject Returned to Online State (5 of 5)
54
: MVS Subproject "States"  Workshop
55
Topic Objectives
  • After having completed this topic, you should be able to:
    • Show how to set up projects for host development
    • Illustrate how to use the show dependencies option to find the required files to build a COBOL project
    • Explain how to perform remote and local syntax checking
    • Show where errors are displayed and how to navigate to the position of the error in the source code
    • Describe how to generate execution JCL and submit JCL jobs for processing
    • Describe the difference between online and offline Subproject states