Functoid personalizado (ejemplo de BizTalk Server)

El ejemplo de functoid personalizado muestra cómo escribir un functoid personalizado para el asignador de BizTalk. Puede agregar el functoid al cuadro de herramientas de Visual Studio. El functoid se mostrará en el cuadro de herramientas cuando el asignador de BizTalk esté en el foco.

Un functoid personalizado debe residir en un ensamblado del asignador de BizTalk para reconocerlo. Puede escribirse en cualquier lenguaje compatible con .NET, como C# o Visual Basic.

Además, un functoid personalizado debe derivar de la Microsoft.BizTalk.BaseFunctoids clase y debe proporcionar implementación para algunos métodos invalidándolos. (La BaseFunctoid clase se define en el ensamblado de Microsoft.BizTalk.BaseFunctoids.dll incluido con BizTalk Server).

Descripción del ejemplo

El ejemplo functoid personalizado implementa varios functoids, cada uno derivado de la BaseFunctoid clase y reemplaza varios métodos.

Al implementar un functoid personalizado, puede exponer su código interno. El código interno es el que lleva a cabo el cálculo del functoid. El compilador del asignador de BizTalk extrae el código interno y los integra en el XSLT compilado cuando se genera el proyecto.

Si el functoid personalizado no expone ningún código interno, el asignador de BizTalk genera un XSLT que llama al ensamblado en el que reside el functoid personalizado. En este caso, debe asegurarse de que el ensamblado del functoid personalizado está disponible en la caché de ensamblados global (GAC) para que el motor de XSLT pueda encontrarla. Un functoid personalizado también debe tener un atributo de GUID único. El asignador de BizTalk utiliza el GUID para identificar qué ensamblado cargar.

Importante

Si reutiliza el código de ejemplo del functoid personalizado para implementar su propio functoid, debe asegurarse de cambiar el atributo de GUID a uno que sea único.

Ubicación del ejemplo

<Ruta de acceso> de ejemplos\XmlTools\CustomFunctoid

En la tabla siguiente se enumeran los archivos del ejemplo y se describe su propósito.

Archivos Descripción
AssemblyInfo.cs Código de origen de C# de información de ensamblado.
CBuildArray.bmp Mapa de bits del cuadro de herramientas.
CConcat.bmp Mapa de bits del cuadro de herramientas.
CExtractArray.bmp Mapa de bits del cuadro de herramientas.
Cleanup.bat Se utiliza para anular la implementación de ensamblados y eliminarlos de la caché de ensamblados global (GAC), así como para eliminar CustomFunctoid.dll.
CLongestString.bmp Mapa de bits del cuadro de herramientas.
CMultiply.bmp Mapa de bits del cuadro de herramientas.
CustomFunctoid.cs Código de origen de C# del functoid personalizado.
CustomFunctoid.csproj Proyecto de C# del functoid personalizado.
CustomFunctoid.sln Solución de functoid personalizado.
CustomFunctoidResources.resx Recursos del functoid personalizado.
Setup.bat Se utiliza para generar, implementar e iniciar el ejemplo.

Crear e inicializar este ejemplo

Utilice el siguiente procedimiento para crear e inicializar el ejemplo del functoid personalizado.

Para generar e inicializar el ejemplo

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

    <Ruta de acceso de> ejemplos\XmlTools\CustomFunctoid

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

    • Genera el proyecto de ejemplo.

    • Copia el ensamblado generado en el directorio Herramientas de programador\Extensiones de asignador.

    • Agrega el ensamblado generado en la GAC.

      Nota

      Debe confirmar que no se ha informado de errores durante el proceso de creación e iniciación antes de intentar ejecutar este ejemplo.

Ejecución del ejemplo

Utilice el siguiente procedimiento para ejecutar el ejemplo del functoid personalizado.

Para ejecutar el ejemplo

  1. En un proyecto de BizTalk de Visual Studio, haga clic en el menú Herramientas y seleccione Elegir elementos del cuadro de herramientas.

  2. En el cuadro de diálogo Elegir elementos del cuadro de herramientas , seleccione la pestaña Functoids del asignador de BizTalk .

  3. Haga clic en Restablecery, a continuación, haga clic en Aceptar.

    Nota

    Si su functoid personalizado no expone ningún código en línea, asegúrese de que su ensamblado está disponible en la caché de ensamblados global.

  4. En el menú Archivo , seleccione Salir para cerrar Visual Studio.

  5. Inicie el símbolo del sistema de Visual Studio.

  6. En el símbolo del sistema, escriba devenv /setup.

  7. Inicie Microsoft Visual Studio.

    Los functoids personalizados (functoid concatenado personalizado, cadena más larga, functoid de matriz de compilación y functoid extraer matriz) aparecen en la pestaña Functoids de cadena del cuadro de herramientas y el functoid Multiplicación acumulativa aparece en la pestaña Functoids acumulativos .

Eliminar este ejemplo

Utilice el siguiente procedimiento para eliminar el ejemplo del functoid personalizado.

Para quitar este ejemplo

  1. Elimine los functoids del cuadro de herramientas de Visual Studio.

    Advertencia

    Si, después de ejecutar Cleanup.bat, sigue viendo los functoids personalizados obsoletos en el cuadro de herramientas (probablemente debido a la memoria caché interna de Visual Studio), siga los procedimientos siguientes:

    1. En un proyecto de BizTalk de Visual Studio, haga clic en el menú Herramientas y seleccione Elegir elementos del cuadro de herramientas.

    2. En el cuadro de diálogo Elegir elementos del cuadro de herramientas , seleccione la pestaña Functoids del asignador de BizTalk .

    3. Busque en la lista los functoids personalizados (de concatenación personalizada, de cadena más larga, de generación de matriz, de extracción de matriz y de multiplicación acumulada). Haga clic en la casilla correspondiente para quitar los functoids y, a continuación, haga clic en Aceptar.

      Si no funciona el procedimiento anterior, siga el procedimiento siguiente.

    4. En el proyecto de BizTalk de Visual Studio, haga clic en la pestaña Cuadro de herramientas mientras edita un mapa para abrir la paleta del cuadro de herramientas.

    5. Haga clic con el botón derecho en el cuadro de herramientas y seleccione Elegir elementos.

    6. En el cuadro de diálogo Elegir elementos , haga clic en Restablecery, a continuación, haga clic en Aceptar.

    7. Cierre todas las instancias de Visual Studio.

      Si no funciona el procedimiento anterior, siga el procedimiento siguiente.

    8. Inicie el símbolo del sistema de Visual Studio como administrador.

    9. Cierre todas las instancias en ejecución de Visual Studio.

    10. Escriba los comandos siguientes:

      devenv /resetsettings

      devenv /setup

    11. Puede seleccionar manualmente los functoids no deseados en el cuadro de herramientas. A continuación, haga clic con el botón derecho en el functoid y haga clic en Eliminar.

      Si no funciona el procedimiento anterior, siga el procedimiento siguiente.

    12. En un proyecto de BizTalk de Visual Studio, haga clic en la ficha Cuadro de herramientas mientras edita una asignación para abrir la paleta de cuadro de herramientas.

    13. Haga clic en el grupo Functoids acumulativos .

    14. Haga clic con el botón derecho en el functoid que desea quitar y, a continuación, elija Eliminar o presione la tecla eliminar.

    15. Haga clic en el grupo Functoids de cadena.

    16. Haga clic con el botón derecho en el functoid que desea quitar y, a continuación, elija Eliminar o presione la tecla eliminar.

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

    <Ruta de acceso de> ejemplos\XmlTools\CustomFunctoid

  3. Ejecute el archivo Cleanup.bat que realiza las acciones siguientes:

    • Elimina el ensamblado del directorio Herramientas de programador\Extensiones de asignador.

    • Elimina el ensamblado de la GAC.

Clases o métodos usados en el ejemplo

Microsoft.BizTalk.BaseFunctoids.BaseFunctoid

Consulte también

Uso de BaseFunctoid
Herramientas XML (carpeta de ejemplos de BizTalk Server)