Product
Support
Everything Else
Integrated Collection Updating in Helix 7.0
Introduction

Helix 6.2 introduced the integrated structure checker, eliminating the separate — and easily forgotten — step necessary to check collections for structural errors.

Helix 7.0 completes this work by integrating collection updating directly into Helix RADE, Helix Server, and Helix Engine. The stand alone Update Collection application is officially obsolete.

Helix 7.0 can update collections as far back as Helix Express 3.5. For assistance updating collections older than Helix Express 3.5, see this technote or contact QSA ToolWorks’ technical support department.

Updating Collections

To update a collection, simply open it with Helix RADE, Server, or Engine. You can use any standard macOS technique to open a collection — drag and drop, choose Open from the File menu, AppleScript, etc.

Note: Since Helix applications can open just one collection at a time, dragging more than one collection at the same time will result in one of those collections being updated; the rest will be ignored.

After confirming the update — see the next section — the collection is updated and opened in Helix 7.0.

Updating and Backups

Because updating a collection is a one-way street — an updated collection can not be opened with an earlier version of Helix — a warning dialog is presented before a collection is updated. This dialog (shown at right) offers to create a backup (in zip archive format) of the collection before updating.

You are strongly encouraged to make backups of all collections prior to updating. If the process fails for any reason, the partially-updated collection will most likely be unrecoverable.

When updating a collection to Helix 7.0, an option to create a backup before updating is available. The backup file is created as a zip archive, and named according to the collection name, with a time stamp in YYMMDDHHMM format appended. For example, the zip archive of a collection named “Accounting” that is updated on June 18, 2016 at 2:57 PM will be named Accounting-1606181457.zip.

What Does Updating Do?

Because Helix 7.0 is a major feature update, the internal structure of a collection must be modified to support the new features. Specifically, these changes occur when a collection is updated from Helix 6.x to Helix 7.0:

  • Record data stored in Picture fields is converted from PICT format to PDF
  • Pictures stored in label rectangles and command rectangles are converted from PICT format to PDF
  • Text and Styled Text strings throughout the collection structure — including icon names, custom names, and comments — are converted to Unicode
  • Kludge to compensate for default command rectangles being larger in Classic removed; rectangles resized to match
  • Icons resized to accomodate new features, removal of obsolete properties
  • Views that use High-ASCII delimiters are reset to use default (Tab and Linefeed) delimiters — Unicode support for delimiters is not yet implemented, so only ASCII values 0–127 are currently legal.
  • Open Quick Queries are updated to support new search options
  • ‘Spell check’ property in data rectangles containing Text or Styled Text fields is turned on; off for all others
  • ‘Fit to page’ property is turned on for views whose template has one dimension size ±10% of standard A4/Letter size; off for all others
  • Obsolete menu items are removed from user menus

After the update process is completed, an internal script is run. The script does the following:

  • Examine all user icon menus for needless items: empty menus and double dividers. and eliminates them
  • Post a notification (macOS 10.9 and higher) reporting on how many user icons had needless items removed
Additional Tools

Command Line Tool: Helix Update can also be run as a command line tool (CLT). The CLT requires two parameters: the path to the Helix Update CLT and the path to the collection to be updated. With Helix RADE stored in the Applications folder, the Terminal command is:

Warning: The CLT presents no dialog, makes no backup of the collection before updating, and does not include the internal script that runs at the end of the update process when run in the UI. (The script is found at '/Applications/Helix <app>/Contents/MacOS/ and can be run later, if desired.)

'/Applications/Helix RADE/Contents/MacOS/Helix Update' '/path/to/collection'

Helix Engine and Helix Server also contain Helix Update and can be substituted in the command line above. (Do not remove the Helix Update tool from the main application package; it relies on other components within the package.)

One advantage of the CLT is that it can be used to create a batch update process. An AppleScript that uses the CLT to batch update collections is available here.

Holding the Command key down when clicking an update button in the dialog writes a diagnostic log file to the desktop. This may be useful for troubleshooting update issues.