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.
Los functoids a los que se hace referencia personalizada no copian el código de implementación insertado en el mapa. En su lugar, se coloca una referencia al ensamblado, la clase y el método en el archivo de objeto de extensión asociado a la hoja de estilos generada y se llama en tiempo de ejecución.
Ejemplo
En el ejemplo siguiente se muestra cómo crear un functoid personalizado al que se hace referencia para concatenar dos cadenas. Se basa en un archivo de recursos que contiene tres recursos de cadena y un recurso de mapa de bits de 16 x 16 píxeles.
using System;
using Microsoft.BizTalk.BaseFunctoids;
using System.Reflection;
namespace Microsoft.Samples.BizTalk.CustomFunctoid
{
/// <summary>
/// Performs a string concatenation through assembly referenced function. Assembly must be deployed with the BizTalk solution.
/// </summary>
public class CustomStringConcatFunctoid : BaseFunctoid
{
public CustomStringConcatFunctoid()
: base()
{
//ID for this functoid
this.ID = 6001;
// Resource assembly must be ProjectName.ResourceName if building with VS.Net
SetupResourceAssembly("Microsoft.Samples.BizTalk.CustomFunctoid.CustomFunctoidResources", Assembly.GetExecutingAssembly());
// Pass the resource ID names for functoid name, tooltip
// description and the 16x16 bitmap for the Map palette
SetName("IDS_CUSTOMSTRINGCONCATFUNCTOID_NAME");
SetTooltip("IDS_CUSTOMSTRINGCONCATFUNCTOID_TOOLTIP");
SetDescription("IDS_CUSTOMSTRINGCONCATFUNCTOID_DESCRIPTION");
SetBitmap("IDB_CUSTOMSTRINGCONCATFUNCTOID_BITMAP");
// Put this string handling function under the String
// Functoid tab in the Visual Studio toolbox for functoids
this.Category = FunctoidCategory.String;
// 2 required parameters, no optional parameters
this.SetMinParams(2);
this.SetMaxParams(2);
// Functoid accepts two inputs
AddInputConnectionType(ConnectionType.AllExceptRecord);
AddInputConnectionType(ConnectionType.AllExceptRecord);
// Set the output connection type
this.OutputConnectionType = ConnectionType.AllExceptRecord;
// Set the function name that needs to be called
// when this functoid is invoked. The resulting assembly
// must be present in the Global Assembly Cache
// to ensure its availability.
SetExternalFunctionName(GetType().Assembly.FullName, "Microsoft.Samples.BizTalk.CustomFunctoid.CustomStringConcatFunctoid", "ConCatStrings");
}
// This function is executed by BizTalk to do the concatenation
public string ConCatStrings(string val1, string val2)
{
return val2 + val1;
}
}
}
Véase también
Uso de BaseFunctoid
Desarrollo de un functoid en línea personalizado
Desarrollo de un functoid acumulativo personalizado
Functoid personalizado (ejemplo de BizTalk Server)