Showing Filtered “Transitive” Links in Tables

Last Updated on 24th August 2022 by Jan Lamb


We have created some links between Cradle items but we only want to see a filtered set of these links in our table.


Cradle has a unique ability to follow cross references transitively. This means that although an item might not be directly cross referenced from it’s source, it might be linked indirectly through another item/item type.

Cradle also has the ability to name cross references referred to as link types and even group sets of link types together referred to as link groups.

Combining these features can allow flexibility for the output of items that have some relationship to the source which will reduce the number of direct cross references required.

For example, we would like to show dependencies between item type A and item type C but ONLY those that have a yellow and blue link type.

Model showing defined Links Between Item Types
Defined Links Between Item Types

We can see in the screenshot below that only A-6 and A-11 are transitively linked to items of item type C with both a blue and a yellow link:

Showing Direct Links in a Nested Table
Direct Links in a Nested Table

Setting Link Groups

We can define a link group in Project Setup in which we can select from the available link types.

Screenshot showing how to define a link group
Defining Link Groups

This defined link group can be used in navigations.

Defining Navigations

Navigations allow us to specify how we would like to follow the links that have been created between items. This is a very powerful feature as we can also specify that we would like to follow links transitively:

Defining a Navigation to follow Cross References transitively in the Navigation Details Window
Defining Navigations to Follow Cross References Transitively

Using the Navigation in Views

We can now use the navigation to specify that we want to show links between item type A and item type C that are followed transitively but we ONLY want to show the group of links YELLOW AND BLUE. Remember that there are NO DIRECT links between these two item types. The cross references are from item type A to item type B and also from item type B to item type C:

Defining a View to allow links to be shown transitively between item
Using the Transitive Navigation in Views

Applying this view, we can see that only the YELLOW AND BLUE links are shown in the table. The remainder appear blank:

Output of a table that shows links that are transitive when they exist
View Showing Transitive Cross References

Using the Navigation in Queries

We might wish to only show items in our table that have these links in preference to showing all items and just appearing blank where the transitive link does not exist. We can achieve this in the Query Details dialog:

Using the Query Details Window to filter items that do not have any indirect transitive links
Filtering Items Non-Linked Items in a Query

This will now filter out of the list any items that do not match the navigation criteria:

Screenshot showing the resulting table that only shows items where a transitive link exists
Link Table Only Showing Items Where Transitive Link Exists

Showing Path in a Tree Style

If we followed the path in a tree style showing downward links, we can see that item type A (A-6 and A-11) are not directly linked to item type C (C-1). They go through item type B (B-2):

Screenshot showing the direct links between items in a tree style to prove that the items are not directy linked
Links shown in Tree Style


Cradle provides a unique ability to allow cross references to be followed transitively (through other items).

Transitive navigations can be applied to views and queries. This provides a very powerful filtering mechanism that allows us to show non-direct dependencies between items.

Testing Cradle on additional platforms

Last Updated on 22nd July 2022 by Jan Lamb

With the release of 7.7 coming very soon, we thought we’d test Cradle on additional platforms.

So here’s Cradle 7.7 running on a Steamdeck, in Desktop mode.
Cradle running on Steamdeck

Cradle About screen running on Steamdeck

As SteamOS is based on Arch Linux, our 64 bit Linux version can be installed.

Both the CDS and WorkBench are running on this very capable device. A keyboard and mouse may work better than the on screen keyboard.

If you install the service manager (systemd script) then the Cradle Database Server (CDS) will start on boot up of the Steamdeck, so you might not want to do that if its primarily used for Steam. However, once started the CDS will stay running in the background when you switch to Gaming Mode. If you have others connecting to your CDS then they can continue to work while you improve your hand-eye coordination in your favourite game.

Although Steamdeck is not an officially supported platform, you can see Cradle does indeed run on additional platforms

July 2022 Newsletter

Last Updated on 25th August 2022 by Jan Lamb

Sun, Sand and New Releases

July has come around again and we turn our thoughts to hot sunny days, (in the northern hemisphere), beach holidays perhaps and take time to relax. We look forward to sun, sand and new releases…

Sun, Sand and New Releases
Sun, Sand and New Releases

We can use this time to re-assess how we do things, how to do things better and make improvements in our personal and working lives.

On the topic of improvements, July marks the month in which 3SL releases our new 7.7 version of Cradle. There are many enhancements and improvements that will be beneficial to our users.

Cradle-7.7 Release

New features coming in this release:

Cradle 7.7
Cradle 7.7 coming soon
  • Pie charts
  • Metrics in graphs
  • Many small enhancements to documentation
  • New dial type in dashboards – anular percentage
  • Update to DEMO project
  • Enhancements to baseline reports
  • Snapshots
  • Test Mail button added to test mail settings
  • Test Execution UI in Project Setup enhanced
  • Added support for Windows 11
  • Added support for Office 2019 and Office 365

Training Courses

We now have a new training course available for all users of Cradle.  The User Training course will be taking place on October 5th – 6th 2022.

Cradle Online Training
Online Cradle Training

The contents of the course are available to see here and the course can be booked here

For more information on courses please see the blog post here

Create a New Database Based upon a Previous Database

The Problem

Create Project Dialog

I want to create a new database that is a copy of a pre-existing database minus the actual data.

Cradle Project Environment

The environment for the Cradle project will contain:

  • Project Setup
  • Supporting definition files (views, forms, queries, documents etc.)
  • Users*

*If you will have the same users in the new project that are in the existing project.

The Solution…


Social Media


Nuclear added to European green taxonomy
Nuclear added to European green taxonomy

We retweeted our support for nuclear being added to the European green taxonomy

Create a New Database Based upon a Previous Database

Last Updated on 5th July 2022 by Jan Lamb

The Problem

I want to create a new database that is a copy of a pre-existing database minus the actual data.

Cradle Project Environment

The environment for the Cradle project will contain:

  • Project Setup
  • Supporting definition files (views, forms, queries, documents etc.)
  • Users*

*If you will have the same users in the new project that are in the existing project.

The Solution

To avoid the Personal and/or User definition files being part of this import, we would suggest the following:

  1. Log in to the existing project as MANAGER
  2. Select Project > Export
  3. In the Export dialog set Owner to  Everything and Info Type to Project Schema and User Profiles (if users are required, see comment above)

Screenshot showing export of project schema and user profiles

  1. Press Export to create the export file and close the Export Status dialog but do NOT close the Export Information dialog:Screenshot showing Export Status
  2. In the Export Information dialog, change the Info Type to ONLY show Definition Files:
    Screenshot showing Export Definition Files
  3. You will see that some new options appear – Definition Type and Location:
    Screenshot showing Info Type Definitions filter in Export
  4. The Definition Type option allows you to specify the types of definition file to be included in the export. For this example, we will leave this as All:
    Screenshot showing Definition Types in Export
  5. The Location option defines which location you are exporting the definition files from.
    Users may have created Personal or User definition files that might not be relevant to the new project.
    Personal and/or User definitions might only have been useful to an individual person rather than the project so could be omitted.
    In this case, we would only need to select Team*, User Type* and Project

    * It may only be necessary to select Project

    Screenshot showing Location of definitions in Export

  6. Press the Export button again. This will present you with the option to Overwrite, Append or Cancel. Select Append:
    Screenshot showing Overwrite or Append
  7. In Project Manager, create your new project with an EMPTY schema:
    Screenshot showing Create New Empty Project
  8. Log into the new project as MANAGER
  9. Select Project > Import and set Owner to As in File and Overwrite to On:
    Screenshot showing Import Information
  10. You will see that your new project contains:
  • Users
  • All the Project Setup information including the phase hierarchy and all supporting definition files

Summary Note

If you had NOT chosen to append the definition files, it is highly likely that the phase hierarchy from the existing project would not work in the new project and would produce errors.

These definition files are important to define the WorkBench environment.

Also, if you had chosen to export all the definition files, this may have resulted in numerous views, forms, queries, documents etc., that are not particularly relevant or accepted into project definitions.