Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SY-XFORM = 'XAB_READ' called successfully, but what is it?

Former Member
0 Kudos

Hi gurus,

I am tracing an RFC user to assign correct S_RFC authority to it's role using SM20N. From this I get the name of the remote FM called and add it to the role menu.

Now the bugger is that function module names are appearing in SM20N which don't exist in SE37. How to find and maintain something which does not exist??

Most of them are just faulty config in the remote component system calling the FM, but one of them appears for a multiple of different function groups (which is also not possible) and shows the name XAB_READ.

e.g.

Successful RFC Call XAB_READ (Function Group = LEINT_LDSRV)
Successful RFC Call XAB_READ (Function Group = ZZXXXXXX01)
Successful RFC Call XAB_READ (Function Group = EDIN)

Does anyone know what this FM (or symbolic name for one when some other condition exists) is and what can be done about it, if anything?

The only thing I can find on it is an obscure SAP note for APO (# 500753) which uses this value for sy-xform - so it must mean something.

Any ideas or experiences?

Cheers,

Julius

1 ACCEPTED SOLUTION

naimesh_patel
Active Contributor
0 Kudos

When an RFC FM is generated system will create one include with the Subroutine name to call the Same RFC FM. Like: If your RFC FM is ZTEST_RFC then the include program would be LZTEST_RFCV01 and subroutine name is same as the FM. Here V01 stands for FM number in the FG. We are not able to see these includes from the FG program anywhere.

When the RFC FM is called Remotly or with addition DESTINATION .. system will call this subroutine to execute the RFC FM. System sets the subroutine name in the SY-XFORM and Include name in the SY-CPROG to call this Subroutine.

From your log,


Successful RFC Call XAB_READ (Function Group = LEINT_LDSRV)

There are couple programs exists for this FG with the addition Vnn e.g. LLEINT_LDSRVV04. If system calls this include that means it would have called the FM LEINT_XDOC_DEL_UPDATE.

Regards,

Naimesh Patel

8 REPLIES 8

former_member188685
Active Contributor
0 Kudos

XAB_READ is a subroutine at the time of call you might be able to find the Program name also,

PERFORM (xform) IN PROGRAM (someprog).

Check it once. correct me if i am wrong.

naimesh_patel
Active Contributor
0 Kudos

When an RFC FM is generated system will create one include with the Subroutine name to call the Same RFC FM. Like: If your RFC FM is ZTEST_RFC then the include program would be LZTEST_RFCV01 and subroutine name is same as the FM. Here V01 stands for FM number in the FG. We are not able to see these includes from the FG program anywhere.

When the RFC FM is called Remotly or with addition DESTINATION .. system will call this subroutine to execute the RFC FM. System sets the subroutine name in the SY-XFORM and Include name in the SY-CPROG to call this Subroutine.

From your log,


Successful RFC Call XAB_READ (Function Group = LEINT_LDSRV)

There are couple programs exists for this FG with the addition Vnn e.g. LLEINT_LDSRVV04. If system calls this include that means it would have called the FM LEINT_XDOC_DEL_UPDATE.

Regards,

Naimesh Patel

Former Member
0 Kudos

Thanks both of you! I will monitor it for a while still because I removed the access.

@ Vijay: It is from SAPMSSY1

PERFORM XAB_READ IN PROGRAM SAPMSSY1 using... 

This helped me to understand Naimesh's explanation as well and why the function group was actually changing without there prior having been any RFC call to the same function group. They are forms in include programs called by external programs via the RFC server, because the calling program itself is the remote enabled one - so it shows up in the log but there is no function module (the example given is not even remote enabled...).

Hopefully there will be less of these in future....

Cheers,

Julius

Edited by: Julius Bussche on Apr 22, 2009 4:37 PM

0 Kudos

It's my bad for picking up wrong FM as RFC

So, system generates the include program with subroutines for the Update Modules also alongwith the RFC FMs.

Regards,

Naimesh Patel

0 Kudos

Yes, some were the update modules. Others were infact the RFC remote enabled ones. But in the include they are not called with the destination parameter and they don't appear in the server RFC profiles either (transaction ST03N).

My explanation is that SAPMSSY1 form XAB_READ itself performs rfcdrv_read in program (<prog>) using... and I suspect this is recognizing this as an external RFC call in the kernel (which writes the log) and not an external perform.

At that point, sy-xform is 'XAB_READ' as "rfcdrv_read" does not find a function module name in TFDIR, but it still writes the log.

If that is true, then perhaps SAP should suppress these entries from the log, or record them differently.

I will ask SAP whether this explanation is correct and whether something can be done about it (other than not using external performs...

Cheers,

Julius

WolfgangJanzen
Product and Topic Expert
Product and Topic Expert
0 Kudos

>

> My explanation is that SAPMSSY1 form XAB_READ itself performs rfcdrv_read in program (<prog>) using... and I suspect this is recognizing this as an external RFC call in the kernel (which writes the log)

That's right, so this is a bug (wrongly classified as remote function call).

Thanks for the analysis.

I'll create an internal message.

Cheers, Wolfgang

0 Kudos

Thank you Wolfgang!

Cheers,

Julius

0 Kudos

Hi,

In an badi there is a code written

GENERAL_DATA-REPID = 'WEBDYNPRO/REQUEST'

     AND SY-XFORM = 'PTRA_WEB_GENERAL_DATA_CHECK'.

in the debugger the sy-xform and general data is not getting populated after the system upgraded.

please suggest