Documentation
Getting Started
Data Grid
Business Rules
Approvals
Users, Roles & Security
Administration
Integration & API
Installation
Migrating from MDS
Architecture
Documentation/Modeling/Domain Attributes & Hierarchies

Domain Attributes & Hierarchies

Domain attributes are the backbone of Primentra's relational model. They link one entity's field to another entity's records, and the links between entities are what a hierarchy is made of.

How a domain attribute works

Watch it done in 80 seconds — a Store entity gets a Main supplier lookup, and a value is picked and saved in the grid:

How to add a domain attribute (lookup) in Primentra

Set an attribute's Type to Domain, then pick the target entity in the Length/Target column. In the data grid the field becomes a dropdown of records from that entity. Users pick a value instead of typing one, so a reference is always valid.

Domain values always read as {Code} Name — for example {NL} Netherlands. The same format is used when you copy, paste and export. On import, a value is matched by Code, by Name, or by the combined {Code} Name form.

Build a hierarchy

Chain domain attributes to build a multi-level hierarchy:

  • Costcenter has a domain attribute pointing at Area
  • Area has a domain attribute pointing at Zone
  • Zone has a domain attribute pointing at Country

That is the chain Costcenter → Area → Zone → Country.

Primentra detects these chains and draws the hierarchy under each model. There is nothing separate to configure — the hierarchy is read straight from the attributes.

The hierarchy drawn under a model in the admin panel
The hierarchy drawn under a model in the admin panel(click to enlarge)

To see every model's chains on one screen, use the All hierarchies panel on the Models page — see Models.

Renaming is safe. Domain references are stored as internal IDs. Rename an entity or an attribute and every dropdown, hierarchy and value keeps working. Only integration views notice, and they report it as drift.

Cascading dropdowns

When one entity has two related domain attributes — a RoleGroup and a Role — you can narrow the Role dropdown to the group that is selected. This is the Filter column, also called a parent filter.

Without it, the Role dropdown always offers every role. With it, only the roles that belong to the selected group are offered, so an inconsistent combination cannot be picked.

Set it up

  1. Go to Settings → Models, open the entity and click Edit.
  2. Find the child domain attribute in the list — the one to be narrowed, for example Role.
  3. In the Filter column, select the parent domain attribute, for example RoleGroup.
  4. Click Save.
The Filter column set on a domain attribute in the entity form
The Filter column set on a domain attribute in the entity form(click to enlarge)

What "matching" means

The child entity must itself carry a domain attribute pointing at the same entity as the parent. Primentra resolves the options through that relationship: select "Management" as the RoleGroup and the Role dropdown offers only roles whose own RoleGroup is "Management".

In the data grid

  • Select a value in the parent and the child dropdown narrows at once.
  • Clear the parent and the child offers everything again.
  • Change the parent to another value and the child is cleared, so no stale combination survives.

Filtering also works in reverse. Fill the child first and Primentra fills the parent with the matching value. Users can start from whichever field they know.

Example — roles filtered by role group. Entity Human, with RoleGroup pointing at the RoleGroup entity and Role pointing at the Role entity. Role itself carries a RoleGroup attribute. Set Role's Filter to RoleGroup:

  • Selecting "Management" as the RoleGroup narrows Role to management roles.
  • Selecting "Accountant" as the Role fills RoleGroup with "Finance" automatically.

Rules

  • Loop prevention — A can filter B, but B cannot then filter A. The Filter dropdown only offers sibling domain attributes that do not form a loop.
  • Chains — A filters B and B filters C is allowed. Configure one link at a time: set B's filter to A, then C's filter to B.

Parent-child inside one entity

An entity can point a domain attribute at itself. That is how you build a parent-child tree, and the Filter column narrows the parent list the same way it narrows any other.

Take a Klantstructuur entity with Code and Name plus two domain attributes:

AttributePoints atFilter
ConcernConcern entity
ParentStructuurKlantstructuur (itself)Concern

Set it up in three steps:

  1. Create the entity with its Concern attribute.
  2. Add ParentStructuur as a domain attribute and pick the same entity as its target.
  3. Set ParentStructuur's Filter to Concern and save.

On a row in concern *Alpha*, the Parent structuur dropdown offers only structures that are themselves in *Alpha*. A parent-child link can never cross a concern boundary.

Coming from Microsoft MDS? MDS needed a derived hierarchy — *Concern → Structuur* — to exist before its Filter dropdown offered anything. Primentra needs no hierarchy: it reads the relationship straight from the attributes.

Shared entities across models

By default a domain attribute can only point at entities in the same model. Turn on Shared across models on an entity to make it available as a domain target from any model.

Use it for reference data that the whole organization needs — Country, Currency, status codes.

  1. Go to Settings → Models and open the entity you want to share.
  2. Turn on the Shared across models toggle.
  3. Click Save.

The entity then appears in the target dropdown in every model, with its source model in brackets so you can tell it apart.

  • Sharing does not copy the data. It stays in its original model.
  • Permissions still apply. Users need at least Read access to see the values.
  • Microsoft MDS has no equivalent — cross-model references are Primentra only.

Ready to get started?

Start managing your master data with Primentra today.

View Pricing
Domain Attributes & Hierarchies | Modeling | Docs | Primentra