Partager via


Création d’un service d’itinéraire personnalisé à l’aide d’une orchestration BizTalk

L’infrastructure d’itinéraire qui fait partie de Microsoft BizTalk ESB Toolkit prend en charge l’exécution d’étapes d’itinéraire à l’aide d’orchestrations. Vous pouvez implémenter un service d’itinéraire personnalisé en tant qu’orchestration Microsoft BizTalk Server en fonction de vos besoins fonctionnels, qui peuvent inclure les éléments suivants :

  • Appels de service multiples (comme illustré par l’exemple Installation et exécution de l’exemple Scatter-Gather)

  • Médiation de protocole et corrélation des messages (par exemple, HTTP-MQSeries)

  • Décisions de routage complexes basées sur l’enrichissement des messages à partir de sources de données externes

  • Logique de traitement métier

    Chaque service d’itinéraire implémenté à l’aide d’une orchestration BizTalk Server est responsable des éléments suivants :

  • Gestion des exceptions et des erreurs à l’aide de l’infrastructure de gestion des exceptions ESB ou de gestionnaires d’exceptions personnalisés facultatifs qui prennent en charge la nouvelle soumission (itinéraires unidirectionnel)

  • Progression de l’itinéraire et publication de messages sortants via BizTalk Server afin que l’étape de service d’itinéraire suivante puisse s’exécuter

Pour créer un service d’itinéraire personnalisé à l’aide d’une orchestration BizTalk Server

  1. Créez BizTalk Server projet contenant une nouvelle orchestration, par exemple MyCustomeItineraryService.odx.

  2. Ajoutez des références aux assemblys suivants :

    • Itinéraire Microsoft.Practices.ESB.Itinerary

    • Microsoft.Practices.ESB.Itinerary.Schemas

    • Microsoft.Practices.ESB.ExceptionHandling

    • Microsoft.Practices.ESB.ExceptionHandling.Faults

  3. Définissez un port de réception direct logique et une forme de réception activée dans l’orchestration.

  4. Définissez un filtre d’abonnement pour activer l’orchestration à partir du contexte d’itinéraire de message afin que l’orchestration exécute l’étape MyCustomItineraryService . Le code suivant montre un exemple de filtre approprié.

    (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName   
        == "MyCustomItineraryService")   
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState == "Pending")  
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType   
        == "Orchestration")  
    
  5. Définissez une orchestration de type Microsoft.Practices.ESB.Itinerary.ItineraryStep. Ajoutez une activité d’expression à l’orchestration qui remplit cette variable, comme indiqué dans le code suivant.

    // Retrieve the current itinerary step.  
    itinerary = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryWrapper();  
    step = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryStepWrapper();  
    
    itinerary.Itinerary = Microsoft.Practices.ESB.Itinerary.ItineraryOMFactory.Create(InboundMessage);  
    step.ItineraryStep = itinerary.Itinerary.GetItineraryStep(InboundMessage);  
    
    
  6. Ajoutez votre implémentation personnalisée à l’itinéraire qui crée le message sortant pour les étapes suivantes de l’itinéraire ; par exemple, OutboundMsg.

  7. Avancez l’itinéraire à l’aide de l’activité d’expression suivante qui utilise le contexte de message du message entrant.

    OutboundMessage(*) = InboundMessage(*);   
    itinerary.Itinerary.Advance(OutboundMessage, itineraryStep.ItineraryStep);  
    
  8. Envoyez le message sortant avec l’itinéraire mis à jour via un port d’envoi direct pour activer le service d’itinéraire suivant.

    Pour plus d’informations sur l’implémentation d’un service d’itinéraire personnalisé à l’aide de BizTalk Server orchestrations, consultez Installation et exécution de l’exemple Itinerary On-Ramp et Installation et exécution de l’exemple Scatter-Gather.