This article describes new features, improvements and fixes included in this release of SystemWeaver. When upgrading, we recommend that all client and server applications be upgraded as some bug fixes and/or enhancements require this. 

 

These release notes are also available as a MS Word document, as well as a SystemWeaver XML file. Both are attached below. You can also print out this article as a PDF using the Print option.


Note: Special attention should be given to the items highlighted in yellow as they will require additional planning/steps for your organization pre and/or post-upgrade if the view/tool affected is being used in your installation.


Administrators

Name DescriptionTypeIssue ID 
swAdmin2: View login license assignment for Logged onThe Logged on page now includes the login license assignment for users who are currently connected. In addition, a License drop-down list displays at the top right when more than one license key is used for login purposes, and enables you to filter the Logged on list by License.

Improvement17090
swAdmin2: Login status added to Users list

There are two new features on the Users page. A new column called Login status indicates if a user account is currently logged in (✔). In addition, a Refresh button has been added for refreshing the content as needed.


Improvement17090
swAdmin2: Last activation date added to Users list

Each time a deactivated account is activated, a new Last activation date column will display the time stamp for the most recent time the account was activated. 



Note: A value will not display for a new account that is created and activated simultaneously. 

Improvement17243
swAdmin2: Improved login time and new system requirement

The login time for the swAdmin2 client has been optimized. As part of this change, swAdmin2 users must have .NET 6 installed on their computer. This is a breaking change. If your computer does not already have it installed, the client will prompt you to download it, and redirect you to the Microsoft download page for that purpose.


17317
swAdmin2: LoggedOn page exception when logged in to mirror

This fixes an error message when logging in to a mirror server using the swAdmin2 client. 


Note: It is not possible to view login status when logged in to a mirror server. Administrators must log in to the main server to view this information in the swAdmin2 client. 


17482


API/Rest API/Extensions API Users

Name DescriptionTypeIssue ID 
API: Upgrade from 1.53.3 to 1.54.0The SystemWeaver API has been upgraded from version 1.53.3 to version 1.54.0. This will require that all users receive and utilize the Olskroken (R43) version of the client applications (swExplorer, swAdmin2, swArchitect). In addition, this requires that any API applications developed in-house be recompiled with the newer version SystemWeaverClientAPI.dll. This is a breaking change.Improvement17496
Extensions API: Version upgradeThe SystemWeaver Extensions API has been updated. This affects extensions placed in the swExplorerExtensions directory. Extension views must be recompiled against the updated SystemWeaverExtensionsAPI.dll. This is a breaking change.
Improvement
 
Extensions API: Duplicate parts on single multiplicity partThis fixes an issue where duplicate parts were appearing in clients when another client used an extension view to create a part with multiplicity Single.Bug fix17013
Extensions API: Improvements to IswItemCommand2

It is now possible to include a tooltip/hint and an image icon on itemCommand2 buttons.


public string GetHint() 

 { 

  return "My hint"; 

 } 

 

 public int GetImageIndex() 

 { 

  return -1; 

 } 

}


This is a breaking change.  You must implement those two methods on your view or your code will no longer compile. 


You can download the updated itemCommand2 Visual Studio template from the bottom of Getting Started With swExplorer Extensions

Improvement17097
Rest API: Fix for root element is missing exception
This fixes a case where XmlException "Root element is missing" was thrown when using SWCompression.ZDecompressToString with attributes with an undefined value.
Bug fix17226


Architects

Name DescriptionTypeIssue ID 
Export configurations: Mismatch of exported configuration file contentThis fixes an issue with some of the exported configuration XMLs had the wrong content.Bug fix17232
Grids: Support for part multiplicity single in occurrence column

The OccurrenceColumn in a configurable Grid now supports part multiplicity Single: 



Note: With part multiplicity Single, only 1 item is allowed to be included in each column, as oppose to the case of part multiplicity Multi where no such limitations exist:




This functionality offers an approach for performing allocation/distribution of data to single parts by using parameters (filtering out a local context, but doing global allocation/distribution).

Improvement17134
Occurrence Matrix: Support for part multiplicity single

The Occurrence Matrix config item view now supports part multiplicity Single:



Note: With part multiplicity Single, only 1 item is allowed to be included in each column, as oppose to the case of part multiplicity Multi where no such limitations exist:


Improvement17133
XML import: Node attribute changes not recognized in roundtripThis fixes an issue where changes to node attributes, e.g., test results, upon a roundtrip, were not being recognized.Bug fix16991



IT Administrators 

Name DescriptionTypeIssue ID 
Database: Upgrade of database version

The database version identifies the version of the internal database schema used by SystemWeaver. With  Olskroken (R43), the version has been upgraded from 1.44 to 1.45. This is a breaking change. 


System Administrators use the swDatabaseManager to update the database version. See Updating the Database Version.

  • Review the Prerequisites for the update operation outlined in above article.
  • Maintain a copy of the original database.
  • The database update operation takes less than 1 minute to complete.
  • If you need to restart the Update operation, close the application in between update attempts.
  • If running a mirror server:
  1. Journaling must be cleared and re-initialized. Previous .swjournal file cannot be used.
  2. New mirror .cache files must be created. Previous .cache files cannot be used.


Example upgrade from 1.44 (R39-R42):


Improvement17181
Server: Entry for long read calls in process

When a long (>60 seconds) call is made, it can potentially affect other system users. To identify such read calls while they are still in process, we have added a "Long call in process" message to the TcpSubServer log that provides the user xID of the account running the long call. Administrators can then investigate and provide suggestions for refining the search. Time is reported in seconds. 


Improvement17191
Server: Time limit on Q_GetItems searches

For improved user experience, there is now a 3-minute time limit on QGetItems searches. QGetItems searches are General searches (done against the entire database, as opposed to in a specific item structure or view). It is very rare to come even close to the 3-minute time limit, unless the database is very large (30+ GB), and the search is, for example, for a specific value across ALL attributes in the database. e.g.: 


<Filter><AttributesContains value="61898"/><Not><HasNextVersion/></Not></Filter>


This is almost always not the user's intended/needed search. In addition, these searches affect other users' ability to log in and to work. 


Should one of these searches reach the new time limit, the user will receive the following message: 



The user can then refine their search by adding additional criteria, e.g., Item Type: 


<Filter><ItemTypeEquals sid="RRQ"/><Or><AttributesContains value="61898"/></Or></Filter>


Server administrators can find instances of this in the swServer.log if they wish to investigate such searches.


2023-04-27 07:30:20,105 [5212] INFO  sws2    - Terminating search, filter: <Filter><Or><AttributesContains value="1"/></Or><Not><HasNextVersion/></Not></Filter>

2023-04-27 07:30:20,105 [5212] INFO  sws2    - Exception: Your search exceeds the maximum allowed search time of 3 minutes, and has been terminated to avoid affecting other users. Please refine your search further.


Improvement17227
Server: Fix for deadlock
This fix handles cases of deadlock on the server.
Bug fix17160
Server: Windows linking case sensitive
Given the case handling of usernames by Windows, our server has been updated to better handle casing as it relates to usage of network authentication in SystemWeaver.
Bug fix17252


Users

Name DescriptionTypeIssue ID 
Attachments: Addition of Refresh button

The Attachments view now includes a Refresh button. This is useful when you are making changes to attachment files, as it will show you if a file has been changed locally on your computer, but has not been committed yet to the database. 


Improvement17487
Component Graph: Server call removedA server call has been removed from the ComponentGraph extension view  which will have an overall positive affect on performance for customers using the view.Improvement17345
DataTypeEditor: Inconsistent values in view/xmlThis fixes an issue with the reg expression in the built-in DataType Editor view which resulted in not correctly displaying a scientific notation.

Bug fix17126
Document view: Incorrect failure message

This fixes an error message thrown when a Document's Report XML Definition's Definition attribute is empty. The error will now inform correctly: 


<Document generation failed>

Invalid definition: nothing to generate


A Report view with an empty Definition will now inform: 


Invalid definition: nothing to generate

Bug fix17022
GenerateGraph: Insufficient memory for graph image

This resolves an out of memory problem during document/report generation when the cause is a large graph generated in the content. In this case, a “Not enough memory for temporary image” was thrown during generation. Now, instead of simply failing the document/report generation altogether, the graph will be replaced with a placeholder text as shown below so that report generation can complete successfully. 


Improvement17068
Grids: Select columns menu option

A new Select columns feature is now available in the structure tree and in grid-like views throughout the client. Using the dialog, columns can be hidden from view for the current usage. This is especially helpful when a grid contains many columns, and you would like to view only a few specific ones. 


The dialog can be opened by right-clicking anywhere on a grid header row and selecting Select column.... 



Columns selected and highlighted in yellow will display.


New17254
ItemHasAttribute: Returns no hits for Array of external referenceThis fixes an issue where searches for items with values in attributes of type Array of external reference were not returning results.Bug fix17162
Jira: Handling of description referencesThis fixes an issue that occurred when an item had a description reference in its Description. The item did not display information in Jira Server. The problem occurred in Jira Server and Data Center; not in Jira Cloud.Bug fix17127
Login: Fix for longer login timeThis fixes a connection issue that resulted in a longer login time using the client application and SystemWeaver ClientAPI in the Bagaregården (R42) release. This was particularly noticable when latency was high. Connection time is now as it should be.Bug fix17385
Occurrence Matrix: Introduction of filteringUsing the new Select columns dialog, it is now possible to filter in the Occurrence matrix view. This is useful, for example, in very large matrices when you are only interested in a few columns.

Improvement17254
Projects: Introduction of Request to change status

This release introduces a new, optional approval process that can be added to Issue workflows. The new feature, called Request to change status, is configured within issue type workflows and can be used when an issue's transition from one status to another must first be approved. 


Among other things, one can configure the following using SystemWeaver Path expressions: 


  • When an issue status change requires approval by adding the new <Request> tag to the target status.


<Status name="Ready for test">

     <NextStatuses>

         <NextStatus name="Done"/>

     </NextStatuses>

     <Request>

         <Users select="@TEST"/>

     </Request>

</Status>


  • Who is assigned to review the status change. One can, e.g., use a User attribute type, as shown in the above example, using an optional <Users> tag.
  • Restrictions  on request operations, i.e., restricted operations are operations not available to all project members. 
    • 'EditAssignee' controls who can add and remove assignees to a request.
    • 'RequestDueDate' controls who can modify the due date for an active request.
    • 'RequestResolution' controls who can "Complete", "Abort" and "Delete" a request.

<Status name="In progress">

   <NextStatuses>

     <NextStatus name="Ready for test"/>

  </NextStatuses>

  <Restrictions>

   <Restriction field="EditAssignee" test="CurrentUser = AssignedTo"/>

   <Restriction field="RequestDueDate" test="CurrentUser.Name = 'john.doe'"/>

   <Restriction field="RequestResolution" test="CurrentUser.Name = 'john.doe'"/>

  </Restrictions>

</Status>


Example workflow: 


Example Request to change status from "In progress" to "Ready for test":



The approval process involves adding Assignee(s) to the status change request, and allows them to approve or reject the request. 



A comment can be included with the approval/rejection. 



A Due date option is also available for the request.



When the issue is approved and/or completed, it will move to the "target" status. 


For each operation in the request process, a note is added to the issue: 


New17167
Projects: Introduction of My Requests dashboard

As part of the new Request to change status feature, the new My Requests dashboard can be used to view and act on a status change request, just as you can do with an individual request in the issue editor. The dashboard displays all requests currently assigned to you. 



A comment can be included with the approval/rejection. 




Projects: Introduction of roles

It is now possible to create and use Roles in a Project. The functionality is the same as Groups.



Roles can be used in Issue Workflow configuration. 


<Restriction field="EditAssignee" test="CurrentUser.HasRole('ADM')"/>


See the application Help for more details.

New17166
Projects: Introduction of auto-assignment of issues

This release includes the first version of auto-assign for issues transitioning between statuses in a workflow. Issues can be automatically assigned to a user upon transition from one status to another. The feature is configured in the workflow using a new <AssignedTo>  tag placed within the "target" status.


Example: 

...

<Workflow initialStatus="To do">

 <Status name="To do">

  <NextStatuses>

   <NextStatus name="In progress"/>

  </NextStatuses>

 </Status>

 

<Status name="In progress">

<NextStatuses>

  <NextStatus name="Test"/>

 </NextStatuses>

 <AssignedTo user="@DEVE"/>

</Status>

 

<Status name="Test">

 <NextStatuses>

  <NextStatus name="Done"/>

 </NextStatuses>

 <AssignedTo user="CreatedBy" test="@TSTA = 'Not OK'"/>

 <AssignedTo user="@WRIT" test="@TSTA = 'OK'"/>

</Status>

...


In the above example, an issue moving from "To do" to "In progress" will get assigned to the user entered in the User type attribute with SID=DEVE in the issue.  



And, when it moves from "In progress" to "Test", if the enumeration attribute with SID=TSTA on the issue is set to "Not ok", it will get assigned to the user who created the issue. If the attribute is set to "OK", then it will get assigned to the user found in the User type attribute with SID=WRIT. 


Note: The auto-assignment is upon transition. Auto-assignment is not available within a given status. 

New13265
Projects: Improved Notes UIThe Notes section of the Issue Editor has been updated and now includes a timeline with dots to visualize current status and status changes.
Improvement17076
References: Confirm remove part(s)When removing part(s) using the References view, users will now get a Confirm dialog to confirm their remove part(s) operation, in the same way as in the structure tree.
Improvement17284
Replace to any version: EOSError A call to an OS function failedThis fixes an error message thrown when doing Replace to any version in the structure tree when there is very large text content in the Description.Bug fix15011
Select user: Filtering not working when first entry has null valueThis fixes an issue with filtering when the first entry in the Select user dialog did not have a Name value.Bug fix17290
Status view: Improvements to resolutionImprovements have been made to scaling of this view when using higher resolutions.Improvement17495
Status: Renamed columns in Current occurrences table

Changes to column headers in the Current occurrences table have been made in the Status view. This makes them more consistent with naming conventions in other areas of the client.



In addition, minor adjustments were made to a few button captions for clarity.


Improvement17495
Structure tree: Optimized loading of structural parts

The loading of structure trees consisting of structural parts, e.g., a test suite, design signals, etc., has been optimized. The initial loading is faster as a result of only reading the item structure and not the corresponding node structure. If, at some point, the tree needs to read a node when you select an item, it will do it then, as opposed to upfront. 


Example: 

Test Suite containing 17,011 test cases 

Loading times

R42: 55.4 seconds

R43: 2.9 seconds


As a result of this optimization, users no longer need to prefix Items with "Item.", e.g., in the structure tree grid and in view configurations. For example, "Item.SID" should now be written as only "SID".

This is a breaking change.


Example: 

Adding Field codes to the tree grid


Note: Because the structure tree is now only loading the item structure, node field codes no longer work in the context of the structure tree.


Example: 

In report configuration: 

<Report>

  <Log>#{Name}, #{SID}, #{Version}</Log>

</Report>


Note: "Item.Name", "Item.SID", etc. still work in the context of a node

<Report>

  <TopNode>

    <ForEachSubNode type="ISSP">

      <ForEachSubNode type="ITEC">

        <Text>#{Item.Name} Test Case status: #{Attribute:PTCS}</Text>

      </ForEachSubNode>

    </ForEachSubNode>

  </TopNode>

</Report>

Improvement17161
Structure tree: Optimization when adding part

The updating of a large structure tree that occurs as a result of inserting a new part at the top of the tree is now optimized. This optimization will benefit both the user doing the operation, as well as other active system users.


Improvement17396
Variability Matrix: Support new version and replace of AND/OR when removing/adding feature
The built-in Variability matrix view now supports automatic new version and replace/removal of AND/OR when adding/removing a Feature via the view. In other words, you no longer have to modify the status of AND/OR items via the structure tree.

Improvement
17188
Workflow config: Preconditions for External reference array attribute not working
This fixes an issue with a Precondition not working as expected when its condition included attribute type Array of External reference.
Bug fix17148
Workflow: XML validation

When working with Workflow configuration, the XML editor will now display a message at the bottom left of the dialog for most syntax problems. When a problem is identified, it will not be possible to save until it is resolved. 


Improvement17520
Save image to file repository (beta)

Content added to a Description must stay within the important Description size limit. Had there not been this important size limitation, loading times for item structures and views would increase substantially, as would the size of exported Documents and Reports, the amount of storage space needed on the server, etc. 


There has been an interest in being able to include larger images in Description that normally would not fit within the current limitation. 


The Move image to file repository tool is a beta version of a new concept that saves the image to the File repository and uses an image pointer to display the image. 



Supported image file formats .jpg/jpeg, .png, and .bmp with a maximum size of 1 MB.


Important things to consider:

  • You cannot edit images saved to the file repository. 
  • When you copy an image saved to the file repository in a Description, and paste it to another Description, both instances point to the same image file saved in the repository. 
  • There may be delay when scrolling in a Description, loading views, and loading items when large images are included. 
  • The true file size of an image saved to the file repository will be included in any Document/Report PDF output.
  • There is no support for including these images in XML export using this beta version.
Beta version17389