Evolving your report model over time

Many factors combine to make report models highly likely to change and evolve over time. Sometimes the underlying schema changes. Sometimes new stuff is added. Sometimes you just want to improve how the schema is presented to users. Report models are designed to accommodate just these kinds of changes.

One of my earlier posts mentions several changes you can make to your models without breaking reports, as well as one that will break reports. Generally speaking, though, I believe you can change anything except the following in a report model, and existing reports will still run:

Entities: ID and Inheritance properties

Attributes:.ID, DataType, and IsAggregate properties, and entity membership

Roles: ID and Cardinality properties, entity membership, related role and its cardinality and entity membership.

Note that if you change attribute expressions, entity/attribute/role bindings, or the definitions of tables and columns in the DSV (e.g. by modifying a Named Query), you may get different results, but the reports will still run.

Obviously, you can organize and re-organize things in and out of folders as often as you want, and all your existing reports will still load and run just fine.

Also, if you want to "deprecate" a field, you can use the Hidden property to exclude it from the design-time experience in Report Builder. This will not affect existing reports.