cancel
Showing results for 
Search instead for 
Did you mean: 

Http response code 403 when connecting to Business Connector

former_member191531
Participant
0 Kudos

Hello,

we have SAP 7.1 EHP 1 and set up the following scenario with an external business partner, who is using the Business Connector:

    IDOC -> PI (decentral Adapter Engine) -> BusinessConnector

When sending the message, there are 2 steps showing up in the decentral adapter engine:

1)  Delivering to channel: BC_Orders_RECEIVER

2)  The application sent the message asynchronously using connection BcAdapter. Returning to application.

While step 1) is successfull, the following error message is showing up in step 2):

Transmitting the message to endpoint http://xx.xx.xx.xx:5555/invoke/sap.demo/handle_IDOC_XML_POST?transport=ALE%20(R/3%20IDOC)&action=1&C... using connection BcAdapter failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 403 with message "Service Error" Body: Missing parameters: 'xmlData' or '$filedata'.

It seems, that the Business Connector can't identify the XML message, but I have no idea what could be the reason, as there aren't many configuration possibilities in the the BC-Receiver-Adapter. We're using Transport Protocol HTTP, Message Protocol IDoc XML and the URL given from business partner...

Many thanks in advance!

Juergen

Accepted Solutions (1)

Accepted Solutions (1)

former_member184681
Active Contributor
0 Kudos

Hi,

I took a closer look at this receiver BC scenario and I think I have found a complete solution for you.

First of all, the problem has nothing to do with SICF, as you are not communicating with ERP directly, but with BC.

Then, I analyzed the BC service you tried to use (sap.demo:handleIDocXMLPost) and I noticed that it only works fine with HTTP Content Type: text/xml (otherwise it is unable to read the message payload and raises the error that you mentioned), while PI sets some strange application/x-sap.idoc Content Type in this adapter. I also tried changing this Content Type with MessageTransformBean adapter module, but then the adapter itself raised an error. Conclusion? Use some other BC service to receive the IDoc message

So as a solution, use pub.sap.transport.ALE:InboundProcess instead of sap.demo:handleIDocXMLPost that you tried to use. So your URL in the receiver channel should be: http://[host]:[port]/invoke/pub.sap.transport.ALE/InboundProcess, without any additional parameters like sender or receiver (it will be determined by BC based on payload). And make sure to create a routing rule in BC for this particular combination of: sender, receiver and message type.

Hope this helps,

Greg

Answers (5)

Answers (5)

former_member191531
Participant
0 Kudos

Hello together,

many thanks for all the fast answers, but especially to Greg. That was exactly the issue!

The business partner now provides the following BC service, and it's working fine with it:  /invoke/wm.PartnerMgr.gateway.transport.ALE/InboundProcess

It's interesting behavior, that PI sets some strange application/x-sap.idoc Content Type in the adapter, which can't be handled by BC, while it seems to work with other http tools and BC...

Have a nice weekend!

Juergen

former_member184681
Active Contributor
0 Kudos

Dear Juergen,

I'm glad to hear it helped you! Thank you too, because you inspired me to write a short weblog on this topic, providing a simple example for the receiver BC scenario, here: http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/03/19/receiver-business-connector-scena...

I believe others who will visit this thread in the future will find it helpful.

Regards,
Greg

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

Transmitting the message to endpoint http://xx.xx.xx.xx:5555/invoke/sap.demo/handle_IDOC_XML_POST?transport=ALE%20(R/3%20IDOC)&action=1&C... using connection BcAdapter failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 403 with message "Service Error" Body: Missing parameters: 'xmlData' or '$filedata'.

It seems, that the Business Connector can't identify the XML message, but I have no idea what could be the reason, as there aren't many configuration possibilities in the the BC-Receiver-Adapter. We're using Transport Protocol HTTP, Message Protocol IDoc XML and the URL given from business partner...

I think BC expects the POST request to look like a form that is why xmlData or $filedata declaration is missing just before the main payload. I have not worked with BC Adapter, but in the Plain HTTP Receiver, there is an option there called prolog and the entry should be &xmlData=. Try to see if the prolog is present in the BC Receiver Adapter and add the entry &xmlData= there.

Hope this helps,

Mark

Former Member
0 Kudos

Hi,

Activate the service sap/xi/engine in transaction SICF if it is not acitvated.

Regards,

Venkata S Pagolu

sunilchandra007
Active Contributor
0 Kudos

It seems like idoc xml is not getting mapping to flow service in Business connector. As the BC adapter is based on http protocol, just  try  to post the idoc xml from any http tool and see the response. Also ask the business partner to test the flow service independently on their side.

Former Member
0 Kudos

I agree with Sunil. Try posting the IDoc XML using e.g. WFetch using the URL provided by you business partner. I too do not think the error is caused by SAP PI, but rather the flow service at the business partners side.

Best regards,

Jacob

prateek
Active Contributor
0 Kudos

Hi,

There seems to be 2 possibilities:

1. Your XML data is incorrect. For this, you may ask your partner for a dummy sample file which they expect you to send and compare your Idoc-xml with it in terms of namespce, structure etc.

2. Some ICF services are inactive. You may check SAP Note 517484 for this.

Regards.

Prateek Raj Srivastava