on 02-27-2007 10:48 AM
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
HttpVersion: 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
Contentlength: 12345
Contenttype: 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=HTTPSOXTA
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
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.
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
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.
See my last commnet
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HI,
See the below links may be helpfull...
http://help.sap.com/saphelp_nw04/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.