Compartir vía


Utilizar BaseFunctoid

Todos los functoids personalizados deben derivar de la clase BaseFunctoid . Primero, debe reemplazar el constructor y realizar un conjunto de llamadas que indiquen al Asignador de BizTalk acerca de su functoid personalizado. A continuación, tiene que escribir la lógica de functoid.

Reemplazar el constructor

Debe realizar un número de tareas en el método de reemplazo de constructor de clases para caracterizar su functoid. Estas tareas se suman a todo código específico de functoid que requiera su solución. En la siguiente tabla se describen las tareas principales.

Tarea Utilice estos métodos o estas propiedades Comentarios
Asigne al functoid un identificador único ID Utilice un valor mayor que 6000 que no se haya utilizado. La utilización de valores menores que 6000 se reserva a functoids internos.
Indique si el functoid tiene efectos secundarios HasSideEffects El Asignador lo utilizó para optimizar el código XSLT que se genera. Esta propiedad es true de forma predeterminada.
Elija el ensamblado de recursos SetupResourceAssembly Incluya un archivo de recursos con su proyecto. Si se compila con Visual Studio, el ensamblado de recursos debe ser ProjectName.ResourceName.
Habilite el functoid personalizado para que aparezca en la paleta de Asignador de BizTalk SetName

SetTooltip

SetDescription

SetBitmap
Utilice un identificador de recursos que está señalando a una cadena para el nombre, la información sobre herramientas y la descripción; utilice un mapa de bits de 16 x 16 píxeles.
Asigne el functoid a una o más categorías Categoría Clasifique el functoid usando uno o más valores Microsoft.BizTalk.BaseFunctoids.FunctoidCategory .
Especifique 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. Utilice las directrices 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.
Declare qué se puede conectar a su functoid AddInputConnectionType Llame a AddInputConnectionType una vez para cada Microsoft.BizTalk.BaseFunctoids.ConnectionType que admite el functoid.
Declare a qué se puede conectar su functoid OutputConnectionType Use valores de Microsoft.BizTalk.BaseFunctoids.ConnectionType para indicar al Asignador de BizTalk los tipos de objetos que pueden recibir salida de su functoid. Use OR para especificar varios tipos de conexión.
Indique 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 determinar la función que devuelve el valor acumulado. Para functoids no acumulativos, use SetExternalFunctionName para definir el método de functoid.
Tenga el código en línea de utilización de BizTalk Server 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 para el functoid. Este código se copiará a la asignación.
Declare variables globales para un functoid en línea SetScriptGlobalBuffer Cualquier declaración realizada será visible para las otras secuencias de comandos incluidas en la asignación.
Indique qué funciones del asistente requiere su functoid en línea RequiredGlobalHelperFunctions Use valores de la enumeración InlineGlobalHelperFunction para especificar qué funciones del asistente son necesarias. Use OR para especificar varias funciones del asistente.
Valide parámetros que hayan pasado a su functoid IsDate

IsNumeric
Estas funciones proporcionan una respuesta true/false sin producir una excepción.

Implementar lógica de functoid

Para que el functoid sea útil, debe implementar uno o varios métodos en función de la categoría de functoid. Si el functoid es acumulativo, es necesario que suministre tres métodos: uno para la inicialización, otro para la acumulación y otro para devolver el valor acumulado. Si el functoid no es acumulativo, es necesario que suministre un método que devuelva un valor.

También tiene que decidir si el código de implementación de functoid se debe copiar a la asignación p se debe conservar en un ensamblado compilado .NET y si se debe utilizar a través de una referencia.

Considere la posibilidad de utilizar un functoid en línea cuando:

  • Es correcto que otros lean y modifiquen potencialmente su lógica empresarial.

  • Su functoid depende solo de los espacios de nombres de .NET Framework que admite la asignación. Para ver los espacios de nombres disponibles, vea Scripting Using Inline C#, JScript .NET y Visual Basic .NET.

  • No desea implementar y mantener otro ensamblado con su solución de BizTalk.

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

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

  • No desea copiar su lógica empresarial en la asignación en la que otras personas la podrían ver o modificar.

  • Su functoid depende de las clases de .NET Framework que no admite la asignación.

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

Consulte también

Desarrollo de un functoid personalizado al que se hace referencia
Desarrollo de un functoid en línea personalizado
Desarrollo de un functoid acumulativo personalizado
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid