cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP Synchronous Response Message

Former Member
0 Kudos

hi,

I am getting the following response message in the SXMB_MONI.

<?xml version="1.0" ?>

<!DOCTYPE cXML (View Source for full doctype...)>

- <cXML version="1.1.009" payloadID="20060517092932992.5555CCLyVQDdasNetXE0B+Yy5OeXUHc=443-71.c0a81cb9f70d2c060000180f@wmqa3" timestamp="2006-05-17T09:29:32-CDT">

- <Response>

<Status code="500" text="Error">The document received is not a cXML request or is unknown by the AribaSupplier OnRamp package.</Status>

</Response>

</cXML>

To capture this error message as Response message what message types need to be defined/configured?

Thanks,

Kumar

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

error 500 is a hard error of the web server, so most likely no matter what you defined, it will ignore.

But in most case, depend one what the sender side http client is, it should return the error message anyway.

--Wenning

Former Member
0 Kudos

Wenning -

I want to trap the error message that the HTTP sends back as response message.

And all the responses would be in the format i defined.

How would i define the response message?

Thanks,

Tirumal

Former Member
0 Kudos

Hi Tirumal,

Just to be sure I understand your question :

You have a scenario sender ( ? ) -> XI -> receiver ( HTTP webserver )

The webserver is giving XI an HTTP response back ( with status code 500 ) that you want to return, as such, to your sender , just like any other success message ?

Is you sender also an HTTP client ?

I think that your http responses wil have different message structure ( = dependent upon the receiver http webserver and wether the request was succesfull -- you receiving application defines the response structure -- or not -- your receiving web server defines the response structure -- ) and that you can't define a structure that will fit all answers except a 'raw' string type message.

rgds

Dirk

Former Member
0 Kudos

Dirk,

Its a IDOC ->XI -> HTTP Receiver (HTTP Webserver)

I will be converting IDOC to cXML(Ariba Standard) and then the cXML has to be sent as Payload to the HTTP Webserver which processess the cXML and then issues a response in the format i have given with Response tag and Status Code and description.

So all the responses will be in the following format:

<!DOCTYPE cXML SYSTEM 'http://xml.cxml.org/schemas/cXML/1.1.008/cXML.dtd'>

<cXML version="verision of cXML" payloadID="uniqueid" timestamp="dateandtimestamp">

<Response>

<Status code="500" text="Error">The document received is not a cXML request or is unknown by the AribaSupplier OnRamp package.</Status>

</Response>

</cXML>

I want to trap only the response which have a status code other than 200.

Once i receive the response from the HTTP Webserver i will have to format it and send it as email to the admin people letting them know the reason of failure.

So all the responses will be having the same message structure since all are cXML vendors.

Let me know if this helps you to answer my question.

Thanks,

Tirumal

Former Member
0 Kudos

Hi Tirumal,

I'm afraid the details of this go beyond my current XI knowledge level , but I think you definitily will need a INtegration Process if you want to implement this ( and having XI to handle the logic for success or failure )

You BPM would receive the IDOC ( async ) and the sent to HTTP receiver ( sync with response mapping : the response structure seems fairly simple and you can create it manually in the message mapping tool ). The next step in your BPM will then need to evaluate the response status code and stop processing if success ( 200 ) , otherwise start a new step to send the e-mail,

Alternatively, if this for admin purpose only, you can probably customize the XI alert framework that will trigger the e-mails for you on regular interval or in real-time in case of problems in ( specific ) integration scenarios. The body of the email might not be as specific as in the first solution but any admin person can find all the details in the message log

rgds

Dirk

Former Member
0 Kudos

Dirk -

I am currently using Integration Process.

I am capturing system messages through an Exception error handler in the block step of Integration Processes.

When i execute the scenario, i see an error in the workflow in the Block Step. It shows an Error which says "No Exception Defined for System Errors", though i have a Exception Branch in the Block step.

Any clues why i am not able to capture the Exception errors and send it through email.

Its failing at the Block step.

More details on the scenario:

1. Start

2. Receive Step - Asynch - IDOC

3. Block Step - with Exception name as "TimeOut"

3.1 Exception Branch with exception handler as "Timeout"

3.1.1 - Transform Step - to transform a Exception message(with just one field) to "Error" message (with 5 fields)

3.1.2 - Send Step - send the "Error" message through email

3.2 Deadline branch set to 1 minute

3.3 Switch step

3.3.1 Transformation step - to transform the IDOC to XML

3.3.2 Send step - Synch - request xml and response xml defined in this step

4. Switch Step

4.1 - Transform step - transforms the idoc and xml response to the actual error

4.2 - Send Step - sends the actual error to the email message using MAIL adapter.

Any tips would be grateful.

Thanks,

Tirumal

stefan_grube
Active Contributor
0 Kudos

Sometimes it is better to describe the process, not only the error

The HTTP adapter does not provide fault messages, therefore the message text of the HTTP 500 is always lost.

Regards

Stefan

Former Member
0 Kudos

Stefan -

So if the message text is lost then there would be no way to capture the message.

Is there any other way to capture the message than the way i am doing and send it as email?

Thanks,

Tirumal