User Lists and Alerts

User Lists are a very useful Cradle feature. They provide the ability to specify groups of users that are involved in Configuration Management workflows.

Using User Lists for Alert Recipients

However, did you know that User Lists can also be used to specify groups of users who are to be alert recipients.

Alerts could be invaluable in keeping users automatically informed about important events occurring in the Cradle database, e.g.:

  • Items have been modified or a specific category changed
  • Project Setup has been changed
  • An item has been submitted for review
  • There has been a reply to a discussion that you are involved in
  • An item linked to an item owned by your team has changed
  • etc. etc

Setting up a User List

In Project Setup, you can setup the list of users that you wish to receive the alerts.

Setting up User Lists
Setting up user lists

Then, you can specify this User List as the recipient of the specified alerts:

Choosing user lists for alert recipients
Select User List for Alerts

You can also apply this to item-specific alerts:

Using user lists for alert recipients
Item specific alert user lists

Using this functionality, you can ensure that relevant groups of users are informed of various events without having to send to all users.



Checking Database Integrity

Data integrity refers to the accuracy, completeness and reliability of data stored within your Cradle database. Checking database integrity is important as it guarantees both the traceability and searchability of your data. It also increases the performance and stability of your data. Maintaining the integrity of your data is essential. As you collect more and more data within  your Cradle project, it is a priority to maintain the integrity of this data, otherwise the data is worthless.

Error checking ensures that your Cradle data hasn’t been compromised, e.g. during upgrades/imports etc. We recommend that integrity checks are done on a regular basis.

In Cradle, there are a couple of ways to check the integrity of your database:

Please note that these checks must only be run when there are NO other users active in the database. If you are in doubt as to whether you are the only user active in the database, then DO NOT run these checks. If you do, damage can occur.

Item Integrity

The Item Integrity option allows you to perform integrity checks on your Cradle database. This option is available from the Project tab in WorkBench:

Screenshot of the Item Integrity dialog
Item Integrity dialog

The Frame Version Checks detect missing versions of any frames or missing records in any version of any frame for the item type specified. Errors  can be fixed using the Fix button.

There are many Item Checks which are explained here.

Many of these checks can be made subject to one of the following scopes:

  • Superseded or retired – Selects items with a status of S (Superseded) or T (Retired)
  • Latest baseline – Selects items with a status of B (Open Baseline)
  • Deleted – Selects items with a status of D (Deleted)
  • Current –  All current items

If you want to produce a report of the item integrity check, ensure to select the Generate a report checkbox.

Cross Reference Integrity

The Cross Reference Integrity Check option checks the cross references in your Cradle database.

Screenshot of the Cross Reference Integrity dialog
Cross Reference Integrity dialog

The current set of cross references is scanned to find any cross references that are invalid. Any cross reference is only counted once in these checks. So if a cross reference is dangling and also invalid, it will only appear once in the counts.

The Cross Reference Checks are explained here.

When the integrity check has been ran you have the following options:

  • Fix – Fix the cross references
  • Export – Export the group to a CSV file
  • List – List the group individually
  • Delete – Delete the cross references from the group

The Fix and Delete options for privileged users must only be run when there are no other active users in the database. If you are in any doubt, do NOT run these operations.

If you want to produce a report of the cross reference integrity check, ensure to select the Generate error report checkbox.

Additional Frames for Change Requests and Change Tasks

Additional frames for Change Requests and Change Tasks can be defined within WorkBench Project Setup.

The Configuration Management System provides a formal mechanism to make changes to items in baselines. The formal change mechanism is based on:

  • Change Requests (CHRs) which are concerned with general statements of the issue to be addressed, or the problem to be solved, or the defect to be corrected
  • Change Tasks (CHTs) which are concerned with the mechanics of implementing and effecting the change(s) required by one or more CHRs

Both CHRs and CHTs are distinct types of items in the Cradle database and can contain any number of frames. As with standard item types, CHRs and CHTs are provided with some default frames to populate when raising either the CHR or CHT. These are TEXT and NOTES where TEXT is a mandatory frame as this provides the detail.

However, you can also specify in Project Setup whether these item types have any additional frames defined. This can be:

  • Text
  • Graphic
  • Word
  • PDF

or any other format defined as a frame type:

Project Setup
Project Setup showing Item Types tab







Frame Setup dialog
Frame Setup dialog for Change Requests


You can also specify the frames to be mandatory so that the CHR or CHT cannot be raised until those frames are populated. As you can see in the example above the Mandatory checkbox is selected for the JUSTIFICATION frame.

This allows you to ensure that all information is provided for your formal changes.

Filtering Cross References in a Query

Filtering cross references in a query is easy within Cradle.

Showing Cross References in a Query within Cradle

In this example we will create a query that shows links between all system requirements linked to all verifications.

  1. Create a query that shows all system requirements
  2. Then create a nested view which shows links to verification items
View Details dialog filtering cross references
View Details Dialog

This will display as shown below:

Query showing linked items
Query showing linked items

In this example 97 items are returned.

Show only Items that have a Linked Item

To only show items that are linked to one or more verification item, edit the Query Details dialog:

Query Details filtering cross references
Query Details dialog showing Links

which displays as follows:

Query showing linked items
Query showing only items that are linked

As you can see the list of items has now reduced to 43.

Show Items where Linked Item has a Category set

To only show items where the verification has a PASS value set in a category, a query is created.

  1. Create a query that only shows verifications that have a Pass value set:
Query Details showing category set
Query Details dialog showing Category set to Pass
Query showing passed items
Query showing passed items

Refer to this query in the Links tab of the Query Details dialog. Note that instead of using To Items set to Of Type, we have chosen Matching Query:

Query Details filtering cross references
Query Details showing Matching Query

You can now see the list has reduced to 28 items. These being the system requirements that have a Pass for one or more of the linked verifications.

Query showing passed linked items
Query showing passed linked items

Moving Cradle Projects

Are you upgrading/updating your servers? Here we explain moving Cradle projects from an old server to a new server. There are two ways to do this:

  • Moving projects to a new server with the same Cradle version
  • Moving projects to a new server and upgrading to a new Cradle version

Both of these scenarios are detailed below.

Please note if users have Personal definitions, e.g. if they are are using Sessions, these will either need to be copied or exported and imported to the new server. Personal definitions are located in $CRADLEHOME\admin\definitions\personal and the folders have the users names. If copying the definitions they need to be placed in the same location within the personal folder.

New Server with Same Cradle Version

If you are not upgrading Cradle at this time, this is really simple to do.

  1. Create the Cradle projects on the new server with the same project code as previously created on the old server. Ensure the pathname is the location where the databases will be stored.

    Create Project dialog
    Create Project dialog
  2. Copy the contents of the Cradle projects on the old server to the new server. The directory contains all of the data including user profiles, project setup, definitions etc.
    Explorer showing project contents
    Project Contents

    New Server with New Cradle Version

If you are upgrading the Cradle version as well as migrating to a new server, this is slightly more complex.

The safest method (although can be time consuming) is to create export files of the existing Cradle databases and then import them into the new server installation.

  1. When exporting the information from the “old” server, ensure Owner is set to Everything as shown below:Export Information dialog showing Owner option
  2. Once the new version of Cradle has been installed on the new server, you need to create the Cradle projects on the new server.
  3. In the new project you can then import the data exported from the old server . When importing, ensure Owner is set to As in file, Overwrite is set to On and the top four validation checkboxes are selected:Import Information dialog showing import options
  4. Repeat this for all projects

Another way to achieve this is to copy the project directories from the old server on to the new server and then manually convert the projects.

  1. Create the Cradle projects on the new server with the same project code as previously created on the old server with the pathname being the location where the databases will be stored.

    Create Project dialog
    Create Project dialog
  2. Copy the contents of the Cradle projects on the old server and overwrite the contents of the newly created projects on the new server. The directory contains all of the data including user profiles, project setup, definitions etc.
  3. Manually run the necessary converters to ensure the new projects are in the same format as the new Cradle version installed. Please note this may be several converters if converting from a much older version.

Note: Please ensure the projects have been converted BEFORE logging in.

September 2022 Newsletter

Welcome to the latest newsletter from 3SL that provides a mixture of news and technical information about us, and our requirements management and systems engineering tool “Cradle”. We would especially like to welcome everyone who has purchased Cradle in the past month and those who are currently evaluating Cradle for their projects and processes.

We hope that we, and Cradle, can deliver real and measurable benefits to all of the exciting development projects that we see every day through your regular contacts with our support team. If you have any problems, please do not hesitate to contact 3SL support here.

Showing Cell Titles in Views

Sometimes when displaying a nested view the cell titles take up a lot of space on the screen.

Displaying Cell Titles
Displaying Cell Titles

Within the View Details dialog you have the option to choose whether you want to display the cell titles:

Show cell titles option
Displaying cell titles in views

As you can see you can choose to either:

  • Show the cell titles
  • Hide the cell titles
  • Show the cell titles only when the view is top-level

You can change the visibility of any of the component views that are being used to show linked items. In practice, most people either hide everything or show everything.

For further information on views please see our online help page.

Help with Cradle-7.7

Following on from our recent Cradle-7.7 release, if you are not already a customer and would like more information about Cradle, you can download the software and a free evaluation licence. You can find this on our website, or  you can request a webinar. If you are a customer and would like to upgrade, please contact 3SL for a Security Code and for any assistance you may require with the upgrade.

Upcoming Training Courses

We still have places available on our September Risk Management course. Learn how to identify, analyse, evaluate, treat and monitor the risks associated with activities or events within your business. This course is designed for project team leaders or managers who administer and manage risks.

To book a place on one of our online courses please click here!

G-Cloud 13

Cradle on G-Cloud-12
G-Cloud 12

The UK government Digital Market Place Cloud Software applications offer a wide range of software aimed at fulfilment of central and regional government contracts, government agencies’ work and local authority use. This ranges from Schools, education and libraries to Fault management, monitoring and alerting  or Marketing. 3SL (Structured Software Systems Ltd.) continue our presence in G-Cloud 12 but are proud  to announce that Cradle has been successful on G-Cloud 13 and will be available as SaaS through G-Cloud 13 for agile and phase-based projects under the Information and communications technology (ICT) services when it goes live in November.


Cradle offers two packages Cradle Software as SaaS and Cradle Training and Consultancy.


The software package includes Cradle licences, a pre-defined schema and a comprehensive support package. This can be used in  both unclassified (IL0) and OFFICIAL (certified IL3) deployments and covers the following elements:

  • Agile Collaboration
  • Application Lifecycle Development
  • Application Lifecycle Management
  • Agile Software Development
  • Agile Software Management
  • Business Analysis
  • Business Process Modelling
  • Defect Tracking
  • Enterprise Architecture
  • Integrated Risk Management
  • Integrated Test Management
  • Lifecycle Management
  • MBE Model Based Engineering
  • MBSE Model Based Software Engineering
  • MBSE Model Based Systems Engineering
  • Requirements and Testing
  • Requirements Engineering
  • Requirements Management
  • Risk Assessment
  • Risk Compliance
  • Risk Management
  • SysML Modelling
  • Systems Engineering
  • Test Execution
  • Test Management
  • Test Planning
  • UML Modelling

Cradle Training/Consultancy

  • Consultancy
  • Administration Training
  • Fundamentals Training
  • Advanced Lifecycle Training

Prices start from as little as £50.00 per user per month. Including email and phone support and full documentation included. Optional onsite support and training is available. This can be supplied on Windows® or Linux®.


A wide range of user customisation is available including:

  • Items’ (attributes, links and properties)
  • Display of chosen data and layout through queries, views, forms,
  • Processing data to give graphs, reports, documents, metrics, KPIs/dashboards, process
  • CM (Configuration Management) system workflows
  • UI (User Interface) layout and content
  • Authentication and access control


For details, see here:

  • Software
  • Training/Consultancy

or search for 3SL Cradle.  For an overview of Cradle, see our video here:  We look forward to helping you achieve success on your future projects, or migrating existing ‘manual’ or disparate works into a fully encompassed solution.

Showing Filtered “Transitive” Links in Tables


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

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

Create a New Database Based upon a Previous Database

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.

Open Database Connectivity (ODBC)

Open Database Connectivity (ODBC) is an application that allows different types of databases to interface through the use of a library containing data access routines. Cradle now supports connections to DISAM, Oracle and MySQL.

Connection to Different Data Storage Types
This diagram shows the logical representation of the project data storage

Installation Requirements

Before installing check the minimum hardware and operating system requirements for ODBC. The following are necessary for a successful installation:

  • An Oracle or MySQL installation accessible to the CDS preferably on the same machine
  • An ODBC driver manager
  • An ODBC driver for the data source you wish to access. For example, Oracle in Oracle for Windows or SQL Server

Please ensure the versions are the following or greater:

  • Oracle in Oracle from Oracle Corporation version is 18c
  • MySQL ODBC 8.0 Unicode Driver from Oracle Corporation is version 8.0.16
  • Windows ODBC Data Source Administrator appropriate for your Windows release
  • unixODBC driver Manager 2.3.7 or later

*Cradle install will not work with Oracle databases that have been setup using the ‘Create as Container Database’ option.

ODBC is a licence option which can allow Oracle or SQL or both to work with our Cradle Enterprise version. This new licence is not available for any other version of Cradle. For enquires about the new ODBC licence, please email

Cradle and ODBC

The users can still import and export standard export, CSV, XML and now ReqIF files. If a user is on Windows they can still use our Toolsuite applications. The only difference is the access to databases either directly (DISAM) or through ODBC (Oracle and MySQL).

With Cradle supporting ODBC, a user can now install Cradle on the same database server farm as the Oracle/MySQL databases. A separate server is no longer required.  Although projects can be on a separate server and linked to the Cradle database using a UNC path e.g. \\hostname\path\projects\mmh1. Click for more information on Storing Project Databases in NAS.

3 different projects on 2 different servers
Cradle About WorkBench UI showing 3 different projects on 2 different servers

Installing ODBC

The CDS requires an installation of ODBC on the same machine for either Linux or Windows. Client machines which don’t have the CDS on them don’t need to have ODBC installed at all.


If the Linux distribution you are installing on does not have v2.3.7 of unixODBC as a package, then you’ll need to build this from source. You can download and find installing steps for it from Ensure the user installing is the System Administrator or a user with administrator privileges for installing both ODBC and Cradle.

Check for the following files on your Linux installation:

libodbc, libodbccr and libodbcinst
Necessary files on Linux


If the Windows platform you are installing on does not have ODBC please install the latest Oracle in Oracle for Windows which can be found here. You can find installing and upgrading documents for Oracle Database here and select the release you are on from the drop-down.

Certain settings are required to be selected when using Oracle in Oracle. Check and enable or disable the following options in the Oracle ODBC Driver Configuration checking all numbers:

Oracle ODBC Driver Configuration
Oracle ODBC Driver Configuration for Application, Oracle and Workarounds

Turn on the Connection Pooling attributes and use the default options:

Pool Connection settings
Turn on Connection Pooling Attributes

Setting up with Cradle

After installation of both Oracle and Cradle, the administrator is required to check and alter the following files correctly:

  • Support file for the driver when required on Windows usually in ‘Oracle <version>\network\admin’

The following example of a tnsnames.ora file, shows it can have more than one Oracle database location set within it.

tnsnames.ora file
tnsnames.ora file
  • Correctly configure the ODBC file for Cradle in %CRADLEHOME%\admin\db_config\odbc called odbc_config

All options are hashed out in the file until an administrator changes them. All options show an example of what can be entered. This is an odbc_config example for just Oracle on one of our installations.

    CONFIG_DIR = 'oracle'
    CHARSET_BDY = '.'
    CHARSET = 'AL32UTF8'
    ODBC_SOURCE = 'OracleODBC-18c-ORAC'
    DBMS_NAME = 'Oracle'
    DEFAULT_DB_SCHEMA = 'cradle_prj_$PCODE'
    ODBC_SOURCE = 'OracleODBC-18c-ORAC12'
    DBMS_NAME = 'Oracle'
    DEFAULT_DB_SCHEMA = 'cradle_prj_$PCODE'
  • Correctly configure the file create_CRADLE_CDS_USER in cradle\admin\db_config\odbc\setup_scripts

The default user tablespace and users within your Oracle database need to be set within this file. This is to allow the altering and creating privileges for the users. In our original it has:


The privilege options in create_CRADLE_CDS_USER should be changed to your own tablespace and user names used in the odbc_config file.

Creating New Projects

Users get the same Cradle interface as before but with a new section it now allows connects to 3 different types of database. The different databases can be created through Project Manager by selecting a different Data Source.

Showing 2 different Oracle databases in Create Project UI
Showing 2 different Oracle databases either can be used

Once a source is selected, a new section allows the default settings from the odbc_config file to be bypassed if required:


Projects can be still be created through a command line using c_prj using the new -odbc_src option.

[-odbc_src <odbc_source>
 [-odbc_sch {DEFAULT | DATABASE | NONE | <ODBC schema>}]
 [-odbc_usr <ODBC user>]
 [-odbc_pwd <ODBC password>]]
c_prj.exe -create -code TEST -title "Test Project" -path /home/project/odbc -pid ODBC01 -schema DEFAULT -odbc_source OracleODBC-18c-ORAC -odbc_user -odbc_pwd

Both -odbc_user and -odbc_pwd are left blank so the default user and password from the odbc_config file will be used. They will only be filled when an override is required. When creating a database for Oracle then the -odbc_sch DEFAULT would be used. For an SQL database then -odbc_sch DATABASE would be used.

File Locations

All items requirements, system notes and diagrams etc., will be located in an Oracle database but there are some files that are kept in a project folder like in a DISAM project.

The ‘prj_params’ file can be found in the project folder with a new file called ‘connection_config’. The ‘prj_params’ is the same as before, with all the options for the project schema and user interactions. The new ‘connection_config’ file holds the version, type, database source and odbc schema used. It also holds the User and Password to override the DEFAULT USER / PASSWORD from the odbc_config.

USER = *****
PASSWORD = *****

The definitions e.g. views, queries and reports etc., are still held in the definitions folder under the different user types. Source and Formal Documents are also held as before in the doc and fdoc folders.


Direct manipulation of data in Cradle’s data files held in DISAM or an ODBC supported database is not recommended under any circumstance. The inherent integrity of the data and its internal relationships can only be maintained by accessing through Cradle’s defined UI, command-line or API tools.

  • We do not provide any information about Cradle’s use of Oracle and
    MySQL other than which we provide in our documentation
  • We do not provide any information or assistance to anyone who is
    proposing to access Cradle’s data that is stored in Oracle or
    MySQL other than through Cradle
  • Anyone who accesses, either read-only or read-write, Cradle data
    that is stored in Oracle or MySQL without using Cradle as the only
    means to access that data, does so entirely at their own risk and
    3SL will not accept any responsibility for, nor provide any
    assistance to, anyone who accesses Cradle data in that way and then
    subsequently finds that their data is no longer accessible through,
    or manipulable by, Cradle

July 2020 – Directory updated