Configuring OI 9.3 to use IDX_SETS2

After the initial release of OpenInsight 9.3 it was discovered that the original IDX_SETS routine (IDX_SETS1) no longer returns the correct results when doing indexed selections of large data sets. We are therefore suggesting that all users of OpenInsight 9.3 change their system to use the newer IDX_SETS2 routine.

IDX_SETS1 is the original OpenInsight routine and has been in the product since its inception. IDX_SETS2 is a relatively recent .NET based emulation of the functionality.  With small data sets, IDX_SETS1 seems a little faster than IDX_SETS2, but we’ve found that with large data sets, IDX_SETS1 appears to get “confused” on modern versions of Windows.

You can configure which version of IDX_SETS you use by creating or editing the record CFG_IDX_SETS in the SYSENV table. To use the new IDX_SETS, make sure field 1 of this record contains the string IDX_SETS2; to use the original, make sure field 1 contains the string IDX_SETS1.

The CFG_IDX_SETS record will control which version of IDX_SETS is used by default for everyone on the current OpenInsight system.  If instead you want to specify, for a specific user and application, which version (IDX_SETS1 or IDX_SETS2), you should create or edit the record CFG_IDX_SETS*<appid>*<username> (ie, CFG_IDX_SETS*EXAMPLES*EXAMPLEUSER); if you want to specify which version to use for everyone in an application, you should create or edit the record CFG_IDX_SETS*<appid> (ie, CFG_IDX_SETS*EXAMPLES); if you want to specify which version to use for a specific user in all applications, you should create or edit the record CFG_IDX_SETS**<username> (ie, CFG_IDX_SETS**EXAMPLEUSER)

Did you know . . . (BRW)

… that the new OpenInsight Banded Report Writer (BRW) in OpenInsight 9.3 has a command line interface that you can use to launch your banded reports or perform other BRW functions?

To start up the Banded Report Designer, you can do the following:


Once you have your report(s) defined, you can generate them programmatically using the following:

CALL RTI_BRW_GENERATEREPORT(rptFile, rptName, outputName, rptType, overrideListID, rptDetails, bUseGUI)

where rptFile is the name of the report group you saved the desired report(s) into and rptName is the name of the specific report to run (or “*” to run all the reports in the group). You may also specify a semicolon-delimited list of report names if desired.

OutputName is the path and name of the file to save the output to (if producing a PDF, HTM, etc. document) – leave this blank to generate printed output.

rptType is the type of output to generate, and can be PDF, TIFF, HTML, TEXT, XLS, or XLSX (or PRINT to generate printed output, but that isn’t really needed if you leave outputName blank).

overrideListID is the ID of a saved list that contains the record keys you want this report generation to use. If there is no overrideListID specified, but there is an active select list when RTI_BRW_GENERATEREPORT is called, then the active list will be used instead.

rptDetails is only used when the rptType is PDF – if desired, you can specify in rptDetails the access permissions for the PDF, and the password(s) for PDF access.

bUseGUI is a flag that indicates whether you want report generation to occur with a GUI (set bUseGUI to “1”) or without a GUI, i.e., silently (set bUseGUI to “0”). Note that if the output is going to the printer, you can also set bUseGUI to “2” – in this case, you’ll get a full print preview window, instead of just a printer control window as you would if bUseGUI is “1”. Note that the default if bUseGUI is not specified is “0” (no GUI).

You can also call, during SET_PRINTER, the LOADREPORT call; this will “embed” generated BRW output into OIPI output (this is only available when using VSPRINTER2, aka OIPI.NET). You’ll pass in to the SET_PRINTER call the name of the report group, the name of the report to include (“*” for all in the group, or a semicolon-delimited list), the overrideListName, and a flag (0/1) to indicate whether the BRW report is appended to the current output (1) or replaces the current output (0).

Note that in both cases (LOADREPORT in OIPI.NET, or RTI_BRW_GENERATEREPORT) you can if desired pass in a full report definition (which is just an XML string) in the “report group” parameter. In this way, you can actually access the report definition and modify it, or create one entirely programmatically.

If this is something you wish to do, you can use the following to read an existing report definition:

rptdef = RTI_BRWSUPPORT("READ", reportGroupName, bLockFlag)

where reportGroupName is the name of the report group, and bLockFlag is a flag to indicate whether the record should be locked (1) or left unlocked (0).

RTI_BRWSUPPORT is a handy function with a few different actions. We’ve already discussed LAUNCH and READ; you can also call it with the following actions:

DISPLAY: pass in the report group name and specific report name (in parameters 2 and 3) and the report will be displayed via OIPI.NET;


Article first published in the Revelation Software January 2011 newsletter and on

OI 9.3 Dedicated and Background Indexer Patch

Revelation have identified an issue in OpenInsight 9.3 that prevents scheduled and dedicated indexing processes from starting.  The problem is limited to these scheduled index processes:

  • Set_IDX function launches the dedicated indexing window but no indexing occurs.
  • Launching OEngine.exe with /I command line argument launches the dedicated indexing window but no indexing occurs.
  • The background indexing setting in the database manager that specifies the delay before indexing has no effect.

Routines that call Update_Index directly or run the dedicated indexing service as a Windows scheduled task are unaffected by this problem.

OpenInsight WORKS subscribers can gain access to the patch by logging into the WORKS area on

OpenInsight 9.3 Released

Revelation have just officially announced the release of OpenInsight 9.3 and the office press releases can be found on both the Us and European websites.  The European press release can be found at and it touches on the major new features, being Data Encryption at Rest, O4W version 1.2, the brand new Banded Report Writer and the inclusion of some Extended Math Functions.  This release also sees an enhancement to the D3 connector, which now fully supports TigerLogic’s mvBase.

As Mike mentions “Our connection technology has truly made OpenInsight a versatile front-end graphical database development environment”.  With the other advancements in the technology, I am proud to be part of the Revelation team and I look forward to bringing the benefits of OpenInsight 9.3 to the wider developer community throughout 2012.

If you are a current WORKS subscriber, the OpenInsight full install and upgrade can be found in the private WORKS area.  For those of you who are not yet on WORKS, the 9.3 evaluation software will be available for you trial very very soon.