Initializing help system before first use

# Minimum Model Requirements

Mosel model developers must implement several behaviors in a model to use it in FICO® Xpress Insight.

- Load the `mminsight` package which includes the `mminsight.dso` Mosel module and implements the necessary interactions between Xpress Insight and the model.
- The model must implement the `LOAD` mode by providing a procedure which will be invoked when the scenario is executed in LOAD mode. The procedure should be registered as the handler for the LOAD mode using the appropriate annotation (see example provided later in this section.) The code is expected to initialize the input entities of the scenario data model with default data. Any calls to finalize must be included in the loading code.
- The model must implement the `RUN` mode by providing a procedure which will be invoked when the scenario is executed in RUN mode. The procedure should be registered as the handler for the RUN mode using the appropriate annotation (see example provided later in this section.) The code must call `insightpopulate` to initialize the scenario input entities to the scenario data current values, and is then expected to calculate the results data and populate the results data entities.
- Call `insightdispatch` from the global scope of the model to invoke the registered procedure for the current execution mode (or manually invoke the required code conditional on the value of `insightgetmode`.)
- Replace any call to `minimize` and `maximize` with `insightminimize` and `insightmaximize`.
- Only entities declared as public (the entity type declaration or the entire declaration block prefixed by the `public` keyword) will be visible to Xpress Insight, irrespective of how the model is compiled. Private entities would be visible in versions of Xpress Insight earlier than 4.50 if the model was compiled without the `-s` option to strip private symbols. Neither FICO® Xpress Workbench or (legacy) IVE editors apply the `-s` option by default.
  Note: Developers migrating an older app to Xpress Insight 4.50 should mark all entities as public to avoid the upgrade being rejected. If some entities being marked as public are not strictly required then they can be excluded with the `manage=ignore` annotation or by removing the `public` keyword in a future upgrade.

A minimal model skeleton will have the following basic structure:

    model mymodel
    uses "mminsight"

    !@insight.execmodes.LOAD
    procedure datainput
    …
    end-procedure

    !@insight.execmodes.RUN
    procedure solvemodel
      insightpopulate
    …
    end-procedure

    !@insight.execmodes.NONE
    procedure standalone
      datainput
      solvemodel
    end-procedure

    insightdispatch

    end-model

## Supported Model Features

The supported Mosel types are documented in the section Supported Mosel Types.

In general, so long as the requirements listed previously are met by a model, Xpress Insight places no restrictions on the programmatic execution of a model. Statements, expressions, procedures, conditional logic, functions, packages, and modules can be used as normal. A model can solve several problems in series, or use `mmjobs` to solve sub-models.

Covered Topics

- Supported Data Sources
  Models can initialize the input data entities from any supported source, with some caveats.
- Models Using mmjobs
  Models managed by Xpress Insight 5 can start additional sub-models using mmjobs if enough licenses are available for use. The existence and execution of these sub-models are invisible to Xpress Insight 5. They are started as part of the job running the main model. This may impact the number of licenses available and the thread consumption.

Parent Topic Using Mosel to Model the Example Business Problem

© 2001-2026 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.