Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Tous les fonctoids personnalisés doivent dériver de la classe BaseFunctoid . Vous devez d’abord remplacer le constructeur et effectuer un ensemble d’appels qui indiquent à BizTalk Mapper votre fonctoid personnalisé. Vous devez ensuite rédiger la logique du fonctoid.
Substitution du constructeur
Vous devez réaliser plusieurs tâches dans la méthode de redéfinition du constructeur de classe pour caractériser votre fonction. Ces tâches sont en plus de tout code spécifique à un fonctoid dont votre solution a besoin. Le tableau suivant décrit les tâches principales.
| Tâche | Utiliser ces méthodes ou propriétés | Commentaires |
|---|---|---|
| Affecter un ID unique au fonctoid | Identifiant | Utilisez une valeur supérieure à 6 000 qui n’a pas été utilisée. Les valeurs inférieures à 6 000 sont réservées pour une utilisation par des fonctoids internes. |
| Indiquer si le fonctoid a des effets secondaires | HasSideEffects | Utilisé par le mappeur pour optimiser le code XSLT généré. Cette propriété a la valeur true par défaut. |
| Pointer vers l’assembly de ressources | SetupResourceAssembly | Incluez un fichier de ressources avec votre projet. Si vous générez avec Visual Studio, l’assembly de ressources doit être ProjectName.ResourceName. |
| Activer le fonctoid personnalisé pour apparaître dans la palette de mappeurs BizTalk |
setName SetTooltip setDescription SetBitmap |
Utilisez un ID de ressource pointant vers une chaîne pour le nom, l’info-bulle et la description ; utilisez une bitmap de 16 x 16 pixels. |
| Affecter le fonctoid à une ou plusieurs catégories | Catégorie | Classez le functoid en utilisant une ou plusieurs valeurs de Microsoft.BizTalk.BaseFunctoids.FonctoidCategory. |
| Spécifier le nombre de paramètres acceptés |
SetMinParams SetMaxParams HasVariableInputs |
Utilisez la méthode SetMinParams pour définir le nombre de paramètres requis et la méthode SetMaxParams pour définir le nombre de paramètres facultatifs. Utilisez les instructions suivantes pour définir ces valeurs : - Si vous n’avez aucun paramètre facultatif, définissez min = max. - Si vous avez des paramètres facultatifs, définissez max = (nombre de paramètres facultatifs - nombre minimal de paramètres). - Si vous souhaitez autoriser des paramètres facultatifs illimités, ne définissez pas max. - Si vous avez un nombre variable d’entrées, ne définissez pas min ou max et définissez HasVariableInputs = true. |
| Déclarez ce qui peut se connecter à votre fonctoid | AddInputConnectionType | Appelez AddInputConnectionType une fois pour chaque Microsoft.BizTalk.BaseFunctoids.ConnectionType pris en charge par le functoid. |
| Déclarer ce que votre fonctoid peut se connecter à | OutputConnectionType | Utilisez des valeurs de Microsoft.BizTalk.BaseFunctoids.ConnectionType pour indiquer à BizTalk Mapper les types d’objets pouvant recevoir la sortie de votre fonctoid. Utilisez OR pour spécifier plusieurs types de connexion. |
| Indiquer à BizTalk Server quelles méthodes appeler pour votre fonctoid |
SetExternalFunctionName SetExternalFunctionName2 SetExternalFunctionName3 |
Pour les fonctoids cumulés, utilisez SetExternalFunctionName pour définir la fonction d’initialisation, SetExternalFunctionName2 pour définir la fonction d’accumulation et SetExternalFunctionName3 pour spécifier la fonction qui retourne la valeur cumulée. Pour les fonctoids noncumulatifs, utilisez SetExternalFunctionName pour définir la méthode fonctoid. |
| Utilisez BizTalk Server avec du code intégré pour appeler votre fonctoid. | AddScriptTypeSupport SetScriptBuffer | Appelez AddScriptTypeSupport avec Microsoft.BizTalk.BaseFunctoids.ScriptType pour activer le code inline. Appelez SetScriptBuffer pour passer le code du fonctoid. Ce code sera copié dans la carte. |
| Déclarer des variables globales pour un fonctoid en ligne | SetScriptGlobalBuffer | Toutes les déclarations effectuées seront visibles par d’autres scripts inline inclus dans la carte. |
| Indiquer les fonctions d’assistance requises par votre fonctoid inline | Fonctions d’Aide Globale Requises | Utilisez des valeurs de l’énumération InlineGlobalHelperFunction pour spécifier les fonctions d’assistance requises. Utilisez OR pour spécifier plusieurs fonctions d’assistance. |
| Valider les paramètres passés à votre fonctoid |
IsDate IsNumeric |
Ces fonctions fournissent une réponse true/false sans lever d’exception. |
Implémentation de la logique des fonctoids
Pour que le fonctuoïde soit utile, vous devez implémenter une ou plusieurs méthodes en fonction de la catégorie de fonctuoïde. Si le fonctoid est cumulatif, vous devez fournir trois méthodes : une pour l’initialisation, une pour effectuer l’accumulation et une pour retourner la valeur cumulée. Si le fonctoïde n'est pas cumulatif, vous devez fournir une méthode qui renvoie une valeur.
Vous devez également décider si le code d’implémentation du fonctoid doit être copié inline dans la carte ou conservé dans un assembly .NET compilé et utilisé par le biais d’une référence.
Envisagez d’utiliser un fonctoid inline quand :
Il est acceptable que d’autres personnes lisent et modifient potentiellement votre logique métier.
Votre fonctoid dépend uniquement des espaces de noms .NET Framework pris en charge par la carte. Pour connaître les espaces de noms disponibles, consultez Scripting Using Inline C#, JScript .NET et Visual Basic .NET.
Vous ne souhaitez pas déployer et gérer un autre assembly avec votre solution BizTalk.
Vous écrivez une série de fonctoids qui partagent des variables.
Envisagez d’utiliser un fonctoid référencé lorsque :
Vous ne souhaitez pas que votre logique métier soit copiée dans la carte où elle peut être vue ou modifiée par d’autres personnes.
Votre functoid dépend des classes .NET Framework que la carte ne prend pas en charge.
La fonctionnalité ajoutée fournie par .NET Framework justifie le déploiement et la maintenance d’un autre assembly avec votre solution BizTalk.
Voir aussi
Développement d'une fonction de référence personnalisée
Développement d’un fonctoid intégré personnalisé
Développement d’un fonctoid cumulatif personnalisé
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid