You are here: Analyzer for ACL Users

Analyzer for ACL Users

This section discusses the key features and enhancements of Analyzer that differ from ACL®. Additionally, key features of the Arbutus Servers and Arbutus ConnectPlus are also discussed.

Scroll down or click the links below to view topic details:

ACL Project Files
Fundamental Differences
Environment
Overview Window
Command Log
Tables
Views
Fields
Data Definition Wizard
Manual Definition (Edit Table Layout)
Dates & Times
Workspaces
Commands
Functions
Procedures
ConnectPlus
Arbutus Servers
Shared Folders
User Preferences (Tools/Options)
Variables
Menu
Installation and Software Updates
ACL Project Files
Unicode and Foreign Language Data

ACL Project Files

For ACL® users, if an ACL® project file (ACL Version 8.0 or higher) is selected when opening a project in Analyzer, Analyzer automatically converts the ACL® project into a new Analyzer project file and all ACL® project items contained within it are converted into individual Analyzer project items.

These project items are placed in a new project folder using the name of the ACL® project file. The project folder is created in the same folder that the ACL® project file resides in. Additionally, if any folders are indicated within the ACL® project file, these folders are created as sub-folders to the main Analyzer project folder.

To easily select an ACL project for conversion within Analyzer:

Click File | Open Project from the main menu
Select “ACL Files (*.ACL)” from the Files Of Type pull-down menu at the bottom of the standard Locate Project File dialog
Browse to locate and select your ACL project file
Click Open

When an ACL® project file is opened in Analyzer, the ACL® project file is not changed in any way, so the ACL® project file can still be used in ACL®.

Any rare critical issues encountered during the conversion of an ACL® project file into an Analyzer project file (for example project items that could not be converted and/or were commands that were commented out in a procedure) are listed in the Command Log (scroll up to the top of the Command Log to see conversion errors after opening the converted Analyzer project).

Any non-critical issues encountered (for example keyword changes) are noted and saved in an external text file called CONVERSION.LOG located in the Project folder.

Fundamental Differences

The Analyzer project file (<project>.ASI) does not contain much information. Most of the data related information is stored in separate files, outside of the project file:

Data Files <file name>.fil
Procedures (ACL® Scripts) <procedure name>.pro
Views <view name>.avw
Table Layouts <table name>.fmt
Indexes <index>.inx
Workspaces <workspace name>.wsp
Project folders are physical Windows folders on the hard disk.

A project file, when opened, builds the Project Overview from the Analyzer project items encountered in the main project folder and all of its sub-folders. This means that deleting project folders in the Project Overview, deletes the folders from the hard disk.

Note: Analyzer will not allow you to create multiple.ASI project files within the same project folder.

In addition, if any shared folders have been established for this project, the project items in the shared folder(s) will also be displayed in the Project Overview. For more information see Shared Folders.

Tip: It is always a best practice to routinely backup your Analyzer project file(s) and folder(s) in case of accidental project folder and item deletions or changes.

Environment

The Analyzer environment in some cases differs from ACL®. This section describes environmental features that behave differently than in ACL® or that are unique to Analyzer.

Auto Delete Temporary Objects

Project items with a specified prefix can be automatically deleted upon project close. Specify a temporary object prefix via Tools > Options > Interface.

Deleting Project Items

Project items deleted from the Overview window are placed into the recycle bin whenever possible.

Edit Menu - Find Option

Added a Find option to the Edit menu to allow searching of active Command Log or Procedure Editor.

Expression Builder

Added a double quotes button in the Expression builder.

Field Level Decimal Point

Print/Numeric fields may specify the decimal point character at the field level to better support sharing table layouts between North American and International sites.

Hidden Objects

Project items or folders in the Overview may be hidden. Whenever a project item or folder name ends in a trailing underscore, it is omitted from the Overview list. Particularly useful for Procedures and Tables whose only purpose is as support for another operation (e.g. temporary tables). You can show hidden objects via Tools > Options > Interface and click Show hidden Overview item. This setting is not Saved. Hidden tables are not displayed when using ConnectPlus.

Naming Conventions

Changed the naming convention for the underlying file name for Views/Reports and Indexes. View/Report and Index files are now saved with the associated table layout name, for example:

demo altdemo.avw (alternate view for demo.fmt)

demo .avw (default view for demo.fmt)

Note: This does not change the way Views/Reports and Indexes are displayed in the Overview, only the way they are displayed in Windows Explorer.

Object Names

Field and project item names have been increased to 127 characters long.

Preferences

There is no PRF file. Instead, all preferences are located in the registry. Preferences are automatically saved whenever you press OK in the Tools/Options menu.

Projects and Project Items

When creating a New Project from the File menu, a new project folder is automatically created at the same level as the current folder. A named Project file is automatically placed into this new folder. The new project file uses the same name as the new project folder.

There is still a project file (project_name.ASI), but it contains very little information (primarily permanent variables and current state variables).

All project items are physical files and are stored in actual (Windows) folders. These include:

Table Layouts (.fmt)
Views (.avw)
Procedures (.pro)
Indexes (.inx)
Workspaces (.wsp)

Physical directory structures (and contents) are mirrored in the Overview window. Related to this, when you move objects in the Overview you are physically moving them on disk.

A project includes all the project items and objects in the project folder, its sub-folders as well as any shared folders (see Shared Folders).

Single click to activate/open a project item (like IE7/8).

Note: Essentially, you can use MS Explorer to manage the project content.

Record Length

The 32k record length restriction has been removed. Tables may have longer record lengths (presently a maximum of 2 MB supported by the User Interface, but technically any length is valid in the table layout).

Tabs

Enhanced tabs to bold the primary table View tab for the open Edit Table Layout or Graph tabs.

Added tool tips when hovering over tabs (View, Graph & Edit Table Layout).

Overview Window

This section describes Overview features that behave differently than in ACL® or that are unique to Analyzer.

General

Enhanced Overview to provide a click option to expand the Overview to display data from selected folder or from root and to easily mass move, delete or rename project items.

Added a Close All right-click option to allow multiple open primary tables to be closed at one time.

Changed the color of the Procedure icon.

Added a green vertical bar to left edge of table icons in the Overview (optional) to indicate that a table has relations.

Added a blue vertical bar to left edge of table icons in the Overview (optional) to indicate refreshable tables.

Added a purple vertical bar to left edge of table icons in the Overview (optional) to indicate relational tables.

Added optional support for display of alternate Command Logs in the Overview (to enable easier switching between Log files within the Overview).

Added support for hiding folders. Naming folders (including Shared Folders) with a trailing underscore now hides folders and their contents from being displayed in the Overview while still remaining available for use. This is useful for Shared Folders since any procedures stored in Shared Folders are now displayed in, and can be accessed via, the new main menu Applications item. By hiding the shared folder you can remove excess clutter in the Overview that is already accessible via the Applications menu.

Enhanced duplicating table layouts for a refreshable data source. The duplicated table layout is now updated to point to a new intermediate flat file rather than the old intermediate flat file.

Enhanced the right-click Properties dialog for table layouts to provide additional detail for Refreshable Data Sources. The name of the source data, and the chosen table/worksheet within it, are now displayed.

Enhanced ability to re-link all refreshable data sources to new source data.

Changed the text of the right-click refresh option for shared folders to read “Update Folder Contents”.

Added the ability to delete open Overview items.

Command Log

This section describes Command Log features that behave differently than in ACL® or that are unique to Analyzer.

General

Right-click options in Command Log include:

showing commands only
showing last result only
showing commands and results
clearing the Log (partially or entirely)
copying
finding text

Enhanced Command Log to record any fields added, edited or deleted from Edit Table Layout dialog.

Enhanced Command Log to record creation of relations via the Relations dialog.

Added support for CTRL+HOME to move to the top of the Command Log and CTRL+END to jump to bottom of the Command Log. Added support for PG UP/PG DN.

Added the Edit Command icon to the command line.

Enabled Log files to be displayed and selected in Overview window. To enable this feature, click Tools > Options > Interface and check the “Show Logs in Overview” checkbox.

Tables

This section describes table features that behave differently than in ACL® or that are unique to Analyzer.

Auto Executing Procedures

Auto-executing procedures automatically execute when a table is opened, allowing tables that are derived from another source or by a procedure to be auto-refreshed when they are opened. Two ways to do this:

Enter the procedure name in the Auto-Run box via Edit Table Layout / Table Options, or
Name the procedure with same name as the table name followed by a trailing underscore.

Multiple Primary Tables

You may have multiple primary files open at the same time. This can be accomplished in the GUI by turning on the Table preference (Open Tables As Separate Tabs) via Tools/Options, or by right-clicking on a table in the Overview window and selecting “Open Additional”.

From the command line and in procedures, multiple tables can be accessed via the TABLE parameter in the OPEN and SET commands. OPEN DEMO TABLE 5 assigns DEMO the table identifier 5. Use "SET TABLE n" to switch between tables. Allows quick switching between separate tables for complex multi-file processes without re-opening the tables.

Noformat Command Option

Enables creation of a new data file, without overwriting the existing table layout (ACL® format).

Tip: This is especially useful where the existing table layout contains required computed fields and/or relations that would no longer exist if the existing table layout is overwritten by a new table layout.

Relations

There is no restriction on the number of relations.

Views

This section describes View features that behave differently than in ACL® or are unique to Analyzer.

General

Changed the global filter icon in the View.

Enabled dragging and dropping a column heading up to the View filter edit box. When released the column's actual field name will be copied into the View filter edit box.

Enhanced View so that column widths can be auto-sized by double-clicking on the right edge of the column heading.

Added local View column option to have negative numeric values displayed in red.

Improved scrolling including paging up and down in the View when thin filters are applied.

Improved cursor placement when dragging a column title into the Global Filter area of the View. Cursor is now placed after the field name.

Enabled a View to be used between tables via Overview right-click option.

Added enhancements to support CTRL+HOME to move to the top of a View, CTRL+END to jump to bottom of View, HOME to jump to left of a View and END to jump to right of a View.

Views are displayed in the Overview Window as sub-elements of the Table Layout, not as a separate view list.

Column Triggers

Added column triggers which enable conditions to be placed on columns in the View. If the condition or TRIGGER for a specific column is met, then the cell in the column meeting the condition is highlighted in a customizable color. The condition is not limited to the column it is applied to, and may be built upon values from other columns. Triggers can be used to visually alert you to common anomalies in your data that warrant investigation (for example, transactions with invalid dates, missing information, or amounts above or below a critical threshold).

Default View

The Default_View is no longer used. The Arbutus standard is to name the initial View the same as the Table Layout.

Multiple Open Views

Enabled multiple primary tables to be opened simultaneously with separate View tabs (where the active tab is the active primary table). To enable this feature, click Tools > Options > Table and check the “Open Tables as Separate Tabs” checkbox.

Quick Filters

Added a triggers option to the existing right-click Quick Filter options. This enables a Quick Filter to be created by selecting from existing column triggers. This option is only available when a column is highlighted and column triggers exist for the highlighted column.

Added a Similar option to the existing right-click Quick Filter options. Uses the SIMILAR() function to construct Quick Filter. By default uses a Damerau-Levenshtein difference of 1. Differences can be edited in the View filter.

Added a Near option to the existing Quick Filter right-click options. Uses the NEAR() function to construct Quick Filter. By default uses a Damerau-Levenshtein difference of 1 for character values, a difference of 5 for numeric values, and a difference of 7 days for date values. Differences can be edited in the View filter.

Added a Replace option (in addition to the existing AND and OR choices) when modifying an applied Quick Filter.

Changed the right-click Quick Filter option so that the filter applied to the View for a selected character value will, by default, be capped at 50 trailing blanks if the character field value contains more than 50 trailing blanks. For example, in a 100 character description field, if the field description text selected for the Quick Filter was “Unknown” followed by 93 trailing blanks, the Quick Filter would be constructed and displayed in the View filter text box as “Unknown” followed by 50 trailing blank spaces. This can always be manually modified if required.

Report Filter

The View's filter is automatically applied as a global filter when a report is opened.

Scroll Wheel

Scrolling through the records in the View using the mouse scroll wheel is supported.

Smart Search

Added Smart Search text box to the right of View Filter so users can do "Google searches" of their data within the View (uses the new SMARTSEARCH() function that is specific to the View and has similar capabilities as the FIND() function). By default, the Smart Search looks within the all columns within the View (not the record). If one or more columns are highlighted, Smart Search only looks within the selected column(s). Unlike the FIND() function, when searching for multiple values (separated by blank spaces), the values must exist concurrently within the same row, or within one of the highlighted columns in the same row but not within the same highlighted column. Additionally, Smart Search will search not only data fields, but also related and computed fields in the View.

View Options

Added View options to allow column headings for related and computed fields to be colorized in the View. The color is customizable. This makes identifying and differentiating related and computed fields in the View mush easier.

To enable this feature, click Tools > Options > View and check the “Related Column Color” and “Computed Column Color” checkboxes. Additionally, click the color square to the right of these checkboxes to launch a color palette from which to choose the desired color.

Fields

This section describes field behaviors and features that behave differently than in ACL® or are unique to Analyzer.

Deleting Fields

Fields are deleted by right-clicking on a field name in the Edit Table Layout window and selecting Delete.

Field deletion checks for references in non-active objects, such as indexes and Views. Even when referenced, you may still choose to delete the field (which will cause a "name not found" error when the referring object is subsequently accessed, unless you create a new field first).

Duplicating Fields

Fields are duplicated by right-clicking on a field name in the Edit Table Layout window and selecting Duplicate.

Field Arrays

You may define arrays of fields (e.g. COBOL OCCURS). Accessed via Advanced button when editing a field. A single field repeated a number of times (such as 12 monthly values). Field arrays are accessed as field[n], where n=1 selects the first element in the array.

Field Lengths

Analyzer supports 127 byte names for all field names (physical and computed).

Field Search

Added speed search capabilities to Selected Fields Dialogs. Simply type the leading characters of the desired field name into the new Search text box to locate the field. This is particularly useful for searching for a field in long field lists.

Hidden Fields

Fields may be hidden from display in field lists via:

right-click on field in Edit Table Layout and select hide/unhide field, or
editing field and clicking Advanced button and checking/unchecking the Hidden checkbox.

Hidden fields do not appear in field lists or in ConnectPlus, but they still may be referred to explicitly, such as from the command line. Particularly useful for intermediate or temporary fields. Groups of fields may be hidden/unhidden as a group.

Note: Hiding fields is a convenience, not a secure means of hiding data.

IF Test

Apply an IF test to a number of fields, such as with a multiple record type file. You can enter the test once and have it applied to any number of fields related to a specific record type.

Native Key Fields

Native Key fields are supported for mainframe data sources (IMS / VSAM / DB2 / ADABAS) and for relational data sources. Automatically utilized for indexes (Find) and Relations. No need to first create a separate index.

Negative Decimals

Fields can have 'negative' decimals. Specify number of decimals in Edit Table Layout. A number that is stored in thousands (3 really means 3,000) could have decimals of -3 so the field's true value is stored.

New Field Types

Unsigned binary fields are supported.

Renaming Fields

Fields are renamed by right-clicking on field name in Edit Table Layout window and selecting Rename.

Data Definition Wizard

This section describes Data Definition features that behave differently than in ACL® or that are unique to Analyzer.

Please note that some data access options discussed below may only be available on specific Arbutus Servers.

General

Changed Select Data Source Panel wording for local and Windows Server:

Changed Disk to File (Local)
Changed Flat File to File (Windows Server)

Improved the Wizard's identification of time fields.

Improved the Wizard's identification of character fields containing leading zeros.

Enhanced output of flattened files via the Wizard to the current folder rather than the Analyzer project root.

Suppress Server option in Wizard when no server profiles detected.

ADABAS

Support for ADABAS data added

Access Databases

Enhanced the Wizard for defining Access Databases, to allow multiple individual tables to be independently defined at once.

Updated Wizard for Access, so it now works similar to the Arbutus Windows Server relational area.

Added Visual Cues

Tool tips were added when defining fields manually, so it is easier to determine the column widths as you define columns

COBOL

Re-arranged processing in Data Definition Wizard so that you are always asked for a data source; facilitating the use of COBOL with IMS.

Significant enhancements made to the COBOL conversion to support a wide range of additional, previously unsupported, situations.

COBOL format entries are numbered in the field notes. This supports group selection for field updating.

Added support for field names beginning with numbers.

Added support for referencing filler fields in functions like BETWEEN().

DB2

You can edit any of the DB2 parameters specified in the Data Definition Wizard during definition; specifically the WHERE, ORDER and WHILE parameters. Specific optimizations have been added to speed up filtered access to DB2.

Delimited Files

Comma separated, TAB separated or other delimited files are read directly, without flattening. Handled automatically by the Data Definition Wizard.

Added option to read entire file or to read file for specified number of seconds - the latter may dramatically improve processing performance when defining large delimited files while the former will ensure that maximum field lengths are always determined up front.

Note: If only reading the delimited file for specified seconds, once defined the Verify command can be used to validate field widths. Any invalid field widths can be manually edited as needed.

Added support for reading Unicode delimited files.

Excel Spreadsheets

Added new option in the Data Definition Wizard to import XLSX files without need for 32 Bit ODBC Drivers.

The advantages of this new method of defining Excel spreadsheets are that it:

reads the entire spreadsheet to define column widths and types
specifies a character type where columns are found to contain mixed case (Date and Character data, Numeric or Character Data, etc.)
does not require the installation of 32 bit Excel ODBC drivers to be installed on the local machine or Arbutus Windows Server

This new version always flattens files and does not provide column selection (selects all columns) or table joins. If these are required, continue to use the Excel (ODBC) option.

Enhanced the Wizard for defining Excel spreadsheets, to allow multiple individual worksheets to be independently defined at once.

Excel data is automatically converted to delimited by the Wizard. The version of Excel that can be accessed depends on whether you have the corresponding Excel ODBC driver installed locally (or on the Windows Server).

Updated Wizard for Excel, so it now works similar to the Arbutus Windows Server relational area.

External Definitions

Expanded the types of supported external definitions to include:

Automatic conversion of IMS' own internal DBD definitions.
Support for Easytrieve format conversions.
Automatic conversion of ADABAS' own internal FDT definitions

JSON Data

Added ability to import JSON files in the Data Definition Wizard

Over-length CRLF files

No longer halt processing.

ODBC

Enhanced the Data Source panel in the Wizard for local ODBC data sources to include three choices:

Show Data Sources
Show Drivers
Show File DSN's

Enhanced the Edit SQL option when defining ODBC and Relational Data Sources to allow more robust manual editing of the SQL Select clause.

Users can now edit the SQL Select clause to customize SQL syntax, including use of ad-hoc expressions
Users can now edit the SQL Select clause to add or remove fields

Enhanced the Select Local Data Source panel by adding optional checkboxes below the ODBC radio button to enable selection of ODBC data sources via registered data sources (default) and/or via locally installed ODBC drivers.

Enhanced importing from ODBC data sources (including Excel) to allow field lengths with a maximum length of 32,760 bytes.

Enhanced the Wizard for defining Excel Spreadsheets and Access Databases, as well as Local ODBC and Arbutus Windows Server Relational Data Sources, to allow multiple individual worksheets/tables to be independently defined at once.

Enhanced the Wizard for Local ODBC data sources to allow selection and joining of multiple tables from different schemas when applicable.

Enhanced Select Tables dialog for Local ODBC and Arbutus Windows Server Relational data sources to display selected table name and internal Analyzer alias (to assist with identifying tables when selecting and joining multiple relational tables).

Updated ODBC definition wizard for local ODBC, so it now works similar to the Arbutus Windows Server relational area including defining of Microsoft Access/Excel.

PDF Files

PDF files are automatically converted to text by Data Definition Wizard, for processing by the print image logic.

Reduced Visual Size

Data Definition Wizard screens that display data, open in a separate attached window.

Relational Data Sources

Enhanced the Data Source panel in the Wizard for local for Arbutus Windows Server Relational data sources to include three choices:

Show Data Sources
Show Drivers
Show File DSNs

Enhanced the Edit SQL option when defining ODBC, Relational, Excel and Access data sources to allow more robust manual editing of the SQL Select clause.

Users can now edit the SQL Select clause to customize SQL syntax, including use of ad-hoc expressions
Users can now edit the SQL Select clause to add or remove fields

Added ability to create a custom SQL Select query when selecting tables for ODBC, Relational, Excel and Access data sources (in addition to the existing Edit SQL option on the Where/Order panel).

Enhanced the Wizard for defining Excel Spreadsheets and Access Databases, as well as Local ODBC and Arbutus Windows Server Relational Data Sources, to allow multiple individual worksheets/tables to be independently defined at once.

Enhanced the Wizard for Arbutus Windows Server Relational data sources to allow selection and joining of multiple tables from different schemas when applicable.

Enhanced Select Tables dialog for Local ODBC and Arbutus Windows Server Relational data sources to display selected table name and internal Analyzer alias (to assist with identifying tables when selecting and joining multiple relational tables).

Enhanced definition of relational data to allow either reading data directly or flattening into a delimited file.

When accessing relational data sources, you can modify your SQL SELECT statement to any syntax valid for the data source. This allows much more flexibility for selecting your data.

Added a new Interface option for the Data Definition Wizard to set whether the Edit Query option in the Wizard is set on or off by default for ODBC/relational data sources. The default is unchecked (OFF).

Report (Print Image) Files

You can re-use existing Print Image definitions when defining other similar report files, or when you want to add additional information to an existing print image definition.

Web-based Data

Added support for data accessed via valid Web-based URL.

XML Files

Enabled users to select specific XML data to define using a Tree View.

Enhanced processing of XML files to allow for optional fields. The resulting XML Import command is also recorded in Command Log for re-use in procedures.

XML data is automatically converted to delimited file by Data Definition Wizard.

Manual Definition (Edit Table Layout)

This section describes Manual Definition features that behave differently than in ACL® or that are unique to Analyzer.

General

Added right-click options to the Edit Table Layout window to easily copy and paste field definitions between table layouts. Particularly useful for copying common computed fields between table layouts rather than using a workspace.

Added a CTRL-G function to look up a specific record number.

Added Page Up/Dn support to better navigate data displayed in large files.

Enhanced manual definition of DELIMITED files to allow definition of physical fields rather than only computed fields. This is particularly useful for defining overlapping fields (like portions of a date field).

Added ability to edit field widths of RELATIONAL tables (for example, SQL Server or Oracle databases) consistent with modifying DELIMITED field widths to allow users to adjust the length of overly long memo fields.

Added a delete/undo button to remove filter criteria in Add a New Data Filter tab.

Added field level decimal point parameter to Print/Numeric field types. This enables the decimal point character to be specified at the field level to better support sharing table layouts between North American and International sites.

Dates & Times

This section describes Date and Time features that behave differently than in ACL® or that are unique to Analyzer.

General

Date and Time fields are supported as a subset of the DATETIME field type. Through the use of formatting characters you can specify a DateTime field that includes:

Date only e.g. YYYY-MM-DD
Time only e.g. HH:MM:SS
Date and time combination e.g. MM/DD/YY HH:MM:SS PM

DateTime fields may be specified in any input format (24 hr. and 12 hr. (AM/PM). Output times are always in 24 hour format.

DateTime Constants

Supported DateTime constants are:

‘yyyymmdd‘

‘hh:mm:ss‘

‘yyyymmdd hh:mm:ss‘

DateTime Operations

Math and comparison operations may be performed on DateTime fields. Time differences are technically fractions of a day. Subtracting two values results in an elapsed time which is displayed and processed appropriately:

92 days

1 day 04:15:00

16:25:17

Elapsed DateTime Constants

The format for an elapsed time constant is:

‘e<D/>HH<:MM<:SS>>‘

Examples of elapsed time constants include:

‘e04‘ represents an elapsed time of 4 hours

‘e00:15:25‘ represents an elapsed time of 15 minutes 25 seconds

‘e3/12:15‘ represents an elapsed time of 3 days, 12 hours, 15 minutes

Elapsed date time constants can be used to deal with elapsed time in support of analysis such as:

depart_datetime - arrive_datetime > ‘e04‘

Date and Time Functions

Analyzer offers a large set of Date and Time functions. See Date and Time Functions for more information.

Workspaces

This section describes Workspace features that behave differently than in ACL® or that are unique to Analyzer.

General

Enabled relational style X.Y referencing of workspace fields:

Workspace-name.field-name

The X.Y referencing of workspace fields ensures that workspaces are loaded automatically when workspace fields are referenced within commands or computed fields or in Views.

Improved the Display command to provide more detailed information for activated workspaces within the Command Log and to list workspace fields using an x.y naming convention (similar to how related fields are referenced).

Clean Table Layout

Workspace fields are not saved with the Table Layout of the data file, but are instead flagged as workspace fields and excluded. This way you will not accidentally save your workspace fields in a table definition as an unintended result from some other field edit.

For example, an EXTRACT RECORD command will not extract workspace fields to the new table.

Secondary Tables

Workspaces are available to secondary tables as well as primary.

Commands

This section describes commands that behave differently than in ACL® or that are unique to Analyzer.

ALL Parameter

Added support for qualifiers to the ALL command parameter (command mode only) to control which fields are selected or excluded from selection for commands which support the ALL field parameter. These qualifiers also apply to variables when using the DELETE ALL OK command.

The LIKE qualifier allows ALL to only select fields whose field names meet specified criteria. For instance, EXTRACT ALL LIKE "BUDGET*" TO FILE_A would only output fields whose field names begin with the keyword "BUDGET" (note that LIKE is case-insensitive). Multiple LIKE qualifiers can be specified for a single command
The EXCEPT qualifier allows ALL to select all fields except those whose field names meet a specified criteria. For instance, EXTRACT ALL EXCEPT "BUDGET*" TO FILE_A would only output fields whose field names do not begin with the keyword "BUDGET" (note that EXCEPT is case-insensitive). Multiple EXCEPT qualifiers can be specified for a single command.

For more detail on using the ALL parameter, see All.

Compare

The Compare command implements a keyed or un-keyed comparison of two supposedly similar files (i.e. similar content and structure).

Crosstab

The Crosstab command provides powerful drill-down capabilities. You can drill down into specific cells, as well as rows and columns. In addition, the result distinguishes between 0 cells that have no data and those that net to zero.

Delete

Enhanced the Delete command to enable folder deletion (relative to the folder root) using the Folder parameter.

Dialog

Dialog commands can specify a maximum wait time (n) in seconds, after which they will automatically close and work with the default (pre-set) values. Right-click the dialog properties and specify the Wait Max. in the supplied text box.

Dialog commands support use of variable arrays to dynamically populate dropdown lists.

Dialog commands enable data types to be specified for Edit boxes:

Character is the default input field type for text
Numeric will only allow positive whole numbers to be entered.
Date accepts dates directly and also includes a pull-down date selector.
File allows the direct entry of file names combined with an automatic Browse button to select the file from a standard Windows file open dialog.

Tip: Use of the filename browser is the preferred method for having users select a date file.

Display

Enhanced the DISPLAY VERSION command to output result to a numeric variable. Useful when conditionalizing commands issued within procedures that are dependant on the version of Analyzer being used.

Enhanced Display command when workspace fields have been activated to list workspace fields using an x.y naming convention (similar to how related fields are referenced).

The Display Connection command will list currently connected Arbutus Servers in the Command Log.

Added the Display Primary command to output results to a table containing one record for each field or computed field containing columns for data type, start, length, decimals and modifiers.

Directory

The Directory command can output results to a data file for all directory contents or for selected file types. The data file contains the following fields: filename, size, attributes, creation date, creation time, last access date, last access time, modification date and modification time.

Duplicates

Enhanced the Duplicates command to support a SAME-SAME-SIMILAR test using the same logic as the new SIMILAR() function. The SIMILAR field is compared using the Damerau-Levenshtein difference (whether the field is character, numeric or date).

Enhanced the Duplicates command to support a SAME-SAME-NEAR test using the same logic as the NEAR() function. Character field differences are assessed using the Damerau-Levenshtein difference, numeric fields are assessed using the numeric difference, and date fields are assessed using the number of days.

Enhanced the Duplicates command to support a SAME-SAME-DIFFERENT test. Last field selected is tested for difference, not match.

Export

Added ability to export data in JSON format.

Added ability when exporting columns to Excel, Access or via ODBC which contain UNICODE data (UTF 16 Little Endian only)  that the data will be exported as UNICODE (UTF 16 Little Endian only).

Added ability to export fields longer than 255 to Excel (maximum field length is now set to 32,760 bytes).

Enhanced the EXPORT command to support exports via ODBC (using ODBC drivers installed locally or on a selected connected Arbutus Windows Server). This allows direct table exports to SQL-based databases such as Oracle or SQL Server provided the required ODBC drivers are installed and the user has access rights.

Enhanced the EXPORT command when exporting to an Excel spreadsheet by adding radio buttons to allow selection of XLSX, XLS or XLS21 type spreadsheets.

Enhanced the EXPORT command dialog to support Append for delimited file types.

In Analyzer, the EXPORT command can now:

Export local or Arbutus Server data to the Arbutus Windows Server (in addition to the local machine)
Order data based on specified pre-sort key fields enabling data to be exported and sorted in one step

Added ability to EXPORT the View (i.e. only fields shown in the active View).

Enhanced EXPORT command to allow exporting to MS Access.

Enhanced EXPORT command to allow exporting of distinct worksheets/tables to same MS Excel/Access spreadsheet/database. The Export command now allows users to specify an optional table name so that multiple exports can be performed to the same Excel spreadsheet or Access database. Using the table name enables creation of multiple unique tables (or worksheets) within the same Access database or Excel spreadsheet.

Added support to command line only for Export to specify schema when exporting via ODBC to a relational data source.

Extract

In Analyzer, the EXTRACT command can now:

Output data to and from Arbutus Servers
Order data based on specified pre-sort key fields enabling data to be extracted and sorted in one step

Enhanced the EXTRACT command to use the existing View versus creating a new View.

Added an Extract View option to output columns in the current View using the column headings as field names (consistent with Export View). Any computed fields in the current View are analyzed before extraction, and converted to data fields with their field type set to either Logical, Date, Character (ASCII or EBCDIC as required) or Arbutus (for numeric calculations). If related fields are referenced in the current View, then the necessary relations are outputted as well. This allows you to extract only the data in the View (respecting any active filter). The resulting extracted table will be have a fixed record length. Analyzer automatically generates field definitions for the destination table layout.

Import

Enhanced the IMPORT command to support importing XLSX spreadsheets using EXCEL OPENXML (that does not require 32-bit ODBC Excel Drivers, which flattens the result and does not allow joining or filtering worksheets).

Enhanced the IMPORT command to support importing JSON data.

Enhanced the IMPORT command to allow more robust manual editing of the SQL Select clause.

Users can now edit the SQL Select clause of the IMPORT command to customize SQL syntax, including use of ad-hoc expressions
Users can now edit the SQL Select clause of the IMPORT command from the command line to add or remove fields

Enhanced IMPORT command to include DBASE, XML, EXCEL, ACCESS, DELIMITED, PRINT and FILE. FILE allows you to import virtually any flat file based on the start positions of the physical fields.

Enhanced importing of XML files to support optional fields. The XML Import command is now logged and can be used in procedures.

Added support for use of the AS field modifier for fields in the IMPORT command.

Join

Enhanced the JOIN command to enable auto-harmonization of numeric and character key fields only (for character-to-character comparisons or character-to-numeric comparisons). For numeric and character key fields only, Analyzer can assist in auto-harmonizing key fields that differ, provided that the number of keys selected for each table is the same. This means that when multiple Join keys are selected for both the primary and secondary tables, differing keys are matched and auto-harmonized as individual pair sets in order of precedence (i.e., based on the order in which the keys were selected).

Blanks are added to pad shorter of character keys when specified keys from both tables are character
Character keys are converted to numeric when keys in both are mixed types (character-to-numeric or numeric-to-character)
Date to Date key field comparisons don’t require auto-harmonization as all dates are stored in a consistent internal date format
Date to Numeric or Date to Character comparisons are technically allowed but are not auto-harmonized. These comparisons will most likely yield no results and so should be avoided

Analyzer allows JOIN keys to be either numeric, character or date fields.

Added a click-able Venn diagram to JOIN dialog for easy selection of valid JOIN types (in addition to the existing pull-down menu).

Added new JOIN type (Many-to-Many) to facilitate a true SQL many-to-many type JOIN for any tables.

Added new JOIN type (Matched Many-to-Many) to facilitate a keyed SQL many-to-many type JOIN for any tables.

Native Keys

Commands automatically utilize any available native keys to optimize performance.

Notify Command

Enhanced the Notify Command to enable specification of multiple SMTP fail-over mail servers (and corresponding valid senders). This ensures that e-mail sent by the Notify command can still be sent when primary mail server is not functioning.

Pause

The PAUSE command can be temporarily halted in two ways:

PAUSE n will delay a procedure for n seconds
PAUSE “Message” Wait N will close the pause message after n seconds whether the user clicks OK or not.

Relations

Enhanced RELATIONS when outputting duplicate related field names. Duplicate related fields (excluding fields from the Parent) are now prefaced with the name of the related field (“tablename_fieldname”).

Enhanced RELATIONS to support numeric and date keys.

Return

The Return command has been added, see Procedures.

Run

The Run command will execute MS DOS or MS Windows commands or even MS DOS batches from within Analyzer or an Analyzer procedure.

Save

Enhanced the SAVE command to support a FIELD option. The SAVE FIELD option is intended for storing values from a field in the open table directly into a variable array for use in populating values in user dialogs. This option can also be used as a much faster alternative to the use of the RECOFFSET() function provided that the number of stored values is reasonable.

Set

Set Compress

The Set command has been enhanced with the COMPRESS key word, see Arbutus Servers.

Set Escape Off

The Set command has been enhanced with the ESCAPE OFF key words, see Procedures.

Set Fatal

The Set command has been enhanced with the FATAL key word, see Procedures.

Set Folder

Specifies default project folder or returns default to the root for the current Analyzer Project. Used to ensure output from Analyzer commands is placed in desired folder if other than root folder for Analyzer Project.

The keyword KEEP ensures that the issued Set Folder command is maintained regardless of whether a table is subsequently accessed from a different folder and until the current project is changed, the Analyzer session is closed or another Set Folder command is issued. For more information see Set Folder.

Set Recycle

Added new SET RECYCLE <ON|OFF> command to enable or disable project items being sent to the recycle bin when deleted. Previously, this option was on by default. Now it can be set as needed interactively or in procedures.

Set Safety

The Set Safety Off command has been enhanced to allow Analyzer to overwrite fields as well as files without asking for confirmation. As a result, if your procedure defines fields on the fly, there is no longer the need to delete the field in the procedure prior to defining it for subsequent running of the procedure.

Set Sort

The Set Sort commands allows users to specify an alternate folder location for storing temporary sort files. Has no effect on where final sorted result file is stored. This setting is only applicable to local data and the setting is temporary for the local session.

Set Source

Added the Set Source command to allow users to specify a default SQL/relational data source to be set for use with the SQL command dialog and for the Data Definition Wizards "Select Data Source" panel.

Sort / Index /Pre-Sort

Added the ability to automatically invoke a 64 Bit Sort. The requirements for invoking the 64 Bit Sorting are:

using a 64 Bit Version of Windows
having at least 8 GB of RAM installed

If unable to use 64 Bit Sorting, Analyzer will revert to 32 Bit Sorting.

Enhanced the speed of SORT and INDEX commands and speed of pre-sorting.

Statistics

Added a Weekend count to Statistics results on datetime fields. The Weekend count is presented in the tabular results as a hyperlink that can be clicked on to drill-down to view the relevant records.

Added UNIQUE option for high/low values to avoid duplicate high/low values. The UNIQUE items are presented in the tabular results as a hyperlink that can be clicked on to drill-down to view the relevant records.

Stratify

Added ability to stratify on elapsed times and to accumulate elapsed times.

SQL

Added new SQL command and dialog to enable a single SQL Select query to be issued directly to retrieve data from valid SQL/Relational data sources. Data retrieved is a live read and is temporary unless extracted.

Summarize

Added ability to perform an additional field sort on field(s) other than the key field(s).

Added ability to summarize on numeric fields in addition to character and date fields.

Added output to screen option with hyperlink drill downs.

To Parameter

To Print

The TO PRINT output option has been removed from all commands except the Report command.

To Screen

The TO SCREEN output option has been removed from the Summarize command unless you specify SCREEN as the output table name.

To Text

Statistics, Stratify, Crosstab and Duplicates commands no longer support TO TEXT output (only screen, graph and/or data output as appropriate).

Verify

Enhanced VERIFY command with optional checkbox to ignore empty fields (like blank dates) when verifying data.

The Verify command result in the Command Log provides drill-down links to the specific error records. It also reports delimited fields that exceed the size allocated for them.

Functions

This section describes functions that behave differently than in ACL® or that are unique to Analyzer.

General

Added support for variable arrays as parameters to the following functions:

AVERAGE()
LISTFIND()
MATCH()
MINIMUM() and MAXIMUM()
TOTAL()

Added support for using variables in place of constants for all functions that traditionally required a constant value (for example BLANKS(), VALUE(), REPEAT(), etc.).

ALLTRIM(), LTRIM() and TRIM()

Enhanced these functions to allow optional specification of leading and/or trailing character to be removed in addition to blanks.

ARRANGE()

Added new ARRANGE() function to rearrange characters within a string in descending order. This function is designed to support equality and similarity searches, particularly in support of the NEAR() and DIFFERENCE() functions.

Modified the ARRANGE() function to support an optional parameter to specify word separator character (most commonly a blank space). Use of this optional parameter causes the ARRANGE() function to arrange the string based on whole words in descending order rather than by individual characters in descending order. Alleviates comparison problems like “West 49th Street” and “49th Street West”.

AT() and SUBSTRING()

The AT() and SUBSTRING() functions can be applied to an entire record, by specifying the keyword RECORD instead of a field name. This is useful for delimited files and the like.

AVERAGE()

Added the AVERAGE() function to return the average value for a set of specified numbers or a set of numbers stored within a specified variable array.

COMPACT()

The COMPACT() function removes multiple instances of a string. This is particularly useful for removing multiple consecutive blanks from memo fields.

Date and Time Functions

Added new date and time functions:

TODAY() returns the current system date as a DateTime value
NOW() returns the current system date and system time as a DateTime value
YEAR() returns the year portion of a DateTime as a number
MONTH() returns the month portion of a DateTime as a number
DAY() returns the day portion of a DateTime as a number
HOUR() returns the hour portion of a DateTime as a number
MINUTE() returns the minute portion of a DateTime as a number
SECOND() returns the seconds portion of a DateTime as a number
CMON() returns the name of the month for supplied DateTime as a string with a specified length
EOMONTH() returns the end of the month for the supplied DateTime as a date. End of month is determined to be 23:59:59 of the last day
NTOD() returns the date constructed by entering numeric values N1, N2, N3 representing the numeric year, month and day respectively
NTOT() returns the time constructed by entering numeric values N1, N2, N3 representing the numeric hour, minutes and seconds respectively

Tip: NTOD()and NTOT() can be added together to construct a complete DateTime value.

DIFFERENCE()

Added the DIFFERENCE() function which returns the number of differences between two strings. This function is good for testing "close matches" versus using the Duplicates command. This function is based on the Damerau-Levenshtein distance between the two strings.

Enhanced the DIFFERENCE() function to include an optional third parameter to turn off case sensitivity for the difference comparison. By default, the DIFFERENCE() function is case-sensitive.

FILEDATE()

Added the FILEDATE() function which returns the date of last change of a file. This is particularly useful for automatically refreshing data.

FIND()

Enhanced the FIND() function to support searching multiple fields of any type. Also added support for specifying multiple search items separated by a blank space. For FIND() to return records, all values must be found in record OR in a given field if field search is specified.

Refined FIND() function so it only checks the appropriate character set based on the field definitions when using a record search (previously checked both ASCII/EBCDIC). This is consistent with how the TEST() function also works.

Added ability to search for text in a non-character field.

FORMAT()

Added the FORMAT() function which is essentially the reverse of the MAP() function. It takes a string and returns a format (using X's, 9's etc.) that describes the string. This is especially useful for tasks such as finding postal codes in free format text.

Added additional character descriptor for FORMAT() function so that the case of a character value can be tested (x = lower case, X = upper case).

FTYPE()

Added an additional parameter to the FTYPE() function for specifying the type of item being tested.

GOMONTH()

GOMONTH() returns the exact DateTime that is plus or minus the number of months from the specified DateTime.

INCLUDE() / EXCLUDE() / REMOVE()

The INCLUDE(), EXCLUDE() and REMOVE() functions now support ranges, so you can specify 0~9 for example, instead of 0123456789.

ISBLANK()

Now supports identification of blank dates in physically defined date fields (not packed dates). If the physically defined date field is completely filled with blanks then ISBLANK() returns a True value.

LEFT()

Added a LEFT() function to specify the number of characters to be selected from the left of a string.

LFILL()

Added a new LFILL() function to add leading characters to an existing string or to a numeric value (which is converted to a string with leading blanks trimmed as necessary) while specifying the new length. Especially useful for adding leading zeros to harmonize keys between two tables.

LISTFIND()

Added the LISTFIND() function to find a list of items (case insensitive) from one or more specified list files or from a single specified variable array. By default, the LISTFIND() function will search within the entire record, but can also be directed to only search in one or more specified fields (numeric, character or date). The LISTFIND() function returns a true value if any listed literal string is found and a false value otherwise. The LISTFIND() function is case-insensitive (finds matches in upper, lower and mixed cases) and searches for either ASCII or EBCDIC characters based on the field definitions.

MATCH()

Enhanced the MATCH() function to support variable arrays as parameter for the matching list.

MINIMUM() and MAXIMUM()

Enhanced the MINIMUM() and MAXIMUM() functions to support date values.

NEAR()

Added new NEAR() function that enables “fuzzy” comparisons between pairs of fields (numeric, date or character) based on a specified difference. Companion to the existing DIFFERENCE() function as the difference specified relates to the difference calculated by the DIFFERENCE() function. When performing difference comparisons on strings, the NEAR() function is significantly more efficient than the companion DIFFERENCE() function. For string comparisons, both DIFFERENCE() and NEAR() measure the difference using the Damerau-Levenshtein distance. For numeric comparisons, both DIFFERENCE() and NEAR() measure the difference using a numeric value. For date comparisons, both DIFFERENCE() and NEAR() measure the difference using a number of days.

NORMALIZE()

Added the NORMALIZE() function to normalize characters in a string. This function is designed to support equality and similarity searches, particularly in support of the NEAR() and DIFFERENCE() functions. NORMALIZE() function performs the following actions:

removes non-alphanumeric characters except blanks (like punctuation)
replaces foreign characters with their English equivalents
trims leading blanks
compacts contiguous blank spaces into a single blank space
upper cases the remaining string
optionally, allows special characters to be specified that should be retained
optionally, allows specification of a replacement file containing pair sets of replacement items (such as address replacements like replacing ROAD with RD or STREET with ST)

Enhanced the NORMALIZE() function to support specification of multiple substitution files by separating individual substitution files with a comma within the overall quoted string.

PROPER()

Enhanced the PROPER() function to convert possessive terms appropriately (for example, O'HARA'S to O'Hara's).

RECOFFSET()

Enhanced RECOFFSET() with special optimizations that make it more than 1000 times faster than the ACL® Version 10 implementation.

REGEXFIND()

Added new Find type function that uses regular expressions.

REGEXREPLACE()

Added new Replace type function that uses regular expressions.

REPLACE()

Multiple replacements can now be specified as consecutive pair sets with the first item replaced by the second item in each pair set.

RIGHT()

Added RIGHT() function to specify the number of characters to be selected from the right of a string.

SIMILAR()

Added a SIMILAR() function which compares a pair strings for a degree of similarity based on a specified Damerau-Levenshtein. This function differs from NEAR() as it upper cases strings, removes all non-alphanumerics (like blanks, commas, quotes, dashes, periods, etc.), replaces foreign characters with their english equivalents, and transposes certain letters with their common numeric equivalents (such as I/1 or O/0). Additionally, the SIMILAR() function converts numeric and date values to strings for comparison.

SMARTSEARCH()

Added a SMARTSEARCH() function for constructing Smart Searches in the View. This function is intended for use in the View, not Procedures. The SMARTSEARCH() function is similar to the FIND() function except that by default it only searches the columns in the View and not the whole record. The SmartSearch can also be limited to search only highlighted columns, which may include related or computed fields. Additionally, Unlike the FIND() function, when searching for multiple values (separated by blank spaces), the values must exist concurrently within the same row, or within one of the highlighted columns in the same row but not within the same highlighted column.

SORTNORMALIZE()

Added the SORTNORMALIZE() function as an alternative to the NORMALIZE() function. The SORTNORMALIZE() function offers the same normalizing tools as the NORMALIZE() function but adds a final capability that places normalized whole words in descending order separated by blanks (after replacing non-alphanumeric characters with blanks, replacing foreign characters with their English equivalents, trimming leading blanks, replacing contiguous blank characters with a single blank, making optional substitutions and upper-casing the remaining string). This capability alleviates comparison problems like “West 49th Street” and “49th Street West”. This capability is ideal for strings that do not contain spaced abbreviations like “I B M” which would be re-arranged to read “M I B”, making it less comparable to “IBM”.

Enhanced the SORTNORMALIZE() functions to support specification of multiple substitution files by separating individual substitution files with a comma within the overall quoted string.

SPLIT()

Enhanced SPLIT() function to allow selection of segments in reverse order by specifying negative numbers. For example:

Split('12/31/2011', '/', -1) would return 2011

The SPLIT() function supports use of a negative segment number which implies the number of segments from the end of the string. Therefore, SPLIT(string, delimiter, -1) will select last segment in the string, while SPLIT(string, delimiter, -3) will select the third from last segment in the string. As with positive segments, if the absolute value of the negative number is larger than the number of segments you will get an empty string.

STRING()

Modified the STRING() function to support elapsed times in addition to numeric values.

TEST()

Refined the TEST() function so it only checks the appropriate character set based on the field definitions when searching records. This is consistent with the FIND() function.

TOTAL()

Added the TOTAL() function to return the total value for a set of specified numbers or a set of numbers stored within a specified variable array.

UNICODE()

Added a UNICODE() function to convert an ASCII value to a UNICODE value. Useful in procedures with expressions, computed fields and especially variable assignments to ensure that a UNICODE value is outputted.

For example, when a variable is assigned a blank value, if the variable is not subsequently updated with a UNICODE field value, then the outputted value will be ASCII by default. To ensure a UNICODE value (UTF-16) is always outputted, the UNICODE() function should be used as follows:

ASSIGN V_INVOICE_NO = UNICODE(BLANKS(8))

VALUE()

Enhanced the VALUE() function to support optional decimal character parameter for specifying decimal character for non-English data.

WEEKEND()

Added a WEEKEND() function to identify datetimes that occur on weekends (i.e. Saturday or Sunday). Returns a T value if the datetime occurs on a weekend.

Procedures

Procedures in Analyzer are what ACL® calls Scripts/Batches.

This section describes procedure features that behave differently than in ACL® or that are unique to Analyzer.

General Procedure Compatibility with ACL®

Generally, Analyzer is compatible with ACL® scripts, except with respect to specific commands or syntax changes (e.g. SUBTOTAL instead of ACCUMULATE) that ACL® has added since ACL® Version 8.

Procedure Scheduler

Added a Scheduler for procedures stored in shared folders on an Arbutus Windows Server. Procedures can be scheduled for a specified date and time, or for a specified interval (daily, weekly, or monthly at a specified time). Results are color-flagged in the Overview window to indicate whether a schedule procedure was run successfully (Green) or failed (Red). Scheduled output can be stored, privately, publicly or other.

The Scheduler can be launched by right-clicking on a procedure in a shared folder and selecting Schedule, or by clicking Tools/Schedule Procedure from the main menu.

A scheduled job can also be un-scheduled in the Schedule dialog by clicking the [Unschedule] button.

Admin Tool for Viewing and Modifying Jobs, Users, Data Sources (Passwords/Credentials)

Added a tool in the Admin menu for administrators to view and modify scheduled procedures (jobs) in an enterprise shared folder on a specific Arbutus Windows Server. Click the Admin menu and choose Scheduling.

Added a tool in the Admin menu for administrators to view connected users. Click the Admin menu and choose Connected Users.

Added a tool in the Admin menu for administrators to Update or Remove passwords and credentials and set customSQL Select terminator for database and SAP systems from which they intend to obtain data. Click the Admin menu and choose Manage Data Sources.

Added a tool in the Admin menu for administrators to View or Remove software activation keys. Click the Admin menu and choose Manage Activations.

Setting Preferences in Procedures

The current application settings (preferences) are now stored internally prior to running a procedure. When the procedure is completed, these application settings are restored. This new functionality ensures that running a procedure only temporarily changes the user’s preferences and that a procedure can no longer permanently affect the application settings from within a procedure.

Combining the new Set Default command with this new functionality, and issuing appropriate Set commands within the procedure, allows multiple users to run the same procedure and obtain the same results every time; regardless of their individual application settings.

Procedure Tab/Editor

Updated the Procedure tab to be a full fledged procedure editor. See User Preferences for details on the related new Editor option tab. The new procedure editor:

Auto wraps long command lines.
Displays optional colors on selected items (e.g., Commands, Functions, Errors). This makes desired syntax more visual for reviewing, editing and debugging procedures.
Auto indents Group logic.
Enables step mode which allows procedure to be run in step mode using F6 to advance one line at a time. This is ideal for testing procedures during development or diagnosing errors.
Enables setting breakpoints within a procedure. This enables a procedure to be run until a breakpoint is encountered at which point the procedure pauses and is placed in step mode.
Allows visual diagnosis of commonly mis-matched parentheses or brackets by clicking on a single parenthesis or bracket and having the matching one (if it exists) be highlighted in red.
Supports full editor functionality including all standard keyboard shortcuts
Added line numbers. When a procedure fails, the line number of the command that failed is reported in the Command Log so that users can easily locate the line in the procedure containing the failed command
Supports running procedure from cursor via right-click option.

Added support for use of tab character in procedure window so you can more easily indent your work for readability (by default a tab is treated as two spaces).

Procedure Protector

Added Command Option for specifying a protection key for protecting procedures from being viewed or edited.

Added a new Protect dialog in the Tools menu to enable individual procedures to be protected using a specified protection key so they can be run but not viewed or edited. This is useful for those building applications for other users or clients to ensure that the work is protected and is not un-intentionally or erroneously modified.

Procedure Keyboard Shortcuts

Added keyboard shortcuts to cycle sequentially through open procedure tabs in the Application window

CTRL+TAB cycles sequentially to the right through open procedure tabs in the Application window
CTRL+SHIFT+TAB cycles sequentially to the right through open procedure tabs in the Application window

Dialogs

See Dialog and Pause commands in the earlier Command section.

Indenting

Added automatic indented wrapping for long single line commands so they can be easily viewed and edited in procedure window.

Macro Substitution

Added support for DATETIME data to be used in macro substitutions.

Set Commands in Procedures

The following Set commands are useful for ensuring procedures run consistently on different machines, or control user and error interactions.

Set Default

Added a SET DEFAULT command (equivalent to the SET DEFAULT button in any of the Tools/Options tabs). Ideal for resetting preferences to their default state in a procedure (based on the default settings for the language version of Analyzer being run). Specific preferences would then be set within the procedure using other appropriate SET commands.

Set Escape Off

The Set Escape Off command disables the ESC key as well as the CANCEL button on user dialogs, to allow better control over procedures.

Set Fatal

The Set Fatal command allows control over fatal error processing. When a procedure encounters a fatal error, such as trying to open a table that does not exist, you can control the behavior. The default response, is to pop up an alert message and stop processing. The Set Fatal options allow you much greater control over the abnormal execution of procedures.

SET FATAL n - Have the application exit and return a specific value (n) to the calling program.
SET FATAL RETURN - Stop execution of the current procedure and continue with the next procedure, as if the current procedure was finished.
SET FATAL TO <procedure name> - Automatically run the named clean up procedure (may be combined with any of the other FATAL modes).

Procedure Labels (Sub-Procedures)

Callable sub-procedures named Procedure Labels may be included in a single procedure file. You have just one procedure file/object, but it can contain any number of separate callable procedure labels. This set of procedures is stored as a single file.

Syntax for defining procedure label:

PROCEDURE <name>

… commands

RETURN

Syntax for calling the sub procedure:

DO [<file name>].<procedure name>

When the <file name> is omitted, the called sub-procedure is read from the currently active procedure file. Specifying Return at the end of each sub-procedure is a best practice, but not absolutely required.

Practical example:

vContinue = 'Y'

DO .ASK_USER WHILE (vContinue = 'Y')

PROCEDURE ASK_USER

ACCEPT "Do you want to continue the loop?" to vContinue

vContinue = SUBSTRING(UPPER(vContinue),1,1)

RETURN

Return Command

The Return command controls the execution of the current procedure label and optionally returns an assigned value in a variable called RETURN. This could be useful to report error conditions, or merely as a quick way to end a process. Return ALL exits from all currently executing procedures.

Variables

Enhanced variables and the related ASSIGN command to support variable arrays. Variables can now be assigned as an array with a fixed number of array elements having a consistent data type and format (e.g. decimals). Array elements may be referenced directly (for example N[10] would reference the 10th element in the array) and updated interactively - most typically within a procedure.

Enhanced SAVE command to include FIELD option to allow data from a column to be saved into a variable array

ConnectPlus

ConnectPlus is Arbutus' proprietary ODBC driver that exposes all Analyzer tables through the ODBC interface directly to any ODBC compliant Windows applications including relational data sources (e.g. SQL Server, Oracle).

Whenever any Windows-based ODBC compliant application accesses ConnectPlus through their ODBC interface, the Windows application is presented with a list of all the tables that appear in the specified ConnectPlus project's Overview. Separate instances of the ConnectPlus driver may be added to expose different ConnectPlus projects.

This means that any table defined in Analyzer can be exposed via ODBC to applications like MS Excel, MS Access, Crystal Reports, and other vertical market applications (audit, risk, BI, data profiling…).

ConnectPlus data that can be exposed includes local and Arbutus Server based tables. Application users (for example Excel users) reading data via ConnectPlus would not only never need to actually use Analyzer, they may not even be aware of its existence. Where the data is Arbutus Server based, ConnectPlus automatically handles all details of connecting to the Arbutus Server and accessing the data.

ConnectPlus is fully compatible with other common data interfaces, including OLE/DB, .NET, and JDBC.

Use of auto-executing procedures allow any type of processing to be completed automatically, before the table is supplied by ConnectPlus; this can even include user interaction via dialog boxes.

Arbutus Servers

There are a number of substantial differences (features and performance) between the Arbutus Servers and ACL’s Servers®.

General

Improved server performance, results will vary based on the command issued.

Enhanced server connections to automatically close tables/views when server profiles time-out.

Enhanced Server Activity dialog to include yellow and red icons beside warning and error messages respectively.

Data can be extracted in all directions (Client to Server, Server to Client, and even Server to Server) using the command dialog or the appropriate command syntax (regardless of target platform). For example:

Send File to Local Client:

TO <table-name> LOCAL

Send File to Named Server:

TO <table-name> SERVER <server-profile-name>

Multiple Connections

You may connect to multiple Arbutus Servers simultaneously. Switching to a different Arbutus Server does not disconnect you from the current one.

Arbutus iSeries Server

iSeries FLAT, IFS, SPOOL and Database files are supported.

Arbutus Windows Server

Added an Explore option to the Server menu that allows users to browse a connected Arbutus Windows Server to explore files and folders that they can access. Via the right-click menu, users can create new folders, delete, or rename items (files/folders) provided the user has the required permissions (read/write access) to browse and make changes. Users can also copy files from local, transfer files to local, and open a file in Notepad.

Added a Scheduler for procedures stored in shared folders on an Arbutus Windows Server. Procedures can be scheduled for a specified date and time, or for a specified interval (daily, weekly, or monthly at a specified time). Results are color-flagged in the Overview window to indicate whether a scheduled procedure was run successfully (Green) or failed (Red). Scheduled output can be stored privately (to the folder specified in your output prefix), publicly (to a common server folder) or to any other accessible network folder.

Added support reading SAP directly via Arbutus Windows Server (dab Exporter software also required). Includes REFRESH functionality.

Added support for directly accessing web URL’s so that web based content can be integrated into applications.

Relational data sources can be directly accessed:

Oracle
DB2
SQL Server
Any ODBC compatible data source

Supports multi-table queries

Automatically implements push-down optimization.

Compression is supported on all output tables. The Compression level is set in the INI file. Compressed data typically processes as fast, and in many cases faster, than uncompressed data, while the file size is typically reduced at a minimum to 8 - 13% of the original size. In some cases, file size is reduced even more substantially. Compatible with all subsequent operations (SORT, RELATE, INDEX, etc.).

Compression level can be overridden by SET COMPRESS n command.

n = 0 (no compression)
n = 1 (minimum compression, fastest operation)
n = 9 (maximum compression, slowest operation)

Added new software called Smart Link for SAP ERP to allow easy access from the Arbutus Windows Server to import data directly from SAP ERP systems. This software provides arrangeable and sortable list views for field and filter selection.

Arbutus zSeries Server

Added support to include long field names for Adabas instead of just the native 2 character names.

Added support for accessing ADABAS files and related FDT’s (file definition tables).

Added support for accessing ISAM files.

Shared Folders

The Arbutus Windows Server supports sharing project items (such as Procedures or Table definitions) between multiple users via shared folders. This uses the same familiar Overview interface used by ACL® or Analyzer, so no new technology (like AX®) needs to be learned.

Enhanced the Manage Shared Folders dialog as a list view with adjustable columns displaying each shared folder name, the project it is attached to (if any), the location of the shared folder and the type of shared folder (Personal, Team or Enterprise).

Added support for local shared folders (i.e. on a local or mapped network drive) in addition to Arbutus Windows Server shared folders.

Added new “Share” menu item to create and manage Shared Folders This menu allows you to establish and manage shared folders (Personal Share, Team Share or Enterprise Share).

Removed the “Manage Shared Objects” preference from the Tools/Options/Interface.

Using multiple, separate shared folders allows simultaneous and multiple group/department and organizational sharing. A single administrator can maintain all group and/or organization definitions.

Maintenance of shared definitions is almost trivial (drag and drop). Eliminates virtually all deployment issues (relating to updating users individually).

Added right-click support to Shared Folders to display shared folder properties.

Added ability to drag local table layouts into shared folders as a means to transfer local table layouts between users.

Clarified behaviors when moving table layouts:

When a table layout containing relations is moved between a local project and a shared folder, or from one shared folder to another shared folder, the indexes for any relations are deleted and any relations are removed from the table layout. The details for the removed relation(s) are listed in the Notes tab of the Table Properties of the parent table for subsequent recreation.
Similarly, when a table layout for a refreshable data source is moved between a local project and a shared folder, or from one shared folder to another shared folder, the refresh tag is deleted and the table layout is linked to the flattened data with no reference to the source data. The moved table layout will no longer be able to be refreshed from the source data.

Note: Refreshable table layouts and table layouts containing relations are only maintained when a table layout is moved within the same root folder (for example from the root to a sub-folder within the root).

Removed the read-only nature of shared folders so project items (like procedures) can be edited within the shared folder without the need to drag the project item locally. Additionally, shared objects can now be dragged directly between shared folders.

Added a Scheduler for procedures stored in shared folders on an Arbutus Windows Server. Procedures can be scheduled for a specified date and time, or for a specified interval (daily, weekly, or monthly at a specified time). Results are color-flagged in the Overview window to indicate whether a scheduled procedure was run successfully (Green) or failed (Red). Scheduled output can be stored privately (to the folder specified in your output prefix), publicly (to a common server folder) or to any other accessible network folder.

Changed the warning message for incorrect entries in SHARED.txt file.

Enhanced syntax for specifying local and server shared folders in the SHARED.TXT file (no change to the GUI Shared Folder options).

User Preferences (Tools/Options)

Command Options

Added an option to ensure that an empty string (typically a Null character) will match with any other string.

Added option to allow users to suppress display of the More button options. When turned off, this will auto-expand the More button options in all command dialogs.

Editor Options

Added a new Editor tab option for the new Procedure Editor that:

1. Enables specification of line attributes for new Procedure Editor:
Tab size
Indent size on wrapped lines
2. Enables customized coloring of selected items within new Procedure Editor to make desired syntax more visible when reviewing, editing and debugging a procedure. Colorizable items are:
Commands
Keywords
Strings
Numbers
Macros
Comments
Functions
Errors

Font Options

All global fixed and proportional fonts are set via the Font Options - redundant font controls were removed from the Editor options and from the Windows menu.

Interface Options

Added an option which, when turned on, allows alternate Log files (.LOG) to be displayed in the Overview to allow easier switching between Log files. This option is off by default.

Added an option which, when turned on, allows Analyzer to automatically check for updates.

Added an option to reload last project used.

Added an option to reload last table used.

Added an option to delete temporary project items using specified object prefix.

Notify Options

Consolidated the Sender, Password, Primary and Secondary Mail Servers and the Port number into a single Notify option tab in order to simplify the Notify command dialog.

Overview Options

Added an option to map external file extensions (like .XSLX for example) to external applications - any mapped external files with mapped extensions will be displayed in the Overview window and, if clicked upon, will be opened in the mapped external application. This makes reviewing exported data easy.

SAP Options

Added a new SAP tab to allow options for entry of SAP user name, password, language, and client.

Provided checkbox to enable use of SAP technical field names for import.

Added text box to enter SmartLink+ activation key.

Table Options

Added an option that enables small table data to be cached rather than having to be re-read. Be default Analyzer caches table data less than 10 MB.

Added an option to specify the maximum number of relational tables that may be joined when defining relational data in the Data Definition Wizard. By default this option is set to 5 relational tables. The maximum value is 26.

Added an option to indicate in the Overview Window if tables contain relations. A vertical green bar is added to left edge of Table icon if relations exist.

Added an option to indicate refreshable tables in the Overview window. A vertical blue bar is added to left edge of Table icon if refreshable tables exist.

Added an option to indicate relational tables in Overview. A vertical purple bar is added to left edge of Table icon if relational tables exist.

Added an option to allow tables to display field contents on open.

Added an option to allow tabs for multiple open primary tables.

View Options

Added a new option to colorize alternate rows in the View with custom background color.

Added a new VIEW option to allow column headings for related and computed fields to be colorized in the View. The color is customizable. This makes identifying and differentiating related and computed fields in the View much easier.

Variables

Added an optional Variables window to display the current values of all existing variables (appears at the bottom of the Overview window and is re-sizeable). The Variables window can be opened in two ways:

Automatically opens when using step-mode in procedures
Click "Show/Hide Variables window" option in the Windows menu

Added support for variable arrays as parameters to the following functions:

AVERAGE()
LISTFIND()
MATCH()
MINIMUM() and MAXIMUM()
TOTAL()

Enhanced variables to support variable arrays. Variables can now be assigned multiple values in an array structure where the value of array elements can be retrieved and updated. Variable arrays must have a fixed number of elements and array elements must all have the same data type (numeric, character, datetime or logical) and characteristics (same number of decimals for numeric values, same maximum length for character values). For example, the 10th element of a variable array N containing a 100 elements would be referenced as N[10].

Added a FIELD option to the SAVE command to enable easy creation of a variable array from a single column of data in active table layout.

Menu

Add small icons on the left of each menu selection.

Added an Admin menu to provide options for managing

scheduled jobs (procedures) in an enterprise shared folder on an Arbutus Windows Server,
connected users,
passwords, and
software activations

Added a Share menu item for creating and managing shared folders (Personal, Team or Enterprise).

Added a Schedule Procedure item to the Tools menu.

Moved the Sample, Evaluate and Size commands to Data menu.

Added the Applications menu to display all procedures and sub-folders stored in Shared Folders. Replaces the old Standard Applications menu.

Moved the Notify command and Clear Log File to the Tools menu.

Added a Server menu for creating/modifying/activating/deactivating server profiles/connections, and for exploring the Server.

Modified the Help menu to assist users with the online activation of the software, to check for updates, and to display more complete version/build/licensing information.

Installation and Software Updates

Enhanced the installation and update features for Analyzer

Analyzer now provides an Interface option to automatically check for updates in the Help menu
Analyzer now allows users to activate the software online via the Help menu
Analyzer now allows users to manually activate the software using a manual activation utility when access to the internet is unavailable
Arbutus Servers now support concurrent-users licensing
Analyzer added support for installing Analyzer behind a proxy server. Specifying the proxy server is easily done by clicking the “Proxy Settings” button on the install.

SAP Data Access

Arbutus offers two optional interfaces for accessing SAP data:

SmartLink for SAP ERP is an RFC that is installed on the same server as the Arbutus Windows Server to provide a server interface to SAP data sources
SmartLink+ for SAP ERP is a local interface that provides Analyzer direct access to SAP data sources

Unicode and Foreign Language Data

Arbutus now offers full Unicode support for reading non-Latin data. This includes full keyboard support in the Command Line, Procedure Editor and in naming fields.

Arbutus now offers a pull down menu in the Character Set panel of the Data Definition Wizard for for selecting the appropriate code page for non-local ASCII data.