Introduction to GAB
What is GAB?
The Global Application Builder (GAB) is a collection of tools that allow for the extension and modification of the Global Shop ERP package. Since GAB has become an umbrella term, it is important to understand what the individual pieces are. They are as follows:
1. GAB Tokenized Language (GTL) 1.0
GTL is a programming language developed by Global Shop for use with the GAB project. GTL has similarities to Visual Basic to Java, but has control structures and language features present in virtually all modern programming languages.
2. GAB Code Editor
The GAB Code Editor is essentially a word processor for writing GTL code. This editor is fully aware of proper GTL command syntax, as well as argument requirements. As you type your code, you will see a list of possible commands. When you have selected a command, you will see the list of arguments. See Exhibit 1.
3. GAB Forms Designer
The GAB Forms Designer is a WYSIWYG screen design tool that creates GTL code behind the scenes. The program features an easy-to-use drag-and-drop interface, with wizards to speed normally mundane tasks. See Exhibit 2.
4. GAB Executer
The GAB Executer acts as the runtime and debugger that interprets GTL code. This executable is OCTSRS.EXE. See Exhibit 3.
5. GTL Signer
The GTL Signer creates an electronic signature that allows the user to see if the GTL code has tampered with.
GAB programs can be triggered throughout the system when "hooks" are triggered in normal program or screen operations. Program data is passed to the GAB Executer, and GAB-modified data can optionally be passed back to the calling program.
How is GAB deployed?
In the simplest terms, all Global Shop customers running 30.01B (or higher) can run GAB programs. A license is not required. GAB is currently being used by service and R&D to develop and deliver custom programming to our customers.
What is the GAB license for?
While anyone can run GAB programs, a license is required for developing or modifying them. Without a valid license, the GAB Code Editor and GAB Screen Painter will not launch.
The license entitles the customer use of the GAB Code Editor and GAB Screen Painter. Additionally, the customer can generate valid electronic signatures with the GAB license. Unlike Crystal Reports authoring licensing, the customer is not limited to a single development seat with GAB.
How it Works:
When a hook gets triggered in a Global Shop program, caller information is passed to the GAB Executor. The GAB Executor makes this information available to GTL programs through the VARIABLE.CALLER and VARIABLE.PASSED namespaces.
Each element (label, textbox, checkbox, radio button, command button, programmatic data, etc.) in a Global Shop program has an ID number for use with GAB. The ID is used with the VARIABLE.PASSED namespace to read, change, or change the properties of the existing element. The list of IDs for a given screen can be found on the Caller Info screen (Exhibit 4) invoked from the debugger (Exhibit 3).
Changed data can be sent to the calling program through the VARIABLE.PASSED namespace if the GAB program is called synchronously.
Here's the difference between synchronous and asynchronous execution:
Asynchronous: Program -> Hook -> GAB Executor/Caller Information
Synchronous: Program -> Hook -> GAB Executor/Caller Information -> Program
With asynchronous execution, the calling program does not wait for the GAB program to finish before resuming its own execution. With synchronous execution, the calling program waits for the GAB program to finish before resuming its own execution; this mode allows GAB to interact with the calling program.