Skip to main content

Custom Wizards

Template packs decide what ITB generates. Capability packs decide what ITB offers — the wizards, the menu entries, the actions in the interface. They are declarations too, so adding a wizard means adding JSON, not shipping a new version of the application.

Every wizard you already use for Data Vault modelling arrives this way. So does the demo one below.

Try it​

Demo: Retail Business Objects installs a capability pack alongside its templates. After installing, reload the application — wizards, their labels and their actions are read when it starts — then right-click on empty canvas and choose New Business Object.

info

The reload is not optional. A capability pack adds things the application reads once at startup, so its wizard does not appear until then. ITB offers the reload for you after installing.

Three steps:

StepAsks for
ObjectName, description, kind (business or value object), where to place it, and on which viewpoint
IdentifierThe name of the business key and its data type
GovernanceBusiness domain, owner, classification

Finish, and one action has created the entity, its identifier attribute, its three governance values and its node on the viewpoint — adding any type or custom-property definition that was missing along the way.

What a wizard is made of​

Three declarations, and each does one job:

The entry point. A small descriptor that says where the entry appears — in this case the canvas context menu — what it is called, and which wizard it opens. Changing where a wizard is offered means changing this and nothing else.

The wizard. Its steps, and the fields in each step. A field is a text box, a choice with fixed options, or a choice fed from the model itself — the "place next to" field offers your existing objects, and the viewpoint field your viewpoints. Every label is a translation key, so the wizard speaks the language the application is set to.

The transaction. What is actually written, as an ordered list of operations: seed the missing types, create the entity, create its attributes, attach them, write the custom property values, place the node. It runs as one unit.

Two things worth knowing​

A wizard can only offer what the model can express. Fields are text boxes and choices; there is no way to collect a freely-named list of attributes. So this wizard creates one attribute — the identifier — and the rest you model afterwards. That is a limit of the declaration, and a deliberate one: a wizard that tried to be a modelling tool would be a worse modelling tool than the canvas.

Placing the node needs an anchor. The wizard asks which object to place the new one next to, and the field is required. Without an anchor the entity would be created and be nowhere on the canvas — present in the model, invisible on screen. Requiring the anchor means what you create is always where you can see it.

Reading it​

The demo capability pack is open: its descriptors are readable JSON and it needs no licence key. Every part described above is a file you can open and compare against what you see in the interface — which is what it is for.