Project Administration – Cross Reference Integrity Checks

This blog follows on from our previous blog about project integrity checks. Here we discuss a second project integrity tool which concerns the validity of cross references. This can be found in the Project ribbon:

Project ribbon
Cross Reference Integrity Check option

As with the Item Integrity Checker, the user MUST have ACCESS_BYPASS privilege to instigate any changes to the data. It is highly recommended that there are no other active users in the database.

In fact, we would recommend locking a project using Project Manager prior to using these utilities if you cannot be certain that other users would not try to log on during the process of running the utilities.

Also, it is highly recommended to back up your database and/or create a snapshot prior to instigating any changes using these utilities.

For details about snapshots, refer to the following help page.

Cross Reference Integrity Checker

The Cross Reference Integrity Checker consists of several checks that compare the links found in the database with the rules specified in Project Setup. Some of the issues found can be repaired with a single click.

There are some checks that would not be required in normal Cradle usage but could appear as a result of an import. An example of this could be due to the fact that Cradle has the ability to import cross references independently of any item types and specify the from item and the to item. These items referred to in the cross references by their identity attribute, might not exist in the database so this is an example of a dangling cross reference.

Cross Reference Integrity Checks

Other checks are:

  • Duplicate cross references
  • Reversed hierarchical cross references – where the from item has an identity that suggests it to be the child of the to item. For example, a cross reference that is from item 1.2.3 to item 1.2. The usual action is to fix the cross references which will reverse them.
  • Cross references to be reversed – where the link rules specified in Project Setup state that the link between the checked items should be in the opposite direction in order to be valid.
  • Cross references needing a new link type – where it detects cross references that are invalid according to the current link rules but which become valid if their link type is changed
  • Invalid cross references
  • Cross reference cardinality – detects cross references whose cardinality does not match the current link rules
  • Cross reference attributes – checks the cross reference attributes, e.g., if there was information in a cross reference attribute (e.g. Reason) and was removed in a way other than through the UI, this check will flag the cross reference.
Cross Reference Integrity dialog
Cross Reference Integrity dialog

These checks will provide both a report and a summary in the dialog.

Example Cross Reference Integrity Report
Example Cross Reference Integrity Report
Example Cross Reference Integrity dialog
Example Cross Reference Integrity dialog

In this example, 154 of the cross references that exist in the database would be valid if they were reversed. So clicking the Fix button would repair those links with a single click.


We have addressed some of the checks that can be run on items to confirm the validity of cross references.

Please remember that the user MUST have ACCESS_BYPASS privilege to instigate any changes to the data. It is highly recommended that there are no other active users in the database.

Hiding Unused Item Types

Each Cradle project contains item types that can be linked together by cross references:

  • You define the types of items, their characteristics and their attributes
  • You define the types of cross references and their attributes, and the rules by which they link items

There are several item types that are included by default in Cradle, such as:

  • Source documents – captured using Document Loader
  • Formal documents– formal saved Document Publisher output
  • Requirements – standard requirement type that you might wish to replace with a system note type instead
  • Events – used in the analysis stage of a project to model the environment of a system and to describe how the system interacts with this environment
  • Essential Domain – analysis models
  • Implementation Domain – design models
  • Project plans – integration with Microsoft Project
    Items shown in interface
    Before hiding unused item types

    Some of the item types might not be necessary in your schema so you can remove unused item types/information in the Miscellaneous section of Project Setup:

    Hide option in Project Setup
    Setting item types to be hidden

Once applied and WorkBench restarted, you will no longer see the item types/information you have chosen to hide. This includes:

  • Project sidebar nodes
  • Sidebars
  • Menus
  • Item type chooser
  • Query, View and Form Details dialogs

    Items hidden from user interface
    After hiding unused item types

This also applies to the Web Access default and basic user interfaces.

Using a Form for Each Workflow Stage

Example Scenario

Cradle items can contain many frames, categories and other attributes that might not necessarily be relevant or required to be shown at different stages of your workflow. An example of which is shown below:

Item showing stage frames
Item showing stage frames

The example provides frames that should only be shown at the relevant stage in the workflow and the Acceptance Criteria, we decided that we wish to show this information at all stages but displayed read-only at stages 2 and 3.

Defining a Stage Category

To start with, create a category to base the workflow on. This must be set as mandatory and have a default value set.

Setup category values
Setup category values

You can then assign this category to the item type. In this example we have used Requirements:

Assign Category
Assign category to item type

Defining the Workflow

In the Workflow Settings, create a workflow that uses the Stage category to advance to the next stage of the process. In this example, we demonstrate a very simple workflow that advances from Stage 1 to Stage 2 and then Stage 2 to Stage 3. The 3rd level shown here is to then advance to formal review:

Show workflow stages
Show workflow stages

You can then set this as the default workflow for the item type:

Set default workflow
Set default workflow

Note that the Stage Category Form… button becomes active. We will come back to this later as firstly you need to create a form for each stage.

Creating Forms

Using the Form Details dialog, create a form for each stage of the workflow.

Stage 1 Form

The Stage 1 form in this example should show the frame STAGE 1 NOTES but not STAGE 2 NOTES or STAGE 3 NOTES.

Stage 1 form
Stage 1 form

Stage 2 Form

The Stage 2 form in this example should show the frame STAGE 2 NOTES but not STAGE 1 NOTES or STAGE 3 NOTES. You can also set the Acceptance Criteria frame to only be shown read-only as in the example below:

Stage 2 form
Stage 2 form

Stage 3 Form

The Stage 3 form in this example should show the frame STAGE 3 NOTES but not STAGE 1 NOTES or STAGE 2 NOTES. You can also set the Acceptance Criteria frame to only be shown read-only as in the example below.

Stage 3 form
Stage 3 form

Setting the Stage Forms

You can now return to Project Setup and press the Stage Category Form… button:

Project Setup Stage Category Form button
Stage Category Form button in Project Setup

This will allow you to specify the form to be used at each stage of the workflow.

Stage Category Form dialog
Stage Category Form dialog

Advancing the Item

When you first create the item, the Stage category is set to Stage 1 as this is the default value for the item. You can see here that the STAGE 1 NOTES frame is shown and the Acceptance Criteria is read-write:

Advance option
Advance option in ribbon

Pressing the Advance… button closes the item and changes the Stage value to Stage 2 once confirmed in the Advance Operation dialog:

Advance Operation dialog
Advance Operation dialog

When you open the item again, you will see that the Stage category is set to Stage 2 and will use the Stage 2 form that shows the STAGE 2 NOTES frame and the Acceptance Criteria is read-only:

Item showing stage 2
Item in form showing stage 2

Advancing the item again uses the form that has been created for Stage 3 and so on.


WorkBench allows you to create a specific form for each stage of your workflow. This can be particularly useful if the frames, categories or attributes only need to be shown at certain stages of your process. It would simplify the user interface for the users that are modifying the items as they would not be presented with information that might be irrelevant to their task.

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.



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.

How to Recover Deleted Items

Recovering Deleted Items

The recoverable status means that when you delete items, they are not removed from the database, but is placed into a recoverable state from where you can restore the item if you need to. The ability to recover deleted items in this way is similar to the Trash folder you may find on a mail program or Bin on an operating system home screen. When an item is restored all cross references to/from the item are also restored.

To set the recoverable option you need to set the Enable recovery of deleted items option within the Miscellaneous section in Project Setup:

Project Setup dialog showing settings to recover deleted items
Project Setup dialog

You will notice when you select this option the Deleting/recovering items …. option becomes enabled. This controls whether deleting a draft item (making it recoverable) should also modify the item’s last modifier/last modified date/time attributes. If set, this also affects those attributes when recovering an item, i.e. the date/time will reflect when the item was recovered.

Full Deletion

To really delete items from the database you can either:

  1. View the recoverable items and delete them, or
  2. Overwrite with a new item with the same identity as an item that is recoverable (you will receive a warning message so that you do not do this unintentionally)

You can view the recoverable items by using the Delete State element in queries:

Delete states available within queries
Query Details Dialog

Tip: You can stop users from deleting items by disabling the delete item privilege in user setup. We feel that deleting an item is more of a project admin task and not for general users.

Viewing Deletions

As you can see there are three values:

  • Normal (the default) – selects items that are not recoverable
  • Recoverable – selects items that are recoverable, that is, the items that have been deleted and which can be restored
  • All – selects items irrespective of their recoverable status

Read the Cradle Help for information on how to recover deleted items.

When items are deleted (i.e. placed into a recoverable state) and change history is enabled for that item type, a comment of Item deleted is added to the change history of the recoverable item. Also, if the item is recovered a comment of Item recovered is added to the change history.

Article updated 05/12/2018 – Added tip

Creating a RTF Frame

Displaying and Editing RTF Inside Cradle

This blog will help explain what RTF frames are and how they are used within Cradle.

Rich Text Format can be used to enhance the data shown in Cradle. This is displayed in a Rich Text Frame. Whether this is to allow BOLD, Underline or a different Font. Generally requirements and specifications should be broken down into atomic components. The ‘detail’ should be expressed in a short and concise  statement or paragraph. However, higher level requirement or tables are often useful and in these cases the emphasis / layout provided by RTF is desired.

demonstration of RTF in Cradle
RTF Frame Display

To create the RTF Frame, open WorkBench and navigate to Project Setup. Inside Project Setup from the Options dropdown menu select “Item Definitions” and open the tab Frame Types.

In most cases using the shipped schemas, you’ll see a frame of type RTF, however, the steps to create a frame are: Select New… this will open the “New Frame Type”  dialog in which you can give your frame any name, for this I have named mine the “Blog RTF“, You will now see the Frame you have created in the list, select Edit… in this dialog you now have several settings, the “Base Type” will allow you to change the Frame Type, you will want to change this to “RTF“. Other options are available such as being able to restrict the RTF Frame by choosing a Required Skill, provided that you have a set of predefined skills in your project schema.

Now to assign this frame to an Item Type, first you will want to open “Item Types“. Select your item of choice, for this I have selected System Note – Feature. Select “Frames…” and give this a sensible name such as “RTF“.

Frame Setup dialog showing RTF frame assigned to FEATURE item type
RTF assigned to FEATURE

For more information regarding Frames select here

Article Updated 04/02/2019 – Added intro

Creating New Item Types

Do you require more Item Types, maybe you just want a new Item Type with a different name. Cradle lets you create new item types to suit your working methods.

In Project Setup navigate to “Options – Item Definitions” and change the tab to “Item Types“. This dialog presents a list of

  • the predefined types of item available in any and all Cradle projects,
  • those that were in the chosen template schema when the project was created
  • those added by a user.

New user defined types are used to extend a Cradle Database, to encompass new types of information. To create a new item type you need PROJECT privilege to modify the schema.

3SL Cradle New Item Type
Creating a New Item Type
  1. Select the Project tab
  2. Select Project Setup
  3. Set Options to Item Definitions (if not already set)
  4. Select the Items tab
  5. Click New and enter a name for the new item type

Remember you can also add these newly created Item Type to the quick access bar, for more information see “Customise your Quick Access Bar”

For more information regarding item types and Project Setup please see help on Item Types or my article on configuring Item Attributes

Article Updated 04/02/2019 – Removed mentions of project schema

New Default Schemas

The structure of each Cradle database is defined in a schema. Cradle is supplied with four default schemas that you can use. You can create new default schemas. You can initialise your new Cradle database using any of your default schemas.

Default Schemas

A Cradle system can contain any number of databases. Each database can be used for one or more projects. Each database has a structure that is defined in a schema.

When you create a new database, you specify a default schema that will be used to initialise the schema in the new database  Cradle is supplied with four default schemas, called: empty, default, quick-start and SysML. 3SL provides documents that explain the contents of these default schemas.

New Default Schemas

Cradle can support any process for any type of project. The schema defines the types of information that you will need to follow your process.

You can create new default schemas to support any type of process for any type of project. For example, look at the following types of projects and lists of the item types that will be included in their schemas:

  1. Agile projects:
    • Sprint, iteration
    • Feature
    • Build and release
    • Test cases, test results
  2. Business Analysis projects:
    • Needs, goals, objectives
    • Business functions, processes, tasks
    • Organisations, groups, teams
    • Deliverables, reports  and other document types, artefacts, builds
    • Personnel types, skills, roles
  3. Enterprise Architecture projects:
    • Needs, goals, objectives
    • Processes, functions, tasks
    • Resources, systems, buildings and other facilities, area breakdown structure, site breakdown structure
    • Delivery phases, releases and builds
    • Organisations, groups, teams
    • Deliverables, reports  and other document types, artefacts, builds
    • Personnel types, skills, roles, organisation breakdown structure
  4. Requirements Management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Validations and verifications
  5. Application lifecycle management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Validations and verifications
    • Analysis models, logical models, architecture models, design models – built using MBSE using one or more of functional analysis, SASD, IDEF, ADARTS, UML and/or SysML notations
    • System breakdown structure (SBS)
    • Test cases and test results
  6. Project Management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Product requirements, managed in a library
    • Validations and verifications
    • System breakdown structure (SBS)
    • Product breakdown structure (PBS)
    • Part catalogue, suppliers, orders
    • Production schedules, production runs, batches, samples
    • Quality records, test cases, samples, test results

Location and Structure of Default Schemas

Each default schema is stored in the sub-directory:


inside the Cradle installation on the server.

Inside this directory are:

  • A file called: prj_params that contains the schema
  • A directory tree containing the project-scope definitions, such as queries, views, forms and so on, called: definitions

Creating New Default Schemas

You can create your own default schemas by:

  • Decide on a name for your new default
  • Create a new directory with this name inside the admin/defaults directory in the Cradle installation on your server
  • Place the schema for the new default inside this directory in a file called: prj_params – you can copy the prj_params file from inside the database directory of an existing database, or use Cradle’s export to create it (see below)
  • Optionally copy some or all of the Project scope definitions from the definitions directory in an existing database

Export to Create a New Default Schema

You can export the schema using the Export Information dialog that is shon when you select Export from the Project tab in WorkBench.

If you can run WorkBench on the server, then you can export the schema directly into the new defaults directory:

Export to Create New Default Schemas
How to to Create a New Default Schema

Using Your New Default Schemas

When you create a new database in Project Manager, select the Schema drop-down list. This will display the list of default schemas. Any new schemas that you have created will appear in this list, for example:

Create Project dialog showing available schemas
Create Project dialog

Getting Started with Link Rules in Cradle

What Are Link Rules?

Link rules are used in Cradle as a way of defining constraints for cross reference operations within a project. They specify who can manipulate cross references, the link types that can be used, between what types of item, and which items of these types. This guide to getting started with link rules will help first time users understand the concepts.

The level of detail for each link rule can vary as required for your project’s needs. On one hand they can be very simplistic, allowing links of any link type between all item types. On the other hand they can be more detailed and specific, allowing links between different item types, models and individual item identities.

Throughout this blog post, and future posts, we will explore the Link Rule Setup dialog. These posts will cover the different options available and the result this will have on cross references between items in your project.

Continue reading “Getting Started with Link Rules in Cradle”