on ‎2014 Apr 11 8:25 AM
Hi Experts,
When we expose MII transaction as web service using WSDLGen,it gives predefined format of WSDL.
Now my requirement is, in that predefined WSDL format i want to add some custom methods or i want to change the format of that WSDL.
Is it possible in MII to change WSDL format?
If yes,please guide me how we can achieve it?
Thanks in advance for your help.
Regards,
Neha
Request clarification before answering.
Hi Neha,
Could you please explain a little more what for example would you like to change in the WSDL?
Can changing it in the transaction itself help?
Or maybe, you create another transaction to achieve the functionality and expose it as a web service?
Regards,
Saumya Govil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Saumya
Thank you for quick reply.
when we expose MII trx as web service,WSDL format is like below:
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.sap.com/xMII" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.sap.com/xMII">
- <!-- Types
-->
- <types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://www.sap.com/xMII">
- <s:complexType name="InputParams">
- <s:sequence id="InputSequence">
<s:element maxOccurs="1" minOccurs="0" name="WebServiceInput" type="s:string" />
</s:sequence>
</s:complexType>
+ <s:element name="XacuteRequest">
- <s:complexType>
- <s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="LoginName" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="LoginPassword" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="InputParams" type="s0:InputParams" />
</s:sequence>
</s:complexType>
</s:element>
+ <s:complexType name="Rowset">
- <s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Row" type="s0:Row" />
</s:sequence>
<s:attribute name="Message" type="s:string" />
</s:complexType>
- <s:complexType name="Row">
- <s:sequence id="RowSequence">
<s:element maxOccurs="1" minOccurs="1" name="OutPut" type="s:string" />
</s:sequence>
</s:complexType>
+ <s:element name="XacuteResponse">
- <s:complexType>
- <s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="Rowset" type="s0:Rowset" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
- <!-- Messages
-->
+ <message name="XacuteSoapIn">
<part element="s0:XacuteRequest" name="parameters" />
</message>
- <message name="XacuteSoapOut">
<part element="s0:XacuteResponse" name="parameters" />
</message>
- <!-- Ports
-->
+ <portType name="XacuteWSSoap">
- <operation name="Xacute">
<input message="s0:XacuteSoapIn" />
<output message="s0:XacuteSoapOut" />
</operation>
</portType>
- <!-- Bindings
-->
- <binding name="XacuteWSSoap" type="s0:XacuteWSSoap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="Xacute">
<soap:operation soapAction="http://www.sap.com/xMII" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <!-- Service mapping
-->
- <service name="XacuteWS">
- <port binding="s0:XacuteWSSoap" name="XacuteWSSoap">
<soap:address location="http://selumiipoc:50000/XMII/SOAPRunner/MIIPOC/Common/TRX/SetCurrentStateTrx" />
</port>
</service>
</definitions>
WebServiceInput is my input in trx and as standard format we get <operation name="Xacute">.
Similar like this if i want to add some custom metods in WSDl format generated so that m able to see that in WSDl generated then i will help me.
Regards,
Neha
Hi Neha,
Thanks for the WSDL details. I understand that your web service accepts one input parameter called WebServiceInput. Now what I an keen to know is that what kind of methods do you want to implement?
If I understand correctly, you want different options while invoking a web service. So, maybe you can provide another input parameter which is like a select option. So, when say the value of the parameter is '1', you can call a particular logic in your transaction and when '2', you call another set of logic. In this way, you can use your single transaction in a flexible ways.
If I am not able to understand you correctly, can you please provide more details so that I could propose a better solution?
Hope it helps!
Regards,
Saumya Govil
Hi Neha,
I doubt if you could change the automatically generated structure of the web service WSDL.
But I still don't understand why you need to change the method name from xAcute to something else?
Regarding adding new parameters, I think you can easily add them to the transaction behind this WSDL and generate the WSDL again. This would add the parameters automatically in the WSDL.
Hope this answers some of the queries. Else, if you could explain in detail why you need this special requirement, we could help better.
Regards,
Saumya Govil
Hi Saumya,
Yes we can not change structure of the web service WSDL.
Requirement is like:
Client have one web service developed on their side.They want us to use same as some predefined methods are useful to do configuration on their side.
So they are expecting MII web service format should be in their WSDl format.
Suggest if any alternative present.
Regards,
Neha
Hi Neha,
Thanks for the details about your requirement.
In theory I don't understand what configurations would they need as this is automatically handled in MII. So, using this WSDL should not be a problem.
My suggestion would be that you ask these specifics from the person in-charge at the client side.
Regards,
Saumya Govil
| User | Count |
|---|---|
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.