Partager via


SubmitDirect (exemple BizTalk Server)

L’exemple SubmitDirect montre comment envoyer par programmation des messages unidirectionnel et des messages de demande/réponse à Microsoft BizTalk Server à partir de . Applications basées sur NET. L’exemple illustre l’utilisation des API BizTalk Server pour les adaptateurs. Il fournit également un adaptateur de réception, nommé Submit, qui peut être utilisé pour envoyer des messages à BizTalk Server.

Prérequis

Avant d'exécuter cet exemple, assurez-vous que vous avez ouvert une session en tant qu'utilisateur membre du groupe Utilisateurs d'hôtes BizTalk isolés.

Fonctions de l'exemple

Cet exemple montre comment effectuer diverses tâches liées aux adaptateurs BizTalk. Plus précisément, il montre comment :

  • Utilisez des adaptateurs isolés qui s’exécutent en dehors du processus BizTalk Server. L’adaptateur d’envoi est un adaptateur isolé, car il est créé par un processus externe au processus BizTalk Server (vous le démarrez en tant qu’application .NET).

  • Envoyez des lots de messages à BizTalk Server. L'adaptateur Submit utilise la fonctionnalité d'envoi de messages par lot pour envoyer plusieurs messages à la fois.

  • Envoyer des messages de façon synchrone à l'aide d'un paradigme de requête/réponse, ainsi que de façon asynchrone à l'aide d'un paradigme unidirectionnel.

  • Inscrire un adaptateur avec BizTalk Server. Cet exemple montre comment enregistrer un adaptateur et fournit un exécutable d'enregistrement qui automatise l'enregistrement d'un adaptateur.

    Cet exemple est en fait deux exemples dans un, comme suit :

  • Envoi d'un lot de messages unidirectionnels. L’application console SubmitMessages.exe prend les chaînes de sa ligne de commande et les envoie sous forme de message distinct à BizTalk Server. Chacun de ces messages envoyés est récupéré à l’emplacement de réception par BizTalk Server, envoyé via des pipelines de réception et d’envoi pass-through, puis écrits dans un fichier texte.

  • Envoi d'un message de requête/réponse. L’application console SubmitRequest.exe prend le fichier .xml spécifié sur sa ligne de commande et le soumet à BizTalk Server. Le schéma de ce fichier .xml définit les éléments qui contiennent deux champs d'entier. BizTalk Server récupère le fichier .xml et le traite avec une orchestration (avec un port de requête/réponse). Il utilise un mappage pour produire un message de réponse XML qui renvoie un entier, produit des deux entiers dans la requête. Lorsque la console reçoit la réponse, elle affiche le résultat.

Accès à l'exemple

<Chemin d’accès> des exemples\AdaptersDevelopment\SubmitDirect\

Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.

Fichier(s) Description
Cleanup.bat Annule le déploiement des assemblys et les supprime du GAC, supprime les ports d'envoi et de réception, ainsi que les répertoires virtuels Microsoft Internet Information Services.
Setup.bat Crée et initialise l'exemple.
SubmitDirect.sln Fichier de solution qui inclut le projet BizTalk dans le dossier ProcessRequest et les projets Microsoft Visual C# dans les autres dossiers.
SubmitMessagesBinding.xml, SubmitRequestBinding.xml Utilisé pour une configuration automatisée, telle que la liaison de port.
Dans le dossier \ProcessRequest :

DocIn.xsd, DocOut.xsd, Multiplier.odx, Multiply.btm, ProcessRequest.btproj
Fournit un projet BizTalk qui effectue la multiplication des entiers dans le scénario de requête/réponse.
Dans le dossier \SubmitMessages :

AssemblyInfo.cs, SubmitMessages.cs, SubmitMessages.csproj
Fournit un projet Visual C# pour la console qui transmet ses paramètres de chaîne de ligne de commande en tant que lot de messages séparés.
Dans le dossier \SubmitRequest :

AssemblyInfo.cs, DocInstance.xml, SubmitRequest.cs, SubmitRequest.csproj
Fournit un projet C# pour la console qui transmet un fichier .xml (DocInstance.xml) contenant deux entiers à multiplier.
Dans le dossier \TransportProxyUtils :

AssemblyInfo.cs, MessageHelper.cs, MessagingAPIInterface.cs, MessagingAPIs.cs, ResponseCallBack.cs, TpBatchAsyncCallback.cs, TpBatchAsyncResult.cs, TpBatchStatus.cs, TransportProxyUtils.csproj
Fournit un projet C# pour la partie exécution de l'adaptateur Submit qui implémente des méthodes d'envoi de messages synchrone et asynchrone, et d'envoi de lot et de message de requête simple.
Dans le dossier \TransportProxyUtilsReg :

AssemblyInfo.cs, RegisterAdapter.cs, TransportProxyUtilsReg.csproj
Fournit un projet Visual C# qui illustre le code que vous pouvez utiliser pour inscrire des adaptateurs avec BizTalk Server.
Dans le dossier \TransportProxyUtilsUI :

AssemblyInfo.cs, TransportProxyUtilsMgmt.cs, TransportProxyUtilsUI.csproj
Fournit un projet Visual C# pour la partie interface utilisateur de l'adaptateur Submit.

Création et initialisation de l'exemple

Pour créer et initialiser l'exemple SubmitDirect

  1. Dans une fenêtre de commande, accédez au dossier suivant :

    <Chemin d’accès> des exemples\AdaptersDevelopment\SubmitDirect

  2. Exécutez le fichier Setup.bat, qui effectue les actions suivantes :

    • Crée le dossier de sortie suivant pour la partie envoi de lot de cet exemple.

      <Chemin d’accès> des exemples\AdaptersDevelopment\SubmitDirect\Out

    • Compile les différents projets Visual Studio pour cet exemple.

    • Inscrit l’adaptateur d’envoi avec BizTalk Server.

    • Crée et lie les BizTalk Server emplacements de réception et les ports d’envoi et de réception.

      Notes

      Cet exemple affiche les avertissements suivants lors de la création et de la liaison des ports :

      Warning: Receive handler not specified for receive location "SubmitDirectRL"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; updating with first available host.

      Vous pouvez ignorer ces avertissements sans problème. (Pour s'adapter aux éventuelles différences d'attribution de noms dans les installations utilisateur, le nom d'hôte et le gestionnaire de réception ont été omis dans le fichier de liaison.)

    • Active les emplacements de réception et démarre les ports d'envoi et l'orchestration.

      Notes

      Avant d'essayer d'exécuter cet exemple, vous devez vous assurer que BizTalk Server n'a signalé aucune erreur lors du processus de création et d'initialisation.

      Notes

      Si vous décidez d'ouvrir et de créer les projets de cet exemple sans exécuter le fichier Setup.bat, vous devez commencer par créer une paire de clés de nom fort à l'aide de .NET Framework Strong Name Utility (sn.exe). Celle-ci permet de signer les assemblys obtenus.

      Notes

      Pour annuler les modifications effectuées par Setup.bat, exécutez Cleanup.bat. Vous devez exécuter Cleanup.bat avant d'exécuter Cleanup.bat une seconde fois.

Exécution de l'exemple

Puisque cet exemple utilise l'adaptateur FILE, l'hôte BizTalk (BizTalkServerApplication) doit être en cours d'exécution. Les procédures suivantes permettent d'exécuter l'exemple SubmitDirect.

Pour exécuter la partie envoi de lot de l'exemple SubmitDirect

  1. Dans une fenêtre de commande, accédez au dossier suivant :

    <Chemin d’accès> des exemples\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug

  2. Exécutez le fichier SubmitMessages.exe, en transmettant plusieurs chaînes sur la ligne de commande.

    Exemple : SubmitMessages msg1 msg2 msg3

  3. Observez les plusieurs fichiers texte créés dans le dossier de sortie Out. Ces fichiers contiennent les chaînes passées sur la ligne de commande, une par fichier.

Pour exécuter la partie requête/réponse de l'exemple SubmitDirect

  1. Dans une fenêtre de commande, accédez au dossier suivant :

    <Chemin d’accès> des exemples\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug

  2. Exécutez le fichier SubmitRequest.exe, en transmettant un nom de fichier .xml approprié sur la ligne de commande.

    Exemple : SubmitRequest.. \.. \DocInstance.xml

  3. Observez le message de réponse XML, contenant le résultat de la multiplication, affiché dans la console.

Commentaires

Vous pouvez utiliser l'adaptateur Submit dans d'autres applications. Vous pouvez l’utiliser à partir de n’importe quel . Code basé sur NET pour envoyer des messages à votre BizTalk Server par programmation. Pour utiliser cet adaptateur avec votre code, respectez la procédure suivante.

Pour utiliser l'exemple d'adaptateur avec votre code

  1. Inscrivez l’adaptateur d’envoi auprès de votre BizTalk Server. Si vous avez exécuté le fichier Setup.bat fourni avec cet exemple, l'adaptateur doit être enregistré et prêt à l'emploi. Sinon, vous pouvez l'enregistrer en créant les projets TransportProxyUtils.csproj, TransportProxyUtilsUI.csproj et TransportProxyUtilsReg.csproj, puis en exécutant l'exécutable produit par le projet RegisterAdapter.exe.

    Important

    Si vous installez BizTalk sur un ordinateur 64 bits, remplacez toutes les instances de l’entrée de Registre HKEY_CLASSES_ROOT\CLSID\ par HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ dans le fichier RegisterAdapter.cs .

  2. Créez un port de réception avec un emplacement de réception qui utilise l'adaptateur Submit. Spécifiez l'adresse de l'emplacement de réception. L'adresse peut être toute chaîne unique parmi les emplacements de réception qui utilisent cet adaptateur.

  3. Référencez l’assembly Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll dans votre projet Visual Studio.

  4. Envoyez des messages à votre BizTalk Server à l’aide d’une ou plusieurs des méthodes suivantes fournies par cet assembly.

    Méthode(s) Description
    SubmitMessage()

    BeginSubmitMessage()

    EndSubmitMessage()
    Méthodes synchrones et asynchrones pour envoyer un message unidirectionnel à BizTalk Server. L’adresse de l’emplacement de réception où le message est envoyé doit être définie sur le contexte du message.

    Une valeur booléenne indiquant l'état de l'envoi (réussite/échec) est renvoyée.
    SubmitMessages()

    BeginSubmitMessages()

    EndSubmitMessages()
    Méthodes synchrones et asynchrones pour envoyer un tableau de messages unidirectionnel à BizTalk Server. Les adresses des emplacements de réception où les messages sont envoyés doivent être définies dans le contexte des messages.

    Une valeur booléenne indiquant l'état de l'envoi (réussite/échec) est renvoyée.
    SubmitSyncMessage()

    BeginSubmitSyncMessage()

    EndSubmitSyncMessage()
    Méthodes synchrones et asynchrones pour envoyer un message de demande à BizTalk Server. L'adresse de l'emplacement de réception où le message est envoyé doit être définie dans le contexte du message.

    Le message de réponse est renvoyé.
    CreateMessageFromString() Crée un objet message BizTalk Server à partir d’une chaîne et définit la propriété d’adresse d’emplacement de réception sur le contexte du message.

    Renvoie un objet de message BizTalk.
    CreateMessageFromStream() Crée un objet de message BizTalk Server à partir d’un flux et définit la propriété d’adresse d’emplacement de réception sur le contexte du message.

    Retourne un objet message BizTalk Server.

    Pour plus de détails sur les paramètres et les types de retours pour ces méthodes, consultez le fichier MessagingAPIInterface.cs dans le dossier TransportProxyUtils.

Voir aussi

Exemples d’adaptateurs- Développement
Inscription d’un adaptateur