Omnis Classic vs Omnis Studio

Technical Reference for Developers

This page outlines the major behavioural differences between Omnis Classic and Omnis Studio.
It focuses on practical areas where assumptions made in one environment will cause errors or unexpected behaviour in the other.

The intent is to provide a reliable reference when switching between Classic and Studio environments.

1. Execution Model

Procedural vs Object-Based

Omnis Classic executes code strictly in sequence.
There are no object methods, no event lifecycle, and no method dispatch system.

Omnis Studio introduces classes, instance variables, events ($construct, $destruct, $event()), and encapsulated logic.

Classic code is linear and deterministic. Studio code is event-driven and object-oriented.

2. Transaction Handling

Classic does not support:

Everything is handled with procedural file commands.

Studio provides full transaction blocks and SQL-level rollback/commit support.

3. Code Formatting & Whitespace

Classic automatically:

Studio preserves developer formatting.

Classic code cannot rely on custom whitespace or unusual formatting to convey meaning.

4. Lists and Columns

4.1 Column Identification (Classic)

Classic identifies list columns by field name:

LL_List(FieldName, RowNum)

Studio often uses numeric index references unless otherwise defined.

4.2 Dynamic Access Using nam()

Classic uses:

Calculate LC_Col as nam(LC_ColName)

Studio typically uses object references instead.

5. The pick() Function

In Classic:

pick(valueList, match)

returns 0 when no match is found
(as long as no third parameter is supplied).

This behaviour is deliberate and widely used in Classic code.

Studio’s equivalent behaviours differ and may return null-like values.

6. Field, Variable, and Type Handling

Classic is permissive with types:

Studio uses stronger type rules and clearer null states.

7. Window Behaviour

Classic windows are purely procedural:

Studio has a full event model:

Classic UI logic must be written procedurally.

8. Timers

Classic timers:

Studio timers follow object lifecycles and event dispatch.

9. Datafiles and SQL

Classic:

Studio:

10. Summary

Omnis Classic is procedural, predictable, and minimalistic.
Omnis Studio is object-oriented, event-driven, and modern.

Understanding the differences avoids mistakes and preserves code integrity when switching between them.