cancel
Showing results for 
Search instead for 
Did you mean: 

How to tell if call to RFC is successful? (no output from RFC)

Former Member
0 Kudos

I have a scenario as follows: file adapter ->XI ->RFC

(This is similar to a problem I posted a few weeks ago,

but not quite the same).

When I plug in values in the debugger(running the RFC), I get a PO created.

When I run the file scenario via XI, I get no PO and no errors in SXMB_MONI.

(Per SXMB_MONI, "Processed successfully"

There are no dumps and no error in SM58(tRFC).

There is a commit statement in my RFC, and I know the RFC works when I run in via

debugger.

How can I track this problem down?

Is there anything in particular in the SXMB_MONI output that would

tell me that the call is/is not being made to the RFC?

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Michael, thanks for that blog suggestion. I will look into it.

I came up with another method out of desperation yesterday.

I decided to insert statements in the RFC that would write a msg to

a text file. That way I could maybe tell where the RFC was failing

or find out if the RFC was even accessed.

Here is what I did:

First I used transaction AL11 to find out what directories I could access,

then chose one I knew I could look at outside of SAP.

Next, I inserted some code into my RFC.

*----


  • My troubleshooting section.

  • Writes a message from the RFC to a text file that can be read outside of SAP.

DATA: mydatasetname(200).

CONCATENATE '
<IP addr of server>\dirname1\'

'<\subdirname2\my_textfile_name.dat'

INTO mydatasetname.

*Write debug info to a text file

OPEN DATASET mydatasetname FOR OUTPUT IN TEXT MODE.

TRANSFER 'Now in line xxx of RFC <rfcname>' TO mydatasetname.

CLOSE DATASET mydatasetname.

COMMIT WORK.

  • end of My troubleshooting section.

*----


I had to use CONCATENATE to force a long path & filename into one line.

I also was able to plug in variables to output a variable value at a critical

time.

I'm sure there is a better way to do this, but IANAAP, and this

was a faster method for me than figuring out how to write a bunch of

similar msgs to a dataset. My method is slower but will probably allow

me to gain more RFC debugging skills in the short term.

So far, I've figured out that I'm at least reaching my RFC and my BAPI

call to create a PO doesn't return what it's supposed to. So, next step

I'll add some different text file calls to figure out what's being passed in.

I suspect that the text file I'm passing in has some slight value

difference than the values I plugged into the debugger.

stefan_grube
Active Contributor
0 Kudos

> So far, I've figured out that I'm at least reaching

> my RFC and my BAPI

> call to create a PO doesn't return what it's supposed

> to.

Never use a BAPI in an async scenario. Use the related IDOC instead.

You see where it leads.

Regards

Stefan

Former Member
0 Kudos

Are you making Synch RFC call or Async RFC call ?

If it is Synch RFC call then on a successful RFC call you would get a response back with the PO number...

If it is Asynch RFC call then SXMB_MONI would show the status "Processed successfully" once it is delivered to Adapter Engine. You can go to RWB->Message Mononitoring-> Choose Adapter Engine and Display to check the staus of your message on the Adapter Engine. This will show if the RFC call was made successfully. You can also look into transaction ST22 in R/3 system for any ABAP dumps while executing the RFC...

MichalKrawczyk
Active Contributor
0 Kudos

hi,

you can try using the method I presented:

/people/michal.krawczyk2/blog/2006/01/17/xi-debugging-rfc-calls-from-the-xi-not-possible-who-said-that-

Regards,

michal

-


<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

Former Member
0 Kudos

I forgot to add that RWB shows that the call to the RFC was successful.

However, start and end times are only 5 seconds apart -- not sure that

it would have run that fast.