Business objects are domain entities describing the abstractions necessary to describe the business logic an application should implement. Commercial applications
manipulate graphs of connected business objects. To simplify the definition of the model a taxonomy can be introduced.
- Business Object: An abstraction representing an entity in the domain model. A business object is modeled through classes. A business object has an internal identifier, an optional external identifier and a version.
- Attribute: An attribute is a value of a business object. An attribute has a type, a range of values and an optional initial value. The type is either a simple type or a code type.
- Relationship: A business object can connect to other business objects. Such dependencies are modeled as relationships. The only difference between an attribute and a relationship is that the type of a relationship is always a business object type.
- Code: An enumeration of values defining a domain relevant type and its values. For example the set of currencies defined in the related ISO standard is a reference code.
- Hierarchical Code: A reference code with a hierarchical structure. For example the department structure of a worldwide company can be represented through a hierarchical reference code.
Code types represent dynamic enumeration values. A set of related code values defines a code type. In an enterprise landscape new code values are added but normally code values are never deleted. A deletion implies that all data sets in the enterprise are migrated to the new data model and all references to a deleted value must be erased. To avoid such costly migrations stick to the paradigm that a code value is never deleted. You can always disable a code value meaning the value is no more available for new entities.
Properties reference simple types. A simple type is either a primitive type or a Java class but not an entity. Properties have
- a getter to retrieve the value of the property.
- a setter to set a new value to the property. A change event is sent each time the value is updated to all listeners.
- a local storage in the entity to store the current value.