Save a Case from an AIMMS Procedure
It can be convenient to save a case from within a procedure.
For example, let’s say you want to run multiple scenarios and store the result of each one to a separate case. One possible solution is to manually save a case after running each scenario. However, for several long-running scenarios, this is very tedious.
Instead, you can save cases automatically with a procedure. This way you can run a procedure that solves all your scenarios and saves cases after each solve, and let it run unattended. This is exemplified on Employee Scheduling example .
Writing the procedure
You can save a case in AIMMS using predefined case related functions.
To make it easier to save a case with any given name,
you can introduce a new procedure, say pr_saveCase
, with a string parameter
sp_in_caseName
as an input argument.
The body argument of the procedure should contain the following code:
1Procedure pr_saveCase {
2 Arguments: (sp_in_caseName);
3 Body: {
4 ! Save the case in the folder "data".
5 if not DirectoryExists( "data" ) then
6 DirectoryCreate("data");
7 endif ;
8 CaseFileSave("data\\" + sp_in_caseName + ".data", AllIdentifiers);
9 }
10 StringParameter sp_in_caseName {
11 Property: Input;
12 }
13}
Calling the procedure
To save a case with the name “Case 1” from within any of your procedures, you can call your procedure as follows:
1pr_saveCase("Case 1") ;
Upgrading an AIMMS project to a newer AIMMS release
If you still work with .dat
files, please convert to .data
first. You may want to follow the instructions in
our conversation guide.