The Jazz Users’ Guide is a series of tutorial web pages showing you how to use Jazz for a variety of programming tasks. Other web pages, such as those in the Language Reference series, are designed for reference. The tutorial and reference web pages cross reference each other, and are designed to be used together. If you want to see how to write a report program, start with a user guide page showing a report program. If you want to understand all the options and rules of a PRINT statement, use a language reference page. The Users’ Guide is like a textbook, while the Language Reference is like a dictionary.
There are the following pages in the Users’ Guide series. You should read Introduction to Jazz first, but otherwise the pages can be read in any order except where indicated.
These pages apply to all types of programming
· Introduction to Jazz. This section should be read first. It introduces the key concepts of Jazz and gives some examples from the simplest problem type, batch reporting.
· Training Objects. You may like to create the training files UG1, CustF, and FR, that are used in various demonstrations and tutorials.
· Jazz Logic. IF, CASE, and LOOP statements allow you to control your program’s logic. ROUTINE and PARAGRAPH statements allow you to improve the clarity of your code. CALL and INVOKE combine with interface descriptions to allow you to structure your code, reuse logic, and interact with pre-written and remote services.
· External I/O. Defining a file as type XIO means that I/O routines developed by you or your software vendor are used to access the data. This chapter shows you how this feature is used. It can be complex, so avoid using XIO unless you have no option.
· Date and Time Fields. This chapter shows you how you can use DATE, TIME, and DATETIME fields in assignments, ACCEPT (validation), PRINT and SEND statements (Display).
· Conversion from Easytrieve. Easytrieve was the inspiration for the very first version of MANASYS, which was essentially “Easytrieve that generated PL/I”, and if you’re familiar with Easytrieve then you’ll see echoes of it in the Initial Demonstration. MANASYS Jazz is the easiest and best way of converting Easytrieve to COBOL. Click Converting Easytrieve Data, Creating the Program Structure and Converting Easytrieve Logic, for even more detailed information
This section covers various types of batch programming. You can skip this if you are developing CICS or Web Service programs.
· Data Conversion is basically a process of copying files with changes. Jazz provides special facilities to manage this process efficiently by generating Excel spreadsheets, and then using these spreadsheets to create the conversion programs.
· Report Designing. With PRINT most basic data reporting can be simply accomplished with basic Jazz, but what if you want more! The Jazz report designer allows you do graphically design a report as you would a screen, specifying logic on control break, and getting exactly the result that you want.
· Creating Test Data. MANASYS Jazz makes it easy to create test data files, either by selecting and modifying production data, or from program logic alone. Well designed test data is a valuable software asset.
· Merge Processing. A batch program may read two sequential files, updating the first from the second, and writing a new copy of the first file with the results of the update
This covers programming for 3270 screens, i.e. “Classical” CICS. If this is relevant to you, read these chapters in order.
Jazz On Line Programming: Introduction. The first chapter on classical CICS programming. Creating a CICS menu program, and a program that displays a record with a 3270-type display.
· Jazz On Line Programming, Part 2. Updating Records. Extending the preceding chapter, this shows how you can update data.
· Jazz On Line Programming, Part 3. Handling Multiple Records. Here we handle parent/child relationships, building a very simple order-entry system. Still with classical CICS programming using 3270-type displays.
You should read these chapters in order, except Invoking Web Services which can be skipped or read later.
· Service-Oriented Architectures and Web Services. Here we introduce the concepts and terminology of Service Oriented Architectures, providing essential background so that you can both provide and request Web Services with Jazz.
· Providing Web Services shows you how to write a Web Service Provider using either COMMAREA or CHANNEL communication. The example programs are little more than “Hello World”, but once developed you’d have the basic knowledge to write programs providing your mainframe data (VSAM? DB2?) through a web service so that it can be displayed on a web page.
You can skip this chapter is it isn’t relevant to you.
· Invoking Web Services covers the reverse situation, where your program invokes an existing web service. The chapter shows you how to discover a web service and request data from it. Again, only with a very basic “Get time” service, but giving you the basic principles that you’ll need for real problems.
· Real Web Services. With the basic technology covered, now we start to deal with real problems: accessing data from VSAM and providing it to an external program, and then extending this to update the VSAM data through a web service. In a CICS update record locking is essential but excessive locking can bring an on-line system to a halt, so we need “pseudo-locking” logic that minimises the time that actual locks are held. With classical CICS programs Jazz managed this by storing a copy of the original record in COMMAREA, but this won’t work in Web Services so Jazz includes an encrypted hash total in the output and input message.
· Client Programming. For JSON web services Jazz can generate a client interface encapsulating all the rules of the CICS web service, presenting to the client methods and properties that can be discovered by Intellisense™ and used, like any other .NET™ object.
· Integrating Micro Focus Enterprise Developer with Jazz turbo-charges both products, multiplying the productivity gains available from either individually, and facilitating the world of distributed development (Mainframe/Linux/Windows etc).