Tags:
create new tag
view all tags

Using the APPX/TMUNIX Scripting Feature

The following information is only applicable when running APPX in character mode (ie, not using the APPX Desktop or HTML clients) or using the old Presentation Manager client (ie, running 'appx.exe -c' to connect to a remote server or running 'appx.exe' directly on the server).

Appx now uses the following environment variables to control the Appx scripting feature:

APPX_TST_DIR
APPX_SCRIPT_IN
APPX_SCRIPT_OUT

The scripting feature recognizes scripts of the following form:

(This script will enter application design, traverse to input process definition, muck around a little, then exit.)

!
! APPX MENU
#USER 2
! APPLICATION DESIGN
TST10
#RETURN
#USER 2
! PROCESS MANAGEMENT
#USER 3
! PROCESS (INPUT)
#CURSOR DOWN
#CURSOR DOWN
#CURSOR RIGHT
#CURSOR RIGHT
#DELETE PREV CHARACTER
#DELETE PREV CHARACTER
# RETURN
! FRAME (INPUT)
#END
! PROCESS (INPUT)
#END

Blank lines and lines beginning with an exclamation point (!) are treated as comments (and ignored). Lines beginning with a pound sign (#) are considered to be the names of Appx options. Any other lines are considered literal text which is provided to Appx as if the user had entered the characters at the keyboard.

You can substitute environment variables into a script using "#$name" where "name" is the name of an environment variable. You can use this as a way to automate repetitive tasks such as data file management. For example, given the following script:

! Filename: restruct.apx
!
! Restructure a database/application
! set $ap to the name of the application
! set $db to the name of the database
!
#USER 4
#$db
#$ap
#RETURN
#USER 4
#END
#END
#END

You could restructure a database/application with the following Unix command line:

$ APPX_SCRIPT_IN=restruct.apx ap=TAR db=MDB appx

Of course the easiest way to build this script would be to record the keystrokes and then edit in the environment variables for the text you want to replace.

NOTE: Because comments start with a "!" and options start with a "#", you will NOT be able to record/playback any strings which start with either of those characters. If the playback facility finds an option line which is doesn't understand (such as #NONSENSE), it will play back a #CANCEL instead. If you must record a string that begins with a "#" or a "!", begin the string with a junk character and then go back
and delete the character.

APPX_SCRIPT_OUT

If the APPX_SCRIPT_OUT environment variable is defined, Appx will use the file named by that variable to record keymap independent keystrokes. As each option is entered by the user, Appx records the option name in the output script file. Non-option keystrokes are echoed to the script file. Appx will also record the current process name so that script files are (reasonably well) documented and more easily maintained.

APPX_SCRIPT_IN

If the APPX_SCRIPT_IN environment variable is defined, Appx will use the file named by that environment variable as the source of input. Appx options and literal text will be read from the input script file. If the input script file becomes exhausted, Appx will
begin reading from stdin.

APPX_TST_DIR

If the APPX_TST_DIR environment variable is defined, Appx will record screen dumps into files in that directory. Appx will create two subdirectories called:

$APPX_TST_DIR/expect

$APPX_TST_DIR/actual

If Appx is recording a script (because the APPX_SCRIPT_OUT environment variable is set), Appx will record screen dumps into the $APPX_TST_DIR/expect directory, otherwise, Appx will record screen dumps into the $APPX_TST_DIR/actual directory. The screen dumps are editable ascii files whose names are of the form screen001, screen002, etc.. Appx will record screen dumps each time an interceptable Appx
option is recorded (or played back).

Also, if APPX_TST_DIR is defined, the normal time/date display is suppressed so that screen dumps will not be time sensitive.

The APPX_SCRIPT_IN, APPX_SCRIPT_OUT, and APPX_TST_DIR environment variable can be used in any combination.

APPX Script In APPX Script Out APPX TST DIR  
SET     Playback, no screen dumps
  SET   Record, no screen dumps
    SET Input comes from keyboard,dump screens
SET SET   Playback & record (annotates script w/proc names)
SET   SET Playback & dump screens (Regression test)
  SET SET Record and dump screens (record a test)
SET SET SET Playback, record, dumps screens (why bother?)

 

The most useful combinations are the "record a test" and the "regression test" cases. A regression test is built by record the script and screen dumps (into $APPX_TST_DIR/expect) to establish the baseline screens.

A regression scenario is tested by playing back the script, capturing the screen dumps (into $APPX_TST_DIR/actual), then "diff"ing the expect and actual directories. The 'diff' command can take two directories as arguments in which case it compares each file in the two directories, therefore the command "diff expect actual" can be used to verify a run of a regression test.

APPX_SCRIPT_STEP

If the environment variable APPX_SCRIPT_STEP is not blank in script playback mode, APPX will pause before each option key is played. You must press a key to resume until the next APPX option key is to be sent. While paused, you can suspend the script, take over control of the keyboard and then resume the script.
While paused, you can press the following keys:

c continue running the script without stepping
p pause, you take over the keyboard until you hit OPT_MACRO (Ctrl-R).
e end the script

Anything else will step through the script until the next Option would be played

Comments:

Read what other users have said about this page or add your own comments.



Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2016-02-18 - JeanNeron
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback