Étape 12 : Configurer des formes d’orchestration
Au cours de cette étape, vous effectuez la configuration des formes d’orchestration afin de supprimer les balises actives de configuration insuffisantes. Vous désignez DoorbellOutputMessage comme sortie du premier processus de transformation, en désignant DoorbellMap.btm comme carte utilisée dans ce processus. Vous désignez ensuite DoorbellFinalMessage comme sortie du deuxième processus de transformation et ajoutez l’expression qui enrichit le message avec des données de champ supplémentaires.
Pour configurer des formes d’orchestration
Dans l’aire du mode Création d’orchestration de Visual Studio, cliquez sur la forme ConstructMessage_1 .
Dans la fenêtre Propriétés , cliquez sur la propriété Messages construits , sélectionnez DoorbellOutputMessage dans la liste déroulante, puis appuyez sur Entrée.
Dans l’aire du mode Création de l’orchestration, cliquez sur la forme DoorbellTransform à l’intérieur de la forme ConstructMessage_1 . Dans la fenêtre Propriétés , cliquez sur Nom de la carte, puis sur le bouton de sélection (...) dans le champ d’attribut.
Dans la boîte de dialogue Configuration de la transformation, sélectionnez Carte existante. Dans la liste déroulante Nom de la carte complète , cliquez sur BTAHL7_Project.DoorbellMap.
Cliquez sur Source dans le volet gauche.
Cliquez sur la zone vide sous Nom de la variable , puis cliquez sur DoorBellInputMessage dans la liste déroulante.
Cliquez sur Destination dans le volet gauche.
Cliquez sur la zone vide sous Nom de la variable , puis cliquez sur DoorbellOutputMessage dans la liste déroulante.
Cliquez sur OK pour enregistrer les modifications.
Dans l’aire du mode Création de l’orchestration, cliquez sur la forme ConstructMessage_2 .
Dans la fenêtre Propriétés , cliquez sur Messages construits, sélectionnez DoorbellFinalMessage dans la liste déroulante, puis appuyez sur Entrée.
Dans l’aire du mode Création d’orchestration, cliquez sur la forme DoorbellFinalTransform à l’intérieur de la forme ConstructMessage_2 . Dans la fenêtre Propriétés , cliquez sur Expression, puis sur le bouton de sélection (...) pour ouvrir l’Éditeur d’expressions BizTalk.
Dans l’Éditeur d’expressions BizTalk, cliquez dans le champ de texte et collez le texte suivant :
HeaderInfo = new System.Xml.XmlDocument(); HeaderInfo.LoadXml("<ns0:MSH_25_GLO_DEF xmlns:ns0=\"http://microsoft.com/HealthCare/HL7/2X\"> <MSH><MSH.2_EncodingCharacters>^~\\&</MSH.2_EncodingCharacters><MSH.3_SendingApplication> <HD.0_NamespaceId>SrcApp</HD.0_NamespaceId><HD.1_UniversalId>SrcAppUid</HD.1_UniversalId> </MSH.3_SendingApplication><MSH.4_SendingFacility><HD.0_NamespaceId>srcFac</HD.0_NamespaceId> <HD.1_UniversalId>srcFacUid</HD.1_UniversalId></MSH.4_SendingFacility><MSH.5_ReceivingApplication> <HD.0_NamespaceId>dstApp</HD.0_NamespaceId><HD.1_UniversalId>dstAppUid</HD.1_UniversalId> </MSH.5_ReceivingApplication><MSH.6_ReceivingFacility><HD.0_NamespaceId>dstFac</HD.0_NamespaceId> <HD.1_UniversalId>dstFacUid</HD.1_UniversalId></MSH.6_ReceivingFacility><MSH.7_DateTimeOfMessage> <TS.1>200307092343</TS.1></MSH.7_DateTimeOfMessage><MSH.8_Security>sec</MSH.8_Security> <MSH.9_MessageType><CM_MSG.0_MessageType>ADT</CM_MSG.0_MessageType> <CM_MSG.1_TriggerEvent>A04</CM_MSG.1_TriggerEvent></MSH.9_MessageType> <MSH.10_MessageControlId>msgid2134</MSH.10_MessageControlId><MSH.11_ProcessingId> <PT.0_ProcessingId>P</PT.0_ProcessingId></MSH.11_ProcessingId><MSH.12_VersionId> <VID_0_VersionId>2.2</VID_0_VersionId></MSH.12_VersionId></MSH></ns0:MSH_25_GLO_DEF>"); DoorbellFinalMessage.MSHSegment = HeaderInfo; DoorbellFinalMessage.BodySegments = DoorbellOutputMessage; DoorbellFinalMessage.ZSegments = ""; DoorbellFinalMessage(BTAHL7Schemas.MSH1) = 124; DoorbellFinalMessage(BTAHL7Schemas.MessageEncoding) = 65001; DoorbellFinalMessage(BTAHL7Schemas.MSH2) = "^~\\&"; DoorbellFinalMessage(BTAHL7Schemas.ParseError) = false; DoorbellFinalMessage(BTAHL7Schemas.ZPartPresent) = false; DoorbellFinalMessage(BTAHL7Schemas.SegmentDelimiter2Char) = true;
Cliquez sur OK.
Important
Dans l’expression « HeaderInfo.LoadXml », supprimez les retours chariot et les espaces dans l’expression. L’instruction « HeaderInfo.LoadXml » doit se trouver sur une seule ligne.
Notes
Le premier bloc du texte précédent est un exemple d’en-tête XML codé en dur. Le sérialiseur BTAHL7 nécessite un segment d’en-tête. Vous pouvez personnaliser ces valeurs d’en-tête en fonction des besoins de votre environnement. Le deuxième bloc du texte précédent définit les trois parties de message requises dans un message en plusieurs parties. Le sérialiseur BTAHL7 nécessite un message en plusieurs parties. Le troisième bloc du texte précédent contient les propriétés promues que le sérialiseur BTAHL7 examine afin de sérialiser un message XML dans un message de fichier plat HL7.