Initializing help system before first use

Authoring a Model for Xpress Executor

You can develop and compile your Mosel model in Xpress Workbench or through other Xpress development tools.

Input and Result

When your model is executed, it should read input data (as supplied by the REST API execution request) from a file named input in the current work directory. There are no restrictions on the format of the input data; your model will be responsible for parsing it in whatever way is appropriate.

Any result data from your model should be written to a file named result in the current work directory. This file is returned in the response object returned from the REST API execution request.

The work directory

Normally, each execution is assigned a private work directory which will initially contain:
  • The compiled model (in a file named model.bim).
  • The content of the model zip file (if the model was uploaded as a zip file).
  • The execution input file (in a file named input).

The model is free to read/write other files to this directory, and should write its result data to a file named result.

Because Xpress Executor reuses Mosel instances, the work directory is not cleared when the execution completes and can be reused for subsequent executions. You can use the work directory to locally cache files or data that are expensive to acquire, such as files downloaded from Internet websites. However, your model must take care to leave the work directory in a state that is usable by the next execution.

Model Exit Codes

The following model exit codes by convention have special meaning in Xpress Executor:
Code Description
-97111 indicates that Executor should rerun this execution from the beginning
-97112 indicates that Executor should terminate the current Mosel instance, and rerun this execution from the beginning. This is typically used when the Re-use Mosel instances for multiple executions feature is activated, to force an instance to be discarded and the execution to be re-run in a fresh Mosel instance and work directory.

All other exit codes are treated normally; they are recorded in the repository and can be read from the web service API. There is no assumption in Executor that 0 represents success or that a non-zero exit code represents an error.

Note: It is the client's responsibility to retry an execution if an execution request is rejected or fails, or if the connection is interrupted. If the client drops the connection after submitting an execution request, and then submits another request after reconnecting, it is possible that Xpress Executor might have more than one execution running at the same time. Your model should be written with this possibility in mind and should guard against any side effects that might result.

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