This is an old revision of the document!
Subroutine Package
From here you can download a set of sub-routines that can be put in your Vx/views directory. They can then then be loaded using the informants window and once in your model any view can call the sub routines.
This is the subroutine package that should be unzipped in your model's Vx/views
subroutines.zip
Setup of installed files
Once you have extracted the files there are 3 files you must copy and adjust for your current model/version
getModelVersion_CopyAndCustomize.t
This file is used to figure out what the current version of your model is
copy this file and re-name it to: getModelVersion.t
Edit the file and adjust the version number
getProjectNames.t
This file is used to manage the names of various projects which might be running out of this model
For now the only thing it is used for is makeing export directories for each project and is related to the getProjectExportPath.t subroutine
copy this file and re-name it to: getProjectNames.t
edit the file and adjust the project names
informs_CopyAndCustomize.samm
This file is used to load the sub-routines into a model
copy this file and rename it to: informs.samm
edit the file and adjust the path to the subroutines directory in the “setpath” line of the file
Loading subroutines
Sub-routines are only available to views running in SAMM once the are loaded into the model family. Here's how to do that.
Set your file path to where the subroutines live, something like:
From the Windows menu open the informants window
Right click and say load, note it will default to whatever you set in your file path followed by informs.samm which is the file you edited above.
Now you are ready to write views that use subroutines. See below info about the examples that are a part of the sub routine bundle you have downloaded and extracted.
Examples
In that new folder you will find an examples sub folder with some example views:
levelVarProjection.t
This type of view projects a variable which holds variables which are not share variables, like rates or efficiency levels etc
It gives several different ways to project this variable through a menu command
shareVarProjection.t
usingGetModelVersion.t
A sub routine that gets the model version so it can be used in display or creating paths etc
The advantage is you can write views that are version independant
It works by consulting the following file to get the version so this file must be updated each time a new version is made