Soap fault message handling in XI
Hi,
I am using axis 1.4. SAP XI is my clinet. My wsdl file as below
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://ws.example.com/service"
xmlns:wns="http://ws.example.com/service"
xmlns:tns="http://ws.exampleenterprise.com"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://ws.exampleenterprise.com"
elementFormDefault="qualified">
<xs:complexType name="SecrtySbj">
<xs:sequence>
<xs:element name="usrname" type="xs:string"/>
<xs:element name="pswrd" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AuthenticateRequest">
<xs:sequence>
<xs:element name="secrtySbj" type="tns:SecrtySbj"/>
</xs:sequence>
</xs:complexType>
<xs:element name="authenticateRequest" type="tns:AuthenticateRequest"/>
<xs:complexType name="AuthenticateResponse" >
<xs:sequence>
<xs:element name="sessnId" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="authenticateResponse" type="tns:AuthenticateResponse"/>
<xs:complexType name="customFault">
<xs:sequence>
<xs:element name="customCd" type="xs:int"/>
<xs:element name="customMsg" type="xs:string" minOccurs="0"/>
<xs:element name="customExcp" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="customFault" type="tns:customFault"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="authRequest">
<wsdl:part name="parameters" element="tns:authenticateRequest"/>
</wsdl:message>
<wsdl:message name="authResponse">
<wsdl:part name="result" element="tns:authenticateResponse"/>
</wsdl:message>
<wsdl:message name="CustomFault">
<wsdl:part name="CustomFault" element="tns:customFault"/>
</wsdl:message>
<wsdl:portType name="AuthenticateServiceInterface">
<wsdl:operation name="authenticate">
<wsdl:input message="wns:authRequest" />
<wsdl:output message="wns:authResponse" />
<wsdl:fault name="CustomFault" message="wns:CustomFault"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AuthenticateServiceSoapBinding" type="wns:AuthenticateServiceInterface">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="authenticate">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CustomFault" >
<soap:fault name="CustomFault" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AuthenticateServiceService">
<wsdl:port name="AuthenticateService" binding="wns:AuthenticateServiceSoapBinding">
<soap:address location="http://10.236.14.6:8080/axis/services/AuthenticateService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Axis generates the soap fault as below in detail tag as below
<ns1:customFault xmlns:ns1="http://ws.examplenterprise.com">
<ns1:customCd>123</ns1:customCd>
<ns1:customMsg>Password is wrong</ns1:customMsg>
<ns1:customExcp>CustomException</ns1:customExcp>
</ns1:customFault>
They are getting error like below while getting the fault message.
<SAP:ApplicationFaultMessage namespace="http://ws.exampleenterprise.com">customFault<SAP:ApplicationFaultMessage>
Question: Why it is throwing "ApplicationFaultMessage" for fault messages? is there any error in wsdl file in defining the elements? or style has to be different? or is it an namespace issue in the wsdl?
Note: They are able to do it sucessfull for the response message.
Hi,
The answer is in your Question itself.
XI Sequence
1.First step is to identify the wsdl:Message element with the namespace http://ws.example.com/service
2.The next step is to go to the part element in http://ws.exampleenterprise.com and map the fault message.
To be simple in your case http://ws.example.com/service is the namespace of Fault Message and http://ws.exampleenterprise.com is the namespace of the fault message payload (Fault XML Message).
So even though the Fault XML Message has the namespace http://ws.exampleenterprise.com ,but if the fault namespace doesnot come with http://ws.example.com/service then Fault will not be triggered and processed in XI.
I hope you get the difference between the two namespaces used and the implications of them.
Fault is entirely different from respone.
Its like exception in java. If you donot catch the correct exception, will the exception raised be caught? Similarly if your SOAP service doesnot invoke the fault message with correct namespace (http://ws.example.com/service ), you cannot invoke/catch the fault message in XI.
Regards,
Sudharshan N A
Similar Messages
-
Handling SOAP Fault Message in BPM
Hello XI SDN'ers,
I am getting SOAP Fault Message in my SOAP Scenario and I am not aware of Handling that error in my BPM. Could any one tell me, How to handle such error's in BPM?
Thanks & Regards,
Satish.hi satesh
using "exception handler" in BPM we can handle the error messages
regards
kummari -
PI 7.1 Adapter Module Development - Identify SOAP Fault Message
Hi Experts,</br>
here's a PI 7.1 Adapter Module Development issue I hope you can help me to resolve. It's about identifying SOAP fault messages.</br>
</br>
Scenario at a glance:</br>
Adapter Modules placed in the modules chain at request and response time in a synchronous Scenario:</br>
- Request: SOAP Axis to RFC </br>
- Response and Fault Response: RFC to SOAP Axis</br>
</br>
The issue is how to identify SOAP fault message in SOAP Axis Adapter Module in the response message:</br>
The client gets SOAP fault messages like the follwong one:</br>
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<ns1:exception xmlns:ns1="http://typen.geschaeftsstelle.pab.barmer.de">
<ns1:errortext>bla bla bla ...</ns1:errortext>
</ns1:exception>
</detail>
</SOAP:Fault>
</SOAP:Body>
</br>
</br>
But when trying to access the tags faultcode and/or faultstring in the adapter module via xPath expressions I do not get them. Obviously the SOAP Fault tags are built AFTER the adapter module has been passed. So my question is:</br>
How can I clearly/uniquely detect a SOAP fault response message (and distinguish it from a "normal" response message) in my SOAP Axis Adapter Module?</br>
</br>
I tried it the following way:</br>
</br>
</br>
// Check Message Payload for SOAP Fault Message via xPath expressions</br>
...</br>
// SOAP Fault Code</br>
zv_xPression = zc_constXPattern.replaceFirst("&", "faultcode");</br>
zv_soapFaultCode = XPathAPI.eval(zv_doc, (String) zv_xPression).toString();</br>
// SOAP Fault String</br>
zv_xPression = zc_constXPattern.replaceFirst("&", "faultstring");</br>
zv_soapFaultString = XPathAPI.eval(zv_doc, (String) zv_xPression).toString();</br>
// check for SOAP Fault Message</br>
if (zv_soapFaultCode.equals("") && zv_soapFaultString.equals("")) {</br>
// Create Audit Log entry - NOT a SOAP Fault Message</br>
zv_msgText = zc_constModuleName + " 0190: xPath - OK! This message is NOT a SOAP Fault Message";</br>
zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.SUCCESS, zv_msgText);</br>
zv_faultCheck = false;</br>
}</br>
else {</br>
...</br>
// Create Audit Log entry - SOAP Fault Message</br>
zv_msgText = zc_constModuleName </br>
+ " 0200: xPath - this message is a SOAP Fault Message. " </br>
+ " - Faultcode is: " + zv_soapFaultCode </br>
+ " - Faultstring is: " + zv_soapFaultString; </br>
zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.ERROR, zv_msgText);</br>
...</br>
}</br>
...</br>
</br></br>
But zv_soapFaultCode and zv_soapFaultString are always empty (with other payload tags this coding works fine).</br>
</br>
Any ideas? </br></br>
Thanx very much in advance!</br></br>
Regards,</br>
VolkerHi Alex!
Like already mentioned I solved my problem by identifying the SOAP exception with the messageClass attribute of the PI message header. Acess code:
try {
String zv_msgClass = zv_piMsg.getMessageClass().toString();
} catch (Exception e) {
zv_msgText = zc_constModuleName
+ " E0110: Message processing terminated."
+ " Reason: Error while getting MessageClass "
+ zv_dataSource
+ e;
// create trace and audit log entry (severity ERROR) for exception
zv_location.errorT(ZV_SIGNATURE, zv_msgText);
zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.ERROR, zv_msgText);
ModuleException me = new ModuleException(e);
zv_location.throwing(ZV_SIGNATURE, me);
e.printStackTrace();
throw me;
} // end of try-catch-block
But I do not think this will solve your problem. I am almost sure, that something in your Axis configuration is wrong/missing. If a handler cannot be instatiated then it really may be missing. Have a look at defaultTrace.trc. Maybe you will find more suitable information about the root cause of your problem. Also have a look at NWA under software components and/or application modules if you can find/see your modules.
But there is a general issue when trying to catch PI fault messages. If e.g. the requestor tries to login with wrong userid/pasword, then you will have no chance to catch this kind of error - at least as far as I know. Because in this very early stage of PI message processing no module is called.
One last question: Did you develop your own Adapter or just an adapter module? In the first case: Is your adapter started and healthy? Have a look at RWB -> communication channel monitoring.
Regards,
Volker -
Problem with SOAP FAULT messages
Hi,
I'm developing the flash interface for a .NET application.
The client side (flash) communicate with server side (.NET) by web
services. The problem is that when the server side send a Fault
message flash breaks telling "Unable to connect to
endpoint........". In this case I need to know the error message
send by the server but the fault.faultstring is undefined.
Here the server Fault message:
HTTP/1.1 500 Internal Server Error.
Date: Wed, 23 Aug 2006 09:07:10 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 419
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>SoapHeader</faultcode>
<faultstring>The userid: xxxx is
invalid</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
And this the code that handle the fault case:
pendingcall.onFault = function (fault:Object){
rootObj.gbl_logger.log("WS Fault: "+ fault.faultstring ,
10);
As you can see the real faultstring is "The userid: xxxx is
invalid" but in the faultstring property of the fault object I
found "undefined".
I've read many posts that report that the problem can be
solved in the server side modifing the HTTP HEADER from 500 to 200.
Unfortunately I can't access the server side code. Exists a way to
resolve the problem in the client side? Seems it is a Flash bug as
the SOAP 1.1 specs tells that all SOAP Fault messages must carry a
HTTP 500 header. Exists some patch that solve the problem?
Thanks.Hi ,
Thanks for joining the Community.
Please get in touch so we can resolve this issue for you.
Click here for contact details.
Thanks
James -
How to send back the soap fault message without details tag to the sender
Hello Expert,
Is it possible to send the soap fault message(fault String element value) without details tag as shown below to the sender in synchrounous scenario.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>autorizarComprobanteRequest.comprobanteCAERequest.arrayOtrosTributos.otroTributo(1).codigo - El Código de Tributo es obligatorio.</faultstring>
<detail></detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
I have to send the faultstring element value in one of the element in response message back to sender? Is it possible using BPM?The above fault response does not have a fault payload (no detail element) and would result in a system error message.So how to handle this?
If yes .Please tell me the BPM design
faultstring value will be dynamic.
Thanks in advanceThanks Yzanagi,
I have gone through the index.htm file.
In my scenario that is RFC -PI-soap(using http(Axis) protocol).when the webservice provider is sending the soap fault as.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>autorizarComprobanteRequest.comprobanteCAERequest.numeroComprobante - El Número de Comprobante debe ser mayor o igual a 1</faultstring>
<detail></detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
In PI sxmb_moni it is converting to the error (system not application error)as shown below when using receiver soap adapter with https(Axis) transport protocol and Message protocol:Axis.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Inbound Message
-->
- <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1></SAP:P1>
<SAP:P2></SAP:P2>
<SAP:P3></SAP:P3>
<SAP:P4></SAP:P4>
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: autorizarComprobanteRequest.comprobanteCAERequest.numeroComprobante - El Número de Comprobante debe ser mayor o igual a 1.</SAP:AdditionalText>
<SAP:Stack></SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
As my requirement was (I have mentioned in my first question) that I want to pass
SAP:AdditionalText tag
value back to sender in one of the elements of response message payload or handle using fault message mapping if this error could be converted to application error and map to the RFC exception but unfortunately which is not possible even using AXIS adapter.
so other option to inform the sender RFC is mentioned here http://help.sap.com/saphelp_nw70/helpdata/en/22/0425e0488911d189490000e829fbbd/content.htm
but while handling the SYSTEM_FAILURE exception from PI at sender in report program and displaying the msg variable ,I am not getting complete error message..It is getting truncated.Is there a limit to the no of character the msg variable contains which is set by system.Even if we declare msg variable with more length(for example char length 500) it is just displaying part of the error message from PI.
Any Idea to read complete system error message from PI in report program at RFC sender..
Kind Regards,
Kubra fatima -
BPM: System_Error" SOAP fault message received
Hi,
We upgraded SAP system from 4.7 to ERP2004 on 09/17/05.
We have XI-3.0 version from last 9 months and this BPM was working good so far. We have not changed anything in it except we upgraded the SAP system.
We are using ABAP proxy from SAP to send "userid"
message to XI-BPM and then it would make a Synchonous call to SAP system to get roles of those "usrid".
In the first step when it is sending data to XI an exception is raised and in the second step when it tries to make synchronous call to SAP we are getting error:
<Trace level="3" type="T">Deserializing message object...</Trace>
<Trace level="3" type="System_Error">SOAP fault message received</Trac
<Trace level="3" type="System_Error">SOAP fault code: Client</Trace>
<Trace level="3" type="System_Error">SOAP fault string: Error during c
I noticed that the XML name tag looks different now
Before upgrade when message was successful.
<?xml version="1.0" encoding="utf-8" ?>
- <ns1:MT_ECA_USRID xmlns:ns1="http://bcm.edu/common"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<USRID>CLARKSON</USRID>
<USRID>2_MA140016</USRID>
</ns1:MT_ECA_USRID>
After upgrade when message is failed
<?xml version="1.0" encoding="utf-8" ?>
- <nr1:MT_ECA_USRID xmlns:nr1="http://bcm.edu/common">
<USRID>AABULIMI</USRID>
<USRID>AB147899</USRID>
<USRID>ACHALL</USRID>
</nr1:MT_ECA_USRID>
You would notice that
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
missing after upgrade.
I would appreciate if anyone could help me.
MrudulaHi,
Can you paste the full error message. Also take a look at the default trace log in Visual Admin. Set the logging for soap to debug.
Naveen -
A sample web service to return SOAP fault message for application error
Hi,
I need to test behavior of XI, in case of application error (using <detail> tag in soap:fault) from web service in nosoap mode.
If any one is aware of a free web service, which can raise application soap fault message, Kindly provide the details.
Thanks in Advance,
Rahul..Hi,
What is the URL to which you are posting the SOAP message?
Is it?
http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet? channel=<party>:<service>:<channel>
If yes, then like mentioned the QOS is picked from the Sender SOAP adapter.
But, if the URL is ,
http://<server>:<ABAP-port>/sap/xi/engine?type=entry&version=3.0&Sender.Service=<YourService>&Interface=<YourNamespace>%5E<YourInterface>
Then you need to give the QOS as <b>,&QualityOfService=ExactlyOnce</b> appended to the above URL.
More, /people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine
Regards
Bhavesh -
ABAP Web Services Exception Valorization in SOAP Fault Message
Hi,
I created a Custom Function Module in ABAP with a custom exception ( "Exception1) in exception list (including a short text description of the exception ("This is the first exception!!!")).
I exposed it as web services by means of 'Web service ABAP creation wizard".
I hard coded the raising of the exception in order to see the valorization of SOAP Fault Message.
The problem is that the field "Text" in SOAP fault message is empty instead of "This is the first exception!!!".
Can you help me?
Thanks in advance
Giuseppe
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<soap-env:Fault>
<faultcode>soap-env:Client</faultcode>
<faultstring xml:lang="it">Exception1</faultstring>
<detail>
<n0:Zprova.Exception xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
<Name>Exception1</Name>
<Text/>
</n0:Zprova.Exception>
</detail>
</soap-env:Fault>
</soap-env:Body>
</soap-env:Envelope>Hi,
in case you want some specific text,you can raise the exception like this in your function module.
MESSAGE I001(ZPLATINO) RAISING EXCEPT1.
message class: ZPLATINO
exception : EXCEPT1
message no 001,
message text : CHECK ERROR PUSHKAR1
and your response will be like.:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<soap-env:Fault>
<faultcode>soap-env:Client</faultcode>
<faultstring xml:lang="en">EXCEPT1</faultstring>
<detail>
<n0:Zpl.Exception xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
<Name>EXCEPT1</Name>
<Text>CHECK ERROR PUSHKAR1</Text>
<Message>
<ID>ZPLATINO</ID>
<Number>001</Number>
</Message>
</n0:Zpl.Exception>
</detail>
</soap-env:Fault>
</soap-env:Body>
</soap-env:Envelope>
I think this solves your problem.
points..points..:)
Message was edited by:
pushkar anand -
Handling SOAP Fault messages in BPM
Hi,
My scenario is Sync-Async Bridge involving File to SOAP transformation. I have used BPM as 1 file has many records and each record is required to call the web service synchronously.
In the BPM I have
Receive ---> Transform (1:n multimapping ) -
> Block (Par for Each)
In Block I have Send Sync step to call Web service . I have an exception branch for the send step for catching Fault message that is sent back from webservice for Application Fault.
Problem:
Though the Fault message is sent from web service ,in the BPM the block goes in error saying : "No exception defined for fault message ". The Exception brach is not executed.
Please suggest if anyone has come across such a scenario and solution to this.hi satesh
using "exception handler" in BPM we can handle the error messages
regards
kummari -
IDoc to SOAP Receiver Fault Message Handling?
Hi,
I am working on IDoc to SOAP Scenario (IDoc -> PI -> SOAP). It is in async mode without BPM. This works fine as long as there is no error on the SOAP receiver side. How to handle the falut message raised by the SOAP receiver and send it back the SAP ECC.
Do I need to use ALEAUD IDoc for this? If Yes, how to configure this to handle fault message? Is there any other way of doing it?
Could you please give steps to handle the fault message?
Thank you.
Regards,
Cdr.Have a look into the below threads -
How to capture SOAPFault in an Async/Sync Scenario without BPM
Acknowledgement Handling in IDoc to SOAP Scenario in PI 7.3 -
Fault message handling in abap client proxy
Hi experts,
i have scenario like this SAPECC---XI---WEBservice
i was decided to using the ABAP CLIENT proxy in sender side and soap adapter communication in receiver side
i will be get the wsdl file form client
problem is i am in bit of confusion like am i need to create fault message for this asychronous scenario?
how can i create the fault message for this scenario(that WSDL) and how the abaperwill handle those error
thanks in advanceHi.
You can use fault message but it won´t return a error to your ABAP Proxy because your interface is ASSYNC. The fault message generated will stop in Adapter Engine.
If you need a return of the error, you have to change your interface to Sync mode.
To get more information, follow the link below:
Fault Message Type
http://help.sap.com/saphelp_nwpi711/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
Best Regards.
Bruno -
How to send the SOAP Fault Message to the Web Service Consumer
Hi,
I have configured SAOP to Proxy Syncronous Scenario in PI 7.1 and using XML Validation in Adapter Engine to Validate the Structure of the Message Payload.The scenario is working fine.When some of the Filed's Length increses the maxLength specified in the Data Type . We are getting the Following error.
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>ADAPTER.JAVA_EXCEPTION</code>
<text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.
3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1164)
My question is How does the Web Service Consumer can handle this Soap Server Error in the SOAP Fault.Or How can we provide a specific information like 'The value '123456789' of element 'CompanyCode' is not valid.It exceeds the Maximum Length'.
I read this /people/sap.user72/blog/2006/01/16/xi-propagation-of-meaningful-error-information-to-soap-client blog .Where it is mentioned that the Web Service Consumer can handle while calling the Web Service.Is there any other solution?
Kindly appreciate your help.Thank You Stefan for your kind reply.
So you mean to say if we use the XML Validation .we cannot provide proper error information to the calling Web Service Consumer .And While calling a Web Service they cannot Extract the Exact Message in the Text Filed(<text>) present under the Detail Element (<detail>) in the <SOAP:Fault> node. as
<text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.**
3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
That is why we have to use the Fault messages and Field Lengths has to be Validated in the Server proxy.
Please Correct me If I am wrong. -
Mapping SOAP Fault Message on PI
Hi there,
I'm trying to map a SOAP Fault Response From a Legacy system on PI, but i have some doubts on how to create the Data Type and the fault message Type,
Basically the response will look like this:
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Data failed validation</faultstring>
<detail>
<fault xsi:type="ns1:Fault">
<ns1:code>1002</ns1:code>
<ns1:errorMessage>Data failed validation</ns1:errorMessage>
<ns1:detailMessage>Invalid (does not exist) Zone Identity...</ns1:detailMessage>
</fault>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
so basically i defined a data type detail ( named detail aswell in pi ), with a fault element and code errorMessage and detailMessage xsd:String attributes ( i dont know what to do with that ns1 xsi type )
but when i want to creat the whole message PI only allows me to have 1 outter element like this:
<FaultMessage>
<faultcode>
<faultstring>
<detail>
so pretty much i want to have a data type with 4 independent elements cause i know the SOAP-ENV tags wont get to the mapping, im almost sure i'm missing something very dumb here but i dont see it ,
Thanks in advance for all the help you guys can provide,
Regards,
Roberto.Thanks for the documention it was really helpful,
now i have another problem, i alredy created the data type for the detail tag to match the soap response, but when creating de Fault Message Type on the Data Type Used area, PI inserts me some standard data that is mandatory and does not correspond with the structure im going to receive, it only allows me to import the detail data type as Additional data :S.
Regards,
Roberto. -
Hello All,
When i am calling the webservice from XMLSPY, in response getting the following fault messages.
- <soapenv:Body>
- <soapenv:Fault>
<faultcode>SYSEX</faultcode>
<faultstring>com.ibm.ws.webservices.engine.xmlsoap.Text incompatible with javax.xml.soap.SOAPElement</faultstring>
- <detail>
- <INVALID_INPUT>
<description>java.lang.ClassCastException: com.ibm.ws.webservices.engine.xmlsoap.Text incompatible with javax.xml.soap.SOAPElement</description>
</INVALID_INPUT>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
We r getting this error if request message is having carraige return. My question is does XI includes carraiage return in message while calling the webservice.
Regards,
sreenviasHI Srinivas,
This is because of input file issue..please check with SOAPElement.
Prabhakar -
Fault message handling in BPM workaround?
Okay so we all know by now that SAP does not support fault messages in their ccBPM implementation of the BPEL standard.
My question is this.
Does anyone have a viable work around for a SOAP (or any other) interface?
I have altered my calling interface to return either a success response or a fault response in the normal response message e.g.
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Response xmlns:ns0="">
<Success>
</Success>
<Fault>
</Fault>
</ns0:Response>
but I still need a way to get the SOAP adapter to return a fault message when the <Fault> segment of the above mesage is populated.
Thanks,
StephenHi,
if fault part of message is filled, just trigger an exception or an alert..
cheers,
André
Maybe you are looking for
-
How to Retrieve a Crystal Report's Unmanaged Destination Filename
Hi all, I have looked very closely at Robert Twigg's response to the post "[Destination Path and name of a scheduled Report|http://forums.sdn.sap.com/thread.jspa?messageID=9588160#9588160]" dated 9/1/10 and while it does retrieve the unmanaged destin
-
PRINT PDF FILES FROM FLASH 8 PROJECTOR
Hi, I'm developing a small interactive CD. And i have a section were the useres can print a specific pdf document, stored in the cd, by clicking a button. Can anyone help me on this? Is there a print action in Flash 8?
-
How to fit videos/imges in tilelist without scrollbars
Hi How to fit and resize even or uneven no.of videos or images in tilelist without scrollbars.Any help is appreciated. Thanks Srinivas
-
I have a cd's that require the latest Adobe and Acrobat Reader for Mac to open. I tried without and it doesn't work. Can anyone help? I currently have a Mac version 10.6.8.
-
Extra Cells & Merged Columns in my report --- Urgent
Hi, I am calling excel report from forms 10g. My excel report has extra blank cells & Some of the columns are merged. Can anyone help me to sort this issue I had given DEFORMAT=SPREADSHEET. If i give DEFORMAT=EXTENDEDSPREADSHEET, my excel reports not