Une image contenant texte, signe

Description générée automatiquement

Show RMM File Version

 

Overview

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:

A screenshot of a computer

AI-generated content may be incorrect.

 

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).

Retrieving the Version Number

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):

Repository URI

The http address of the EWM server, for example: https://elm-sandbox.willert.de/ccm

Workspace

The name of the workspace that contains the model, for example: HarmonyMBETest (Change and Architecture Management) Stream Workspace

Component

The name of the component that contains the models, for example: SampleModels

A black text on a white background

AI-generated content may be incorrect.

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.

Path to SCM Client

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

Authentication

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.

A screenshot of a computer

AI-generated content may be incorrect.

Operation

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)

Reporting the Version Number

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

Ordering

By default, JSON entries are ordered by name but this may be modified using the following property:

RhapsodyPowerPack.ShowRMMFileversion.OrderJsonBy

Displaying the Version Number

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.

Property Hierarchy

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 screenshot of a computer

AI-generated content may be incorrect.

 

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

A screenshot of a computer

AI-generated content may be incorrect.

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