Compartir a través de


Ampliación del Mapper (ejemplo de BizTalk Server)

En el ejemplo de Extending Mapper se muestra cómo usar y extender el Mapper de BizTalk. El ejemplo incluye varios archivos de mapa de BizTalk Server (.btm), cada uno de los cuales ilustra diferentes características del BizTalk Mapper.

Qué hace este ejemplo

En el ejemplo de Extensión de Asignador se utiliza el enrutamiento basado en contenido (CBR) y no se emplea una orquestación. Al especificar un filtro en el puerto de envío de ejemplo, se conecta directamente al puerto de recepción de ejemplo. Se especifica un mapa en el puerto de envío que se aplicará al documento procesado.

Dónde encontrar este ejemplo

<Ruta de muestras>\XmlTools\ExtendingMapper

En la tabla siguiente se muestran los archivos de este ejemplo y se describe su propósito.

Archivos Descripción
MapperClassLibrary\AssemblyInfo.cs, MapperClassLibrary\MapperClassLibrary.csproj, MapperClassLibrary\MapperHelper.cs, MapperClassLibrary\MapperClassLibrary.sln Archivo de proyecto de Microsoft® Visual Studio® y archivos de código fuente de Visual C#®.
Cleanup.bat Se usa para desplegar ensamblajes y quitarlos de la caché global de ensamblajes (GAC).
Destination.xsd Archivo de esquema.
ExtendMapper.btproj, ExtendingMapper.sln Archivos de proyecto y solución de BizTalk para este ejemplo.
ExtendingMapper.xml XML de origen.
ExtendingMapperBinding.xml XML de enlace.
ExternalAssembly.xml XML de ensamblaje externo.
OverridingMapXslt.btm Archivo de mapa.
OverridingMapXslt.xml Sobrescritura de XML de mapa.
OverridingMapXslt.xslt Invalidación de la hoja de estilos de mapa.
Scriptor_CallExternalAssembly.btm Archivo de mapa de ejemplo.
Scriptor_GlobalVariableInInlineScript.btm Archivo de mapa de ejemplo.
Scriptor_InlineScripts.btm Archivo de mapa de ejemplo.
Scriptor_InlineXslt.btm Archivo de mapa de ejemplo.
Scriptor_InlineXsltCallingExternalAssembly.btm Archivo de mapa de ejemplo.
Scriptor_XsltCalltemplate.btm Archivo de ejemplo de mapa.
Setup.bat Se usa para compilar e inicializar el ejemplo.
Source.xsd Archivo de esquema.

Compilar e inicializar este ejemplo

Utiliza el siguiente procedimiento para compilar e inicializar el ejemplo Extender Asignador.

Para compilar e inicializar este ejemplo

  1. En una ventana de comandos, cambie el directorio (cd) a la carpeta siguiente:

    <Ruta de ejemplos>\XmlTools\ExtendingMapper

  2. Ejecute el archivo Setup.bat, que realiza las siguientes acciones:

    • Crea las carpetas input (\In) y output (\Out) para este ejemplo.

    • Compila e implementa el proyecto de Visual Studio para este ejemplo.

    • Crea y enlaza la ubicación de recepción de BizTalk Server y los puertos de envío y recepción.

      Si desea usar los mapas Scriptor_CallExternalAssembly.btm o Scriptor_InlineXsltCallingExternalAssembly.btm, abra ExtendingMapper.sln en Visual Studio y realice las siguientes modificaciones (de lo contrario, vaya al paso 3):

    1. En el Explorador de soluciones, abra Scriptor_CallExternalAssembly.btm.

    2. En la cuadrícula del asignador, seleccione el functoid Scripting.

    3. En la cuadrícula de propiedades, seleccione la propiedad Script y haga clic en el botón de puntos suspensivos (...) para configurar el script functoid.

    4. En el cuadro de diálogo Configurar Functoid de Scripting, seleccione la Configuración del Functoid de Script y especifique lo siguiente:

      Establecer este valor Para esto
      Tipo de script Ensamblaje externo
      Ensamblado de script Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary
      Clase de Script Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper
      Método Script MyConcat
    5. En el menú Archivo de Visual Studio, seleccione Guardar para guardar los cambios en el archivo de asignación y cierre la solución.

  3. Presione cualquier tecla para continuar con Setup.bat.

    Importante

    Si desea usar Scriptor_InlineXsltCallingExternalAssembly.btm, debe editar el archivo ExternalAssembly.xml. BizTalk utiliza ExternalAssembly.xml para asignar un espacio de nombres registrado del objeto de extensión mapeador a un ensamblado de .NET. Dado que su nombre completo hace referencia al ensamblado dependiente (incluido su token de clave pública, que se genera automáticamente), debe actualizar este valor. Si no desea usar Scriptor_InlineXsltCallingExternalAssembly.btm, no es necesario completar los pasos desde el paso a hasta el paso e.

  4. En el Explorador de Windows, navegue a <Windows\assembly>.

    1. Haga clic con el botón derecho en Microsoft.Samples.BizTalk.ExtendMapper.MapperClassLibrary y seleccione Propiedades.

    2. Copie el valor del token de clave pública.

    3. En un editor de texto, abra <Ruta de ejemplos>\XML Tools\ExtendingMapper\ExternalAssembly.xml.

    4. Seleccione assemblyName="Microsoft.Samples.BizTalk.ExtendMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b"attribute y reemplace el valor publicKeyToken por el valor del token de clave pública que copió en el paso c.

    5. Guarde y cierre ExternalAssembly.xml.

    Nota:

    Debe confirmar que no se notificó ningún error durante el proceso de compilación e inicialización antes de intentar ejecutar este ejemplo.

Para configurar, inscribir e iniciar el puerto de envío

  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server y, a continuación, seleccione Administración de BizTalk Server.

  2. En la consola de administración de BizTalk Server, haga clic para expandir Administración de BizTalk Server, haga clic para expandir Grupo de BizTalk [<nombreServidor>:<base de datos> de administración] y haga clic para expandir Aplicaciones.

  3. Haga clic para expandir ExtendMapperApplication y, a continuación, haga clic en Puertos de envío.

  4. En el panel derecho, haga clic con el botón derecho en Puertos de envío y, a continuación, haga clic en Propiedades.

  5. En el cuadro de diálogo ExtendMapperSP – Send Port Properties (ExtenderMapperSP : enviar propiedades de puerto ), haga clic en la página Asignaciones salientes .

    En la columna Mapa , seleccione el mapa necesario en la lista desplegable y, a continuación, haga clic en Aceptar. Los mapas se describen en la tabla siguiente.

    Mapa para aplicar propiedad Descripción
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_CallExternalAssembly Muestra cómo llamar a una función en un ensamblado externo de .NET desde un functoid scripting en un mapa, en función de los parámetros de entrada para este functoid. Esto ayuda a separar limpiamente cualquier lógica de procesamiento del archivo de mapa. Este archivo de mapa usa el ensamblado MapperClassLibrary.dll que se incluye con este ejemplo.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineScripts Muestra cómo escribir scripts simples en línea dentro de functoids scripting en un archivo de mapa mediante lenguajes .NET como C#, Visual Basic.NET y JScript.NET.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_GlobalVariableInInlineScript Muestra cómo usar variables globales en los scripts insertados de Scripting functoids. Normalmente, las variables globales se usan para mantener la información de estado dentro de un archivo de mapa a través de diferentes functoids de scripting.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXslt Muestra cómo construir la estructura en el documento de destino mediante XSLT en bruto insertado dentro de un functoid Scripting en el mapa. Puede construir algunas partes del documento de destino mediante functoids scripting con XSLT insertado siempre que no sea posible hacerlo en el asignador de BizTalk mediante otros functoids.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_XsltCalltemplate Muestra cómo crear una estructura en el documento de destino mediante una plantilla de llamada XSLT dentro de un functoid scripting en el mapa. La ventaja de una plantilla de llamada XSLT sobre XSLT en línea es que la plantilla de llamada puede aceptar parámetros, por lo que puede crear la estructura basándose en los parámetros de entrada del functoid Scripting. Puede construir algunas partes del documento de destino mediante functoids scripting con XSLT insertado siempre que no sea posible hacerlo en el asignador de BizTalk mediante otros functoids.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXsltCallingExternalAssembly Muestra cómo llamar a un ensamblado .NET externo desde dentro del XSLT insertado de un functoid scripting en un mapa. Explica cómo puede invalidar la propiedad XML de extensión personalizada de la cuadrícula del asignador de BizTalk con el archivo de extensión personalizado ExternalAssembly_extxml.xml que contiene los detalles del ensamblado externo de .NET que se va a invocar. Puede construir algunas partes del documento de destino mediante functoids de Scripting con XSLT en línea siempre que no sea posible hacerlo en la interfaz del Mapper mediante otros functoids.
    Microsoft.Samples.BizTalk.ExtendingMapper. OverridingMapXslt Muestra cómo invalidar completamente el XSLT compilado del archivo asignador de BizTalk con un archivo XSLT personalizado. Para ello, sobrescriba la propiedad Ruta de acceso XSL personalizada y, opcionalmente, la propiedad XML de extensión personalizada de la cuadrícula del Asignador de BizTalk. El archivo XSLT personalizado que proporcione se incluye en el ensamblado compilado de BizTalk Server del proyecto que desea usar en tiempo de ejecución. En este caso, se omite el contenido del archivo de mapa (.btm). Este archivo de asignación usa OverridingMapXslt.xslt y OverridingMapXslt.xml para las propiedades Ruta XSL personalizada y Extensión XML personalizada, respectivamente.

    Puede validar un archivo de mapa en el Explorador de soluciones. A continuación, puede usarlo como un archivo de plantilla que puede editar y usar para la propiedad Ruta de acceso XSL personalizada de la cuadrícula del asignador de BizTalk. Puede utilizar esta opción siempre que no sea posible generar este XSLT mediante BizTalk Mapper.

Ejecución de este ejemplo

Utilice el siguiente procedimiento para ejecutar la muestra de Extending Mapper.

Para ejecutar este ejemplo

  1. Copie el archivo de entrada ExtendingMapper.xml en la carpeta de entrada en <Ruta de acceso de ejemplos>\XmlTools\ExtendingMapper\In.

  2. Observe cómo se transforma y enruta el archivo a la <carpeta Samples Path>\XmlTools\ExtendMapper\Out. La transformación que se produce se basa en el mapa aplicado.

Véase también

Herramientas XML (carpeta de ejemplos de BizTalk Server)