Common Entity Types

Within iMIS and in the terminology of iMIS SOA, object types are known as entity types. Many entity types are actually composed of several different component entity types. For instance, a Party entity is composed of collections of FullAddress, Salutation, Email, and Phone entities.

Within iMIS and in the terminology of iMIS SOA, object types are known as entity types. Many entity types are actually composed of several different component entity types. For instance, a Party entity is composed of collections of FullAddress, Salutation, Email, and Phone entities.

Not all entity types are directly accessible by way of the web services API, but rather only as components of other primary entities (also called aggregate root entities). For example, in the case of a Party (primary entity) you can access the Party entities through the web service Find, Update, Delete and Add operations, but you can only address the FullAddress, Salutation, Email and Phone components as part of a Party entity. When you request a Find of a Party entity, you receive the entire Party object graph including the FullAddress, Salutation, Email, and Phone collections. Only primary entity types are directly addressable by way of web services.

Many of the available entity types, both the primary entity types and other entity types, are in the set of well-known entity types that are represented, documented, and transmitted through data contracts.

These data contracts, which specify the fields within each entity, can frequently provide IntelliSense to aid programmers in addressing the data. Generally, the actual container (or class) that defines each entity's data contract has the suffix Data. For instance, the contract (programming class) for the Party entity is PartyData.

In other cases, and in certain contexts, the entities are not well known, might have been a user-defined or an extensible entity, and in some cases the context for returned results is so fluid that entities are not available in their own data contract. These are represented in the GenericEntityData data contract.

The GenericEntityData data contract represents an entity and its fields as a collection of name/value pairs. For instance, if you request a Find of a user-defined table (such as MemberDemographicInfo), the returned result is a collection of GenericEntityData. The fields and their contents are found in the Properties property of the Generic Data entity. Other examples of entities that always return GenericEntityData include the IQA entity, BOD entities, defined tables and views.