Why Z Open Automation Utilities

Job Control Language (JCL) has been used for a long time for performing or automating a set of steps on the z/OS operating system. When it was developed, the punch card was king and when it was transformed to be programmed from a keyboard, 80 character lines or records with the first 72 characters containing code seemed reasonable. Though JCL has evolved with the times, it is inevitably foreign to people familiar with environments such as Linux, UNIX, and Windows.

On z/OS, as an alternative to using JCL in MVS, developers can write scripts to automate tasks in the UNIX System Services (USS) environment. Such scripts are easier to understand and to manage, and many open source tools are also available in UNIX System Services.

However, there is a gap in some cases, and z/OS developers have to fall back to submitting JCL jobs, which requires z/OS specific knowledge. In addition, JCL jobs are asynchronous, which means you must submit them to batch and wait for the result; as a result, they do not fit in well with the rest of the script, which is typically synchronous. For example, if you want to run an MVS command, such as IDCAMS, to work with VSAM data sets, you need to create JCL, submit JCL, poll until the JCL completes, then interpret the results from UNIX System Services.

How Z Open Automation Utilities can help

IBM® Z Open Automation Utilities (ZOAU) fills in the gap by providing the underlying runtime to support executing automation tasks on z/OS via shell commands and Python. With ZOAU, you can run traditional MVS commands, such as IEBCOPY, IDCAMS, and IKJEFT01, as well as perform a number of data set operations in the scripting language of your choice.

ZOAU is useful for z/OS developers who want to automate tasks that access MVS resources.

Run commands from a UNIX System Services command line

ZOAU is designed as a natural way for programmers familiar with Linux and UNIX to use the UNIX System Services environment directly to access traditional MVS resources such as data sets directly without the need for JCL. The utilities have a name and syntax that is familiar to UNIX developers. For example, you can use the dls command to list data sets, which has a similar syntax and output to the ls command that is available on UNIX and Linux environments.

The ZOAU commands are true UNIX System Services commands and support piping and redirection of stdin, stdout, and stderr. This makes it easy and natural to incorporate the ZOAU commands into your shell and bash scripts, with no complex dependencies.

Man pages are provided for the ZOAU commands so that you can learn the details of the commands in the same way that you would as for other Linux or UNIX commands.

Call APIs in Python programs

The idea is extended to the Python programming language as well. ZOAU provides easy-to-use class libraries for accessing MVS resources such as data sets directly from the language you want, without requiring installation or configuration of other software.

Create your own libraries in other programming languages

You can also create your own libraries in other programming languages, such as Node.js, for MVS operation by using the shared library provided by ZOAU.

Benefits of ZOAU

  • Enables easier calling of MVS utilities compared with JCL
  • Provides natural coding experience on UNIX System Services
  • Provides interfaces in modern programming languages

For more information and examples, see Using commands and APIs provided by ZOAU.