Creating Instances of an Inferred Entity

This is a design pattern I’ve seen quite a lot. It tries to answer the challenge of wanting to let users create many instances of an Inferred Entity quickly, without having to keep clicking the add or remove buttons.

What are the advantages? Well, aside from the button-clicking mentioned above, it also offers the ability to lock the users into a specific set of instances – to say for example that they cannot create, perhaps, more than N instances, without resorting to any kind of JavaScript. And with a bit more reflection you can come up with ways to let the user create Inferred Entity instances that match your specific template.

And finally, it allows a little more flexibility since we can also now “collect” both a parent and child entity on the same screen, helping reduce the number of different screens the user has to navigate through.

Start by creating the Inferred Entity and a few attributes. And take a moment to create another attribute in Global to store the “number of instances to create”. We can display this on the Screen as a drop-down or as a numeric input.

Inferred Entity 1

Now, create the self-referencing relationship that will be the source of the iterative Inferred Entity instances.

Inferred Entity Relationship
You’ll also need another relationship, between Global and the family member, to hold the first family member and serve as the starting point for our loop.

Then, place it all on the Screen.In this case we’ll use a Portrait Entity Container for more flexibility since we can include Containers inside it to get the exact layout we would like.

Inferred Entity Screen Layout

Build out the loop for the family members, and do the same for the resources if you are going the whole way.

The user can now create instances by selecting the number they would like, and then filling out the instances that are displayed. Default values can of course help speed things up.

The user can then also create the child records they want as well on the same Screen, before proceeding – in this case a simple child entity called resources. We ensure that the resources are displayed with the family member and line it all up and include a label to make it neater.

This method of course has it’s downsides, but for a no-JavaScript solution to managed data entry it’s not that bad.

Fancy some more, then try these articles.

Author: Richard Napier

After 8 years in case management and ERP software roles, Richard Napier joined Siebel Systems in 1999 and took up the role of managing the nascent Siebel University in Southern Europe. He subsequently was Director of Business Development and Education for InFact Group (now part of Business & Decisions) for 8 years. He now runs Intelligent Advisor IT Consulting OÜ. Owner of, he also is Co-Founder of the Siebel Hub.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Intelligent Advisor IT Consulting Serving Customers Worldwide
Hide picture