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: 

IDOC user-exit

Former Member
0 Kudos

I programmed and activated user-exit for processing idoc (SDPICK, EXIT_SAPLVMDE_003). Then I imported it to the production system.

When I test that particular idoc type with test transaction (WE19), everything works fine but if idoc comes from non SAP system, it seems so that the user-exit code is not processed.

Should be the production system (or just some service or EDI system) restarted in order the changes in user-exit to be taken into account? If yes, how?

Thanks.

Stano

1 ACCEPTED SOLUTION

Former Member
0 Kudos

I presume the control record on the IDoc sent from the external system has the correct details on it and is not using another partner profile with a different process code.

6 REPLIES 6

Former Member
0 Kudos

I presume the control record on the IDoc sent from the external system has the correct details on it and is not using another partner profile with a different process code.

0 Kudos

Yes, that's correct. And even the idoc data (as well as control record) is untouched during the user-exit processing.

0 Kudos

What is the external system.

I remember I was working with a system called Mercator. There were times that I made changes to a user exit, which when I ran an IDoc in the system, the user exit was processed correctly. However, when the IDoc was sent to SAP from an external syystem, the user exit was not executed properly.

To fix this we had to stop and start the external system. As the external system calls SAP via and RFD call, the programs that are executed are stored in memory. When stopping/starting the external system, this appeard to force SAP to use the current code and not the version stored in memory.

I think that will fix your problem.

0 Kudos

I thought it that memory version is still being executed but restarting of external system is what I was afraid of.

I am not admin of it and it would be very hard work to convince our admin to restart it in productive environment. But I'll try.

EDI server is "external" system that just transmitts messages between R/3 and non R/3 system.

0 Kudos

I would be very confident that it would solve your problem. It can be proven if the previous version of the code is being executed and it works correctly if you run it manually.

0 Kudos

Hi there!

I've got news.

We restarted EDI server and nothing happend! But not really nothing. I found that the code is executed (by inserting small piece of code that changes data in user table). As I did it after the restart I am not able to distinguish whether the changes in code were also applied before the restart. But I am sure that it were.

The real problem is somewhere else.

My code I want to be executed while processing idoc is in fact calling of function module 'TH_POPUP' which seems not to execute within idoc user-exit.

I think it has something to do with rfc or something because when I executed it on background and even under the same technical user as for idoc processing it was executed correctly.

Even the idoc test transaction works with it.

But this is different problem (maybe the problem of function module) so I am going to close this thread and open new one.

Thank very much you for your help!