ContactManager link IDs and comparison to other IDs
ContactManager entities that implement the
ABLinkable delegate, such
as ABContactTag, ABContactAddress, and ABContact and its subentities,
have a LinkID property.
This property uniquely identifies an ABLinkable
entity instance for integration use, such as with Guidewire core applications.
It is similar to the PublicID
property in Guidewire core applications, which those applications can
use as a primary key value for entities in external systems. However,
because ContactManager is the system of record for contacts across the
core applications, ContactManager must ensure that a contact or address
be uniquely identifiable across all Guidewire applications. Therefore,
unlike a PublicID, a LinkID cannot be changed.
If the core application does not specify
an External_UniqueID when
it calls ContactManager to create a new contact, ContactManager creates
the LinkID for a new entity.
If the core application does specify the unique ID when it sends a create
request, ContactManager populates the LinkID
with the External_UniqueID
specified in the XmlBackedInstance
data.
ContactManager passes the LinkID back to the core applications.
A core application can use the return value either to identify the local
version of the contact already created or to populate the equivalent
AddressBookUID property.
DuplicateKeyException
for the call to createContact.
In this case, the contact is not created in ContactManager. It is up
to the calling application to recover from this state, either by providing
a new unique ID or allowing ContactManager to create a unique ID.The AddressBookUID
property is the core application version of the ContactManager LinkID property. AddressBookUID properties and
LinkID properties are
mapped between core applications and ContactManager in the ContactMapper classes.
The following table compares the various types of IDs related to contacts:
Type of ID |
Description |
|---|---|
|
The name for the internal ID that ContactManager uses for each ABContact entity and subentity |
|
The standard Guidewire public record ID that can be changed as needed. |
|
In Guidewire core applications, this property of the Contact entity is the internal ID for a contact entity that is stored in ContactManager. If you are using a Guidewire core application and ContactManager together, an address book UID and a link ID have the same value. If you integrate with a different external contact management system, the address book UID has the same value as the internal ID of an object in that external application. |
See also
- ContactMapper class
- For specifics on how
External_UniqueIDandLinkIDare handled, see the createContact method in the table at ABContactAPI methods. - For ContactManager examples
of mapping between
AddressBookUIDandLinkID, see Mapping fields of a ContactManager contact. - For examples of mapping between
AddressBookUIDandLinkID, see Mapping fields of a core application contact. - For general information
on
PublicID, see Public IDs and integration code.
