I'm in the process of importing and recompiling a BTS 2009 project in BTS 2013 to stay within the Microsoft support life cycle.
This was developed by former developers using BTS 2009, Visual Studio 2008 on Windows XP first and later moved to Windows 7. The compiled solution is deployed in a Windows 2008 R2 server. For this exercise, I'm using Visual Studio 2013, BizTalk Server 2013 on Windows 7 all with latest Service Packs.
The solution has four projects - one each for schemas, maps, pipelines and orchestrations.
The schema project references a .ASMX web service, as a 'Web Reference' (not Service Reference). The ASMX's Response XML looks like this:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GenerateSalesIDResponse xmlns="http://Company.Integration.SalesIDGenerator/">
<GenerateSalesIDResult>
<SalesID>string</SalesRefID>
<SalesIDInASCII>string</SalesRefIDInASCII>
<IsError>boolean</IsError>
<ErrorMessage>string</ErrorMessage>
<StackTrace>string</StackTrace>
</GenerateSalesIDResult>
</GenerateSalesIDResponse>
</soap12:Body>
</soap12:Envelope>
In one of the orchestrations, there is a Message Assignment Shape where the expression is like this:
Msg_OrderOutputForHTML.Exception = Msg_SalesRefIDResponse.GenerateSalesIDResult.ErrorMessage;
Msg_OrderOutputForHTML.StackTrace = Msg_SalesRefIDResponse.GenerateSalesIDResult.StackTrace;
The problem before me is that, the elements ErrorMessage
, StackTrace
and all of their sibling elements in the above XML are not available for the BizTalk Expression editor. Intellisense works upto GenerateSalesIDResult
but not after that, for any of the XML elements after that.
The error message is - identifier 'StackTrace' does not exist in 'Msg_SalesIDReponse.GenerateSalesIDResult'; are you missing an assembly reference?
What should I do in order to resolve this? Please help.
Note - I know ASMX is not recommended any more, but changing that to an equivalent WCF Service will require a lot of non-technical effort on my part :-)
Update 1:
The Reference.xsd looks like the following:
<?xml version="1.0"?>
<xs:schema xmlns:tns="http://Company.Integration.SalesIDGenerator/" elementFormDefault="qualified" targetNamespace="http://Company.Integration.SalesIDGenerator/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SalesIDGen" nillable="true" type="tns:SalesIDGen" />
<xs:complexType name="SalesIDGen">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="SalesID" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="SalesIDInASCII" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="IsError" type="xs:boolean" />
<xs:element minOccurs="0" maxOccurs="1" name="ErrorMessage" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="StackTrace" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
Update 2: The same project if I open in VS2008, doesn't have this problem.