cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP receiver Adapter configuration

Former Member
0 Kudos

Hi All,

I want to post an XML message using HTTP Receiver Adapter for my BPM scenario (Idoc to HTTP service)

The receiver has Oracle gateway and it expects message in following format.

HTTP Header

Http–Version: HTTP/1.1

Authorization: Digest username=”myusername”,

realm=”testrealm@host.com”,

nonce=”dcd98b7102dd2f0e8b11d0f600bfb0c093”,

uri=”/dir/index.html”,

qop=auth,

nc=00000001,

cnonce=”0a4f113b”,

response=”6629fae49393a05397450978507c4ef1”,

opaque=”5ccc069c403ebaf9f0171e9517f40e41”

Content–length: 12345

Content–type: text/html

HTTP Body

TRANSPORT_PROTOCOL=OXTA

TRANSPORT_PROTOCOL_VERSION=1.0

REQUEST_TYPE=SEND

MESSAGE_ID=A1234567890ZZ0987654321

MESSAGE_TYPE=XML

MESSAGE_STANDARD=OAG

TRANSACTION_TYPE=PO

TRANSACTION_SUBTYPE=PROCESS

DOCUMENT_NUMBER=12345

PARTYID=9999

PARTY_SITE_ID=8888

PROTOCOL_TYPE=HTTPS–OXTA

PROTOCOL_ADDRESS=HTTPS://www.me.com/servlets/oracle.ecx.oxta.

transportAgentServer

USERNAME=myusername

PASSWORD=myloginpassword

ATTRIBUTE1=

ATTRIBUTE2=

ATTRIBUTE3=

ATTRIBUTE4=

ATTRIBUTE5=

PAYLOAD=<xml ... ...>

I think this is not a typical HTTP URL type of format, is it?

And I am not sure how I can build the message. Where do I put the parameters like TRANSPORT_PROTOCOL, TRANSPORT_PROTOCOL_VERSION, REQUEST_TYPE etc in the HTTP adapter?

Also is there any place where I can see the final actual XI message that is sent to HTTP service?

Any help will be really appreciated.

Thanks and regards,

Rahul.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Rahul,

<i>Where do I put the parameters like TRANSPORT_PROTOCOL, TRANSPORT_PROTOCOL_VERSION, REQUEST_TYPE etc in the HTTP adapter</i> - When you will configure your HTTP adapter in ID in XI, you will tell the transport protocol, transport protocol version etc........you dont have to do anything extra for this.

<i>Also is there any place where I can see the final actual XI message that is sent to HTTP service</i> - you dont need to be worried about actual XI msg that is sent to HTTP service.....just make a HTTP conn to your target system from XI in SM59 in XI.....Just test the conn and make it working......then see your msg payload in SXMB_MONI and just see if the msg payload is okay. Hope this solves your query.

Thanks,

Rajeev Gupta

Message was edited by:

RAJEEV GUPTA

Former Member
0 Kudos

Hi,

Actually, I have done all the settings, as you have said I have selected the required protocol values.

When I sent a test message to receiver system, I get response "Message has NULL protocol value" with status 5000 which is one of the error statuses.

The parameters in the HTTP Body of the expected message has different Transport Protocol value (OXTA). And I think the oracle gateway is expecting this value.

I tried putting these paramters as part of Header Fields in HTTP receiver communication channel but I still got the same error.

So I wanted to check the actual message that is sent to oracle gateway so that I can confirm whether these manatory parameters in the HTTP Body are populated or not.

Hope I make sense.

Thanks for your prompt reply.

Regards,

Rahul.

Former Member
0 Kudos

Hi Rahul,

The msg you are trying to genenarate is not a usual HTTP msg......

it is a special msg for your oracle gateway because TRANSPORT_PROTOCOL=OXTA

where as in usual HTTP msg TRANSPORT_PROTOCOL is HTTP or HTTPS.

So HTTP adapter will not work in your this case.

Thanks,

Rajeev Gupta

Former Member
0 Kudos

Hi Rajeev,

Will you please let me know if there any solution for this if the receiver system can have OXTA over HTTP?

Thanks for your reply.

Regards,

Rahul

Former Member
0 Kudos

Hi,

I checked with the receiver system contact and they suggested that if we send these parameter with blank values it should work.

I want to send them the actual message that XI sends to the system. Is there any way to get this message. Does XI store this anywhere? Any log file etc.

Any help will really be appreciated.

Thanks and regards,

Rahul

Former Member
0 Kudos

Hi Rajeev,

Just to close the thread....

The problem is solved. The receiver system could actually accept messages from non OTA servers. I had to change the content type to "application/x-www-form-urlencoded" and put the all the HTTP Body paramenters before the actual payload in Prolog...

And I got success message from receiving system.

Thanks and regards,

Rahul.

Former Member
0 Kudos

Hi Rahul,

Cheers....you have solved your problem....

But could you please tell me in slightly more detail the following things:

<i>I had to change the content type to "application/x-www-form-urlencoded"</i> - how did you know what content type you should put.....

<i>put the all the HTTP Body paramenters before the actual payload in Prolog</i> - how did you do for this thing...

Thanks,

Rajeev Gupta

Former Member
0 Kudos

Hi Rajeev,

The receiver system should have the details about the content type it expects. I got that from the team who monitors our receiver system.

The HTTP Body of HTTP adapter is made up of PrologPayloadEpilog.

So I added the paramter list that receiver system expects as part of the Prolog. Refer to the HTTP body that I have posted in my earlier message. Out of that till ".....Payload=" is added to Prolog and XI then appends actual payload to it.

To be precise -

TRANSPORT_PROTOCOL=OXTA&TRANSPORT_PROTOCOL_VERSION=1.0&MESSAGE_TYPE=XML&MESSAGE_STANDARD=UNIVERSAL&TRANSACTION_TYPE=XXXE&TRANSACTION_SUBTYPE=ORDER_I&DOCUMENT_NUMBER=PO12345&PARTY_SITE_ID=ESAP_ORDER_I&USERNAME=***&PASSWORD=**&PAYLOAD=

So in the end it worked out well.

Cheers,

Rahul.

Answers (2)

Answers (2)

Former Member
0 Kudos

See my last commnet

Former Member
0 Kudos