Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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