!--a11y-->
Event Data Container 
An event data container holds information passed by an application when it raises an event or passed to an application after handling the event.
The event alone typically does not contain enough context information from either the application or the individual object. Context information is shared between the application and the individual object using an event data container. In other words, an event data container is used to pass additional information when an event is raised (application à IOITF) and when it is handled (IOITF à application). Event data containers are categorized for use in an application or individual object context and they are associated to the relevant event types.
Application Context (application à IOITF)
The application context holds information passed by an application (to IOITF) when it raises an event (equals, importing parameters).
Individual Object Context (application ß IOITF)
The individual object context holds information passed to an application by IOITF after event handling (equals exporting parameters).
Both application context and individual object context event data containers must be assigned to an event type. Different event types will likely have different application and individual object context event data containers assigned to them.
The event data container is implemented as an ABAP class. The IOITF provides a basic event data container class -- CL_COM_IOITF_EDC. An instance of this class acts as an event data container and its attributes act as fields that hold additional information. An application can either use this basic event data container provided by IOITF or extend it (see section Defining an Event Data Container below).
Like event types, an event data container must be registered with the IOITF before it can be assigned to an event type and used as an application context or individual object context. The basic event data container CL_COM_IOITF_EDC is already registered with IOITF.
The basic event data container CL_COM_IOITF_EDC provided by the IOITF contains the following attributes:
CL_COM_IOITF_EDC Attributes
Fields in Event Data Container |
Description |
EVENT_NAME |
Event Name |
OBJECT_FAMILY |
Object Family |
IOBJ_GUID |
Individual Object GUID |
LOG_HANDLE |
Application Log: Log handle |
APPLICATION_ID |
Application ID |
PROCESS_ID |
Process ID |
TRIGGERING_OBJECT_GUID |
Triggering Object GUID (<-- Master Object GUID) |
TRIGGERING_APPL_OBJECT_TYPE |
Slave Object Type |
EHIO_STRUCTURE |
Data required to write Event History for Individual Object |
EVENT_NAME |
Event Name |
If CL_COM_IOITF_EDC contains sufficient information to manage the event then the it can be assigned as delivered to your event type as an application or individual object context.
If more information is required, create a new event data container as a sub-class of class CL_COM_IOITF_EDC and register the class as an IOITF event data container. Create a an ABAP Class, supply a name, and, in the Properties tab, specify CL_COM_IOITF_EDC as the Superclass. Save the entry. Extend it by specifying additionally required attributes (container fields) on the Attributes tab. Save again and activate your entry. Register your event data container with IOITF as follows:
From the SAP Implementation Guide (IMG), choose Customer Relationship Management à Master Data ® Products à Individual Objects à Individual Object Integration Framework (IOITF) à Event Type à Event Data Container à Register Event Data Container.
To assign an event data container to an already registered event so it can be used for an application context or individual object context, proceed as follows:
From the IMG choose Customer Relationship Management à Master Data ® Products à Individual Objects à Individual Object Integration Framework (IOITF) à Event Type à Define/Register Event Types
Two event data containers were created for the High Tech Software Entitlement Demo applications, CL_ISHT_REFMOD_EDC_A and CL_ISHT_REFMOD_EDC_O. These event data containers hold the application context and the individual object context respectively. Both of them extend the basic event data container, CL_COM_IOITF_EDC, provided by the IOITF.
CL_ISHT_REFMOD_EDC_A (ß used to hold application context)
Fields in Event Data Container |
Description |
EVENT_NAME |
Event Name |
OBJECT_FAMILY |
Object Family |
IOBJ_GUID |
Individual Object GUID |
LOG_HANDLE |
Application Log: Log handle |
APPLICATION_ID |
Application ID |
PROCESS_ID |
Process ID |
TRIGGERING_OBJECT_GUID |
Triggering Object GUID (<-- Master Object GUID) |
TRIGGERING_APPL_OBJECT_TYPE |
Slave Object Type |
EHIO_STRUCTURE |
Data required to write Event History for Individual Object |
ISHT_LEVEL |
Support Level |
ISHT_EXP_DATE_MAIN |
Maintenance Expiration Date |
ISHT_BIN_VER |
Binary Version |
EDL_EVENT_NAME |
External Event Name |
NEW_ENTITLEMENT |
New Entitlement (Upgrade) |
EVENT_NAME |
Event Name |
OBJECT_FAMILY |
Object Family |
CL_ISHT_REFMOD_EDC_O (ß used to hold individual object context)
Fields in Event Data Container |
Description |
EVENT_NAME |
Event Name |
OBJECT_FAMILY |
Object Family |
IOBJ_GUID |
Individual Object GUID |
LOG_HANDLE |
Application Log: Log handle |
APPLICATION_ID |
Application ID |
PROCESS_ID |
Process ID |
TRIGGERING_OBJECT_GUID |
Triggering Object GUID (<-- Master Object GUID) |
TRIGGERING_APPL_OBJECT_TYPE |
Slave Object Type |
EHIO_STRUCTURE |
Data required to write Event History for Individual Object |
ISHT_AUTH_CODE |
Authorization Code |
NEW_ENTITLEMENT |
New Entitlement (Upgrade) |

When registering the event data containers listed above with IOITF, use the class name.
IOITF: Event Data Containers:
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
The event data containers registered with IOITF are then assigned to relevant events.
IOITF: Events
Event Name |
Application Context |
Individual Object Context |
EHIO Relevant |
ISHT_DOWNLOAD |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|
ISHT_EXTEND_MAINTENANCE |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|
ISHT_MAINTENANCE_EXPIRED |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|
ISHT_MAINTENANCE_PURCHASED |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|
ISHT_PRODUCT_REGISTERED |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|
ISHT_PRODUCT_RETURNED |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|
ISHT_UPGRADE |
CL_ISHT_REFMOD_EDC_A |
CL_ISHT_REFMOD_EDC_O |
|

You can use your application context container to pull information from the application if your application supports it.