Submit your ideas to help us improve AIMMS products
The file “Template SC Navigator.xlsx” would benefit from the following changes:Errata: On the [Notes] worksheet lines 36-37 are duplicates of lines 34-35 and the “Jump to Attribute” links do not work.Suggested improvements:Add an introductory worksheet to explain the color coding used on the [Notes] worksheet, the worksheet tabs, and the attribute columns on various worksheets. Add a table of contents worksheet with links to individual worksheets. This would be similar to the “Jump to Attribute” functionality on the [Notes] worksheet but would be specifically for worksheets. Lock to top row and add a filter on all worksheets. Wrap text and change column widths so that field names and descriptions have more space and can be read without having to select the cell. On the worksheets [Single Value Data], [Single Value String Data], [Settings] & [String Settings], align the entries in column A with the entries in column D. Remove extraneous blank columns like columns F:M on worksheet [Single Value Data] and columns N:P on [Periods]. Use the Outline feature to group the Attribute columns on worksheets and permit the columns to be easily hidden so the descriptions to the right can be easily read. Here is a version of the template that includes these improvements. Template SC Navigator_with ToC.xlsxHere is a version that also has macros to facilitate navigating the workbook. Template SC Navigator_with ToC.xlsm Note: The Table of Contents was created with an Excel add-in called ASAP Utilities.
It'd be convenient to have the product name ánd description in the tables. I know you can add the name in the description, but when you export the table to do some analysis you then still have to trim etc. So 2 separate columns with the name and description (if set to 1 in sheet Settings) would be perfect.
Hi,Really nice that we can now specify the decimal places and read-only attribute per identifier. What I miss, however, is setting the read-only status via the defaults (like we can with decimal places and show units). Could you include this please? It would be very efficient if we can put the entire content of a table to read-only with a single setting.Thank you and regards,
It would be very useful if we could set the number of decimals per identifier in the webui tables, so we could have some columns with 0 and 2 decimals.
I'd like to have the possibility to skip the Cost to Serve calculation. In 95% of the runs I'm not interested in the Cost to Serve results, and it could take a significant amount of time (in some instances as long as the optimization). Would be great if a user could set CtS calculation On/Off in the Control Panel.
As an end user I need a more intuitive order of columns in the Min/Max constraints table (same as in template sheet ‘Periods', first Min and then Max per ‘type’), so it is easier to set these constraints.
I currently have 10 seats at AIMMS PRO and 2 user groups. One of the user group need to always be able to use a seat. So, I would like to set a number of seats per group. Exemple: Group 1: 2 seats, 2 users (main planners). Group 2: 8 seats, undetermined number of users (competing for seats). Is it possible?
A lot of times, users will add many filters to a table/widget, but they will then want to clear all filters from all widgets. It would be great to have an AIMMS procedure/function that could clear these filters via a button.
Hi, the Cross Library Reference overview nicely indicates which library references are not preferred (red marking in picture). However, this feedback is now only given on request. That is: a developer/reviewer has to open the Cross Library Reference overview to see these references.It would be nice to directly get this feedback in the editor when typing the non-preferred reference.
I would like to use blocks in the condition of if statements to make them more easily understandable.Let me know if you would like more details.
This idea relates to the upload widget of the AIMMS WebUI. At the moment this is a double-click process. To increase user-friendliness a single-click process would be more convenient.In addition to this, files can only be selected one by one in the current feature. A nice addition would be to upload multiple files at once (not via ZIP)
It's a pain to try to use the map widget to redneck a network object workaround. (See how in this post.) It'd sure be swell to have a network object native to WebUI. Thanks!
Hello!Currently, in order to upload a file to WebUI, the user first needs to click the upload button, which then opens up the file selector. Once the file is selected, the user needs to click that same button once again. Otherwise, the upoad process will not be completed.We feel that this is a counterintuitive feature, and many of our end-users have made remarks on this topic, asking if it would be possible to remove the third step. In that way, once the users select the file and click the "open" button, the file would automatically upload, removing the need to click the upload button a second time. Step 1: Click the upload buttonStep 2: select a file and click “open”Step 3 (the one we would like to remove): click the upload button once again Would that be possible?Thank you!
Hi All, How can I change number decimal separator from comma to dot in WebUI? Thanks,Lilla
By default, the access key of the Azure Data Lake Storage is available for all deployed AIMMS apps in an AIMMS Cloud tenant, through dex::dls::StorageAccessKey. With this key, AIMMS apps can grant themselves full access to the Storage Account. However, it isn't always desired that all data in the Storage Account is visible to all deployed AIMMS apps. Actually, I think nothing should be visible by default. Only if an admin/super user determines that an app is allowed to have access to a certain filesystem/container/directory, it should be granted (principle of least privilege).This leads to the following 2 requests: First of all, AIMMS apps shouldn't - by default - have access to the general access key, since this undermines any other attempt to restrict access through (for example) SAS tokens. Second, it would be nice if AIMMS could provide functionality to distribute SAS tokens with limited access to specific AIMMS Cloud apps. This is something I could also build myself by the way (though only if point 1 is addressed), but it would be nice if AIMMS could provide this. Curious to hear your thoughts!
The DataExchange library (https://documentation.aimms.com/dataexchange/index.html) is intended to offer support in AIMMS for data formats, such as JSON, XML and CSV, that are commonly used in web services. The basic mechanism to read and write data using the DataExchange library is to provide a mapping that maps data in any of these formats onto identifiers in an AIMMS model. Although creating such a mapping is not very difficult, it may amount to a lot of work. In this post I want to explore if and how we can provide some kind of standard format, that is generated by the DataExchange library itself, and can be used directly in most use cases for web services. More specifically, I'm looking for feedback on what follows below.Let's start with a list of possible web services that we could consider:Calling a web service from within an AIMMS model that runs a Python/R script with data from within the model. Calling an (AIMMS-provided) web service that runs an AIMMS model on our cloud platform, with data provided from the calling program/service Calling a web service to store data from a model, or retrieve data needed for a model (such a web service could, for instance, replace the current database interface in AIMMS and prevent all kind of problems with, for instance, latency that our current database interface suffers from regularly, as the web service could be placed close to the database server)Let's focus on the last use case, and explore how most of our customers use relational databases (as we do ourselves as well in AIMMS SC Navigator). Most customers store values from one or more identifiers with the same domain in a single table. In order to be able to store data for multiple scenarios, typically one additional column is added to the primary key of all tables to store the scenario key. Typically, models read data from such tables for one or more scenarios, and add the complete data for a new scenario, or replace the complete data for an already existing scenario. Changing individual rows or rows, has quite some commonality with CDM and are less suitable for the regular database interface we have in my opinion. In SC Navigator, we have an additional layer of abstraction, the dataset, which collects data from multiple tables holding functionally similar data into a single dataset instance. The model data is then filled by mixing and matching data from instances of multiple datasets, each of which could have been created by any of the SC Navigator apps, or, with a 'database' web service, even by external applications/services. Through model annotations we can indicate in the model the data of which identifiers should be stored in a single table, and to which dataset such a table would belong. From such a collection of annotations we could automatically generate a database schema (like in tools such as Mendix), and use DataExchange functionality to write data to these generated tables either directly, or via a webservice. The big benefit is that the entire data exchange with a model is standardized, and we can make sure that the data exchange with the database will take place in a performant manner, by proper normalization of all tables and the use of the appropriate indexes on the database tables. We could even let CDM operate on such generated tables, where one would lose the history of changes that CDM currently provides because only the latest value will be stored, but where individual changes committed by one client could still be passed to other clients as CDM currently does.To transfer the data as JSON, we could generate a mapping from those annotations that generates JSON as in the following example:{ "dataSets": { "DataSet1": { "instance" : "data of 07-09-2020" "tables": { "Table1": { "rows": [ { "i":"i1", "j":1, "pn": 10.0, "ps": "a value"}, { "i":"i1", "j":2, "pn": 20.1, "ps": "another value"} ] }, "Table2": { "rows": [ { "i":"i1", "j":1, "k":3, "qn": 10.0, "qs": "a value"}, { "i":"i1", "j":2, "k":4, "qn": 20.1, "qs": "another value"} ] } } }, "DataSet2": { "instance" : "data of 07-09-2020" "tables": { "Table3": { "rows": [ { "i":"i1", "rn": 10.0, "rs": "a value"}, { "i":"i2", "rn": 20.1, "rs": "another value"} ] }, "Table4": { "rows": [ { "i":"i1", "k":3, "sn": 10.0, "ss": "a value"}, { "i":"i1", "k":4, "sn": 20.1, "ss": "another value"} ] } } } }}Such a "standard" JSON format to exchange data is quite suitable for exchanging data with an AIMMS model-based webservice and can be easily generated from other applications/services, but also with Python webservices, as the JSON content of the individual tables can be directly read into or generated from Python Pandas. And it matches directly the format of the generated database table I proposed above (with potentially some metadata added in additional fields). So, to summarize the benefits of my proposal:it standardizes all data exchange with the model, database and external web services. This fits our guidance principle, where AIMMS will provide as much guidance as possible to create good applications and follow best practices for modelers the work to create mappings to exchange data with various services will dramatically reduce it would alleviate modelers from the task of manually creating a performant database schema and the associated mapping in the model it will make sure that, because of the standardization, we can much more streamline the support AIMMS have to give on data exchange with databases.Please let me know your reactions.
Hello,The column names when downloading the .xlsx file from a table in the WebUI are different when downloading the .csv file. The .xlsx file contains the identifier names, whereas the .csv file contains the text of the element parameter, which I think is better. One way or another, the column names are not consistent with each other, could you have a look at this minor problem?Kind regards and thanks in advance,Martijn
Already have an account? Login
Please use your business or academic e-mail address to register
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
OKSorry, our virus scanner detected that this file isn't safe to download.
OKDidn't find what you were looking for? Try searching on our documentation pages: