WEBCON works hard so reduce your need to make tradeoffs. Our much-discussed InstantChange™ technology, for instance, means you can both make rapid changes without disruption and without affecting your ability to put changes through structured development-testing-production deployment cycles.
Repeating data in forms is another excellent example of this ethos. Consider a group of master/detail forms, for example, purchase requests:
WEBCON BPS lets you work with them as both a group of structured documents and as a set of linked tables. It’s just one of those many things you ought to just expect but have probably resigned yourself to not being able to do because other tools don’t support it.
The Suboptimal Way, Part 1
Some tools will favor treating each form like a structured document. InfoPath, for example, will represent the above set of forms as three XML files, like this:
That’s great when you want to copy a form’s data from one place to another, or when you want to secure it with a single access control list. You only need to do something to one block of data that includes overall data and line items in a convenient package.
It’s annoying if you wanted to, for example, total up all of the line items in all three forms. You’d have to maintain a running total yourself as you open each form and loop through its line items. You’d even be tempted to copy the data to some tables to make querying easier, but then you’d need to keep the table and the XML files in sync – and that synchronization would become a fragile element of your solution with high probability to eventually break.
The Suboptimal Way, Part 2
Still other tools would favor binding the overall form to one data table and the line items to a second linked table, much like this:
This approach is really easy to query, but if you wanted to secure two different forms so they can only be seen by each of two different people, well, that gets hard. It probably requires creating an extra table and a few views. Copying/archiving/deleting data would require yet another approach.
You can do it, but you’d need to work much harder than you should.
The WEBCON Way
It’s not like there’s magic at work. Behind the scenes, WEBCON BPS stores the data for forms like these in two separate, linked tables. The difference is that we have an object layer sitting in front of them that supports treating each form+subitems as a document.
You get two ways of working with forms that work simultaneously. If you want an XML document or JSON blob, you can get it in seconds. If you want to query the data as sets, it’s right there for the querying. Every use case wins.
You can define reports and data sources based on aggregations of line items across multiple forms. You still get to secure each form with a single set of permissions and walk through its unified audit trail. Again, every use case wins.
It’s About a Smarter User Interface, Too
It’s not just about data access. If the form is intimately acquainted with its data, the form – and more importantly, its designer – doesn’t need to work as hard.
For one immediate example, most other tools would require you to exit your application designer and go create a table or list somewhere else, deciding in advance which columns will be needed and how to link it to the parent table/list. Then you go back to the designer, add a table control to the form, and bind that control to the data table you just created. Oh, and you’ll need to add the link logic to your form, too.
It can be easier. In WEBCON BPS Designer Studio, you just add an Item List field to a form, decide which columns it needs, and you’re done. The data and the form were updated at the same time.
The workflow and reports already know what to do with that data, too.
We can take this to the next level as well. Item lists can automatically do these five things:
- Calculate and display totals, averages, or any other aggregate calculations.
- Place those aggregate numbers into other form fields, automatically. There’s no need to query the data once to display it and again to calculate statistics on it.
- Force numbers to add up to a target that you specify. For example, you can make sure percentages sum to 100 by checking a checkbox.
- Populate rows with default values, which can be hard-coded or queried from other sources.
- Conditionally format rows.
And on top of all that, you can have as many item lists within your form as you like.
We could make this document a lot longer, but this seems like a good place to stop. Suffice to say that we have support for line items in business rules, form rules, SQL queries, and everywhere throughout the WEBCON BPS platform.
It comes back to two key concepts central to everything we do at WEBCON:
- Make sure you can build the whole application as a tightly integrated set of assets. It’s easier to create, easier to deploy, and easier to document that way. Moreover, it makes sure we can…
- Make sure you can change anything, at any time, with as little disruption as possible. Changing the data causes the form, the reports, and the workflow to adapt automatically. Even the running instances will be changed when you deploy the update.
It’s how, as I stated at the beginning, we can see to it that everybody, and every use case, wins.