Skip to main content

What you will achieve

By the end of this tutorial you will have:
  • A working domain model with two entity types (UserNeed and SystemRequirement)
  • A relationship connecting the two entity types via a Polarion link role
  • A foundation you can extend with additional entity types
This tutorial uses UserNeed and SystemRequirement from the shipped RTM example model. In your own configuration, replace these with entity types that match your domain — for example, Task and Subtask, Hazard and RiskControl, or any names meaningful to your workflow.

Prerequisites

  • Powersheet installed and licensed (see Installing Powersheet)
  • Navigation topic enabled (see Setting Up Navigation)
  • At least two Polarion work item types configured in your project (e.g., userNeed and systemRequirement)
  • A Polarion link role defined for connecting the two types (e.g., relates_to)

Step 1: Open the domain model administration

Navigate to Administration > Nextedy POWERSHEET > Domain Models. Click New to create a new domain model at the project level. Select System Default as the base and give your model a name (e.g., rtm). You should see: A new domain model file opens in the configuration editor with the default template content.

Step 2: Define entity types

Replace the content of the domain model with the following minimal YAML:
domainModelTypes:
  UserNeed:
    polarionType: userNeed
    properties:
      severity:
      priority:

  SystemRequirement:
    polarionType: systemRequirement
    properties:
      severity:
Each key under domainModelTypes defines an entity type name. The polarionType property maps the entity type to a Polarion work item type. The properties section lists which work item fields are exposed for use in sheet configurations. You should see: The YAML is accepted without errors in the editor.
Entity type names under domainModelTypes must be single words with no spaces or special characters. Use PascalCase naming like UserNeed or SystemRequirement. Using spaces or special characters causes validation errors.

Step 3: Define a relationship

Add the relationships section below the entity types:
relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: relates_to
    fromNavPropName: systemRequirements
    toNavPropName: userNeeds
This defines a one-to-many relationship from UserNeed to SystemRequirement, stored using the Polarion relates_to link role. You should see: The complete model now has both domainModelTypes and relationships sections.
The from and to values must match the entity type names defined in domainModelTypes — not the Polarion work item type IDs. For example, use UserNeed (the entity type name), not userNeed (the Polarion type ID). Mismatching these is the most common cause of domain model errors.

Step 4: Review the complete model

Your complete domain model should look like this:
domainModelTypes:
  UserNeed:
    polarionType: userNeed
    properties:
      severity:
      priority:

  SystemRequirement:
    polarionType: systemRequirement
    properties:
      severity:

relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: relates_to
    fromNavPropName: systemRequirements
    toNavPropName: userNeeds
Save the model. You should see: The model saves without errors. The fromNavPropName and toNavPropName values become the navigation properties you will reference in your sheet configuration columns. diagram
Start with the simplest possible domain model and extend incrementally. Once this two-entity model works, you can add more entity types following the same pattern — for example, DesignRequirement for a deeper RTM hierarchy, or entirely different types that match your domain.

Next steps

Support TicketsSource Code
  • DataPropertyFactory.java
  • build.properties
  • prod-powersheet-src/com.nextedy.powersheet.client/cypress/fixtures/models/constraints-base.yaml
  • prod-powersheet-src/com.nextedy.powersheet.client/ltc-repo/cypress/e2e/Sheet/add-remove.spec.ts