Chamando o serviço da web com tipos primitivos dentro da orquestração - não é possível mapear a mensagem de solicitação
-
24-09-2019 - |
Pergunta
Estou enfrentando esse problema ao tentar chamar um serviço de SOAP Web de dentro de uma orquestração BizTalk. O Serviço da Web é um ABAPI exposto pela SAP como um serviço da Web SOAP, e a assinatura do método da Web que eu quero ligar é algo assim:
Operation(param1 as System.String, param2 as System.String, param3 ArrayOfSomeClass)
Quando vejo os esquemas gerados, notei que apenas 'ArrayofSomeclass' e 'Someclass' foram gerados. Mas não vejo nenhum esquema que represente todo o pedido. Percebi também que um tipo de porta da web foi gerado e a mensagem de solicitação é representada como uma mensagem de várias partes. As partes desta mensagem contém todos os parâmetros escalares (param1, param2) e também a matriz.
Sei que posso usar a forma de atribuição e preencher a mensagem por código, mas não é isso que eu quero, porque gostaria de mapear outra mensagem para a solicitação de serviço da Web.
Isso é possível? Alguém teve um problema semelhante?
Desde já, obrigado!
Solução
Sua observação está correta, os esquemas não serão gerados para tipos simples e estão claramente documentados aqui e explica como você deve trabalhar com esses tipos.
http://msdn.microsoft.com/en-us/library/aa561724(bts.20).aspx
O XSD não conterá nós para tipos simples de parâmetros quando você adicionar uma referência da Web e o método da Web possui um parâmetro que é um tipo simples, o XSD gerado não conterá nós para esse parâmetro. Em vez disso, a mensagem multipart que é gerada conterá uma peça que é do tipo simples. A orquestração deve lidar com esta peça de mensagem adequadamente. Se fizer parte da solicitação ao Serviço da Web, atribua manualmente o valor a essa parte com uma forma de atribuição de mensagem. Se fizer parte da resposta do serviço da Web, acesse manualmente essa parte em forma de expressão para ver o valor.
Eu não entendi seu segundo ponto
Eu gostaria de mapear outra mensagem para a solicitação de serviço da web.