Configuring contacts from ContactManager

Synchronizing ClaimCenter contact fields

When ClaimCenter synchronizes contact data with ContactManager, it updates the fields in the ClaimCenter contact with the centralized ContactManager data.

The system overwrites the fields defined in the ClaimCenter ContactMapper class. This class also defines the fields that ClaimCenter sends to ContactManager. Use this class to control which fields are synchronized between ClaimCenter and ContactManager. See ContactMapper class.

In addition, you can edit the gw.plugin.contact.ab1000.RelationshipSyncConfig class in Guidewire Studio™ for ClaimCenter to specify the contact relationships to include or exclude in a synchronization.

Including and excluding contact relationships

Contact relationships retrieved from ContactManager such as primary contact, employer, guardian, and so on can be configured with the ClaimCenter RelationshipSyncConfig class. Contact relationships configured in this class apply to three processes:
  1. Initial contact retrieval from ContactManager
  2. Automatic synchronization of contacts
  3. Manual contact synchronization

To include or exclude a contact relationship, use the includeRelationship and excludeRelationship methods of the ClaimCenter RelationshipSyncConfig class.

Important: Typically, you include only relationships that appear on the Related Contacts card of the ClaimCenter Parties Involved screen. In particular, avoid zero-or-more relationship types. These types can grow quickly and can result in performance issues as the system pulls down many contacts from ContactManager.

You open the RelationshipSyncConfig class for editing in Guidewire Studio™ for ClaimCenter.

The RelationshipSyncConfig class has two methods that support including or excluding relationships when synchronizing a Contact subtype:

includeRelationship
Specifies relationships to include in synchronizing the specified Contact or Contact subtype.
excludeRelationship
Specifies relationships to exclude in synchronizing the specified Contact or Contact subtype.

These two methods have the same parameters:

contactType
The Contact subtype for which the synchronizable relationship will be added or excluded.
contactBidiRel
The relationship ContactBidiRel, a valid typecode in the ContactRel typelist. The typecode must be specified as an enumerated typelist value, such as TC_EMPLOYER or TC_PRIMARYCONTACT.
appliesToSubtype
If true, the relationship exclusion or inclusion applies to all subtypes of contactType unless overridden by an includeRelationship or excludeRelationship call. If false, the method applies only to the Contact subtype specified in contactType.
Note: You use a coding pattern called method chaining to add the method calls to the init method of the RelationshipSyncConfig class. With method chaining, the object returned by one method becomes the object from which you call the next method in the chain.

The init method can have multiple includeRelationship or excludeRelationship method calls chained to it. Add the methods before the final create method in the chain.

For example, you might include a relationship for one contact type but exclude it for its child subtypes. The following method call, which is included in the RelationshipSyncConfig class in the base configuration, includes the guardian relationship for a Person entity, but not for its subtypes:

.includeRelationship(Person, TC_GUARDIAN, false )

The default behavior for an entity’s relationships is that the system ignores them. Only in certain cases do you need to use excludeRelationship, such as overriding a setting of includeRelationship in a parent type. For example, the default Contact definition includes the relationship primarycontact for all Contact entities and subentities. However, the Person definition overrides the Contact definition and excludes the primarycontact relationship only for Person entities, as shown in the following code snippet:

return new RelationshipSyncConfigBuilder<RelationshipSyncConfig>(
    new RelationshipSyncConfig())
  .includeRelationship(Contact, TC_PRIMARYCONTACT, true)
  .excludeRelationship(Person, TC_PRIMARYCONTACT, false)
  <!-- ... -->
  .create()

See also