ユニバーサル マッチ サービスの作成
ユニバーサル マッチ サービスは、任意のマッチ ルールを使用してマッチングを実行し、任意の入力フィールドを受け付けることができるサービスです。このサービスは、マッチ ルール名を入力オプションとして受け取るので、使用するマッチ ルールを API 呼び出しまたは Web サービス要求で指定できます。入力スキーマは事前に定義されていないので、マッチングしたいレコードのタイプにふさわしいフィールドを任意に使用できます。ユニバーサル マッチング サービスを作成すると、マッチ ルールごとにサービスを用意する手間が省け、また、新しいマッチ ルールを追加する場合もサービスを追加する必要がありません。
以下に、ユニバーサル マッチング サービスを作成する手順と、Web サービス要求をユニバーサル マッチング サービスに送る方法の例を示します。
これで、ユニバーサル マッチング サービスは完成です。Enterprise Designer の [マッチ ルール管理] で定義したマッチ ルールを使って、マッチングの実行に使用できます。サービスを呼び出すときに、MatchRule オプションでマッチ ルールを指定し、入力フィールドをユーザ定義フィールドとして指定します。
例: ユニバーサル マッチング サービスの呼び出し
[マッチ ルール管理] で、マッチ ルールを AddressAndBirthday という名前で作成しました。このマッチ ルールは、Address フィールドと Birthday フィールドがあるレコードにマッチングします。ユニバーサル マッチング サービスを使って、SOAP Web サービス要求でこのルールに従ってマッチングを実行することを考えています。
これを行うには、SOAP 要求の MatchRule 要素に AddressAndBirthday を指定し、user_fields 要素にレコードのフィールドを指定します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:univ="http://www.pb.com/spectrum/services/UniversalMatchingService">
<soapenv:Header/>
<soapenv:Body>
<univ:UniversalMatchingServiceRequest>
<univ:options>
<univ:MatchRule>AddressAndBirthday</univ:MatchRule>
</univ:options>
<univ:Input>
<univ:Row>
<univ:user_fields>
<univ:user_field>
<univ:name>Name</univ:name>
<univ:value>Bob Smith</univ:value>
</univ:user_field>
<univ:user_field>
<univ:name>Address</univ:name>
<univ:value>4200 Parliament Pl</univ:value>
</univ:user_field>
<univ:user_field>
<univ:name>Birthday</univ:name>
<univ:value>1973-6-15</univ:value>
</univ:user_field>
</univ:user_fields>
</univ:Row>
<univ:Row>
<univ:user_fields>
<univ:user_field>
<univ:name>Name</univ:name>
<univ:value>Robert M. Smith</univ:value>
</univ:user_field>
<univ:user_field>
<univ:name>Address</univ:name>
<univ:value>4200 Parliament Pl</univ:value>
</univ:user_field>
<univ:user_field>
<univ:name>Birthday</univ:name>
<univ:value>1973-6-15</univ:value>
</univ:user_field>
</univ:user_fields>
</univ:Row>
<univ:Row>
<univ:user_fields>
<univ:user_field>
<univ:name>Name</univ:name>
<univ:value>Bob Smith</univ:value>
</univ:user_field>
<univ:user_field>
<univ:name>Address</univ:name>
<univ:value>424 Washington Blvd</univ:value>
</univ:user_field>
<univ:user_field>
<univ:name>Birthday</univ:name>
<univ:value>1959-2-19</univ:value>
</univ:user_field>
</univ:user_fields>
</univ:Row>
</univ:Input>
</univ:UniversalMatchingServiceRequest>
</soapenv:Body>
</soapenv:Envelope>
この要求を発行すると、以下のような応答が得られます。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:UniversalMatchingServiceResponse xmlns:ns2="http://spectrum.pb.com/"
xmlns:ns3="http://www.pb.com/spectrum/services/UniversalMatchingService">
<ns3:Output>
<ns3:Row>
<ns3:MatchScore/>
<ns3:MatchRecordType>Suspect</ns3:MatchRecordType>
<ns3:user_fields>
<ns3:user_field>
<ns3:name>Name</ns3:name>
<ns3:value>Bob Smith</ns3:value>
</ns3:user_field>
<ns3:user_field>
<ns3:name>Birthday</ns3:name>
<ns3:value>1973-6-15</ns3:value>
</ns3:user_field>
<ns3:user_field>
<ns3:name>Address</ns3:name>
<ns3:value>4200 Parliament Pl</ns3:value>
</ns3:user_field>
</ns3:user_fields>
</ns3:Row>
<ns3:Row>
<ns3:MatchScore>100</ns3:MatchScore>
<ns3:MatchRecordType>Duplicate</ns3:MatchRecordType>
<ns3:user_fields>
<ns3:user_field>
<ns3:name>Name</ns3:name>
<ns3:value>Robert M. Smith</ns3:value>
</ns3:user_field>
<ns3:user_field>
<ns3:name>Birthday</ns3:name>
<ns3:value>1973-6-15</ns3:value>
</ns3:user_field>
<ns3:user_field>
<ns3:name>Address</ns3:name>
<ns3:value>4200 Parliament Pl</ns3:value>
</ns3:user_field>
</ns3:user_fields>
</ns3:Row>
</ns3:Output>
</ns3:UniversalMatchingServiceResponse>
</soap:Body>
</soap:Envelope>