An event object is an occurrence of the data that is passed in an event.
Some events only pass a single instance of a single object. For example, a Withdrawal event might contain a Withdrawal event object that contains fields for the account number, withdrawal date and withdrawal amount. When the event occurs, only a single instance of Withdrawal is passed.
Other events pass multiple data occurrences. For example, an Order event might include three items that are part of the order: a bicycle, a bicycle helmet and a water bottle. Each order item is represented by a single event object definition in the Order event and the event object contains fields for such data as order number, quantity and price.
In the following example, an event called Order is defined with an Order Header event object and an Order Item event object. When this particular event is passed to the event runtime, it contains the Order Header and three instances of Order Item.
<connector-bundle name="Order" type="Event">
<connector-object name="Order Header">
<field type="String" name="Customer Given Name">Susan</field>
<field type="String" name="Customer Family Name">Hudson</field>
<field type="String" name="Order Number">GHOI7395-2</field>
</connector-object>
<connector-object name="Order Item">
<field type="String" name="Item Number">AYH1938</field>
<field type="Integer" name="Quantity">1</field>
<field type="Real" name="Price">499.99</field>
</connector-object>
<connector-object name="Order Item">
<field type="String" name="Item Number">JIS4723</field>
<field type="Integer" name="Quantity">1</field>
<field type="Real" name="Price">39.99</field>
</connector-object>
<connector-object name="Order Item">
<field type="String" name="Item Number">TAM4728</field>
<field type="Integer" name="Quantity">1</field>
<field type="Real" name="Price">19.99</field>
</connector-object>
</connector-bundle>
An event object can be referenced in multiple events. Any change made to the event object in one event is reflected in the other iterations of the event object.
When designing the application, structure event objects and fields in a way that makes it easy for connectors (the API that passes data from the touchpoint system to a JMS topic or queue for retrieval by the event runtime) to send data. For example, design field names and data types so that they require little or no conversion. You can include fields that aren't currently mapped to business objects (through field constructors) for future use. By doing this, future changes to the application can be handled by using Event Designer and do not require changes to the connector. For example, you can add a new event object field and map it to a business object when you want to start using a previously undefined field that is sent by the connector.