Skip to main content

Step 1: Open the Domain Model

  1. Navigate to Administration > Nextedy POWERSHEET > Domain Models
  2. Select the domain model to edit
  3. Locate the relationships section at the bottom of the YAML

Step 2: Define a Bidirectional Relationship

Each relationship in the relationships array creates navigation properties on both entity types. Define direct (forward) and back (reverse) navigation properties:
relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: systemRequirements
    back:
      name: userNeeds
This creates two navigation properties:
  • systemRequirements on UserNeed — navigate forward to linked SystemRequirement items
  • userNeeds on SystemRequirement — navigate back to the parent UserNeed items
diagram

Step 3: Understand Required Properties

Each relationship requires these properties:
PropertyDescriptionExample
fromSource entity type (must match a domainModelTypes key)UserNeed
toTarget entity type (must match a domainModelTypes key)SystemRequirement
cardinalityRelationship multiplicityone-to-many
storagePolarion persistence mechanismlinkedWorkItems
linkRolePolarion link role IDrefines
direct.nameForward navigation property namesystemRequirements
back.nameReverse navigation property nameuserNeeds

Step 4: Build a Multi-Level Hierarchy

Chain multiple bidirectional relationships to create a full RTM hierarchy:
relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: systemRequirements
    back:
      name: userNeeds

  - from: SystemRequirement
    to: DesignRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: designRequirements
    back:
      name: systemRequirements
The back property on each relationship lets you traverse the hierarchy upward from any level.
Each entity type can only have one navigation property with a given name. If SystemRequirement already has a systemRequirements property from another relationship, you will get a conflict error.
The Model Helper widget visualizes the model structure and shows both forward and backward navigation properties. Set the depth parameter to see multi-level relationships.

Step 5: Use Navigation Properties in Columns

Once bidirectional links are defined, reference them in your sheet configuration using binding paths:
columns:
  title:
    title: User Need
    width: 200
  systemRequirements.systemRequirement:
    title: System Requirement
    multiItem: true
    display: title
  systemRequirements.systemRequirement.designRequirements.designRequirement:
    title: Design Requirement
    multiItem: true
    display: title

Step 6: Configure Expansion Paths in Sources

Ensure the sources section expands the bidirectional relationships for data loading:
sources:
  - query:
      from: UserNeed
    expand:
      - name: systemRequirements
        expand:
          - name: designRequirements

Verify

After saving the domain model and sheet configuration, open your powersheet document. You should now see:
  • Forward navigation: expanding a UserNeed row shows linked SystemRequirement items
  • Back navigation: the reverse property names are available for column bindings and queries
  • Multi-level expansion works across the full hierarchy chain

See Also

model.yaml, rtm_model.yaml, todosBig_model.yaml, Relationship.java
KB ArticlesSupport TicketsSource Code
  • todosBig_model.yaml
  • DomainModelV2.java
  • prod-powersheet-src/com.nextedy.powersheet.client/ltc-repo/packages/sheet/commands/link.ts
  • rtm_model.yaml
  • todos_model.yaml