Omnis Application Analysis
Walter’s Omnis 7 Application Analysis
Our analysis overs a wide range of issues. We really dig deep because the more you know going into a project, better the outcome. In addition to sophisticated mechanical analysis, we include tips and suggestions based on our 20+ years working with Omnis based solutions. Please read the summery page for the highlights and information.
New Project?
Talk to an Expert
![](https://www.mophilly.com/wp-content/uploads/2018/11/omnis-studio-developer-partner-program.jpg)
![](https://www.mophilly.com/wp-content/uploads/2018/12/iStock-500877586.png)
Basic Library Metrics
This section tells you how many of each type of class (format) you have. It also analyzes the complexity of each window and menu class from the point of view of methods (procedures) and how many lines of code are in them.
It also analyzes the complexity of the window layouts based on the number of foreground and background objects. It wraps up with the number of Errors and Level 1 Warnings as reported by the Omnis7 Procedure Checker.
There is a count of the number of instances of “#???”, which is the notation that Omnis inserts when a file format or field has been removed. Lastly, the “Call procedure [xxx]” section tells you how many places, if any, use an indirect procedure calling construct.
Use of State-Related Hash Variables
These variables are revealed in this section. Some hash variables like #BEFORE1, #BEFORE2, #EF, #EN, #ER and others are not supported by Studio. This section gives you a quick overview of “How bad is it?” when you need to contemplate replacing the use of these hash variables with other program constructs.
![](https://www.mophilly.com/wp-content/uploads/2018/12/iStock-174278487.png)
![](https://www.mophilly.com/wp-content/uploads/2018/11/FKTGEZ2H1QMLA1B.LARGE_.jpg)
“Prompt” Commands
This command for selecting a report or search format is not supported by Omnis Studio. If it shows any of these, do a search for the text “Prompt for report” or “Prompt for search” to find places which must be dealt with. These must be replaced with a dialog window to select various formats or else dialog windows that allow the user to fill in values.
The Omnis Connection Table
This identifies any Omnis connections between files in your application. It applies only to applications which use OMNIS data files and the Omnis data maipulation commands to store their data, not applications which use a SQL back end. There are spaces for you to fill in the Primary Key for the child file, the Foreign Key in the child file that points to the “Connected file key” which is the primary key of the parent file, and the Primary Key in the parent file.
![](https://www.mophilly.com/wp-content/uploads/2018/11/omnis-sync.png)
![](https://www.mophilly.com/wp-content/uploads/2018/11/classllvm_1_1ModulePass__inherit__graph.png)
Class Reference Analysis
This section mainly looks for code segments that may not be used anymore. This helps you to identify and remove classes that you no longer need before converting to Studio. There are five types of analyses made:
- Classes that have some commented references.
- Classes that ONLY have commented references.
- Classes that are not referenced in the application.
- Classes that are referenced that do not exist.
- Class references that use square bracket notation.
“Bad Characters”
These are characters that may cause problems with the newer “dot notation” style of programming in Omnis Studio. This analysis reports the names of any classes (formats) with any bad characters.
It then performs the same analysis on method names. This is because in Studio all method (procedure) calls are made by name, not by number. Unlike class names, the method names can be prepped for Studio using an automated routine that we have implemented in the analysis tool. Provided that all of your current procedure calls are by number, not name, this automated renaming will prepare your application’s method (procedure) names for Studio without requiring any additional work on your part.
![](https://www.mophilly.com/wp-content/uploads/2018/11/AV1tv.png)
![](https://www.mophilly.com/wp-content/uploads/2018/11/CUPI-NetBeans-IDE-7.0_2011-07-19_12-44-37.png)
Duplicate Class (Format) Names
Normally there will never be duplicate class (format) names. Most programmers make sure that all of their formats have unique names, often by using prefixes such as “W_” for windows, “F_” for files and so forth. Also there will normally never be duplicate field names unless you have “Unique field names” preference turned off. This can occur, though, if a file format is duplicated or copied in from another library. This alerts you to problems caused by these mechanisms.
File Modes Analysis
This section points out errors in file mode which need to be addressed. This type of condition may cause an error to occur and/or the application may be slower when executing “Edit” operations on other files.
![](https://www.mophilly.com/wp-content/uploads/2018/11/lp-omnis-1024x768.png)
![](https://www.mophilly.com/wp-content/uploads/2018/11/omnis-slot.png)
Empty Slots Analysis
The analysis of empty slots in the datafile helps to identify file formats that are no longer used. If a file format which has a mode other than “Memory-only” or “Closed” and there is no data in its slot then it is listed here because it may not be used.
Follow