|
|
Show RMM File Version |
This helper retrieves the version of a Rhapsody unit file from RMM and displays it in the model browser.
|
Applicable To |
Units
(various) |
|
Menu
Entry |
Power
Pack RMM Tools Show RMM File Version |
This helper is only applicable to models stored in Rhapsody Model Manager and requires Rhapsody version 10. When executed the Rhapsody model browser is annotated with the current version number of the Unit:

The helper runs on any currently selected unit(s) along with their child units (see below).
There are two parts:
· Retrieving the version number from the server.
· Displaying the version number (without changing the model).
The Power Pack employs the IBM Engineering Workflow Management (EWM) SCM command-line interface client to retrieve version information from the Engineering Lifecycle management (ELM) server. For this it needs the following information (all easily obtained from either the server or the EWM client):
The http address of the EWM server, for example: https://elm-sandbox.willert.de/ccm
The name of the workspace that contains the model, for example: HarmonyMBETest (Change and Architecture Management) Stream Workspace
![]()
The name of the component that contains the models, for example: SampleModels

The Server and Component information should be entered into the following project-level* properties (The workspace should be entered into the UI).
RhapsodyPowerPack.RMM.Server
RhapsodyPowerPack.RMM.Component
*In the event that you have reference components loaded you can override these properties on the unit but there must be a server uri at project level to allow the initial login.
The SCM client is called scm.exe and is usually found under the EWM client installation path for example: C:/IBM/EWM/scmtools/eclipse. Note that there is an additional lscm.bat file in the same folder that you can use to make your own command line requests
The username and password are both required.
The above information may be set using the UI (along with the workspace). Note that the username, workspace and path to SCM client are stored in the Rhapsody Power Pack preferences file in your user directory.

Clicking Read File Versions will invoke the SMC client for the selected units.
The SCM client is limited in that it can only request information for one file at a time. Each request can take several seconds depending on the speed / reliability of the network connection to the server. A time of roughly 9 seconds per unit has been observed on a stable network (in addition logging in takes the same amount of time). An estimate of the total processing time is reported in the UI. If your network requests take longer, you may adjust the following property at project level to obtain a more accurate estimate.
RhapsodyPowerPack.ShowRMMFileVersion.RequestTime
Each request is logged into the Rhapsody output window. Version information is stored on the unit in the following property:
RhapsodyPowerPack.RMM.FileVersion
This property is volatile (that is changing its value will not trigger a model element change and the property can be changed on read-only model elements).
Clicking Clear Version data will set the volatile property to an empty string for the selected units.
Clicking Refresh Selected Units will re-check the currently selected units in the Rhapsody model browser. This allows the tool to be re-used on a new selection without re-entering the password (however the SCM client requires that a login must be performed during each session)
The helper creates a report of version number(s) in the form of a JSON file. This file is named using the following strategy:
[Starting Element Name]_[Timestamp].json
This allows previous versions of the file to be compared.
Each JSON entry contains:
· The model element name
· The model element GUID
· The full path to the model element
· The full path to the unit file
· The version number
By default, JSON entries are ordered by name but this may be modified using the following property:
RhapsodyPowerPack.ShowRMMFileversion.OrderJsonBy
Displaying the version number in Rhapsody (without modifying the model!) is achieved using the following project level property (only available in Rhapsody versions 10 and above):
Browser.Settings.TreeNodeTextFormat
This property controls the display of model elements in the Rhapsody model browser.
The property should be overridden using the following conditional property:
?<IsConditionalProperty>$NodePlainText ?<begin>$<RhapsodyPowerPack::RMM::FileVersion>?<!=>?<?>[RMM File Version: $<RhapsodyPowerPack::RMM::FileVersion>]?<:>?<end>
For convenience, a stereotype is available in the Power Pack profile that when applied to the project, sets this property. (note that the property is not visible in the Rhapsody UI for stereotypes).
This conditional property will then display the text [RMM File Version: version] at the end of any model element that has this property, and the property is not empty. This means that the model browser will behave ‘as normal’ until the helper is run. Since the FileVersion property is volatile, it is never stored so closing and re-opening the model will clear the values and restore the browser to its un-annotated state.
Due to the way Rhapsody properties hierarchy works, all elements under a unit will have the same property and the same value and hence will display a version number even if they themselves are not units. For example, this use case diagram shows the version of its owning unit (the diagram itself is not a unit):

A recommended approach is to use the model browser Unit View filter to only view the units:

By default, the helper automatically processes child units to prevent them showing an incorrect version number (if they are not processed then they will show the version number of their parent because of property hierarchy). However, this behaviour may be disabled by setting the following property to true on the project:
RhapsodyPowerPack.ShowRMMFileVersion.RecurseChildUnits