Suprtoolbox

Suprtoolbox Workbench

The Suprtoolbox Workbench IDE is a powerful toolkit for Suprtool development. The editor for Suprtool and SuprtoolSQL language development provides features like code completion, syntax highlighting and content outline that helps developers productively create efficient Suprtool code. It is packaged with other useful eclipse plug-ins that greatly increase the productivity of Suprtool and SuprtoolSQL developers.

Among these are Remote Systems Explorer (RSE), a consistent framework and UI for accessing remote computer resources from Eclipse. The Eclipse Data Tools Platform provides relational database connectivity and SQL design tools and interfaces to various source configuration management (SCM) tools such as CVS or Subversion. Together these tools make for a “force multiplier” for today’s Suprtool and SuprtoolSQL developer.

Suprtoolbox plug-in

The Suprtoolbox plug-in, part of the Suprtoolbox Workbench, is designed to increase productivity and make it as easy as possible to write, debug, extend and generally maintain your suprtool code.

Code editor and graphical representation:

  • Auto-complete – automatically looks up database, table and item names so you don’t have to, and can dramatically speed up code generation.
  • Graphical representation – code blocks are laid out in a flow diagram and separate chains are represented clearly, making it easier to understand the mechanics of the code.
  • Synchronization between code and graphical layout – speeds up navigation around your code.
  • Syntax coloring – having different colors for keywords makes it easier to scan your code.

Debugger:

  • Can dramatically speed up the time needed to get a complex set of suprtool blocks working correctly.
  • Code blocks can be executed separately (with a single mouse-click) without having to re-run the script up to that point.
  • The entire script can be executed automatically up to any given block in the code, and then stop.
  • Instead of executing the entire script, the debugger can execute “chains” of code blocks so that time is not wasted executing code blocks which do not affect the data we are interested in.
  • Generated data is displayed automatically inside the workbench.

Code refactoring (automated synchronous code-modification)

  • Imagine you have an old piece of code and you want to extract an additional item from a table into the final output file. You might need to change the code in several places and would need to figure out where all those places are. The code-refactoring part of the tool-box will enable you to do all this right away with just a couple of mouse-clicks.
  • Any number of tedious and error-prone code-modifications such as the above can be done by the tool-box because it has knowledge of your code structure.

Plug-in layout

Shown below is a screen shot of the basic workbench layout. The text editor is in the center. Note the coloring of keywords so that blocks are easier to pick out visually. To the right of the text editor is the graphical representation of the entire suprtool code. Each code block is represented by a rectangle (whose color depends on whether it is a SUPRLINK, STEXTRACT or SUPRTOOL block) and the rectangles are joined by arrows representing the flow of data. There is automatic synchronization between the text editor and the graphical layout so that it is very easy to navigate your way around the code.

Auto-completion

The auto-complete feature is illustrated below in two images below – in the first image it is being used to select the database and in the second it is being used to extract items from the ITEM-MAST table (which was also selected using the auto-complete function). Auto-complete is activated by hitting CTRL+SPACE , at which point the editor will automatically pop up a window with a suggested list of possible ways to complete the statement you have started.

Graphical representation

A major component of the tool-box is the part that provides a graphical representation of the suprtool code. Code blocks are represented by rectangles and the rectangles are linked into “chains” by arrows which represent the flow of data between blocks. The graphical representation can be scaled up or down to get an overview or focus on a particular part of the code. Blocks can be selected by a mouse-click, which will scroll the text-editor to display the related block of code, and also all the “chains” of which the block is a part will be highlighted.

The graphical representation is synchronized with the text editor so that if a code block is selected in the text editor then the same code-block will also be selected (and scrolled to) in the graphical representation, and vice-verse. All these features allow programmers to clearly see the entire structure of the suprtool code and rapidly focus in on the parts they are interested in.

Code Refactoring

In the image below, a SUPRLINK block is selected (it has a red border in the graphical representation) and a right-click context menu has been popped-up. The “Extract extra field…” option is selected.

The user is then presented with an option to choose the DB table and the field to be extracted.

Because the “ITEM-MAST” table is used by a code block higher up the “chain” then it is presented in this popup and we have opted to extract the UNIT-FACTOR field.

Part of the code-modification is shown below, with “EXTRACT UNIT-FACTOR” lines being inserted in every block where it is required (and not, of course, in the blocks where it is not required).

Seamless Integration

The Suprtoolbox Workbench fully integrates Suprtool and SuprtoolSQL into extensible development platform that provide a focal point for tools needed in the most commonly needed administrative and development environment. Starting with the Suprtoolbox plug-in tools in the workbench provides a complementary set of functionality that provide developers with a formidable arsenal. Also, these tools have the Workbench “look and feel” to facilitate ease of use.

This retooling of the Suprtool developer is the programming equivalent of replacing the hammer with the nail gun.