Overview

Master the art of writing functions in the Tandem Advanced Command Language (TACL) progam in this 5-day course. Through student projects and hands-on labs, you will gain valuable experience with TACL programming. After completing this course, you will be able to write macros and routines, perform file I/O, use structured data, and write server functions.

Read more

Prerequisites

  • Concepts and Facilities course
  • Knowledge of at least one other programming language
  • At least six months of programming experience

Audience

  • System programmers
  • System and network managers
  • Application designers
  • Application programmers
  • System analysts
  • Data communications programmers and analysts
Read more

Delegates will learn how to

  • Overview of TACL features.
  • Directories and segments.
  • writing functions-macros.
  • Writing functions - #LOOP.
  • Writing functions - debugging.
  • Writing functions - routines.
  • Inline processing.
  • Define process.
  • Using DEFINEs.
  • TACL variables.
  • Editing variables.
  • Writing functions - #IF.
  • Writing functions - #CASE.
  • Writing functions - file I/O.
  • Using structures.
  • Writing functions - server files.
  • Writing functions - exception.
Read more

Outline

overview of TACL features

  • Productivity aids provided by TACL: HISTORY, FC, ? , ! HELP facility
  • Function key, custom prompts, file name templates, and macro files
  • TACL features as a programming language

TACL variables

  • Obtaining information about variables using either commands or built-in functions
  • Using commands or built-in functions to create, initialize, modify, and eliminate variables
  • Concept of a 'frame' and how it relates to managing variables
  • Variable stacks and their levels: what they are and how to create, reference, and eliminate them
  • Syntax rules for writing TACL functions
  • Lab Exercise (20 minutes): Learn and understand how to logon and use TACL function keys

directories and segments

  • Creating a segment file containing a library function
  • Using the existing segment file by attaching it to a directory
  • Getting information on the segment file
  • Syntax rules for writing TACL functions
  • Lab Exercise (30 minutes): Learn to create and use a segment file

editing variables

  • Performing variable file I/O
  • Performing global editing of a variable
  • Performing line editing of a variable
  • Performing character editing of a variable
  • Locating the position of a string in a variable
  • Extracting lines and characters from a variable

writing functions-macros

  • Syntax required to write macro functions
  • TACL's handling of arguments to macro functions
  • TACL's expansion of macro functions
  • Writing macro functions

writing functions - #IF statements

  • Write functions that use the TACL #IF |THEN| |ELSE| construct
  • Lab Exercise (1 hour)
  • Describe the syntax required to write functions in general and macro type functions in particular
  • Describe the different forms of the 'control' built-in #IF and contrast when to use one form or the other (#IF or #IF NOT)
  • Write a macro type function that accepts one or more arguments and ensures that the arguments are correct by making use of the 'control' built-in #IF

writing functions - #LOOP statements

  • Write functions that use the TACL #LOOP |DO| |UNTIL| construct
  • Write functions that use the TACL #LOOP |WHILE| |DO| construct
  • Lab Exercise (1 hour)
  • Describe the syntax required to write general functions, with particular focus on macro type functions
  • Describe the two forms of the 'control' built-in #LOOP and determine when to use #LOOP | DO | | UNTIL | or #LOOP | WHILE | | DO |
  • Write a macro type function that outputs all of the volume names on the system

writing functions - #CASE statements

  • Writing functions that use the TACL #CASE construct

writing functions - debugging

  • Using the TACL debugging facility provided by TACL to aid in getting functions to work
  • Lab Exercise (2 hours)
  • Start and stop the Debugger
  • Set and clear breakpoints
  • Display and modify the contents of a variable
  • Single step through your function and resume execution of your function
  • Describe the syntax for #IF, #LOOP, and #CASE constructs
  • Write a function that employs the #CASE built-in

writing functions - file I/O

  • How TACL is able to do device independent I/O
  • Using #REQUESTER and #WAIT to perform either 'waited' or 'no-waited' I/O to files and devices

writing functions - routines

  • Writing 'Routine' type functions and use #ARGUMENT, #MORE, and #REST
  • Lab Exercise (3 hours)
  • Modify and write routine functions
  • Describe the syntax and usage of #ARGUMENT and #MORE
  • Describe additional capabilities that routines offer that macros do not
  • Describe the use of the built-ins: #MYSYSTEM, #PROCESSORSTATUS, and #PROCESSORTYPE, #LOOP, and #CASE

using structures

  • Using a STRUCT to access data

inline processing

  • Performing process I/O using the INLINE facility
  • Controlling the display of the process output
  • Logging the process output to a variable debugger
  • Lab Exercise (30 minutes)
  • Describe the syntax required to write INLINE functions in general
  • Use the INLINE facility for interfacing with the PERUSE utility
  • Practice coding techniques using the variable editing built-insReview the usage of #INPUTV, #LOOP, and #IF
  • Describe the use of #INLINEPREFIX, INLPREFIX, #INLINETO, and INLTO
  • Write a macro-type function that purges jobs from the spooler and prompts the user for permission to purge each job

writing functions - server files

  • How the server file facility provides for communication between a TACL function and a process it has activated
  • Situations in which it is appropriate to use implicit server files
  • Writing functions that use implicit server files
  • Lab Exercise (45 minutes)
  • Describe the syntax and usage of functions that employ implicit servers
  • Describe the usage of the RUN-options:
  • INV <var> DYNAMIC PROMPT <var>
  • OUTV <var>, and STATUS <var>
  • Describe the usage of the following built-ins:
  • #APPEND, #APPENDV
  • #EXTRACT, #EXTRACTV
  • #WAIT
  • #REQUESTER
  • Describe the conditions under which to use implicit servers
  • Write functions that make use of implicit servers

define process

  • Define Process facility
  • Using the Define Process variables to start, stop, and manage processes
  • Specifying where complete information on the Define Process facility can be found

writing functions - exception handling

  • Three types of exceptions that TACL allows a function to handle in its own way
  • Using the built-in functions #ERRORTEXT, #EXCEPTION, #FILTER, #RAISE, #RESET, and #RETURN
  • Structure and the organization of a function that contains 'exception handling' code
  • Writing functions that contain their own 'exception handling' code

using DEFINEs

  • Four types of DEFINE classes
  • Their usage and comparing them to ASSIGNs
  • Using the DEFINE command within TACL to create a DEFINE, delete a DEFINE, and alter a DEFINE
Read more

Why choose QA

Dates & Locations

Frequently asked questions

See all of our FAQs

How can I create an account on myQA.com?

There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.

If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".

If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.

Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.

How do QA’s virtual classroom courses work?

Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.

We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.

Learn more about our Virtual Classrooms.

How do QA’s online courses work?

QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.

All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.

Learn more about QA’s online courses.

When will I receive my joining instructions?

Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.

When will I receive my certificate?

Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.

Contact Us

Please contact us for more information