SELCOPY Interactive debug is a major new feature for SELCOPY developers that executes within the
CBL interactive environment (CBLi).
Note: CBLi is NOT a separately licensable product but included within the SELCOPY product bundle.
For more information on the standard features available to CBLi users and also SELCOPY Interactive
product demonstrations, please see the separate
CBLi pages.
SELCOPY Interactive is a Multiple Document Interface (MDI) application supporting
CBLe edit, List and storage type child windows. By default, the following child windows
are displayed when SELCOPY is started:
- SYSIN - SELCOPY Control Statements.
- Work Area - (or Input Record if WORKLEN is not specifed.)
- SYSPRINT - SELCOPY Output Listing.
- TRACE - Executed SELCOPY statements.
Other SELCOPY Interactive windows include:
- WTO Log - SELCOPY Console output.
- SQL Log - SELCOPY DB2 SQL Log.
- @ Pointers - List of @ Pointer values.
- EQUates - List of User assigned EQUated values.
- POS Windows - Storage display of User fields and SELCOPY special positions.
Figure 1. SELCOPY Interactive Window. |
On startup, SELCOPY is loaded and executed so that processing stops prior to execution of the first control
statement. Users can then execute SELCOPY to completion, step through the SELCOPY statements one at a time
or set break points to stop execution at a selected control statement.
SELCOPY storage fields, work area, @pointer and LRECL values can be easily monitored and even updated
over the course of the job execution.
SELCOPY POSitional expressions (represented by an arithmetic combination of @ pointers, EQUate names and
integer values) may also be TRACKed in storage windows. As the value of the expression changes, the target
storage position is highlighted in a user assigned colour.
The SYSIN/SYSIPT window is a CBLe edit view that contains the control statement source file as
required for execution of SELCOPY. This window highlights the current operation
and allows the user to set and unset break points.
If possible, the control statements file is edited read/write. If the file contents are altered during the
SELCOPY execution, then the alterations can be saved and the job rerun using the RR command
or the ReRun menu item.
The contents of the window scroll automatically in order to display the current statement in the
SELCOPY execution. As for any edit view, CBLe commands and macros may be used to manipulate, highlight
and locate data in the view (e.g. FIND, CHANGE, TAG, ALL, SET ZONE, etc.)
In addition to any highlighting of user TRACKed variables, during the course of execution, control
statements are highlighted as follows:
- Next executable SELCOPY statement. Default highlight - pink reverse video.
- Break Point. Default highlight - red reverse video.
Closing the SYSIN window also exits SELCOPY Interactive.
Figure 2. SYSIN Control Statements. |
All CBLe type SELCOPY Interactive windows, including the SYSIN/SYSIPT and SYSPRINT/SYSLST windows,
support the point-and-shoot options popup menu, invoked by hitting PF4.
The menu enables the user to quickly and easily perform commonly used tasks which include opening
a POS storage window and tracking pointer variables.
The cursor position within the edited data identifies the focus text to be referenced in items of the
point-and-shoot menu.
Figure 3. Point-and-Shoot Options Popup Menu. |
SELCOPY Interactive intercepts output to SYSPRINT/SYSLST and displays it in the SYSPRINT
window instead. For this reason, SYSPRINT or SYSLST does not need to be
allocated and no output is written to the system spool.
The SYSPRINT window is an edit view which supports execution of CBLe commands and macros.
The contents of the window scroll automatically to display any new output to SYSPRINT/SYSLST.
Data written to the SYSPRINT window is maintained until the SELCOPY Interactive
session is closed. Therefore, so long as the SELCOPY Interactive session is not closed, the job may
be re-run any number of times without losing the SYSPRINT/SYSLST output from a previous run.
Figure 4. SYSPRINT Window. |
The current status of the user work area (or input record buffer if no work area is allocated)
is displayed in the Work Area and POS storage display windows.
Note, if WORKLEN is not supplied, the Work Area window has the title, Current Input Record.
The contents of the storage window may be scrolled to display different positions in the work area.
Alternatively, storage starting at a specific position in the work area may be displayed simply by
entering the position in the first work area position, in the first row of the storage window
(highlighted in red by default.)
Data in the work area may be altered manually at any point during the run by overtyping text in
either the character or hexadecimal display. A change to text in the one display will
automatically be reflected in the other.
This allows users to test conditions based on alternative input data without having to re-start
the SELCOPY run.
If a TRACKed pointer position is within the storage window display, then that position is highlighted
with a user nominated colour in reverse video.
Figure 5. Work Area/Current Input Record Window. |
Any number of storage display windows may be opened pointing to the start of the work area
(command: Window WORKLEN) or pointing at any position that may be resolved by a valid SELCOPY POS expression.
POS expressions may contain any combination of SELCOPY reserved POS names (e.g. DATE), @ pointers,
EQUate names and numeric integers. e.g.
At each break in the SELCOPY execution, the POS expression is re-evaluated and the
contents of the POS window redisplayed starting at the new position in storage.
Figure 6. POS Expression Window. |
Furthermore, the appearance of any individual storage window may be updated
using the storage window display options popup menu defined on PF5 by default.
Figure 7. Storage Window Popup Menu. |
The TRACE window is a CBLe edit view that contains all the SELCOPY control
statements at which processing has been stopped. i.e the point at which a break point
was encountered. Each logged statement begins with the statement's selection id.
Note that the STEPINTO and STEPOVER commands dynamically set and unset break points to
stop execution after the next control statements to be executed. Therefore, when stepping through the
control statements, the TRACE window displays a log of the statements executed so far.
Figure 8. Trace Window Log. |
The SQL Log window is an edit view which supports execution of CBLe commands and macros.
A SELCOPY job that submits SQL statements to a DB2 data base, also writes detailed
information about the SELCOPY SQL processing to a data set allocated to ddname
CBLSQLOG.
SELCOPY Interactive intercepts output to CBLSQLOG and displays it in the SQL Log
window instead. Because of this, CBLSQLOG does not need to be allocated to display this
information.
Figure 9. SQL Window Log. |
The WTO Log window is an edit view which supports execution of CBLe commands and macros.
SYSLOG output to the Operator's Console, TSO, CMS or ICCF user terminals is intercepted
by SELCOPY Interactive and is displayed in the WTOLOG window instead.
The WTO Log window is opened automatically when SYSLOG output is received. This may be
warning/error messages returned by SELCOPY, or output generated by a SELCOPY LOG operation.
Figure 10. WTO Window Log. |
The Equates window and @ Pointers window are list type windows supporting
select, sort and filter.
All equated names and their values, set by the user via an EQU statement and
subsequently allocated by SELCOPY during control statement analysis, are displayed in
the Equates window.
The current status of the @ pointer, LRECL and of all the user @ pointers used in
the current execution of SELCOPY, is displayed in the @ Pointer window.
Figure 11. Equates List Window. |
Figure 12. @ Pointers List Window. |
The CBL Interactive Environment and SELCOPY Interactive take full advantage of large 3270 terminal
sizes and colour display that may be achieved using IBM-Dynamic TN3270E VTAM logmodes.
CBL recommends that system administrators configure the TN3270 servers and 3270 emulation
software to allow users to start emulated terminals with non-standard 3270 terminal sizes.
See the CBLi 3270 Emulators page and
IBM's Techdocs library entry,
Creating dynamic 3270 screen size definitions for increased productivity
for details.
Figure 13. SELCOPY Interactive 62x160. |