How It WorksTechnical business objects typically form a hierarchy of objects on several levels. Keeping track of all changes made to all individual components belonging to a technical object would generate an overwhelming amount of data bearing little meaningful information. That is why the crucial question here is at which level changes should be logged. Example: A workflow consists of a number of workflow nodes, the actual function of the workflow is determined by the function and interaction of its nodes. As the nodes cannot "live on their own" outside the workflow, logging all changes made to all of the nodes would not provide much meaningful information whic means we have to log the changes at the workflow level. (Note that by "workflow" in this example we actually mean "workflow definition", i.e. we should have used the terms metaworkflow, metanode, metatransition etc.) The "meaningful level of information" problem is solved by propagating information about element changes upward to the "root" object (represented by workflow and view in the examples above) and logging the consequential changes in these root objects.
What is meant by "root" objects? There is no explicit definition for the term "root" object. We use it here to signify that an object, which is usually (but not always) composed of other "component" objects, can - unlike its components - exist on its own. It means that it makes sense to, for example, import/export such object. Consequently, the list of object types in the Export Metamodel window could be considered a list of "root" objects. | |||||