Orchestration调用Web Service的简明步骤:
1.添加Web Reference,设定wsdl地址;VS根据wsdl自动生成Web Port,xsd
2.在Port Panel中新建Port,选择已有的Web Port类型。
3.新建自动生成xsd类型的Message。
4.在Orchestration Panel上,使用Receive Shape与色Send Shape通过Web Port调用WS并接受Response消息。
如果WS没有有使用WSE,那么项目部署后与逻辑Web Port绑定的物理Port使用SOAP Adapter,Port的uri是WS的asmx地址。
如果WS中包含SOAP Header:
从Reference.xsd中,可以看到SOAPHeader类的xsd形式。但是,Orchestration不支持直接把SOAPHeader传送给Web Port。事实上,SOAPHeader部分是作为Message的Context Field部分传递的。
具体的实现方法如下:新建一个Property Schema,设置其Target Namespace属性值为:http://schemas.microsoft.com/BizTalk/2003/SOAPHeader.建立一个Property,设置其Property Schema Base属性值为MessageContextPropertyBase. 在Orchestration中可以通过Message(Property Namespace.PropertyName)来设定SOAPHeader部分的xml消息片段。
疑问:MessageContextPropertyBase类型的Property值长度不能超过255,SOAPHeader部分的长度超过255是很容易发生的????????
1.添加Web Reference,设定wsdl地址;VS根据wsdl自动生成Web Port,xsd
2.在Port Panel中新建Port,选择已有的Web Port类型。
3.新建自动生成xsd类型的Message。
4.在Orchestration Panel上,使用Receive Shape与色Send Shape通过Web Port调用WS并接受Response消息。
如果WS没有有使用WSE,那么项目部署后与逻辑Web Port绑定的物理Port使用SOAP Adapter,Port的uri是WS的asmx地址。
如果WS中包含SOAP Header:
从Reference.xsd中,可以看到SOAPHeader类的xsd形式。但是,Orchestration不支持直接把SOAPHeader传送给Web Port。事实上,SOAPHeader部分是作为Message的Context Field部分传递的。
具体的实现方法如下:新建一个Property Schema,设置其Target Namespace属性值为:http://schemas.microsoft.com/BizTalk/2003/SOAPHeader.建立一个Property,设置其Property Schema Base属性值为MessageContextPropertyBase. 在Orchestration中可以通过Message(Property Namespace.PropertyName)来设定SOAPHeader部分的xml消息片段。
疑问:MessageContextPropertyBase类型的Property值长度不能超过255,SOAPHeader部分的长度超过255是很容易发生的????????