Création d'un service de rapprochement universel

Un service de rapprochement universel est un service capable d'utiliser n'importe laquelle de vos règles de rapprochement pour effectuer un rapprochement et d'accepter tout champ d'entrée. Le service prend un nom de règle de rapprochement comme option d'entrée, vous permettant ainsi d'indiquer la règle de rapprochement que vous souhaitez utiliser dans l'appel de l'API ou la requête de service Web. Le service ne dispose pas de schéma d'entrée prédéfini, si bien que vous pouvez inclure tous les champs appropriés au type d'enregistrements que vous souhaitez rapprocher. En créant un service de rapprochement universel, vous pouvez éviter d'avoir des services distincts pour chaque règle de rapprochement, ce qui vous permet d'ajouter de nouvelles règles de rapprochement sans avoir à ajouter de service.

Cette procédure explique comment créer un service de rapprochement universel et inclut un exemple de requête de service Web envoyée au service de rapprochement universel.

  1. Dans Enterprise Designer, créez un nouveau flux de données de service.
  2. Glissez un stage Input, un stage Transactional Match et un stage Output jusqu'au canevas et reliez-les de sorte à obtenir un flux de données comme suit :
  3. Double-cliquez sur le stage Transactional Match.
  4. Dans le champ Charger une règle de rapprochement, sélectionnez une règle de rapprochement, quelle qu'elle soit. Par exemple, vous pouvez sélectionner la règle de rapprochement par défaut Foyer.

    Même si vous indiquez la règle de rapprochement dans la requête de service, pour que le flux de données soit valide, vous devez configurer le stage Transactional Match avec une règle de rapprochement par défaut. Si vous ne sélectionnez pas de règle de rapprochement, le flux de données n'est pas validé et vous ne pouvez plus l'exposer.

  5. Cliquez sur OK.
  6. Double-cliquez sur le stage Output.
  7. Exposez les champs MatchRecordType et MatchScore.
  8. Cliquez sur OK.
    Remarque : Il n'est pas nécessaire d'exposer de champs dans le stage Input, car les champs d'entrée sont indiqués comme des champs définis par l'utilisateur dans la requête de service.
  9. Cliquez sur Édition > Options de flux de données.
  10. Cliquez sur Ajouter.
  11. Développez Transactional Match et cochez la case en regard de Règle de rapprochement.

    Cette opération expose l'option de règle de rapprochement comme option d'exécution, permettant ainsi d'indiquer la règle de rapprochement dans la requête de service.

  12. Cliquez OK, puis de nouveau sur OK pour fermer la fenêtre Options de flux de données.
  13. Enregistrez et exposez le flux de données.

Vous disposez à présent d'un service de rapprochement universel que vous pouvez utiliser pour effectuer un rapprochement à l'aide de n'importe laquelle des règles de rapprochement définies dans l'outil Gestion des règles de correspondance d'Enterprise Designer. Si vous appelez le service, indiquez la règle de rapprochement dans l'option MatchRule et les champs d'entrée comme champs définis par l'utilisateur.

Exemple : Appel du service de rapprochement universel

Vous avez créé une règle de rapprochement nommée AddressAndBirthday dans l'outil Gestion des règles de correspondance. Cette règle de rapprochement rapproche les enregistrements en fonction des champs Address et Birthday. Vous souhaitez utiliser le service de rapprochement universel pour effectuer un rapprochement à l'aide de cette règle via une requête de service Web SOAP.

Pour ce faire, vous devez disposer d'une requête SOAP qui indique AddressAndBirthday dans l'élément MatchRule et les champs d'enregistrement dans l'élément 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>

Cette requête renvoie la réponse suivante :

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