# Compaq ACMS for OpenVMS

# Writing Applications

Order Number: AA-LC14F-TE

# December 1999

This document describes how to define transaction processing applications by using the Compaq ACMS for OpenVMS software. This document also describes how to write and migrate Compaq ACMS for OpenVMS applications for OpenVMS Alpha systems.

Revision/Update Information: This manual supersedes Digital ACMS for OpenVMS Writing Applications, Version 4.2, and Digital ACMS for OpenVMS Writing and Migrating Applications, Version 4.2.

Operating System: Compaq OpenVMS Alpha Version 6.2 or higher, excluding Version 7.0
Compaq OpenVMS VAX Version 6.2 or higher, excluding Version 7.0

Software Version: Compaq ACMS Version 4.3 for OpenVMS

Compaq Computer Corporation Houston, Texas

December 1999

Compaq Computer Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description.

Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Compaq Computer Corporation or an authorized sublicensor.

© 1999 Compaq Computer Corporation

Compaq, the Compaq logo, and the DIGITAL logo are registered in the U.S. Patent and Trademark Office.

ACMS, ACMS Desktop, ALL-IN-1, Alpha, AlphaServer, DATATRIEVE, DEC, DECdesign, DECdtm, DECforms, DEC FORTRAN, DECnet, DECset, DIGITAL, MicroVAX, OpenVMS, PATHWORKS, Tru64, ULTRIX, VAX, VAX C, VAX COBOL, VAX DATATRIEVE, VAX DOCUMENT, VAX FMS, VAX FORTRAN, VAX RMS, VAX SMG, VAX 9000, VMS, VMScluster, VT, VT100, VT200, and VT300 are trademarks of Compaq Computer Corporation.

The following are third-party trademarks:

IBM is a registered trademark of International Business Machines, Inc.
Oracle is a registered trademark of Oracle Corporation.
Oracle CODASYL DBMS, Oracle CDD/Administrator, Oracle CDD/Repository, Oracle Rdb, Oracle SQL/Services, Oracle Trace, and Oracle Trace Collector are trademarks of Oracle Corporation.

ZK6609

The OpenVMS documentation set is available on CD-ROM.

This document was prepared using VAX DOCUMENT, Version V3.2-1n.

Contents | Index

# Preface

This manual explains how to define transaction processing applications using Compaq ACMS for OpenVMS (ACMS) software. In particular, this manual describes:

- How to use the Application Definition Utility (ADU)
- How to write definitions of multiple-step tasks, task groups, menus, and applications

# Intended Audience

To use this manual effectively, you should be experienced in designing or defining online applications but not necessarily experienced with ACMS application design or definition. (Less experienced applications programmers can review Compaq ACMS for OpenVMS Getting Started before reading this manual.)

Read this manual if you plan to use ADU to create and process task, task group, application, and menu definitions, or if you are working with the completed definitions.

You should be familiar with the Compaq ACMS for OpenVMS (OpenVMS) operating system.

# Document Structure

This manual contains two parts: Part 1 describes how to use ACMS to define transaction-processing applications. Part 2 describes how to write ACMS applications for an OpenVMS Alpha system and how to migrate an ACMS application from an OpenVMS VAX system to an OpenVMS Alpha system. The chapters and appendixes are described in the following table:

Part 1
Chapter 1 | Introduces ADU and explains how to set up your environment to use ADU and create ACMS definitions.
Chapter 2 | Provides an introduction to the design and definition of ACMS tasks; explains how to define data entry, inquiry, and update multiple-step tasks.
Chapter 3 | Describes the DECforms interface to ACMS; shows how to write, compile, and link DECforms escape units.
Chapter 4 | Describes and shows how to use the four types of workspaces: task, system, group, and user.
Chapter 5 | Shows how to call a task from another task; describes the rules for passing workspaces between tasks.
Chapter 6 | Describes how to use detached tasks for applications that need batch-style processing, where no user interaction occurs through a terminal or device.
Chapter 7 | Shows how to define tasks that start and end transactions involving multiple resource managers, such as databases or files.
Chapter 8 | Describes the different types of errors that can interrupt the execution of tasks, and shows how to define tasks that test for and recover from task execution errors.
Chapter 9 | Explains how to queue tasks in an application for later processing.
Chapter 10 | Explains how to write task group definitions to establish common characteristics or shared resources for a group of tasks.
Chapter 11 | Explains how to write application definitions to assign control characteristics for tasks and applications.
Chapter 12 | Explains how to write menu definitions.
Chapter 13 | Explains how to implement existing programs, DCL commands, and DATATRIEVE procedures as ACMS tasks.
Chapter 14 | Explains how to develop applications that use the ACMS Request Interface.
Part 2
Chapter 15 | Describes ACMS on OpenVMS Alpha.
Chapter 16 | Describes how to write applications to run on an OpenVMS Alpha system.
Chapter 17 | Explains how to migrate ACMS applications from an OpenVMS VAX system to an OpenVMS Alpha system.
Chapter 18 | Describes the I/O options and restrictions in a distributed environment.
Chapter 19 | Describes system management on OpenVMS Alpha.
Part 3
Appendix A | Shows how to modify the standard ACMS menu format using by DECforms.
Appendix B | Shows how to modify the standard ACMS menu format by using TDMS.
Appendix C | Shows how to use CDO to track relationships between ACMS entities in the CDD dictionary.
Appendix D | Demonstrates how to use the optional Language-Sensitive Editor productivity tool to enter ACMS code on line.
Appendix E | Lists the files included with the ACMS Request Interface examples and software supplied by ACMS.
Appendix F | Explains how to modify the FMS menu interface that you use with the ACMS Request Interface.
Appendix G | Describes how to use components of Compaq TP Web Connector, including the ADU extension, to provide Windows NT clients with access to ACMS applications.
Appendix H | Contains a list of references to platform-specific files in an ACMS application.
Appendix I | Contains a list of common errors with an explanation and an appropriate user action.

# ACMS Help

ACMS and its components provide extensive online help.

- DCL level help
  Enter HELP ACMS at the DCL prompt for complete help about the ACMS command and qualifiers, and for other elements of ACMS for which independent help systems do not exist. DCL level help also provides brief help messages for elements of ACMS that contain independent help systems (such as the ACMS utilities) and for related products used by ACMS (such as DECforms or Oracle CDD/Repository).
- ACMS utilities help
  Each of the following ACMS utilities has an online help system:

  > ACMS Debugger
  > ACMSGEN Utility
  > ACMS Queue Manager (ACMSQUEMGR)
  > Application Definition Utility (ADU)
  > Application Authorization Utility (AAU)
  > Device Definition Utility (DDU)
  > User Definition Utility (UDU)
  > Audit Trail Report Utility (ATR)
  > Software Event Log Utility Program (SWLUP)

  The two ways to get utility-specific help are:
  - Run the utility and type HELP at the utility prompt.
  - Use the DCL HELP command. At the "Topic?" prompt, type @ followed by the name of the utility. Use the ACMS prefix, even if the utility does not have an ACMS prefix (except for SWLUP). For example:

        Topic? @ACMSQUEMGR
        Topic? @ACMSADU

    However, do not use the ACMS prefix with SWLUP:

        Topic? @SWLUP

  Note that if you run the ACMS Debugger Utility and then type HELP, you must specify a file. If you ask for help from the DCL level with @, you do not need to specify a file.
- ACMSPARAM.COM and ACMEXCPAR.COM help
  Help for the command procedures that set parameters and quotas is a subset of the DCL level help. You have access to this help from the DCL prompt, or from within the command procedures.
- LSE help
  ACMS provides ACMS-specific help within the LSE templates that assist in the creation of applications, tasks, task groups, and menus. The ACMS-specific LSE help is a subset of the ADU help system. Within the LSE templates, this help is context-sensitive. Type HELP/IND (PF1-PF2) at any placeholder for which you want help.
- Error help
  ACMS and each of its utilities provide error message help. Use HELP ACMS ERRORS from the DCL prompt for ACMS error message help. Use HELP ERRORS from the individual utility prompts for error message help for that utility.
- Terminal user help
  At each menu within an ACMS application, ACMS provides help about terminal user commands, special key mappings, and general information about menus and how to select tasks from menus.
- Forms help
  For complete help for Compaq DECforms or Compaq TDMS, use the help systems for these products.

# Related Documents

The following table lists the books in the Compaq ACMS for OpenVMS documentation set.

ACMS Information | Description
--- | ---
Compaq ACMS Version 4.3 for OpenVMS Release Notes+ | Information about the latest release of the software
Compaq ACMS Version 4.3 for OpenVMS Installation Guide | Description of installation requirements, the installation procedure, and postinstallation tasks.
Compaq ACMS for OpenVMS Getting Started | Overview of ACMS software and documentation. Tutorial for developing a simple ACMS application. Description of the AVERTZ sample application.
Compaq ACMS for OpenVMS Concepts and Design Guidelines | Description of how to design an ACMS application.
Compaq ACMS for OpenVMS Writing Applications | Description of how to write task, task group, application, and menu definitions using the Application Definition Utility. Description of how to write and migrate ACMS applications on an OpenVMS Alpha system.
Compaq ACMS for OpenVMS Writing Server Procedures | Description of how to write programs to use with tasks and how to debug tasks and programs. Description of how ACMS works with the APPC/LU6.2 programming interface to communicate with IBM CICS applications. Description of how ACMS works with third-party database managers, with Oracle used as an example.
Compaq ACMS for OpenVMS Systems Interface Programming | Description of using Systems Interface (SI) Services to submit tasks to an ACMS system.
Compaq ACMS for OpenVMS ADU Reference Manual | Reference information about the ADU commands, phrases, and clauses.
Compaq ACMS for OpenVMS Quick Reference | List of ACMS syntax with brief descriptions.
Compaq ACMS for OpenVMS Managing Applications | Description of authorizing, running, and managing ACMS applications, and controlling the ACMS system.
Compaq ACMS for OpenVMS Remote Systems Management Guide | Description of the features of the Remote Manager for managing ACMS systems, how to use the features, and how to manage the Remote Manager.
Online help+ | Online help about ACMS and its utilities.

+Available on line only.

For additional information on the compatibility of other software products with this version of ACMS, refer to the Compaq ACMS for OpenVMS Software Product Description (SPD 25.50.xx).

For additional information about the Open Systems Software Group (OSSG) products and services, access the following OpenVMS World Wide Web address:

    http://www.compaq.com/openvms

# Reader's Comments

Compaq welcomes your comments on this manual.

Print or edit the online form SYS$HELP:OPENVMSDOC_COMMENTS.TXT and send us your comments by:

Internet | openvmsdoc@compaq.com
Fax | 603 884-0120, Attention: OSSG Documentation, ZKO3-4/U08
Mail | Compaq Computer Corporation OSSG Documentation Group, ZKO3-4/U08 110 Spit Brook Rd. Nashua, NH 03062-2698

# How To Order Additional Documentation

Use the following World Wide Web address for information about how to order additional documentation:

    http://www.compaq.com/openvms

To reach the OpenVMS documentation website, click the Documentation link.

If you need help deciding which documentation best meets your needs, call 1--800--ATCOMPA.

# Conventions

The following conventions are used in this manual:

Ctrl/ x | A sequence such as Ctrl/ x indicates that you must press and hold the key labeled Ctrl while you press another key or a pointing device button.
PF1 x | A sequence such as PF1 x indicates that you must first press and release the key labeled PF1 and then press and release another key or a pointing device button.
`[Return]` | In examples, a key name enclosed in a box indicates that you press a key on the keyboard. (In text, a key name is not enclosed in a box.) In the HTML version of this document, this convention appears as brackets rather than a box.
... | A horizontal ellipsis in examples indicates one of the following possibilities: Additional optional arguments in a statement have been omitted. The preceding item or items can be repeated one or more times. Additional parameters, values, or other information can be entered.
. . . | A vertical ellipsis indicates the omission of items from a code example or command format; the items are omitted because they are not important to the topic being discussed.
`Monospace text` | Monospace type indicates code examples and interactive screen displays. In the C programming language, monospace type in text identifies the following elements: keywords, the names of independently compiled external functions and files, syntax summaries, and references to variables or identifiers introduced in an example. In the HMTL version of this document, this text style may appear as italics.
- | A hyphen at the end of a command format description, command line, or code line indicates that the command or statement continues on the following line.
numbers | All numbers in text are assumed to be decimal unless otherwise noted. Nondecimal radixes---binary, octal, or hexadecimal---are explicitly indicated.
bold text | Bold text represents the introduction of a new term or the name of an argument, an attribute, or a reason. In the HMTL version of this document, this text style may appear as italics.
italic text | Italic text indicates important information, complete titles of manuals, or variables. Variables include information that varies in system output (Internal error number), in command lines (/PRODUCER= name), and in command parameters in text (where dd represents the predefined code for the device type).
UPPERCASE | Uppercase text indicates the name of a routine, the name of a file, the name of a file protection code, or the abbreviation for a system privilege. In command format descriptions, uppercase text is an optional keyword.
UPPERCASE | In command format descriptions, uppercase text that is underlined is required. You must include it in the statement if the clause is used.
lowercase | In command format descriptions, a lowercase word indicates a required element.
<lowercase> | In command format descriptions, lowercase text in angle brackets indicates a required clause or phrase.
( ) | In command format descriptions, parentheses indicate that you must enclose the options in parentheses if you choose more than one.
[| |] | In command format descriptions, vertical bars within square brackets indicate that you can choose any combination of the enclosed options, but you can choose each option only once.
{| |} | In command format descriptions, vertical bars within braces indicate that you must choose one of the options listed, but you can use each option only once.

# References to Products

The ACMS documentation set to which this manual belongs often refers to certain products by abbreviated names:

Abbreviation | Product
--- | ---
ACMS | Compaq ACMS for OpenVMS Alpha, and Compaq ACMS for OpenVMS VAX
Ada | DEC Ada for OpenVMS Alpha Systems, and DEC Ada for OpenVMS VAX Systems
BASIC | DEC BASIC for OpenVMS, and VAX BASIC
C | DEC C for OpenVMS Alpha Systems, and DEC C for OpenVMS VAX Systems
CDD | Oracle CDD/Administrator, and Oracle CDD/Repository
COBOL | DEC COBOL for OpenVMS Alpha Systems, and VAX COBOL for OpenVMS VAX Systems
DATATRIEVE | DEC DATATRIEVE for OpenVMS Alpha, and DEC DATATRIEVE for OpenVMS VAX
DBMS | Oracle CODASYL DBMS
DECforms | Compaq DECforms
FORTRAN | DEC Fortran for OpenVMS Alpha Systems, and DEC Fortran for OpenVMS VAX Systems
OpenVMS | The Compaq OpenVMS Alpha operating system, and the Compaq OpenVMS VAX operating system
Pascal | DEC Pascal, and VAX Pascal
PL/I | PL/I for VAX VMS
Rdb | Oracle Rdb
SQL | The SQL interface to Oracle Rdb
TDMS | Compaq TDMS

Next | Contents | Index