Exportar (0) Imprimir
Expandir todo

Puente unidireccional XML: Configuración de la fase Enrich para el mensaje de la solicitud

Actualizado: noviembre de 2013

Tal y como sugiere el nombre, la fase Enrich habilita el enriquecimiento del mensaje definiendo propiedades, los valores de las cuales pueden obtenerse del encabezado del mensaje (estándar o personalizado), a través de propiedades predeterminadas promocionadas por el sistema Servicios de BizTalk, desde un origen de datos externos (solo tablas Base de datos SQL de Microsoft Azure admitidas en este lanzamiento) o desde un elemento situado dentro del cuerpo del mensaje. Estas propiedades pueden usarse a continuación para enrutar el mensaje a un extremo de destino o para su posterior procesamiento por la entidad receptora de mensajes. En esta sección, veremos los procedimientos necesarios para realizar cada una de estas acciones, a saber:

  • Asignar valores de encabezado de mensajes a propiedades. Consulte

  • Utilización de propiedades predeterminadas o del sistema promocionadas por Servicios de BizTalk.

  • Buscar un origen de datos externo

  • Extracción de valores de un elemento de cuerpo de mensaje mediante Xpath

Por encima de esto, puede especificar si desea llevar a cabo alguna de las acciones mediante la activación o desactivación de la fase Enrich.

Existen unos cuantos aspectos que debe tener en cuenta a la hora de definir propiedades en la fase Enrich.

  • Los nombres de propiedad especificados en la fase Enrich no distinguen mayúsculas de minúsculas.

  • La propiedad especificada en la fase Enrich no estará disponible para Ruta o Acciones de respuesta a menos que guarde Configuración del puente. Si desea obtener más información acerca de Ruta y Acciones de respuesta, consulte Route and Reply Actions: Bridging Protocol Mismatch.

Esta sección proporciona información acerca de cómo configurar la fase Enrich y la utilización de propiedades y valores de diferentes fuentes, tal y como se menciona anteriormente.

  1. Haga doble clic en el componente Puente unidireccional XML para abrir el diseñador de itinerarios.

  2. Seleccione la fase Enrich y, desde el panel Propiedades, establezca la propiedad IsEnabled en True o False.

    noteNota
    Si la propiedad IsEnabled se encuentra ajustada en True y no hay ninguna propiedad definida, el puente no mostrará un error ni durante la configuración de puente (tiempo de diseño) ni durante el procesamiento del mensaje (tiempo de ejecución).

  3. Si desea incluir cualquier código personalizado que deba ejecutarse antes de que el mensaje entre en la fase Enrich, establezca la propiedad On Enter Inspector. De manera similar, si desea incluir cualquier código personalizado que deba ejecutarse antes de que el mensaje salga de la fase Enrich, establezca la propiedad On Exit Inspector. Para obtener más información sobre cómo establecer estas propiedades, vea Cómo incluir un código personalizado en puentes.

  4. Dentro de la fase Enrich, seleccione la actividad Enrich y, desde el panel Propiedades, haga clic en el botón de puntos suspensivos (…) de la propiedad Definición de propiedad para abrir el cuadro de diálogo Definiciones de propiedad.

  5. En el cuadro de diálogo Definiciones de propiedad, haga clic en Agregar para abrir el cuadro de diálogo Agregar propiedad. En el cuadro de diálogo Agregar propiedad, puede utilizar valores de diferentes fuentes e incluirlos en el mensaje como propiedades. Estas propiedades y sus valores pueden utilizarse más tarde para otras tareas de procesamiento como el enrutamiento de mensajes a diferentes destinos basados en valores de propiedades (consulte The Routing Action. En la tabla siguiente se enumeran las diferentes fuentes y maneras de agregar propiedades al mensaje.

     

    Origen Cómo

    Asignar valores de encabezado de mensajes a propiedades

    Para asignar valores de encabezado de mensajes a propiedades

    Usar propiedades promocionadas por el sistema

    Para usar propiedades promocionadas por el sistema

    Buscar un origen de datos externo

    Para buscar un origen de datos externo

    Extraer valores del mensaje mediante XPath

    Para extraer valores del cuerpo de un mensaje mediante Xpath

  1. En el cuadro de diálogo Agregar propiedad, haga lo siguiente:

    noteNota
    En esta tabla se enumeran únicamente los campos requeridos para el encabezado para la operación de asignación de propiedades, que solamente resulta relevante para los mensajes que se transfieren mediante protocolos de transferencia de mensajes como SOAP, HTTP, FTP y SFTP. Por lo tanto, los siguientes pasos únicamente son relevantes si selecciona HTTP, SOAP, FTP o SFTP de la lista desplegable Tipo. Asimismo, en función de lo que seleccione para la lista desplegable Tipo, los campos obligatorios aparecerán destacados en rojo y los otros campos aparecerán atenuados.

     

    Sección Nombre de campo Descripción

    Origen (leer de)

    Tipo

    Especifica el tipo de mensaje del cual se extraerán los valores de los encabezados. Para asignar valores de encabezado a propiedades, los posibles valores son SOAP, HTTP, FTP, SFTP y Brokered.

    Espacio de nombres del encabezado SOAP (solamente si Tipo se encuentra ajustado en SOAP)

    Especifica el espacio de nombres del encabezado SOAP personalizado. Por ejemplo, en el extracto siguiente, se resalta el espacio de nombres del encabezado personalizado MessageType.

    <s:Header>
       ...
      <MessageType xmlns="http://schemas.microsoft.com/integration/2011/system-properties">http://POAttr.org#PurchaseOrderAttr</MessageType> 
       ...
    </s:Header>
    
    ImportantImportante
    Este campo aparecerá atenuado si selecciona un encabezado estándar de la lista desplegable Identificador. Deberá introducir un espacio de nombres solamente para los encabezados SOAP personalizados; no obstante, esta propiedad no es obligatoria.

    Este campo también está atenuado si se ajusta Tipo en HTTP, FTP, SFTP o Brokered.

    Identificador

    Especifica el nombre de la propiedad del encabezado del mensaje, el valor del cual desea extraer y asignar a una propiedad que está definiendo en este cuadro de diálogo. Si tomamos el mismo extracto que anteriormente, el identificador sería MessageType.

    También puede especificar aquí encabezados personalizados. Para FTP y SFTP, el cuadro desplegable enumera los identificadores estándar. Para el tipo de mensaje HTTP, debido a que existe una lista enorme de encabezados estándar, el cuadro desplegable no enumera ningún encabezado; puede introducir el nombre del encabezado en tal caso. Asimismo, para los tipos de mensaje SOAP, HTTP y Brokered, también puede enumerar un encabezado personalizado cuyo valor desee asignar a otra propiedad.

    Facilitemos un ejemplo aquí para comprender esto mejor. Supongamos que el encabezado de un mensaje SOAP tiene el siguiente aspecto:

    <s:Header>
      ...  
      <PONumber xmlns="http://schemas.microsoft.com/integration/promotedpropertiesinfo">PO1234</PONumber> 
      ...  
    </s:Header>
    

    En este extracto, PONumber es un encabezado de SOAP personalizado cuyo valor es PO1234. Por lo tanto, si ajusta el identificador en PONumber, el valor PO1234 se asignará a la propiedad que está definiendo aquí.

    Propiedad (escribir en)

    Nombre de la propiedad

    Especifica el nombre de la propiedad que está definiendo. El valor de esta propiedad se configurará en el valor que se extrae de la propiedad del encabezado del mensaje especificado anteriormente.

    Para continuar utilizando el mismo ejemplo que anteriormente, si ajusta el Nombre de la propiedad en P1 y Identifier en PONumber, el valor de P1 se establecerá en PO1234.

    Tipo de datos

    Especifica el tipo de datos de la propiedad. Puede seleccionar un valor de la lista desplegable.

  2. Haga clic en Aceptar en el cuadro de diálogo Agregar propiedad. Ahora los cuadros de diálogo deberían ser similares a los siguientes:

    ¿Qué se describe en esta captura de pantalla? Significa que si el mensaje entrante es un mensaje SOAP con un nombre de encabezado SOAP como PONumber y el espacio de nombres del encabezado como http://schemas.microsoft.com/integration/promotedpropertiesinfo, se creará un P1 con tipo de datos de string y se asigna el valor del encabezado a esta propiedad.

  3. Para actualizar o eliminar una definición de propiedad, puede seleccionar la definición de propiedad en el cuadro de diálogo y hacer clic en Editar o Eliminar respectivamente. Haga clic en Aceptar en el cuadro de diálogo Definición de la propiedad y, a continuación, haga clic en Guardar para guardar los cambios en un Configuración del puente.

  1. En el cuadro de diálogo Agregar propiedad, haga lo siguiente:

    noteNota
    En esta tabla solamente se enumeran los campos requeridos para la asignación de propiedades promocionadas por el sistema al mensaje. Asimismo, en función de lo que seleccione para la lista desplegable Tipo, los campos obligatorios aparecerán destacados en rojo y los otros campos aparecerán atenuados.

     

    Sección Nombre de campo Descripción

    Origen (leer de)

    Tipo

    Para utilizar propiedades promocionadas por el sistema, seleccione Sistema en la lista desplegable.

    Identificador

    Especifica el nombre de la propiedad promocionada por el sistema, el valor del cual desea extraer y asignar a una propiedad que está definiendo en este cuadro de diálogo.

    Propiedad (escribir en)

    Nombre de la propiedad

    Especifica el nombre de la propiedad que está definiendo. El valor de esta propiedad se configurará en el valor que se extrae de la propiedad promocionada por el sistema especificada anteriormente.

    Tipo de datos

    Especifica el tipo de datos de la propiedad. Puede seleccionar un valor de la lista desplegable.

  1. En el cuadro de diálogo Agregar propiedad, haga lo siguiente:

    noteNota
    En esta tabla solamente se enumeran los campos requeridos para la operación de búsqueda. Por lo tanto, los siguientes pasos únicamente son relevantes si selecciona Búsqueda en la lista desplegable Tipo. Asimismo, en función de lo que seleccione para la lista desplegable Tipo, los campos obligatorios aparecerán destacados en rojo y los otros campos aparecerán atenuados.

    ImportantImportante
    Para esta versión, únicamente puede buscar desde una tabla Base de datos SQL de Microsoft Azure.

     

    Sección Nombre de campo Descripción

    Origen (leer de)

    Tipo

    Para una operación de búsqueda, seleccione Búsqueda en la lista desplegable.

    Identificador

    En la lista desplegable, seleccione un proveedor ya configurado

    Si todavía no ha configurado ningún proveedor, lleve a cabo los siguientes pasos para configurar uno:

    1. En la lista desplegable Identificador, seleccione Configurar nuevo.

    2. En el cuadro de diálogo Configuración de proveedor, especifique los valores siguientes:

       

      Nombre de campo Descripción

      Nombre de proveedor

      Especifique un nombre para el proveedor

      Cadena de conexión

      Especifique una cadena de conexión válida para conectarse a una tabla de Base de datos SQL de Microsoft Azure.

      Nombre de la tabla

      Especifique el nombre de la tabla de Base de datos SQL de Microsoft Azure en la que desea hacer una búsqueda de datos

      Columna de consulta

      Especifique un nombre de columna de la tabla de Base de datos SQL de Microsoft Azure, cuyos valores se utilizarán como consulta de entrada para realizar la búsqueda de datos

      Columna resultado de la consulta

      Especifique un nombre de columna en la tabla de Base de datos SQL de Microsoft Azure, cuyo valor será el valor de salida que se asignará a la propiedad buscada.

    3. Haga clic en Aceptar para agregar la configuración del proveedor.

    Propiedad de búsqueda

    En la lista desplegable, seleccione una propiedad que debe haber definido previamente. El valor de esta propiedad se pasará a la Columna de consulta especificada en la configuración del proveedor anterior.

    Propiedad (escribir en)

    Nombre de la propiedad

    Especifique un nombre para la propiedad que contendrá el valor buscado. El valor de esta propiedad se derivará del valor de la Columna resultado de la consulta de la configuración del proveedor anterior.

    Tipo de datos

    Especifica el tipo de datos de la propiedad. Puede seleccionar un valor de la lista desplegable.

  2. Haga clic en Aceptar en el cuadro de diálogo Agregar propiedad. Los cuadros de diálogo deberían ser similares a los siguientes:

    ¿Qué describen estos cuadros de diálogo? Este es el modo en el que fluye la lógica (explicado mediante el mismo ejemplo del pedido de compra anterior):

    • El puente busca el valor de P1 (PO1234) en la columna de consulta de entrada (P_Order) en la tabla (TempTable) definida en la configuración del proveedor MyProvider.

    • A continuación, el puente recoge el valor correspondiente a PO1234 desde la columna de la consulta de salida (Cust_Name) en la tabla TempTable.

    • El valor recogido de la columna de consulta de salida se asigna a la propiedad P2. Por ejemplo, si el nombre del cliente corresponde con el pedido de compra PO1234 es John, el valor de P2 se establecerá en John.

    • El tipo de datos de la propiedad P2 está ajustado en string.

  3. Para actualizar o eliminar una definición de propiedad, puede seleccionar la definición de propiedad en el cuadro de diálogo y hacer clic en Editar o Eliminar respectivamente. Haga clic en Aceptar en el cuadro de diálogo Definición de la propiedad y, a continuación, haga clic en Guardar para guardar los cambios en un Configuración del puente.

  1. En el cuadro de diálogo Agregar propiedad, haga lo siguiente:

    noteNota
    En esta tabla solamente se enumeran los campos requeridos para la operación de extracción (xpath). Asimismo, en función de lo que seleccione para la lista desplegable Tipo, los campos obligatorios aparecerán destacados en rojo y los otros campos aparecerán atenuados.

     

    Sección Nombre de campo Descripción

    Origen (leer de)

    Tipo

    Seleccione XPath en la lista desplegable.

    Identificador

    Especifique la consulta xpath para extraer un elemento o un atributo de un mensaje. Una consulta xpath típica tendría el siguiente aspecto:

    /*[local-name()='<root_node>' and namespace-uri()='<namespace>']/*[local-name()='<node_name>' and namespace-uri()=<namespace>']/*@[local-name()='<attribute_name>' and namespace-uri()='<namespace>']
    

    Tipo de mensaje

    Especifica el tipo de mensaje del mensaje del que se debe extraer el elemento o el valor del atributo mediante la consulta xpath.

    La lista desplegable muestra todos los esquemas agregados al Proyecto de servicio de BizTalk. Seleccione el esquema que disponga del elemento que desee extraer.

    Propiedad (escribir en)

    Nombre de la propiedad

    Especifica el nombre de la propiedad que está definiendo. El valor de esta propiedad se configurará en el valor que se extrae del cuerpo del mensaje mediante la consulta xpath.

    Tipo de datos

    Especifica el tipo de datos de la propiedad. Puede seleccionar un valor de la lista desplegable.

  2. Haga clic en Aceptar en el cuadro de diálogo Agregar propiedad. Los cuadros de diálogo deberían ser similares a los siguientes:

    ¿Qué se describe en este cuadro de diálogo? Significa que desde un tipo de mensaje (PurchaseOrder en este ejemplo), el puente extrae el valor del elemento por la consulta xpath facilitada, lo asigna a la propiedad P3, y ajusta el tipo de datos de la propiedad P3 en doble.

  3. Para actualizar o eliminar una definición de propiedad, puede seleccionar la definición de propiedad en el cuadro de diálogo y hacer clic en Editar o Eliminar respectivamente. Haga clic en Aceptar en el cuadro de diálogo Definición de la propiedad y, a continuación, haga clic en Guardar para guardar los cambios en un Configuración del puente.

En el tiempo de diseño mediante la utilización de la superficie de diseño de Configuración del puente, puede definir las propiedades que se promocionarán y los valores que se les asignarán. Pero la promoción de propiedades y la asignación de valores se produce realmente en el tiempo de ejecución cuando un mensaje fluye a través del puente implementado en el Service Bus. No obstante, en el tiempo de ejecución podría haber instancias cuando la promoción de propiedades falla debido a varios motivos. Mediante la tabla facilitada a continuación, permítanos comprender cómo y cuándo es posible que esto suceda.

 

Si esto se produce Qué se promociona

El encabezado SOAP o HTTP que especifica durante el tiempo de diseño no existe en el mensaje real que se envía al puente durante el tiempo de ejecución

La propiedad definida en el tiempo de diseño no se promociona durante el tiempo de ejecución; no se aplica ninguna excepción.

La consulta XPATH que especifica durante el tiempo de diseño no se corresponde con un elemento del mensaje enviado al puente durante el tiempo de ejecución

La propiedad definida en el tiempo de diseño no se promociona durante el tiempo de ejecución; no se aplica ninguna excepción.

Para la búsqueda, si la propiedad Lookup especificada durante el tiempo de diseño no existe en el tiempo de ejecución (debido a que nunca se ha promocionado)

La propiedad a la que se le habría asignado un valor como resultado de la búsqueda no se promociona; no se aplica ninguna excepción.

Para la búsqueda, si la configuración del proveedor que especifica (que incluye la cadena de conexión, el nombre de la tabla, etc.) en el tiempo de diseño es incorrecta.

En el tiempo de ejecución, se aplica una excepción; no se promociona ninguna propiedad. Durante el tiempo de diseño no se aplica ninguna excepción debido a que la superficie de diseño de Configuración del puente no lleva a cabo ninguna validación de la configuración del proveedor.

ImportantImportante
A la hora del diseño solamente se validan las credenciales del usuario y si la validación no es correcta, la implementación falla.

Para la búsqueda, si el valor de la propiedad Lookup especificado en el tiempo de diseño no tiene correspondencia alguna en el origen de los datos del proveedor (tabla Base de datos SQL de Microsoft Azure, en este caso) en el tiempo de ejecución

Se aplica una excepción; no se promociona ningún valor

Para la búsqueda, si el valor de la propiedad Lookup especificado en el tiempo de diseño tiene más de una correspondencia en el origen de los datos del proveedor (tabla Base de datos SQL de Microsoft Azure, en este caso) en el tiempo de ejecución

Se promociona la propiedad y solamente se asigna uno de los valores correspondientes del origen de datos como valor a la propiedad promocionada.

Para SOAP, HTTP, XPATH y Lookup, si el tipo de datos especificado para la propiedad durante el tiempo de diseño no coincide con el tipo de datos del valor que tendrá la propiedad en el tiempo de ejecución

En los casos en los que la conversión del tipo sea posible, el tipo se convertirá y la propiedad se promocionará. Por ejemplo, si en el tiempo de diseño define una propiedad como cadena, pero el valor asignado a dicha propiedad durante el tiempo de ejecución es 30, el valor de dicha propiedad será de “30” (como una cadena).

Cuando la conversión del tipo no es posible, se aplica una excepción y la propiedad no se promociona. Por ejemplo, en el tiempo de diseño define una propiedad como “double” pero el valor asignado a dicha propiedad durante el tiempo de ejecución es “John”. Debido a que “John” no se puede almacenar en la propiedad como “double”, se aplica una ejecución y la propiedad no se promociona.

Mostrar:
© 2014 Microsoft