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.

© 2001-2023 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.