The FOURTH level programming tool

CrossModel: the “secret weapon” of X-Cross:

To create a peerless ERP, we needed a peerless programming tool.
That’s why we created CrossModel.

To create a peerless ERP, we needed a peerless programming tool. That’s why we created CrossModel.

“If I have seen further it is by standing on the shoulders of Giants”
Isaac Newton

To go over the top, we started from the top: Omnis studio, in our opinion one of the most (if not the most) advanced RAD (Rapid Application Development) on the market. Omnis Studio not only is a state-of-the-art development language, but it also offers a unique feature: the capability of self-programming itself and this allowd us to create the CrossModel development tool.

Why “FOURTH level” programming tool

The development of programming languages have evolved in time adding new “layers” to the previously existing ones.

Level 1 - Machine language

The only language that is understandable by computers is machine language, i.e. a sequence of 0 and 1.

Level 2 - C++

The “low-level” languages, like C, create a machine language executable compiling the source code.

Level 3 - Omnis Studio

Omnis Studio uses the C++ language to execute tokenized instructions via its machine code executable; the classes that form a library are saved in a special version of the proprietary database.

Level 4 - CrossModel

CrossModel sits on top of Omnis Studio, and can create applications with a minimum development effort adding a further level of abstraction to Omnis Studio itself. CrossModel creates brand new classes, like the smart queries or the tables connections, or adds properties to the existing classes. The information is saved in the library data file, together with the standard Omnis Studio classes. The properties and classes of CrossModel are used by Omnis Studio, and are basically a set of parameters passed to a “core” library that will process them.


Save 90% of development times with respect to Omnis Studio

Omnis Studio is already one of the most productive development languages on the market, since it offers in the same environment:

These two qualities are seldom found together, and in most case the flexibility is inversely proportional to the programming speed.

Starting from this already very advanced level, we went further up with CrossModel.
CrossModel offers many important advantages with respect to Omnis Studio alone:

Reduced number of instructions

In our previous ERP, Target Cross, the average number of instructions per Omnis Studio class was 71.

In X-Cross, our latest ERP, the number of instructions per class has dropped to 5 (five!), more than 14 times less!

It is evident how much time the developers can save, not to mention the debugging time and the probability of errors in the code.

No unnecessary code

With CrossModel, the developer needs to write Omnis code only in specific situations of the program.
For example, if we have to validate an IBAN code or a credit card number, the code has to be written, but all the “general purpose” tasks (open windows, select records from connected tables, insert or update of multilevel data structures, printing report, read records with a selection filter, etc.) are performed by the core library using the CrossModel parameters.

“Complimentary” features

An application developed with CrossModel automatically inherits, without writing a single line of code, a large set of extremely powerful features, both in the database structure and in the operating environment.
These features are a major point in our ERP X-Cross, but will be automatically available in any application developed with CrossModel.
A list of these “complimentary” features can be found at:

Main features of CrossModel

  • Total Client technology: remote Web use of the programs using a fully functional desktop interface
    • Unparalleled speed on the internet
    • Read – insert – update of complex multilevel objects in a single call to the server
    • Minimum load of server
    • All the calculations performed on the client, except the SQL statements in the database
    • Data encrypting for maximum security and no need for HTTPS
  • Use of Total Client technology in LANS
    • More than 60% reduction in network traffic
    • Higher read speed for large number of lines
    • No direct access of the client to the database
    • More stable and reliable connection with respect to client-server
    • Same kind of connection inside or outside the premises
  • Automatic updates of libraries or full installer
  • Definition of database tables with enhanced Omnis schemas
    • Enhanced schema properties
      • Indexes
      • Smart no null
      • No insert if empty columns
      • Unique if valid value columns
      • Search key
      • Calculated columns
      • Custom data types
    • Inheritance in schemas
  • Database tables connections
    • Foreign keys and referential integrity
    • Virtual connections
    • Automatic use of connections in applications
      • Automatic selection of records in connected tables
      • Automatic check on delete based on foreign keys
      • Zoom on every connected table-view
      • Automatic insert-edit in every connected table
  • Database views
    • Mirror views for table aliases
    • Updatable complex views for multiple tables
    • Manual views
  • Smart queries
    • Automatic joins of tables and views
    • Creation of view in database
    • Reading of data with stored procedures for maximum speed
    • Inheritance on Smart Queries
    • Smart inheritance modifying properties
  • Multilevel complex objects
    • Smart queries with multilevel structure (XML-like)
    • Header table-view and subtables-views
    • Automatic connection of subtables in insert-edit
    • Sub-subtables (unlimited levels)
  • Automatic update of data structure not depending from previous version installed
  • Compare of database structure on the server with the one on the client
    • Create – alter of tables if required
    • Total drop and recreate of tables if necessary (reorganization)
    • Automatic import export of data if reorganization required with stored procedures for maximum speed
  • Creation and maintenance of indexes
  • Database views
  • Stored procedures for insert-update and custom
  • Creation and maintenance of foreign keys
  • Insert and edit of tables and views via automatically generated stored procedures
  • Table stored procedures additions to customize the insert-edit procedures
  • Table triggers
    • Automatic triggers for each row in MS SQL Server
  • General purpose stored procedures
  • Custom Omnis-like SQL language that can generate code in the specific SQL version of the database
  • Lists with no search
  • List with search
  • Subtasks with or without search
  • Hierarchical tables
  • Hierarchical structure of libraries
  • High level library class instantiation
  • Additional inheritance
  • Connections between classes and instances
  • Update of standard program with automatic transfer of customizations

Technical features

In this section you can find a presentation of the main technical features of CrossModel.

Integrated modeling tool

The external data modeling tools that can be used to create a data structure in Omnis Studio can be extremely powerful, but they are usually a separated environment, whose only contact with the application is the database.

CrossModel is fully integrated into Omnis Studio, and this gives many important advantages over the separated modeling tools.

Advanced schema (database table) properties

The Omnis Studio schema clesses define the structure of the database tables.

In addition to the Omnis Studio properties for the schema columns:

  • Name
  • Description
  • Primary key
  • Type
  • Subtypes
  • Null or no null

Crossmodel includes an ample set of properties that can create and maintainthe database in a more advanced way.

Connections, foreign keys and referential integrity

One of the most important features to meet tha ACID requirements of modern database is the possibility to create connections between tables with foreign keys, to ensure data integrity.

CrossModel can create and mantain connections between schemas (tables of the database), allowing full use of referential integrity of the databases.

Automatic database realignment

The data structures created in CrossModel are saved in the program (schema classes) and can automatically realign the database in the server.


CrossModel views

CrossModel can create and maintain database views, that can be used for different purposes:

The views can be read write, even if thay include multiple tables (complex views)

Mirror views

Mirror views create aliases of a table-view with an optional extension applied to all the columns.

The aliases can be used in different situations. One of the most common is whan a record needs to be connected to more that one record of the same table.

Selection views

The selection views apply a WHERE clause to the table, with an automatic filter on rhe records.

Manual views

In the manual views, the SELECT statement is created by the developer, and can be in any form.

The statement is anyway included in a schema, that once created can have the same properties of a table schema, including connections, and can be used in any part of the program in the same way.

This kind of view can be used in many cases, for example to show a record twice.

Complex views

The complex views are one of the most powerful features of CrossModel.

These views include two or more different table or views, and still they can be inserted or updated like a single table, thanks to the insert-update stored procedures.