cancel
Showing results for 
Search instead for 
Did you mean: 

S/A bridge problem: No object type found for the message

Former Member
0 Kudos

Hi all,

I've been spending days looking into the following problem. I have a RFCXIFile scenario. The R3 system sends data via an RFC to XI and XI post the data as a flat file on a certain server using FTP.

This scenario worked just fine for 1 exception. I could only run this scenario once. The second time I got timeouts when checking the data sent to my RFC destination using SM58. When I reactivated my RFC communcation channel I could again send 1 RFC to the system. All subsequent tries would fail.

I guess this is due to the fact that I use a synchonous call (RFC) to an asynchronous one. Thus the adapter is still waiting for the response from the XI system and will not accept any further new calls from R3.

So I figure let's use this pattern called the S/A bridge. So I designed everything according to guides and examples and I'm quite certain everything is configured right but when I run the scenario I get the following message:

<i> <!-- Call Adapter

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">

<SAP:Category>XIAdapter</SAP:Category>

<SAP:Code area="BPE_ADAPTER">UNKNOWN_MESSAGE</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>No object type found for the message. Check that the corresponding process is activated</SAP:Stack>

<SAP:Retry>M</SAP:Retry>

</SAP:Error></i>

It seems that the adapter cannot find any integration process to send the message into!?

I've looked at numerous threads on sdn and tried all kinds of stuff (looked at the cache==> code 0 = OK , tried to reactivate my integration process, checked the interface determination,...), but to no avail. Does anybody has an idea what could be wrong ?

Any help would be greatly appreciated for I'm all out of clues....

Bob

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Looks like there has been a mistake when assigning message types/interfaces to the sync/asynch bridge.

1. Make sure that the receive step that opens the sync/async bridge has the correct interface/message types assigned.

2. Make sure that the send step that closes the bridge has been assigned the same container as the response container of the receive step(that opens the sync/async bridge).

3. Make sure that the containers that are assigned in both the above mentioned steps have values in them at runtime.

4. Go to PE, corresponding to your message in moni; Go to technical details for this bpm, and check where exactly the problem is occuring.

Regards,

Smitha.

Former Member
0 Kudos

First of all, Thank you for trying to help me out here.

Some answer to your suggestions/questions:

The IP has return code 0 in SXI_CACHE. so that doesn't seem to be the problem.

I've checked the BPM for syntax errors. I doesn't have any.

I've reimported the BPM into the integration directory.

And did a full cache refresh in SXI_CACHE. Return code is (stays) zero, so that's OK.

I've already included the error message from SXI_MONI. It is in the last step ("Call Adater") that the error occurs.

The other steps execute just fine...

The RFC communcation channel accepts the incoming RFC call and puts into the pipeline, so no problems with the communication channel either. the problem is actually when the pipeline is trying to forward the message into an IP trhough the BPE_ADAPTER (according to SXMB_MONI).

Therefore I'm not able to go to into PE, because the workflow is never started. the BPE_ADAPTER does not find any active process for the interface determination i've entered.

So i can not debug the IP in the PE and check container variables, like some of you mentioned.

Maybe some more information about the scenario:

The RFC is called from an R3 system to XI over the interface "CONTROL_RECIPE_DOWNLOAD", which is an imported RFC, with a request and response message type.

Then I got a receiver and interface determination with lead the incoming RFC message to the IP, into interface "XI_ERP_MF_MD_CONTROL_RECIPE_REQ_AI_MI".

This is an abstract synchronous interface based on the request and response types of the "CONTROL_RECIPE_DOWNLOAD" imported RFC.

This interface is used the first step (receive) of my BPM as the synchronous interface to open the S/A bridge.

The message (container var) used in this step is

name: CORREQ

Category: Abstract interface

type: "XI_ERP_MF_MD_CONTROL_RECIPE_REQ_AI_MI"

The interface "XI_ERP_MF_MD_CONTROL_RECIPE_REQ_AI_MI" is an abstract, asynchronous interface based on the request type of the "CONTROL_RECIPE_DOWNLOAD".

Then there are 2 send steps for putting the flat files into place and finally i close the the S/A bridge using message:

name: CORRES

Category: Abstract interface

type: "XI_ERP_MF_MD_CONTROL_RECIPE_RES_AI_MI"

The interface "XI_ERP_MF_MD_CONTROL_RECIPE_RES_AI_MI" is an abstract, asynchronous interface based on the response type of the "CONTROL_RECIPE_DOWNLOAD".

I hope this information gives you guys a better understanding of hte problem.

Really looking forward to see more suggestions and to solve this nasty problem ...

Regards,

Bob

Former Member
0 Kudos

Hi,

Through the R/3 system, when you send the message to XI as a rfc request, how are you getting the response back?

Is this your scenario?

- R/3 RFC 'CONTROL_RECIPE_DOWNLOAD' is triggered. (This caused the request to go to the XI)

- XI needs to write to a file.

- Also, XI needs to send back a response similar to 'CONTROL_RECIPE_DOWNLOAD' response

My question is: how are you populating this response payload? Are you doing a dummy mapping to send the response? Or is this response expected from somewhere else?

Have you done any kind of mapping for RFC response?

Regards,

Smitha.

Former Member
0 Kudos

for now I do a dummy mapping for the response. I just use the request message (container var CORREQ) and map some fields into the response message (container var CORRES). I do this in an transformation step in my IP.

In the future there should be a real receive step (some flat file I pick up) and then the response message should be based on a mapping with this flat file...

But I do not see how this could have anything to do with the fact that the RFC message coming from R3 does not even trigger the IP.

Again the IP doesn't even get started. The error in SXMB_MONI says :

<i>No object type found for the message. Check that the corresponding process is activated</i>

In the LAST step of the pipeline. The call adapter step (BPE_ADAPTER).

I hope this helps...

Former Member
0 Kudos

Hi,

Sorry, I missed the point where you talked about your BPM instance not getting created.

1. Did you try executing any other scenario involving a BPM? If yes, did everything work fine there?

2. Log on to RuntimeWorkbench and check the status of the IntegrationEngine.

Is it green?

What is the status of the BPE?

Regards,

Smitha.

Former Member
0 Kudos

Hi,

1. Yes the other scenario's work just fine so there isn't a problem with my BPE i guess.

2. Both are green in the RWB component monitoring...

Regards,

Bob

Former Member
0 Kudos

Hi,

Giving it another try:

1. Make sure the receiver determination, has the correct sender service,interface and the receiver service.

The receiver must be the BPM.

2. Make sure in interface determination, the sender interface is the RFC request and the inbound interface is the abstract sync interface.

Make sure the mappings are between the correct interfaces.

You specified in your previous post, that the you have 1 receive and 2 send steps.

Transformation step are not involved here?

Are you doing the mappings as part of interface determination?

Regards,

Smitha.

Former Member
0 Kudos

Hi,

I checked the Receiver determination and interface determintation once again (for the 1000th time now I gues ). I'm certain they are ok, according to the examples I've studied and the things you say.

For the mappings I use the interface determination, except for the mapping between CORREQ and CORRES. This mapping is done in a transformation step. This because at this stage of development, there is no receive step to receive the response for the RFC and I now use a dummy mapping from CORREQ to CORRES at the end of my IP. Then I send CORRES to close the S/A bridge.

Regards,

Bob

Former Member
0 Kudos

Hi,

Last try!

Try testing your scenario in the test configuration tool available in the configuration.

Go to ID->Tools->Test configuration.

Test the scenario by giving the sender as R/3 and the receiver as your BPM service.

Copy the request payload from sxi_monitor.

Regards,

Smitha.

Former Member
0 Kudos

Alas,

I've tried to do the test run like you said, but there seems to be a problem with the configuration of the test tool environment. I get the following error:

Internal Error

HTTP connection to ABAP Runtime failed. Error: 403 Forbidden URL: http://sapexd:8083/sap/xi/simulation?sap-client= User: PIDIRUSER

I'll have some basic guy look into it, but at the moment this test won't yield any good results....

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

1. Check for the abstrat message types that u are using in BPM.

2. Check in the 'trace' in sxmb_moni and see if there is some exception there.

3. Check also in communication channel monitoring.

There should be some loop hole. Post further details to solve the problem.

Regards,

P.Venkat

moorthy
Active Contributor
0 Kudos

Hi

--Go to IntegratuioN Repository->BPM and change the BPM, save it check for syntax error (F7) and activate it

--Re-import the BPM into directory

---Refresh the cache in the SXI_CACHE

Hope this helps,

Rgds,

Moorthy

Former Member
0 Kudos

Hi ,

Check if your BPM is activated.

Logon to SAP GUI

Enter TCode SXI_CACHE

Double Click on Business System

Check if your Business System shows Error Code 99 Click on Repeat Activation

Activate your business system

You may need developer key to activate it

7. If Business System doesn’t show Error Code you may need to apply SAP Note 708338

Bipin

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

if you want to make the call as an Asynch call, then no need for BPM. Please look into this blog to see how to call an RFC in an Asynch mode and send data to XI,

/people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous

Is this what you want?

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

I do NOT want to make the call as an asynch call, because in the coming days/weeks there will be decided on the message I have to return to the R3 system. For now i just use some default values to pass back to R3 in my S/A scenario. So making the call asynchronous would not do in my case...

thanx for your help anyway!

Regards,

Bob