Since this is the first work related post for a while, it’s probably a good idea to drop in the usual disclaimer as a reminder: “The postings on this site are my own and don’t necessarily represent IBM’s positions, strategies or opinions.”
Anyway, I recently spotted an MDM enhancement request, Improve Better support for social handle support, and it seemed odd that there wasn’t already something in the data model that could do a better job than using misc values. There are probably several options but I think this is what I’d do…
Add a new “Social Network” contact method category, and associated contact method types, for example: “Twitter”, “LinkedIn”, etc. Here’s what those look like in the Business Admin UI:
Now you can just add social network contact methods in the same way as you would for telephone numbers and email addresses, which means you get all the standard functionality you’re likely to need.
For example, here’s what an example getPerson response looks like with my Twitter and LinkedIn details:
<?xml version="1.0" encoding="UTF-8"?> <TCRMService xmlns="http://www.ibm.com/mdm/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/mdm/schema MDMDomains.xsd"> <ResponseControl> <ResultCode>SUCCESS</ResultCode> <ServiceTime>17</ServiceTime> <DWLControl> <requesterName>mdmadmin</requesterName> <requesterLanguage>100</requesterLanguage> <requesterLocale>en</requesterLocale> <userRole>mdm_admin</userRole> <requesterTimeZone>EST5EDT</requesterTimeZone> <requestID>247353</requestID> </DWLControl> </ResponseControl> <TxResponse> <RequestType>getPerson</RequestType> <TxResult> <ResultCode>SUCCESS</ResultCode> </TxResult> <ResponseObject> <TCRMPersonBObj> <PartyId>531938348064117624</PartyId> <DisplayName>James Taylor</DisplayName> <PartyType>P</PartyType> <CreatedDate>2013-11-03 07:10:40.909</CreatedDate> <PartyLastUpdateDate>2013-11-03 07:10:41.175</PartyLastUpdateDate> <PartyLastUpdateUser>mdmadmin</PartyLastUpdateUser> <PartyLastUpdateTxId>153838348064091041</PartyLastUpdateTxId> <PersonPartyId>531938348064117624</PersonPartyId> <PartyActiveIndicator>Y</PartyActiveIndicator> <PersonLastUpdateDate>2013-11-03 07:10:41.767</PersonLastUpdateDate> <PersonLastUpdateUser>mdmadmin</PersonLastUpdateUser> <PersonLastUpdateTxId>153838348064091041</PersonLastUpdateTxId> <TCRMPartyAddressBObj> <PartyAddressIdPK>537638348082796792</PartyAddressIdPK> <PartyId>531938348064117624</PartyId> <AddressId>539338348085784022</AddressId> <AddressUsageType>3</AddressUsageType> <AddressUsageValue>Business</AddressUsageValue> <StartDate>2013-11-03 07:13:47.966</StartDate> <PreferredAddressIndicator>Y</PreferredAddressIndicator> <AddressGroupLastUpdateDate>2013-11-03 07:14:17.854</AddressGroupLastUpdateDate> <AddressGroupLastUpdateUser>mdmadmin</AddressGroupLastUpdateUser> <AddressGroupLastUpdateTxId>537038348085749779</AddressGroupLastUpdateTxId> <LocationGroupLastUpdateDate>2013-11-03 07:14:17.839</LocationGroupLastUpdateDate> <LocationGroupLastUpdateUser>mdmadmin</LocationGroupLastUpdateUser> <LocationGroupLastUpdateTxId>537038348085749779</LocationGroupLastUpdateTxId> <TCRMAddressBObj> <AddressIdPK>539338348085784022</AddressIdPK> <ResidenceType>11</ResidenceType> <ResidenceValue>Office</ResidenceValue> <AddressLineOne>IBM UK Ltd</AddressLineOne> <AddressLineTwo>Hursley Park</AddressLineTwo> <City>Winchester</City> <ZipPostalCode>SO21 2JN</ZipPostalCode> <CountryType>183</CountryType> <CountryValue>Great Britain and N Ireland</CountryValue> <AddressLastUpdateDate>2013-11-03 07:14:17.839</AddressLastUpdateDate> <AddressLastUpdateUser>mdmadmin</AddressLastUpdateUser> <AddressLastUpdateTxId>537038348085749779</AddressLastUpdateTxId> </TCRMAddressBObj> </TCRMPartyAddressBObj> <TCRMPartyContactMethodBObj> <PartyContactMethodIdPK>533238348104476375</PartyContactMethodIdPK> <PartyId>531938348064117624</PartyId> <ContactMethodId>534438348104476393</ContactMethodId> <ContactMethodUsageType>10</ContactMethodUsageType> <ContactMethodUsageValue>LinkedIn</ContactMethodUsageValue> <SolicitationIndicator>N</SolicitationIndicator> <StartDate>2013-11-03 07:17:24.762</StartDate> <ContactMethodGroupLastUpdateDate>2013-11-03 07:17:24.778</ContactMethodGroupLastUpdateDate> <ContactMethodGroupLastUpdateUser>mdmadmin</ContactMethodGroupLastUpdateUser> <ContactMethodGroupLastUpdateTxId>535838348104476350</ContactMethodGroupLastUpdateTxId> <LocationGroupLastUpdateDate>2013-11-03 07:17:24.762</LocationGroupLastUpdateDate> <LocationGroupLastUpdateUser>mdmadmin</LocationGroupLastUpdateUser> <LocationGroupLastUpdateTxId>535838348104476350</LocationGroupLastUpdateTxId> <TCRMContactMethodBObj> <ContactMethodIdPK>534438348104476393</ContactMethodIdPK> <ReferenceNumber>http://www.linkedin.com/in/taylorjm</ReferenceNumber> <ContactMethodType>3</ContactMethodType> <ContactMethodValue>Social Network</ContactMethodValue> <ContactMethodLastUpdateDate>2013-11-03 07:17:24.762</ContactMethodLastUpdateDate> <ContactMethodLastUpdateUser>mdmadmin</ContactMethodLastUpdateUser> <ContactMethodLastUpdateTxId>535838348104476350</ContactMethodLastUpdateTxId> </TCRMContactMethodBObj> </TCRMPartyContactMethodBObj> <TCRMPartyContactMethodBObj> <PartyContactMethodIdPK>539138348072352465</PartyContactMethodIdPK> <PartyId>531938348064117624</PartyId> <ContactMethodId>532838348072329035</ContactMethodId> <ContactMethodUsageType>9</ContactMethodUsageType> <ContactMethodUsageValue>Twitter</ContactMethodUsageValue> <PreferredContactMethodIndicator>Y</PreferredContactMethodIndicator> <StartDate>2013-11-03 07:12:03.523</StartDate> <ContactMethodGroupLastUpdateDate>2013-11-03 07:12:03.57</ContactMethodGroupLastUpdateDate> <ContactMethodGroupLastUpdateUser>mdmadmin</ContactMethodGroupLastUpdateUser> <ContactMethodGroupLastUpdateTxId>536538348072325964</ContactMethodGroupLastUpdateTxId> <LocationGroupLastUpdateDate>2013-11-03 07:12:03.523</LocationGroupLastUpdateDate> <LocationGroupLastUpdateUser>mdmadmin</LocationGroupLastUpdateUser> <LocationGroupLastUpdateTxId>536538348072325964</LocationGroupLastUpdateTxId> <TCRMContactMethodBObj> <ContactMethodIdPK>532838348072329035</ContactMethodIdPK> <ReferenceNumber>@jtonline</ReferenceNumber> <ContactMethodType>3</ContactMethodType> <ContactMethodValue>Social Network</ContactMethodValue> <ContactMethodLastUpdateDate>2013-11-03 07:12:03.289</ContactMethodLastUpdateDate> <ContactMethodLastUpdateUser>mdmadmin</ContactMethodLastUpdateUser> <ContactMethodLastUpdateTxId>536538348072325964</ContactMethodLastUpdateTxId> </TCRMContactMethodBObj> </TCRMPartyContactMethodBObj> <TCRMPersonNameBObj> <PersonNameIdPK>533538348064198718</PersonNameIdPK> <NameUsageType>7</NameUsageType> <NameUsageValue>Preferred</NameUsageValue> <PrefixType>14</PrefixType> <PrefixValue>Mr.</PrefixValue> <GivenNameOne>James</GivenNameOne> <StdGivenNameOne>JAMES</StdGivenNameOne> <LastName>Taylor</LastName> <StdLastName>TAYLOR</StdLastName> <PersonPartyId>531938348064117624</PersonPartyId> <StartDate>2013-11-03 07:10:41.986</StartDate> <PersonNameLastUpdateDate>2013-11-03 07:10:41.986</PersonNameLastUpdateDate> <PersonNameLastUpdateUser>mdmadmin</PersonNameLastUpdateUser> <PersonNameLastUpdateTxId>153838348064091041</PersonNameLastUpdateTxId> <LastUpdatedBy>mdmadmin</LastUpdatedBy> <LastUpdatedDate>2013-11-03 07:10:41.986</LastUpdatedDate> </TCRMPersonNameBObj> <DWLStatus> <Status>0</Status> </DWLStatus> </TCRMPersonBObj> </ResponseObject> </TxResponse> </TCRMService>
Does that sounds sensible? Are there any enhancements? For example, I wonder about standardization: I put an ‘@’ on my Twitter ID, but I can easily imagine several variations ending up in there. I’ll leave that as an exercise for another day!
Check out the MDM Developers community for much more useful MDM related posts, forums and other resources.