Vamos analisar mais detalhado o serviço de transformação incluindo um exemplo de código. Primeiramente vamos analisar como usar este serviço. De modo geral, podemos definir o seguinte cenário: uma mensagem de entrada precisa ser transformada em uma mensagem nova baseado em um mapa de transformação. Este serviço pode ser consumido em conjunto com o serviço de iterações para garantir a interoperabilidade entre diferentes serviços.
Produtos:
Descrição:
EndPoint: /ESB.TransformServices.WCF/TransformationService.svc">http://<server>/ESB.TransformServices.WCF/TransformationService.svc
O exemplo abaixo mostra um mapa de transformação de uma mensagem do tipo “Material Scanner Output” para uma do tipo “MaterialBatchMaster”, que é um formato definido dentro do schema do destino com “Functoids” (funções aplicadas na transformação de campos que ajudam na definição das transformações necessárias como concatenações, somatórios ou scripts mais complexos). A criação de um novo mapa de transformação é feito com o Visual Studio 2008 e as ferramentas de desenvolvimento BizTalk 2009. Os mapas de transformações são executados diretamente usando os assemblies registrados no GAC – Global Assembly Cache.
1: private static void ChamaEsbGuidanceTransformServiceHardcode()
2: {
3: Console.WriteLine("Chamar Serviço de Transformação");
4: TransformationServiceClient client =new TransformationServiceClient
("WSHttpBinding_ITransformationService");
5: try
6: {
7: XmlDocument TestDoc = new XmlDocument();
8: TestDoc.LoadXml("<InputOutput xmlns=\"http://ESBTest_Para_ESB_Transformado\">
<TestId>1</TestId><StageIndicator>Completed</StageIndicator></TestOutput>");
9: string xmlString = TestDoc.SaidaXml;
10: string mapa = "ESBTest_Para_ESB_Transformado,ESBTest, Version=1.0.0.0,
Culture=neutral,PublicKeyToken=112202d160c201ec";
11: string resultString = client.Transform(xmlString, mapa);
12: Console.WriteLine(resultString);
13: client.Close();
14: }
15: catch (System.ServiceModel.CommunicationException) { client.Abort();
16: }
17: catch (System.TimeoutException) { client.Abort(); }
18: catch (System.Exception) { client.Abort(); throw; }
19: Console.WriteLine("done");
20: Console.ReadLine();
21: }
1. Gerar um Proxy para o serviço de transformação do “Enterprise Service Bus” 2. Passar uma referência do mapa de transformação para executar 3. Transformação da mensagem de entrada via um mapa de transformação referenciada no código 4. Linha de comando mostra a mensagem transformada
Na semana que vem, vamos falar mais sobre as outras capacidades do “BizTalk ESB Toolkit 2.0”
Microsoft BizTalk ESB Toolkit 2.0 Ref.: http://msdn.microsoft.com/en-us/dd876606.aspx
O pacote está disponível no link a seguir:
Download BizTalk ESB Toolkit 2.0 Ref.: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bc86cf1e-ef29-4b19-95f7-388f64555090
Abraço Markus