cancel
Showing results for 
Search instead for 
Did you mean: 

BMC Remedy and SAP integration question

david_milano
Explorer
0 Kudos

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

Accepted Solutions (0)

Answers (2)

Answers (2)

david_milano
Explorer
0 Kudos

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

david_milano
Explorer
0 Kudos

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

Former Member
0 Kudos

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

david_milano
Explorer
0 Kudos

Hi WIlliam,

No I am stuck as well and trying to figure this out let me know if you find anything else

Thanks

Dave

Former Member
0 Kudos

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