Compartir a través de


Uso de BaseFunctoid

Todos los functoids personalizados deben derivar de la clase BaseFunctoid . Primero debe anular el constructor y realizar un conjunto de llamadas que informen al BizTalk Mapper acerca de tu functoid personalizado. A continuación, debe escribir la lógica functoid.

Invalidación del constructor

Debe realizar una serie de tareas en el método de sobrescritura del constructor de clase para caracterizar el functoid. Estas tareas son adicionales a cualquier código específico del functoid que requiera la solución. En la tabla siguiente se describen las tareas principales.

Tarea Usar estos métodos o propiedades Comentarios
Asignar un identificador único al functoid ID Use un valor mayor que 6000 que no se haya usado. Los valores inferiores a 6000 están reservados para su uso por functoids internos.
Indica si el functoid tiene efectos secundarios TieneEfectosSecundarios Usado por el mapeador para optimizar el código XSLT generado. Esta propiedad es verdadera de forma predeterminada.
Apuntar al ensamblado de recursos SetupResourceAssembly Incluya un archivo de recursos con el proyecto. Si se compila con Visual Studio, el ensamblado de recursos debe ser ProjectName.ResourceName.
Activar la función personalizada para que aparezca en el Mapper de BizTalk SetName

SetTooltip

EstablecerDescripción

SetBitmap
Use un identificador de recurso que apunte a una cadena para el nombre, la información sobre herramientas y la descripción; use un mapa de bits de 16 x 16 píxeles.
Asignar el functoid a una o varias categorías Categoría Clasifique el functoid mediante uno o varios valores Microsoft.BizTalk.BaseFunctoids.FunctoidCategory .
Especificar el número de parámetros aceptados SetMinParams

SetMaxParams

HasVariableInputs
Use el método SetMinParams para establecer el número de parámetros necesarios y el método SetMaxParams para establecer el número de parámetros opcionales. Use las instrucciones siguientes para establecer estos valores:

- Si no tiene parámetros opcionales, establezca min = max.
- Si tiene algunos parámetros opcionales, establezca max = (número de parámetros opcionales: número mínimo de parámetros).
- Si desea permitir parámetros opcionales ilimitados, no establezca max.
- Si tiene un número variable de entradas, no establezca min o max y establezca HasVariableInputs = true.
Especificar lo que puede conectarse a su functoid AddInputConnectionType Llame a AddInputConnectionType una vez para cada Microsoft.BizTalk.BaseFunctoids.ConnectionType que admita el functoid.
Declara a qué "functoid" puede conectarse TipoDeConexiónDeSalida Utilizar valores de Microsoft.BizTalk.BaseFunctoids.ConnectionType para indicar a BizTalk Mapper los tipos de objetos que pueden recibir la salida de tu functoid. Use OR para especificar varios tipos de conexión.
Indicar a BizTalk Server qué métodos invocar para su functoid SetExternalFunctionName

SetExternalFunctionName2

SetExternalFunctionName3
Para functoids acumulativos, use SetExternalFunctionName para establecer la función de inicialización, SetExternalFunctionName2 para establecer la función de acumulación y SetExternalFunctionName3 para especificar la función que devuelve el valor acumulado. Para funciones functoid no acumulativas, use SetExternalFunctionName para establecer el método functoid.
Permitir que BizTalk Server use código insertado para invocar su functoid AddScriptTypeSupport SetScriptBuffer Llame a AddScriptTypeSupport con Microsoft.BizTalk.BaseFunctoids.ScriptType para habilitar el código en línea. Invoque SetScriptBuffer para pasar el código del functoid. Este código se copiará en el mapa.
Declarar variables globales para un functoid en línea SetScriptGlobalBuffer Cualquier declaración realizada será visible para otros scripts en línea incluidos en el mapa.
Indica qué funciones auxiliares requiere el functoid insertado. RequiredGlobalHelperFunctions Use valores de la enumeración InlineGlobalHelperFunction para especificar qué funciones auxiliares son necesarias. Use OR para especificar varias funciones auxiliares.
Valida los parámetros pasados a tu functoid IsDate

IsNumeric
Estas funciones proporcionan una respuesta verdadera o falsa sin producir una excepción.

Implementación de la lógica de funcionalidades

Para que el functoid sea útil, debe implementar uno o más métodos según su categoría. Si el functoid es acumulativo, debe proporcionar tres métodos: uno para la inicialización, otro para realizar la acumulación y otro para devolver el valor acumulado. Si el functoid no es acumulativo, debes proporcionar un método que devuelva un valor.

También tiene que decidir si el código de implementación de functoid se debe copiar directamente en el mapa o conservarse dentro de un ensamblado de .NET compilado y utilizarse a través de una referencia.

Considere usar un functoide en línea cuando:

  • Es correcto que otros lean y modifiquen potencialmente la lógica de negocios.

  • El functoid solo depende de los espacios de nombres de .NET Framework que el mapa admite. Para consultar los espacios de nombres disponibles, vea Scripting Using Inline C#, JScript .NET y Visual Basic .NET.

  • No desea implementar y mantener otro componente en su solución BizTalk.

  • Está escribiendo una serie de functoids que comparten variables.

    Considere la posibilidad de usar un functoid al que se hace referencia cuando:

  • No desea que la lógica de negocios se copie en el mapa donde otros usuarios puedan verlo o modificarlo.

  • El functoid depende de clases de .NET Framework que el mapa no admite.

  • La funcionalidad agregada proporcionada por .NET Framework justifica la implementación y el mantenimiento de otro ensamblado con la solución de BizTalk.

Véase también

Desarrollo de un functoid personalizado referenciado
Desarrollo de un functoid en línea personalizado
Desarrollo de un functoid acumulativo personalizado
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid