IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Defining and transforming data > Defining data objects
Business objects
A business object (BO) is a container for application data, such as a customer or an invoice. Data is exchanged between components by business objects. The underlying structure of a business object is an XML schema definition (XSD).
A business object contains fields that have a name, a type (scalar type or another business object), a default value (for scalar types) and cardinality. Business objects can extend (define a superset of fields) other business objects through parent/child relationships; however, a business object can only inherit from a single parent. These objects can also be used in conjunction with each other to perform a task.
Business object fields
Essentially, business object fields are the mechanisms through which you define what information a business object can hold, and how that information should be accessible. Business object fields are used to define the content of a business object. Each field has a name, type, cardinality, and other optional properties. After you create a business object, you can use the business object editor to create or change its fields. A business object is simply a container for the data specified in its fields. An empty business object without fields is not useful as it does not have the means to actually hold any data.
If you were to create a business object and add a field called " customerName" with type " string", you can now actually do something with the business object. With the addition of each new field, the usefulness of the business object increases.
For example, if you were to add, " customerID" of type " int", customerAddress of type " string", you now have a business object with useful information in it to use however you would like. You can pass it to a web service for example, to run a credit check on a customer.
You may even choose to have your business object contain " salesContact" that has a type " Employee" - another business object. A business object can contain other business objects as data too, meaning that if needed, business objects can be very complex containers of data.
When you create a business object, you can decide whether or not a field is going to be an array. You may later notice that the field is typed to java.lang.List for that same business object. The type has not actually changed since the business object was created, and in simple terms fields with the array box selected are "lists". When you select the field to be an array, you are indicating that you may have more than one of what you are defining.
For example, consider a field in CustomerBO called " previousOrders" of type " OrderBO". You would select the array box to indicate that a customer may have any number of previous orders, so this should be prepared to hold a list of items, not just a single item. By contrast, something like " name" would not be defined as an array since a Customer should not need more than one. Setting an array is simply a way in which to distinguish between business object fields that store one value, and fields that store X values.