Erstellen eines allgemeinen Vergleichsdienstes

Bei einem allgemeinen Vergleichsdienst handelt es sich um einen Dienst, bei dem Ihre Vergleichsregeln zum Ausführen eines Vergleichs verwendet und Eingabefelder akzeptiert werden können. Der Dienst verwendet den Namen einer Vergleichsregel als Eingabeoption. Dadurch können Sie die Vergleichsregel angeben, die Sie im API-Aufruf oder in der Webservice-Anforderung verwenden möchten. Es gibt kein vordefiniertes Eingabeschema für den Dienst. Daher können Sie für die Typen von Datensätzen, die Sie miteinander vergleichen möchten, alle geeigneten Felder einschließen. Durch Erstellen eines allgemeinen Vergleichsdienstes können Sie vermeiden, dass es für jede Vergleichsregel einen separaten Dienst gibt. Dadurch können Sie neue Vergleichsregeln hinzufügen, ohne einen Dienst hinzufügen zu müssen.

In dieser Prozedur wird beschrieben, wie ein allgemeiner Vergleichsdienst erstellt wird. Sie beinhaltet zudem ein Beispiel für eine Webservice-Anforderung an den allgemeinen Vergleichsdienst.

  1. Erstellen Sie einen neuen Dienstdatenfluss im Enterprise Designer.
  2. Ziehen Sie einen Input-Schritt, einen „Transactional Match“-Schritt und einen Output-Schritt auf die Arbeitsfläche und verbinden Sie diese, sodass Sie über einen Datenfluss verfügen, der wie folgt aussieht:
  3. Doppelklicken Sie auf den „Transactional Match“-Schritt.
  4. Wählen Sie im Feld Vergleichsregel laden eine Vergleichsregel aus. Sie können beispielsweise die Standardvergleichsregel Household auswählen.

    Auch wenn Sie die Vergleichsregel in der Dienstanforderung angeben, müssen Sie den „Transactional Match“-Schritt mit einer Standardvergleichsregel konfigurieren, damit der Datenfluss gültig ist. Wenn Sie keine Vergleichsregel auswählen, schlägt die Überprüfung des Datenflusses fehl, der folglich nicht verfügbar gemacht werden kann.

  5. Klicken Sie auf OK.
  6. Doppelklicken Sie auf den Output-Schritt.
  7. Wählen Sie aus, dass die Felder MatchRecordType und MatchScore verfügbar gemacht werden sollen.
  8. Klicken Sie auf OK.
    Anmerkung: Im Input-Schritt müssen keine Felder verfügbar gemacht werden, da Eingabefelder in der Dienstanforderung als benutzerdefinierte Felder angegeben werden.
  9. Klicken Sie auf Bearbeiten > Datenflussoptionen.
  10. Klicken Sie auf Hinzufügen.
  11. Erweitern Sie Transactional Match und aktivieren Sie das Kästchen neben Vergleichsregel.

    Dadurch wird die Vergleichsregeloption als Laufzeitoption verfügbar gemacht, wodurch die Vergleichsregel in der Dienstanforderung angegeben werden kann.

  12. Klicken Sie auf OK und klicken Sie anschließend erneut auf OK, um das Fenster „Datenflussoptionen“ zu schließen.
  13. Speichern Sie den Datenfluss und machen Sie ihn verfügbar.

Sie verfügen jetzt über einen allgemeinen Vergleichsdienst, mit dem Sie mit beliebigen Vergleichsregeln, die im Vergleichsregelverwaltungstool im Enterprise Designer definiert wurden, einen Vergleich ausführen können. Geben Sie beim Aufrufen des Dienstes bei der Option MatchRule die Vergleichsregel an und geben Sie die Eingabefelder als benutzerdefinierte Felder an.

Beispiel: Aufrufen des allgemeinen Vergleichsdienstes

Sie haben im Vergleichsregelverwaltungstool eine Vergleichsregel mit dem Namen AddressAndBirthday erstellt. Diese Vergleichsregel führt anhand der Felder „Adresse“ und „Geburtstag“ einen Vergleich durch. Sie möchten unter Verwendung des allgemeinen Vergleichsdienstes mit dieser Regel über eine SOAP-Webservice-Anforderung einen Vergleich durchführen.

Hierfür würden Sie über eine SOAP-Anforderung verfügen, in der AddressAndBirthday im Element MatchRule und die Felder des Datensatzes im Element user_fields angegeben sind.

<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>

Aus dieser Anforderung ergäbe sich die folgende Antwort:

<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>