how to setting BPEL assign variable's - wsdl

there's my bpel process picture
http://imageshack.com/a/img661/5192/tuwh8i.jpg
first Invoke Partner link parameters are
<element minOccurs="0" name="currDateE" type="xs:dateTime"/>
<element minOccurs="0" name="currDateS" type="xs:dateTime"/>
<element minOccurs="0" name="disc_cond_id" type="xs:int"/>
<element minOccurs="0" name="disc_condition" type="xs:string"/>
<element minOccurs="0" name="disc_conditions" type="xs:string"/>
<element minOccurs="0" name="disc_end_date" type="xs:dateTime"/>
<element minOccurs="0" name="disc_end_time" type="xs:dateTime"/>
<element minOccurs="0" name="disc_logic" type="xs:string"/>
<element minOccurs="0" name="disc_name" type="xs:string"/>
<element minOccurs="0" name="disc_service_id" type="xs:int"/>
<element minOccurs="0" name="disc_start_date" type="xs:dateTime"/>
<element minOccurs="0" name="disc_start_time" type="xs:dateTime"/>
<element minOccurs="0" name="disc_type_id" type="xs:int"/>
<element minOccurs="0" name="discount_value" type="xs:int"/>
<element minOccurs="0" name="insert_org_id" type="xs:int"/>
<element minOccurs="0" name="isic_code" type="xs:string"/>
<element minOccurs="0" name="lang_id" type="xs:string"/>
<element minOccurs="0" name="org_id" type="xs:long"/>
<element minOccurs="0" name="serv_disc_id" type="xs:int"/>
<element minOccurs="0" name="service_id" type="xs:int"/>
<element minOccurs="0" name="tm_desc" type="xs:string"/>
<element minOccurs="0" name="tm_id" type="xs:int"/>
<element minOccurs="0" name="tm_name" type="xs:string"/>
<element minOccurs="0" name="tm_pid" type="xs:int"/>
<element minOccurs="0" name="tm_type" type="xs:int"/>
<element minOccurs="0" name="values_type" type="xs:int"/>
next Invoke (Invoke1) parameters are
<element minOccurs="0" name="c_price" type="xs:decimal"/>
<element minOccurs="0" name="customer_id" type="xs:long"/>
<element minOccurs="0" name="dcopl_id" type="xs:int"/>
<element minOccurs="0" name="discount_count" type="xs:int"/>
<element minOccurs="0" name="discount_flag" type="xs:int"/>
<element minOccurs="0" name="mt_id" type="xs:int"/>
<element minOccurs="0" name="n_price" type="xs:decimal"/>
<element minOccurs="0" name="order_id" type="xs:int"/>
<element minOccurs="0" name="orderpay_id" type="xs:int"/>
<element minOccurs="0" name="ot_name" type="xs:string"/>
<element minOccurs="0" name="pay_flag" type="xs:int"/>
<element minOccurs="0" name="pay_price" type="xs:decimal"/>
<element minOccurs="0" name="pay_type" type="xs:int"/>
<element minOccurs="0" name="payment_org_id" type="xs:long"/>
i just want first invoke disc_cond_id setting to next invoke orderpay_id

Related

Importing new process definition with "witadmin importprocessconfig" in TFS has no effect, and no error message

After I customized the WIT definitions of an Agile process template, I got an TF400917 error trying to access the Backlogs in TFS. According to https://msdn.microsoft.com/library/hh500413.aspx I have to update the process config (which makes sense), but this is where I got issues.
I updated and imported the process config file with witadmin importprocessconfig. The operation completed and I got no error messages after a few tries. Though the process definition is still not updated on the server. I can see that it's still the old file by exporting it with witadmin exportprocessconfig.
Can anyone give me a tip on what could be wrong, or what I can do next to try to update the file?
See Categories XML below.
Creating new WIT's, changing their states and working with queries work fine.
I have updated the categories definition to see if that would help. It worked fine to import the file but did not solve the problem.
I'm running VS 2015 with power tools, and I think the TFS server is 2013.
Best regards
Qanik
New process config XML (which did not work)
<?xml version="1.0" encoding="ibm850"?>
<ProjectProcessConfiguration>
<BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
<States>
<State type="Proposed" value="New" />
<State type="InProgress" value="Programming" />
<State type="InProgress" value="Testing" />
<State type="Complete" value="Done" />
<State type="Resolved" value="Released" />
</States>
</BugWorkItems>
<FeedbackRequestWorkItems category="Microsoft.FeedbackRequestCategory" pluralName="Feedback Requests" singularName="Feedback Request">
<States>
<State type="InProgress" value="Active" />
<State type="Complete" value="Closed" />
</States>
</FeedbackRequestWorkItems>
<FeedbackResponseWorkItems category="Microsoft.FeedbackResponseCategory" pluralName="Feedback Responses" singularName="Feedback Response">
<States>
<State type="InProgress" value="Active" />
<State type="Complete" value="Closed" />
</States>
</FeedbackResponseWorkItems>
<PortfolioBacklogs>
<PortfolioBacklog category="Microsoft.FeatureCategory" pluralName="Features" singularName="Feature" workItemCountLimit="500">
<AddPanel>
<Fields>
<Field refname="System.Title" />
</Fields>
</AddPanel>
<Columns>
<Column width="100" refname="System.WorkItemType" />
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="50" refname="Microsoft.VSTS.Common.BusinessValue" />
<Column width="200" refname="System.Tags" />
</Columns>
<States>
<State type="Proposed" value="New" />
<State type="InProgress" value="In Progress" />
<State type="InProgress" value="Done" />
<State type="Complete" value="Relesed" />
</States>
</PortfolioBacklog>
</PortfolioBacklogs>
<RequirementBacklog category="Microsoft.RequirementCategory" parent="Microsoft.FeatureCategory" pluralName="Stories" singularName="User Story" workItemCountLimit="500">
<AddPanel>
<Fields>
<Field refname="System.Title" />
</Fields>
</AddPanel>
<Columns>
<Column width="100" refname="System.WorkItemType" />
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="50" refname="Microsoft.VSTS.Scheduling.StoryPoints" />
<Column width="200" refname="System.IterationPath" />
<Column width="200" refname="System.Tags" />
</Columns>
<States>
<State type="Proposed" value="New" />
<State type="Proposed" value="Redy for development" />
<State type="InProgress" value="Programming" />
<State type="InProgress" value="Testing" />
<State type="InProgress" value="Done" />
<State type="Complete" value="Released" />
</States>
</RequirementBacklog>
<TaskBacklog category="Microsoft.TaskCategory" parent="Microsoft.RequirementCategory" pluralName="Tasks" singularName="Task" workItemCountLimit="500">
<AddPanel>
<Fields>
<Field refname="System.Title" />
</Fields>
</AddPanel>
<Columns>
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="100" refname="System.AssignedTo" />
<Column width="50" refname="Microsoft.VSTS.Scheduling.RemainingWork" />
</Columns>
<States>
<State type="Proposed" value="To do" />
<State type="InProgress" value="In Progress" />
<State type="Complete" value="Done" />
</States>
</TaskBacklog>
<TypeFields>
<TypeField refname="Microsoft.VSTS.Common.Activity" type="Activity" />
<TypeField refname="Microsoft.VSTS.Common.StackRank" type="Order" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationLaunchInstructions" type="ApplicationLaunchInstructions" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationType" type="ApplicationType">
<TypeFieldValues>
<TypeFieldValue type="ClientApp" value="Client application" />
<TypeFieldValue type="RemoteMachine" value="Remote machine" />
<TypeFieldValue type="WebApp" value="Web application" />
</TypeFieldValues>
</TypeField>
<TypeField format="{0} h" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="RemainingWork" />
<TypeField refname="Microsoft.VSTS.Scheduling.StoryPoints" type="Effort" />
<TypeField refname="System.AreaPath" type="Team" />
</TypeFields>
<Weekends>
<DayOfWeek>Sunday</DayOfWeek>
<DayOfWeek>Saturday</DayOfWeek>
</Weekends>
<WorkItemColors>
<WorkItemColor primary="FFCC293D" secondary="FFFAEAE5" name="Bug" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Code Review Request" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Code Review Response" />
<WorkItemColor primary="FF773B93" secondary="FFEEE2F2" name="Feature" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Feedback Request" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Feedback Response" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Issue" />
<WorkItemColor primary="FF773B93" secondary="FFEEE2F2" name="Requirement" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Shared Parameter" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Shared Steps" />
<WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Task" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Case" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Plan" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Suite" />
<WorkItemColor primary="FF009CCC" secondary="FFD6ECF2" name="User Story" />
</WorkItemColors>
</ProjectProcessConfiguration>
Updates in the category XML (which did take effect).
<CATEGORY refname="Microsoft.FeatureCategory" name="Feature Category">
**<DEFAULTWORKITEMTYPE name="Requirement" />
<WORKITEMTYPE name="Feature" />
<WORKITEMTYPE name="Theme" />**
</CATEGORY>
<CATEGORY refname="Microsoft.HiddenCategory" name="Hidden Types Category">
<DEFAULTWORKITEMTYPE name="Code Review Request" />
<WORKITEMTYPE name="Code Review Response" />
**<WORKITEMTYPE name="Feature" />**
<WORKITEMTYPE name="Feedback Request" />
<WORKITEMTYPE name="Feedback Response" />
<WORKITEMTYPE name="Shared Steps" />
<WORKITEMTYPE name="Shared Parameter" />
<WORKITEMTYPE name="Test Plan" />
<WORKITEMTYPE name="Test Suite" />
</CATEGORY>
<CATEGORY refname="Microsoft.RequirementCategory" name="Requirement Category">
When the error occurs, you can go to your TFS server "Computer Management\System Tools\Applications and Services Logs\Microsoft-Team Foundation Server\Debug". The logs should be generated for the error and you can check it for the root cause.

TFS 2013.4 Reporting a TF400917 error

When I go to my scrum page in TFS 2013.4 I get the following error
TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration
The following element contains an error: PortfolioBacklog(Microsoft.FeatureCategory)/States. TF400587: This element defines the states for work items that appear on your backlog. Each state must exist in at least one of the work item types belong to category defined in: 'PortfolioBacklog(Microsoft.FeatureCategory)/States'. The following state does not exist in any of the work item types: In Progress.
As a side question does anyone have a best practices guideline to backup configs and or restore the defaults?
When I export my proccessconfig I get the following xml file
<?xml version="1.0" encoding="utf-8"?>
<ProjectProcessConfiguration>
<BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
<States>
<State type="Proposed" value="New" />
<State type="Proposed" value="Approved" />
<State type="InProgress" value="Committed" />
<State type="Complete" value="Done" />
</States>
</BugWorkItems>
<FeedbackRequestWorkItems category="Microsoft.FeedbackRequestCategory" pluralName="Feedback Requests" singularName="Feedback Request">
<States>
<State type="InProgress" value="Active" />
<State type="Complete" value="Closed" />
</States>
</FeedbackRequestWorkItems>
<FeedbackResponseWorkItems category="Microsoft.FeedbackResponseCategory" pluralName="Feedback Responses" singularName="Feedback Response">
<States>
<State type="InProgress" value="Active" />
<State type="Complete" value="Closed" />
</States>
</FeedbackResponseWorkItems>
<PortfolioBacklogs>
<PortfolioBacklog category="Microsoft.FeatureCategory" pluralName="Features" singularName="Feature">
<AddPanel>
<Fields>
<Field refname="System.Title" />
</Fields>
</AddPanel>
<Columns>
<Column width="100" refname="System.WorkItemType" />
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="50" refname="Microsoft.VSTS.Common.BusinessValue" />
<Column width="200" refname="System.Tags" />
</Columns>
<States>
<State type="Proposed" value="New" />
<State type="InProgress" value="In Progress" />
<State type="Complete" value="Done" />
</States>
</PortfolioBacklog>
</PortfolioBacklogs>
<RequirementBacklog category="Microsoft.RequirementCategory" parent="Microsoft.FeatureCategory" pluralName="Backlog items" singularName="Backlog item">
<AddPanel>
<Fields>
<Field refname="System.Title" />
<Field refname="System.AreaPath" />
</Fields>
</AddPanel>
<Columns>
<Column width="100" refname="System.WorkItemType" />
<Column width="100" refname="System.AreaPath" />
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="50" refname="Microsoft.VSTS.Scheduling.Effort" />
<Column width="200" refname="System.IterationPath" />
<Column width="200" refname="System.Tags" />
</Columns>
<States>
<State type="Proposed" value="New" />
<State type="Proposed" value="Approved" />
<State type="InProgress" value="Committed" />
<State type="Complete" value="Done" />
</States>
</RequirementBacklog>
<TaskBacklog category="Microsoft.TaskCategory" parent="Microsoft.RequirementCategory" pluralName="Tasks" singularName="Task">
<AddPanel>
<Fields>
<Field refname="System.Title" />
</Fields>
</AddPanel>
<Columns>
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="100" refname="System.AssignedTo" />
<Column width="50" refname="Microsoft.VSTS.Scheduling.RemainingWork" />
</Columns>
<States>
<State type="Proposed" value="To Do" />
<State type="InProgress" value="In Progress" />
<State type="Complete" value="Done" />
</States>
</TaskBacklog>
<TypeFields>
<TypeField refname="Microsoft.VSTS.Common.Activity" type="Activity" />
<TypeField refname="Microsoft.VSTS.Common.BacklogPriority" type="Order" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationLaunchInstructions" type="ApplicationLaunchInstructions" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationType" type="ApplicationType">
<TypeFieldValues>
<TypeFieldValue type="ClientApp" value="Client application" />
<TypeFieldValue type="RemoteMachine" value="Remote machine" />
<TypeFieldValue type="WebApp" value="Web application" />
</TypeFieldValues>
</TypeField>
<TypeField refname="Microsoft.VSTS.Scheduling.Effort" type="Effort" />
<TypeField format="{0} h" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="RemainingWork" />
<TypeField refname="System.AreaPath" type="Team" />
</TypeFields>
<Weekends>
<DayOfWeek>Sunday</DayOfWeek>
<DayOfWeek>Saturday</DayOfWeek>
</Weekends>
<WorkItemColors>
<WorkItemColor primary="FFCC293D" secondary="FFFAEAE5" name="Bug" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Code Review Request" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Code Review Response" />
<WorkItemColor primary="FF773B93" secondary="FFEEE2F2" name="Feature" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Feedback Request" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Feedback Response" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Impediment" />
<WorkItemColor primary="FF009CCC" secondary="FFD6ECF2" name="Product Backlog Item" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Shared Parameter" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Shared Steps" />
<WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Task" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Case" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Plan" />
<WorkItemColor primary="FFFF9D00" secondary="FFFCEECF" name="Test Suite" />
</WorkItemColors>
</ProjectProcessConfiguration>
First you should put your process template under source control. I usually do this by downloading the full process template and sticking it in a Git repo. However make sure you only go one way, from Source to TFS as extra fields are in the "witadmin exportwitd".
Second, you have to have each of the states in your work item added to the Process Configuration. If you add a state to a work item that exists in a board then you have to also add it to the config above.

Cfx wsdl2java generates - 'The nested type Item cannot hide an enclosing type'

Im trying to generate a WS client using CXF, however the generated classes have errors, in particular I am getting the following error:
The nested type Item cannot hide an enclosing type
Are there anyone CXF settings to deal with such situations?
The wsdl that I am using is:
<?xml version ='1.0' encoding='UTF-8' ?>
<wsdl:types>
<xsd:schema targetNamespace="http://example.org/AppGateway">
<xsd:element name="ErrorResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="item" maxOccurs="unbounded"
minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="key">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="isSuccess" />
<xsd:enumeration value="errorCode" />
<xsd:enumeration value="errorMessage" />
<xsd:enumeration value="method" />
<xsd:enumeration value="msg" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="value">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="item" maxOccurs="unbounded"
minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element type="xsd:string" name="key" />
<xsd:element type="xsd:string" name="value" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<message name="TestApiRequest">
<part name="username" type="xsd:anyType" />
<part name="password" type="xsd:anyType" />
</message>
<message name="TestApiResponse">
<part name="Result" type="xsd:anyType" />
</message>
<message name="GetApiErrorListRequest">
<part name="username" type="xsd:string" />
<part name="password" type="xsd:string" />
</message>
<message name="GetApiErrorListResponse">
<wsdl:part name="Result" element="tns:ErrorResult"></wsdl:part>
</message>
<message name="AddTraderRecordRequest">
<part name="username" type="xsd:anyType" />
<part name="password" type="xsd:anyType" />
<part name="traderRecord" type="xsd:anyType" />
</message>
<message name="AddTraderRecordResponse">
<part name="Result" type="xsd:anyType" />
</message>
<portType name="AppGatewayPortType">
<operation name="TestApi">
<input message="tns:TestApiRequest" />
<output message="tns:TestApiResponse" />
</operation>
<operation name="GetApiErrorList">
<input message="tns:GetApiErrorListRequest" />
<output message="tns:GetApiErrorListResponse" />
</operation>
<operation name="AddTraderRecord">
<input message="tns:AddTraderRecordRequest" />
<output message="tns:AddTraderRecordResponse" />
</operation>
</portType>
<!-- Service definition -->
<wsdl:binding name="AppGatewayBinding" type="tns:AppGatewayPortType">
<soap:binding style="document"
required="true" />
<wsdl:operation name="TestApi">
<soap:operation soapAction="http://example.org/AppGateway/TestApi" style="document"/>
<wsdl:input>
<soap:body use="literal" type="soap:tBody"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" type="soap:tBody" required="true" parts="Result "/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetApiErrorList">
<soap:operation soapAction="http://example.org/AppGateway/GetApiErrorList" style="document"/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="AddTraderRecord">
<soap:operation soapAction="http://example.org/AppGateway/AddTraderRecord" style="document"/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AppGatewayEndpointService">
<wsdl:port name="AppGatewayService" binding="tns:AppGatewayBinding">
<http:address
location="https://myserviceprovider.com/v1.1/SoapServer.php?className=AppGateway" />
</wsdl:port>
</wsdl:service>

QBWC WSDL missing

My QBWC app has been working fine but I got notified this morning by accounting that it had suddenly stopped working. Specifically it was failing to authenticate. I checked the QWCLog.txt and found this
20130510.14:25:19 UTC : QBWebConnector.SOAPWebService.do_authenticate() : QBWC1012: Authentication failed due to following error message.
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl' : failed to load external entity "http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl"
That's a new one (and I have extended error logging on so I can see full calls). So I went to the WSDL file and find... it's 404?!
I even tried one of my AWS instances to make sure it's not just me
wget http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl
--2013-05-10 15:10:50-- http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl
Resolving developer.intuit.com (developer.intuit.com)... 206.108.40.170
Connecting to developer.intuit.com (developer.intuit.com)|206.108.40.170|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-05-10 15:10:51 ERROR 404: Not Found.
Anyone else getting this? Is there a new URL I don't know about? I just need to get this working again.
The link to the QBWC WSDL within the QuickBooks Web Connector Programmer’s Guide is still returning a 404. This post on the Intuit support board indicates you can download a (presumably) up to date version of the WSDL here.
I agree that this problem currently exists.
This helped me:
Old Code:
$server = new SoapServer($wsdl_url);
New Code:
$server = new SoapServer('file:///home/to/wsdl/file');
And this is the what I have in my wsdl file:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://developer.intuit.com/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://developer.intuit.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://developer.intuit.com/">
<s:element name="authenticate">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="strUserName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strPassword" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="authenticateResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="authenticateResult" type="tns:ArrayOfString" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
<!-- added these two methods -->
<s:element name="serverVersion">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="strVersion" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="serverVersionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="serverVersionResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="clientVersion">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="strVersion" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="clientVersionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="clientVersionResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="sendRequestXML">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strHCPResponse" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strCompanyFileName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="qbXMLCountry" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="qbXMLMajorVers" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="qbXMLMinorVers" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="sendRequestXMLResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="sendRequestXMLResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="receiveResponseXML">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="response" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="hresult" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="receiveResponseXMLResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="receiveResponseXMLResult" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="connectionError">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="hresult" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="connectionErrorResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="connectionErrorResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getLastError">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getLastErrorResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getLastErrorResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="closeConnection">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="closeConnectionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="closeConnectionResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="authenticateSoapIn">
<wsdl:part name="parameters" element="tns:authenticate" />
</wsdl:message>
<wsdl:message name="authenticateSoapOut">
<wsdl:part name="parameters" element="tns:authenticateResponse" />
</wsdl:message>
<!-- added this part -->
<wsdl:message name="serverVersionSoapIn">
<wsdl:part name="parameters" element="tns:serverVersion" />
</wsdl:message>
<wsdl:message name="serverVersionSoapOut">
<wsdl:part name="parameters" element="tns:serverVersionResponse" />
</wsdl:message>
<wsdl:message name="clientVersionSoapIn">
<wsdl:part name="parameters" element="tns:clientVersion" />
</wsdl:message>
<wsdl:message name="clientVersionSoapOut">
<wsdl:part name="parameters" element="tns:clientVersionResponse" />
</wsdl:message>
<wsdl:message name="sendRequestXMLSoapIn">
<wsdl:part name="parameters" element="tns:sendRequestXML" />
</wsdl:message>
<wsdl:message name="sendRequestXMLSoapOut">
<wsdl:part name="parameters" element="tns:sendRequestXMLResponse" />
</wsdl:message>
<wsdl:message name="receiveResponseXMLSoapIn">
<wsdl:part name="parameters" element="tns:receiveResponseXML" />
</wsdl:message>
<wsdl:message name="receiveResponseXMLSoapOut">
<wsdl:part name="parameters" element="tns:receiveResponseXMLResponse" />
</wsdl:message>
<wsdl:message name="connectionErrorSoapIn">
<wsdl:part name="parameters" element="tns:connectionError" />
</wsdl:message>
<wsdl:message name="connectionErrorSoapOut">
<wsdl:part name="parameters" element="tns:connectionErrorResponse" />
</wsdl:message>
<wsdl:message name="getLastErrorSoapIn">
<wsdl:part name="parameters" element="tns:getLastError" />
</wsdl:message>
<wsdl:message name="getLastErrorSoapOut">
<wsdl:part name="parameters" element="tns:getLastErrorResponse" />
</wsdl:message>
<wsdl:message name="closeConnectionSoapIn">
<wsdl:part name="parameters" element="tns:closeConnection" />
</wsdl:message>
<wsdl:message name="closeConnectionSoapOut">
<wsdl:part name="parameters" element="tns:closeConnectionResponse" />
</wsdl:message>
<wsdl:portType name="QBWebConnectorSvcSoap">
<!-- add this chunk -->
<wsdl:operation name="serverVersion">
<wsdl:input message="tns:serverVersionSoapIn" />
<wsdl:output message="tns:serverVersionSoapOut" />
</wsdl:operation>
<wsdl:operation name="clientVersion">
<wsdl:input message="tns:clientVersionSoapIn" />
<wsdl:output message="tns:clientVersionSoapOut" />
</wsdl:operation>
<wsdl:operation name="authenticate">
<wsdl:input message="tns:authenticateSoapIn" />
<wsdl:output message="tns:authenticateSoapOut" />
</wsdl:operation>
<wsdl:operation name="sendRequestXML">
<wsdl:input message="tns:sendRequestXMLSoapIn" />
<wsdl:output message="tns:sendRequestXMLSoapOut" />
</wsdl:operation>
<wsdl:operation name="receiveResponseXML">
<wsdl:input message="tns:receiveResponseXMLSoapIn" />
<wsdl:output message="tns:receiveResponseXMLSoapOut" />
</wsdl:operation>
<wsdl:operation name="connectionError">
<wsdl:input message="tns:connectionErrorSoapIn" />
<wsdl:output message="tns:connectionErrorSoapOut" />
</wsdl:operation>
<wsdl:operation name="getLastError">
<wsdl:input message="tns:getLastErrorSoapIn" />
<wsdl:output message="tns:getLastErrorSoapOut" />
</wsdl:operation>
<wsdl:operation name="closeConnection">
<wsdl:input message="tns:closeConnectionSoapIn" />
<wsdl:output message="tns:closeConnectionSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="QBWebConnectorSvcSoap" type="tns:QBWebConnectorSvcSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<!-- this too was added... -->
<wsdl:operation name="serverVersion">
<soap:operation soapAction="http://developer.intuit.com/serverVersion" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="clientVersion">
<soap:operation soapAction="http://developer.intuit.com/clientVersion" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="authenticate">
<soap:operation soapAction="http://developer.intuit.com/authenticate" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sendRequestXML">
<soap:operation soapAction="http://developer.intuit.com/sendRequestXML" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="receiveResponseXML">
<soap:operation soapAction="http://developer.intuit.com/receiveResponseXML" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="connectionError">
<soap:operation soapAction="http://developer.intuit.com/connectionError" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getLastError">
<soap:operation soapAction="http://developer.intuit.com/getLastError" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="closeConnection">
<soap:operation soapAction="http://developer.intuit.com/closeConnection" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="QBWebConnectorSvc">
<wsdl:port name="QBWebConnectorSvcSoap" binding="tns:QBWebConnectorSvcSoap">
<soap:address location="https://idn.vogelfam.net/QBMSDonorSample/QBWebConnectorSvc.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Create WSO2 Proxy based on WSDL with mandatory header

In my scenario a have a webservice "SolverDummyWS" running in WSO2-AS, and want to generate a Proxy for this Service inside WSO2 ESB.
Therefore I created a wsdl for the proxy manually, and added some mandatory header fields. So only the wsdl of the proxy should have this headers. The headers should all be mandatory and defined als EXPLICIT HEADERS.
Proxy-WSDL looks like this:
<wsdl:definitions name="SolverDummyProxy"
targetNamespace="http://de.unistuttgart.iaas" xmlns:tns="http://de.unistuttgart.iaas"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema targetNamespace="http://de.unistuttgart.iaas"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="createGrid">
<complexType>
<sequence>
<element minOccurs="0" name="milliseconds" type="long" />
</sequence>
</complexType>
</element>
<element name="createGridResponse">
<complexType>
<sequence>
<element minOccurs="0" name="return" type="string" />
</sequence>
</complexType>
</element>
<element name="requestHeader">
<complexType>
<sequence>
<element minOccurs="1" name="simulationId" type="long" />
<element minOccurs="1" name="activityId" type="long" />
<element minOccurs="1" name="requiredPolicy" type="anyType" />
<element minOccurs="1" name="requiredPortType" type="string" />
<element minOccurs="1" name="requiredScope" type="anyURI" />
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="createGridRequest">
<wsdl:part name="body" element="tns:createGrid" />
<wsdl:part name="reqHeader" element="tns:requestHeader" />
</wsdl:message>
<wsdl:message name="createGridResponse">
<wsdl:part name="body" element="tns:createGridResponse" />
</wsdl:message>
<wsdl:portType name="SolverDummyProxyWSPortType">
<wsdl:operation name="createGrid">
<wsdl:input message="tns:createGridRequest" />
<wsdl:output message="tns:createGridResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SolverDummyProxyWSSoap11Binding" type="tns:SolverDummyProxyWSPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="createGrid">
<wsdl:input>
<soap:body parts="body" use="literal" />
<soap:header message="tns:createGridRequest" part="reqHeader"
use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="body" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="SolverDummyProxyWSSoap12Binding" type="tns:SolverDummyProxyWSPortType">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="createGrid">
<wsdl:input>
<soap12:body parts="body" use="literal" />
<soap12:header message="tns:createGridRequest" part="reqHeader"
use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body parts="body" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SolverDummyProxyWS">
<wsdl:port name="SolverDummyProxyWSSoap11Endpoint" binding="tns:SolverDummyProxyWSSoap11Binding">
<soap:address location="http://localhost:8280/services/SolverDummyProxyWS.SolverDummyProxyWSSoap11Endpoint" />
</wsdl:port>
<wsdl:port name="SolverDummyProxyWSSoap12Endpoint" binding="tns:SolverDummyProxyWSSoap12Binding">
<soap12:address location="http://localhost:8280/services/SolverDummyProxyWS.SolverDummyProxyWSSoap12Endpoint" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
So i create a Proxy using the WSO2-ESB Webinterface. If I have a look at the actual WSDL of the created Proxy, I see that WSO2-ESB did some changes:
- Added HTTP Binding
- Removed header-part from createGridRequest message
- messed soap:input in bindings (there are two header definitions, and the body part was removed)
WSDL-modified by WSO2-ESB
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:tns="http://de.unistuttgart.iaas" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://de.unistuttgart.iaas">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://de.unistuttgart.iaas">
<element name="createGrid">
<complexType>
<sequence>
<element minOccurs="0" name="milliseconds" type="long" />
</sequence>
</complexType>
</element>
<element name="createGridResponse">
<complexType>
<sequence>
<element minOccurs="0" name="return" type="string" />
</sequence>
</complexType>
</element>
<element name="requestHeader">
<complexType>
<sequence>
<element name="simulationId" type="long" />
<element name="activityId" type="long" />
<element name="requiredPolicy" type="anyType" />
<element name="requiredPortType" type="string" />
<element name="requiredScope" type="anyURI" />
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="createGridRequest">
<wsdl:part name="body" element="tns:createGrid" />
</wsdl:message>
<wsdl:message name="createGridResponse">
<wsdl:part name="body" element="tns:createGridResponse" />
</wsdl:message>
<wsdl:portType name="SolverDummyProxyHWSPortType">
<wsdl:operation name="createGrid">
<wsdl:input message="tns:createGridRequest" wsaw:Action="http://de.unistuttgart.iaas/SolverDummyProxyWSPortType/createGridRequest" />
<wsdl:output message="tns:createGridResponse" wsaw:Action="http://de.unistuttgart.iaas/SolverDummyProxyWSPortType/createGridResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SolverDummyProxyHWSSoap11Binding" type="tns:SolverDummyProxyHWSPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createGrid">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
<soap12:header use="literal" part="reqHeader" message="tns:createGridRequest" />
<soap12:header use="literal" part="reqHeader" message="tns:createGridRequest" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="SolverDummyProxyHWSSoap12Binding" type="tns:SolverDummyProxyHWSPortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createGrid">
<soap12:operation soapAction="" style="document" />
<wsdl:input>
<soap12:body use="literal" />
<soap12:header use="literal" part="reqHeader" message="tns:createGridRequest" />
<soap12:header use="literal" part="reqHeader" message="tns:createGridRequest" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="SolverDummyProxyHWSHttpBinding" type="tns:SolverDummyProxyHWSPortType">
<http:binding verb="POST" />
<wsdl:operation name="createGrid">
<http:operation location="createGrid" />
<wsdl:input>
<mime:content type="text/xml" part="parameters" />
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="parameters" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SolverDummyProxyHWS">
<wsdl:port name="SolverDummyProxyHWSHttpSoap11Endpoint" binding="tns:SolverDummyProxyHWSSoap11Binding">
<soap:address location="http://Tobiass-MacBook-Pro.local:8280/services/SolverDummyProxyHWS.SolverDummyProxyHWSHttpSoap11Endpoint" />
</wsdl:port>
<wsdl:port name="SolverDummyProxyHWSHttpsSoap11Endpoint" binding="tns:SolverDummyProxyHWSSoap11Binding">
<soap:address location="https://Tobiass-MacBook-Pro.local:8243/services/SolverDummyProxyHWS.SolverDummyProxyHWSHttpsSoap11Endpoint" />
</wsdl:port>
<wsdl:port name="SolverDummyProxyHWSHttpSoap12Endpoint" binding="tns:SolverDummyProxyHWSSoap12Binding">
<soap12:address location="http://Tobiass-MacBook-Pro.local:8280/services/SolverDummyProxyHWS.SolverDummyProxyHWSHttpSoap12Endpoint" />
</wsdl:port>
<wsdl:port name="SolverDummyProxyHWSHttpsSoap12Endpoint" binding="tns:SolverDummyProxyHWSSoap12Binding">
<soap12:address location="https://Tobiass-MacBook-Pro.local:8243/services/SolverDummyProxyHWS.SolverDummyProxyHWSHttpsSoap12Endpoint" />
</wsdl:port>
<wsdl:port name="SolverDummyProxyHWSHttpsEndpoint" binding="tns:SolverDummyProxyHWSHttpBinding">
<http:address location="https://Tobiass-MacBook-Pro.local:8243/services/SolverDummyProxyHWS.SolverDummyProxyHWSHttpsEndpoint" />
</wsdl:port>
<wsdl:port name="SolverDummyProxyHWSHttpEndpoint" binding="tns:SolverDummyProxyHWSHttpBinding">
<http:address location="http://Tobiass-MacBook-Pro.local:8280/services/SolverDummyProxyHWS.SolverDummyProxyHWSHttpEndpoint" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
This code does not have mandatory headers, so my initial purpose of creating initial headers was messed up by wso2-esb.
Can somebody tell my how I can add mandatory headers to a proxy service (this would be the case if my initial wsdl file has errors)?
If my initial wsdl-file was ok, how can I enforce wso2-esb to use this file, and do not modify it?!?
Last question, is there another way of creating mandatory headers, for a request to a proxy?
Thanks for your answers!
<parameter name="useOriginalwsdl">true</parameter>
Try to put this parameter to your proxy service to display the wsdl as it is. Processing the soap headers should be done at the proxy service level using mediators.

Resources