Skip to main content





Changes made in this release are listed below.





AIMMS improvements


  • Multi-objective optimization problems can now also be solved with Gurobi 8.0 and higher.
  • The incumbent callback procedure has been renamed to candidate, and the new incumbent callback procedure has been renamed to incumbent. Note that the functionality of the incumbent callback procedure has changed as it now can no longer be used to reject candidate incumbent solutions (use the new candidate callback for that). The math program suffix .CallbackNewIncumbent has been renamed to .CallbackIncumbent. The procedure GMP::Instance::SetCallbackIncumbent has been renamed to GMP::Instance::SetCallbackCandidate, and the procedure GMP::Instance::SetCallbackNewIncumbent has been renamed to GMP::Instance::SetCallbackIncumbent. (The math program suffix .CallbackNewIncumbent and the procedure GMP::Instance::SetCallbackNewIncumbent are now hidden.)
  • During the execution of certain statements, AIMMS now responds quicker on an attempt to interrupt the execution via the AIMMS interrupt tool.
  • AIMMS is gradually replacing its compiler by a new version. In the old compiler, the precedence of the $-operator was not always consistent and in many cases different from what the language reference says. In the new compiler the precedence of the dollar operator is always as stated in the language reference, taking precedence over all other binary operators. This can cause a different interpretation of your expressionm, and therefor a warning is now reported when the new compiler encounters an expression in which this may be an issue: The precedence of the $ operator has in some situations changed in the new compiler. Use parentheses to make your intention clear. In some cases, the changed interpretation can lead to compile errors, which may be puzzling. In other situations, the result may be different. To correct these warnings there are multiple solutions:
  • add the parentheses around the operands of the in-operator in an expression: P $ i IN setI -> P $ (i IN setI)
  • replace the $-operator by a |-operator for a domain condition: sum( i $ i <> EP, P(i)) -> sum( i | i <> EP, P)
  • remove the 1 $ for expressions that are already binary valued: 1 $ P(i) > 7 -> P(i) > 7
  • Please note that the 'onlyif' operator is also treated as a $-operator.
  • During the creation of an .aimmspack file, you can now indicate that you want to include a copy of each repository library that is part of your project. The end user can then run the project without the need to have access to the on-line library repository.
  • It is no longer allowed to assign a set with only one element to a non-scalar element valued parameter. For example: myElemPar(i) := { i }; This has never been part of the official AIMMS syntax and should now be rewritten as myElemPar(i) := i;
  • The Intrinsic Database Functions TestDataSource, TestTable and TestColumn now set the CurrentErrorMessage with the available information if they return 0.

WebUI Improvements


  • Visible licenseinfo text above Menu and Settings (LicenseInfo, sessions.default.id, sessions.default.id.private, widget.visibility.greyout) on the Miscellaneous tab under Application Settings are now hidden so users can't (easily) use it. They are still present under the Advanced tab, though.
  • When opening a WebUI model containing a Map V1 widget or Page Actions V1 functionality, you now get a deprecation warning. The dialog contains a link explaining why this is and what you can do to make your WebUI future-proof in this respect.
  • App developers now have the control to hide/show the download CSV data button in a table widget with the option "Hide Download data" in the Table widget settings.
  • When UI Editable is set to false, the end user now cannot change the values for showing/hiding the data manager in the Application settings and for showing/hiding the CSV download button in Table widgets.
  • The settings cog-wheel for several smaller widgets (such as button, label, upload, download and selection box) has been changed, such that it no longer floats outside the widget but stays inside so users can actually find it easily and have no overlap or out of viewport issues.
  • Widget actions are now also available for Scalar, Legend and Slider widgets.

Resolved AIMMS Issues


  • When calling AIMMS procedures from the WebUI, local parameters were not reset.
  • CPLEX 12.9 could hang in a callback procedure.
  • A chapter on SessionArgument has been added to the Function Reference.
  • Referencing a defined parameter that has a domain condition from within an expression could sometimes lead to a strange and incorrect compilation error.
  • The number of nodes shown in the progress window after a solve was not correct if CPLEX was used.

Resolved WebUI Issues


  • The Busy bar is back when any execution is triggered from a dialog window.
  • When a _text parameter is added to the Gantt Chart for inline text in the jobs, on moving the job out of the Gantt Chart viewport, the text was also going outside of the viewport.
  • Deleted widgets were not immediately removed from the WebUI.json file.

Hi Patrick!

Glad to see that the issue with deleting widgets from .json file has been resolved. But I got the impression that it doesn't work when I delete a widget from a dialog page, not sure about a sidepanel.

Tanya


Hi Tanya,

I just tried this out with both a side panel and a dialog page, using AIMMS 4.69.7.9. In both cases, the widget was properly removed from the webui.json file.

Would you mind sharing your particular model with us, in which it does not work?

Kind regards,

Mischa


Hi Mischa,

I have just checked my app (running on 4.69.3.2) and indeed you are correct: widget is being removed. But I have realized that the issue I was having is different. The case is that I was deleting the whole dialog page, and in this case the widgets that were on this page are still in the .json file. 

Thanks,

Tanya


Didn't find what you were looking for? Try searching on our documentation pages:

AIMMS Developer & PRO | AIMMS How-To | AIMMS SC Navigator