on 08-09-2011 7:23 PM
Hello Gurus,
My client would like to integrate BMC Remedy and SAP via Web Services, The steps we took to achieve this were:
1) Went into BMC Remedy Developers studio and created a WSDL file with the selected forms we would like to pull into SAP
2) Tested this in SOAPUI 4.0 which worked perfectly and gave us the results we were looking for
3) Went into SAP, Created Proxy in SE80 using the WSDL file, Created port in LPCONFIG and activated
When we go to test this is SE80 however and we input the same parameters that are in SOAPUI 4.0 we are getting the error below:
SOAP:1001 CX_SXML_PARSE_ERROR:SXML reader/writer exception. Error while parsing on the XML stream: undeclared Namespace
To me it appears that SAP is having an issue reading the URN instead of Http but that is what BMC is spitting out when you create a WSDL file in thier BMC developers studio
Here is my WSDL file below and is there something that needs to be changed in this file so that SAP can parse the information??
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="urn:WSDL_CRQ_TM_BADI" xmlns:s0="urn:WSDL_CRQ_TM_BADI" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <xsd:schema elementFormDefault="qualified" targetNamespace="urn:WSDL_CRQ_TM_BADI">
<xsd:element name="New_GetList_Operation_0" type="s0:InputMapping1" />
+ <xsd:complexType name="InputMapping1">
- <xsd:sequence>
<xsd:element name="Qualification" type="xsd:string" />
<xsd:element name="startRecord" type="xsd:string" />
<xsd:element name="maxLimit" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="New_GetList_Operation_0Response" type="s0:OutputMapping1" />
- <xsd:complexType name="OutputMapping1">
- <xsd:sequence>
<xsd:element minOccurs="0" name="Request_id" type="xsd:string" />
<xsd:element name="Change_Req_Status" type="s0:Change_Req_StatusType" />
<xsd:element name="Description" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
- <xsd:simpleType name="Change_Req_StatusType">
- <xsd:restriction base="xsd:string">
<xsd:enumeration value="Draft" />
<xsd:enumeration value="Request For Authorization" />
<xsd:enumeration value="Request For Change" />
<xsd:enumeration value="Planning In Progress" />
<xsd:enumeration value="Scheduled For Review" />
<xsd:enumeration value="Scheduled For Approval" />
<xsd:enumeration value="Scheduled" />
<xsd:enumeration value="Implementation In Progress" />
<xsd:enumeration value="Pending" />
<xsd:enumeration value="Rejected" />
<xsd:enumeration value="Completed" />
<xsd:enumeration value="Closed" />
<xsd:enumeration value="Cancelled" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="AuthenticationInfo" type="s0:AuthenticationInfo" />
- <xsd:complexType name="AuthenticationInfo">
- <xsd:sequence>
<xsd:element name="userName" type="xsd:string" />
<xsd:element name="password" type="xsd:string" />
<xsd:element minOccurs="0" name="authentication" type="xsd:string" />
<xsd:element minOccurs="0" name="locale" type="xsd:string" />
<xsd:element minOccurs="0" name="timeZone" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
- <wsdl:message name="New_GetList_Operation_0SoapIn">
<wsdl:part element="s0:New_GetList_Operation_0" name="parameters" />
</wsdl:message>
- <wsdl:message name="New_GetList_Operation_0SoapOut">
<wsdl:part element="s0:New_GetList_Operation_0Response" name="parameters" />
</wsdl:message>
- <wsdl:message name="ARAuthenticate">
<wsdl:part element="s0:AuthenticationInfo" name="parameters" />
</wsdl:message>
- <wsdl:portType name="New_Port_0PortType">
- <wsdl:operation name="New_GetList_Operation_0">
<wsdl:input message="s0:New_GetList_Operation_0SoapIn" />
<wsdl:output message="s0:New_GetList_Operation_0SoapOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="New_Port_0SoapBinding" type="s0:New_Port_0PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="New_GetList_Operation_0">
<soap:operation soapAction="urn:WSDL_CRQ_TM_BADI/New_GetList_Operation_0" style="document" />
- <wsdl:input>
<soap:header message="s0:ARAuthenticate" part="parameters" use="literal" />
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WSDL_CRQ_TM_BADIService">
- <wsdl:port binding="s0:New_Port_0SoapBinding" name="New_Port_0Soap">
<soap:address location="http://phl-sbx207:8080/arsys/services/ARService?server=PHL-SBX207&webService=WSDL_CRQ_TM_BADI" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Edited by: David Milano on Aug 9, 2011 8:23 PM
Edited by: David Milano on Aug 9, 2011 8:25 PM
Edited by: David Milano on Aug 9, 2011 8:26 PM
Some more info on this.....Please recommend any suggestions
System expected end of element 'Qualification'
Exception of class CX_ST_MATCH_ELEMENT
16.08.2011 - 19:58:06 CET - Info for SAP by David Milano
When we test the client proxy I have setup ZTESTCO_NEW_PORT_0PORT_TYPE
that points to a logical port New_Port_0PortType in se80. we get the
below information to input our parameters to connect to Remedy.
- <n0:New_GetList_Operation_0 xmlns:n0="urn:WSDL_TM_CHG_BADI">
<n0:Qualification>This is a string 1</n0:Qualification>
<n0:startRecord>This is a string 2</n0:startRecord>
<n0:maxLimit>This is a string 3</n0:maxLimit>
</n0:New_GetList_Operation_0>
After inputting the parameter string in <n0:Qualification>"Change
Status = 4"</n0:Qualification>
it appears we are missing something because when we test we get an
ERROR BELOW:
SoapFaultCode:1
System expected end of element 'Qualification'
Exception of class CX_ST_MATCH_ELEMENT
and when we hit continue and look at the Original
request tab we are sending the below info?? Shouldn't we be sending
some other header info or additional payload info
- <n0:New_GetList_Operation_0 xmlns:n0="urn:WSDL_TM_CHG_BADI"
xmlns:prx="urn:sap.com:proxy:SMP:/1SAI/TAS6A8D48C8896FC69A01EE:701:2008/06/06">
<n0:Qualification>This is a string 1</n0:Qualification>
<n0:startRecord>This is a string 2</n0:startRecord>
<n0:maxLimit>This is a string 3</n0:maxLimit>
</n0:New_GetList_Operation_0>
WE are trying to get this setup for months to no
avail. WHAT DO WE NEED ADDITIONAL IN SAP SO THAT IT CAN PULL DATA FROM
REMEDY. When we try the WSDL file in Web services navigator it works
and provides info back! so what is it on the ABAP side that we need so
that this can communicate?? We have the following port NEW_PORT_0SOAP
setup in the WSDl file, SOAMANAGER, LPCONFIG and we have a RFC
connection to the remedy server setup and tested OK.
Thanks
Dave
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is my WSDL file below and is there something that needs to be changed in this file so that SAP can parse the information??
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="urn:WSDL_CRQ_TM_BADI" xmlns:s0="urn:WSDL_CRQ_TM_BADI" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <xsd:schema elementFormDefault="qualified" targetNamespace="urn:WSDL_CRQ_TM_BADI">
<xsd:element name="New_GetList_Operation_0" type="s0:InputMapping1" />
+ <xsd:complexType name="InputMapping1">
- <xsd:sequence>
<xsd:element name="Qualification" type="xsd:string" />
<xsd:element name="startRecord" type="xsd:string" />
<xsd:element name="maxLimit" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="New_GetList_Operation_0Response" type="s0:OutputMapping1" />
- <xsd:complexType name="OutputMapping1">
- <xsd:sequence>
<xsd:element minOccurs="0" name="Request_id" type="xsd:string" />
<xsd:element name="Change_Req_Status" type="s0:Change_Req_StatusType" />
<xsd:element name="Description" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
- <xsd:simpleType name="Change_Req_StatusType">
- <xsd:restriction base="xsd:string">
<xsd:enumeration value="Draft" />
<xsd:enumeration value="Request For Authorization" />
<xsd:enumeration value="Request For Change" />
<xsd:enumeration value="Planning In Progress" />
<xsd:enumeration value="Scheduled For Review" />
<xsd:enumeration value="Scheduled For Approval" />
<xsd:enumeration value="Scheduled" />
<xsd:enumeration value="Implementation In Progress" />
<xsd:enumeration value="Pending" />
<xsd:enumeration value="Rejected" />
<xsd:enumeration value="Completed" />
<xsd:enumeration value="Closed" />
<xsd:enumeration value="Cancelled" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="AuthenticationInfo" type="s0:AuthenticationInfo" />
- <xsd:complexType name="AuthenticationInfo">
- <xsd:sequence>
<xsd:element name="userName" type="xsd:string" />
<xsd:element name="password" type="xsd:string" />
<xsd:element minOccurs="0" name="authentication" type="xsd:string" />
<xsd:element minOccurs="0" name="locale" type="xsd:string" />
<xsd:element minOccurs="0" name="timeZone" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
- <wsdl:message name="New_GetList_Operation_0SoapIn">
<wsdl:part element="s0:New_GetList_Operation_0" name="parameters" />
</wsdl:message>
- <wsdl:message name="New_GetList_Operation_0SoapOut">
<wsdl:part element="s0:New_GetList_Operation_0Response" name="parameters" />
</wsdl:message>
- <wsdl:message name="ARAuthenticate">
<wsdl:part element="s0:AuthenticationInfo" name="parameters" />
</wsdl:message>
- <wsdl:portType name="New_Port_0PortType">
- <wsdl:operation name="New_GetList_Operation_0">
<wsdl:input message="s0:New_GetList_Operation_0SoapIn" />
<wsdl:output message="s0:New_GetList_Operation_0SoapOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="New_Port_0SoapBinding" type="s0:New_Port_0PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="New_GetList_Operation_0">
<soap:operation soapAction="urn:WSDL_CRQ_TM_BADI/New_GetList_Operation_0" style="document" />
- <wsdl:input>
<soap:header message="s0:ARAuthenticate" part="parameters" use="literal" />
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WSDL_CRQ_TM_BADIService">
- <wsdl:port binding="s0:New_Port_0SoapBinding" name="New_Port_0Soap">
<soap:address location="http://phl-sbx207:8080/arsys/services/ARService?server=PHL-SBX207&webService=WSDL_CRQ_TM_BADI" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Edited by: David Milano on Aug 9, 2011 8:23 PM
Edited by: David Milano on Aug 9, 2011 8:25 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I'm having the same problem, but I made some processes:
1 -> Enable the Web service successfully.
2 -> I created a connection type "HTTP" that are connecting successfully and returning the WSDL response that was created in BMC.
3 -> I created a logic gate "LPCONFIG transaction" with success.
4 -> In the configuration of the transaction presents ICTCONF connection error and I can not move forward from this point forward.
Would you know if you miss anything else?
Thanks
Hi, David!
I'll there is a solution provided by the BMC from the version 7.5 but unfortunately in my case the current version is 7.01 so we can not use it. If in your case the version is higher than it's worth a look.
See the link: http://www.bmc.com/events/on-demand/11-Integrating-BMC-Remedy-Service-Desk-and-SAP-Solution-Manager....
William Rodrigues
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.