Creación de un servicio de comparación universal

Un servicio de comparación universal es un servicio que puede usar cualquiera de sus reglas de cruce para realizar la comparación y puede admitir cualquier campo de entrada. El servicio toma un nombre de regla de cruce como una opción y le permite especificar la regla de cruce que desee usar en la invocación de API o la solicitud de servicio web. Este servicio no tiene un esquema de entrada predefinido, de modo que puede incluir cualquier campo que sea apropiado para el tipo de registro que desee comparar. Al crear un servicio de comparación universal se evita tener servios separados para cada regla de cruce, lo que le permite agregar nuevas reglas de cruce sin tener que agregar un servicio.

Este procedimiento muestra cómo crear un servicio de comparación universal e incluye un ejemplo de una solicitud de servicio web para un servicio de comparación universal.

  1. Genere un nuevo flujo de datos del servicio en Enterprise Designer.
  2. Arrastre una etapa Input, una etapa Transactional Match y una etapa Output al lienzo y conéctelas de modo que el flujo de datos tenga la siguiente apariencia:
  3. Haga doble clic en la etapa Transactional Match.
  4. En el campo Cargar regla de cruce seleccione cualquier regla de cruce. Por ejemplo, puede seleccionar la regla de cruce predeterminada Hogar.

    Aunque especificará la regla de cruce en la solicitud de servicio, debe configurar la etapa Transactional Match con una regla de cruce predeterminada para validar el flujo de datos. Si no selecciona una regla de cruce, el flujo de datos no se validará y no podrá exponerlo.

  5. Haga clic en Aceptar.
  6. Haga doble clic en la etapa Output.
  7. Elija exponer los campos MatchRecordType yMatchScore.
  8. Haga clic en Aceptar.
    Nota: No se requiere exponer campos en la etapa Input, ya que los campos de entrada se especificarán como campos definidos por el usuario en la solicitud de servicio.
  9. Haga clic en Editar > Opciones del flujo de datos.
  10. Haga clic en Agregar.
  11. Expanda Transactional Match y marque la casilla junto a Regla de cruce.

    Esto expone la opción de regla de cruce como una opción de tiempo de ejecución y, así, permite especificar la regla de cruce en la solicitud de servicio.

  12. Haga clic en Aceptar luego haga clic en Aceptar nuevamente para cerrar la ventana Opciones del flujo de datos.
  13. Guarde y exponga el flujo de datos.

Ahora dispone de un servicio de comparación universal, que puede utilizar para realizar una comparación mediante el uso de cualquier regla de cruce definida en la herramienta Match Rules Management en Enterprise Designer. Cuando invoque el servicio, especifique una regla de cruce en la opción MatchRule y especifique los campos de entada como campos definidos por el usuario.

Ejemplo: invocación del servicio de cruce universal

Creo una regla de cruce denominada AddressAndBirthday en la herramienta Match Rules Management. Esta regla de cruce compara los registro mediante el uso de los campos Dirección y Cumpleaños. Desea utilizar el servicio de comparación universal para realizar la comparación mediante el uso de esta regla, a través de una solicitud de servicio web de SOAP.

Para lograrlo, tendría una solicitud SOAP que especifique AddressAndBirthday en el elemento MatchRule y los campos del registro en el elemento 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>

Esta solicitud produciría la siguiente respuesta:

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