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: 

An Implicit enhancement in standard function module(TRINT_CORR_INSERT) has crashed SAP Sandbox System

venkat_aileni
Contributor
0 Kudos

Hi All,

Recently I have created an Implicit enhancement in standard function module (TRINT_CORR_INSERT) with an IF condition activated only for my user-id(IF sy-uname = '********').

In my implicit enhancement I am calling a function module (POPUP_WITH_2_BUTTONS_TO_CHOOSE) to populate a pop-up window with two options to choose ‘Continue’ and ‘Cancel’. This FM returns ‘0’ as return value if one selects ‘Continue’ option, it returns ‘1’ if one selects ‘Cancel’ option. As this FM was returning 0/1 which are integers, I have declared my local variable with type integer to hold these return values from FM. So far everything worked fine, during my negative testing I have selected close window option when this pop-up window has prompted asking for one of the two options to choose, for this option(close window) FM has given return value as ‘A’ which is of type character and I am expecting integer value to be returned, because of this type conflict system has raised a run-time error. Later when I was trying to check/correct this type mismatch in new session, system has given me same error for whichever session I have opened(whenever I open a new session or transactions like SE38, SE37, SE80 it gave me dump screen).

Unfortunately this has got applicable to whole SAP users in sandbox system, whoever opens any transaction they are welcomed with my dump screen and the whole sandbox system is inoperable state, the only option available for our BASIS/DBA team is to re-store the whole system. Fortunate for me it'snot development system.

I am having below questions:

  • This enhancement was activated only for my user-id, but how-come it’s impacting other users(short dumps).
  • Secondly this type conflict error has to be raised only if someone selects ‘Close Window’ option in pop-up window. But in our case system is not prompting for any pop-up window, it is directly throwing run time error for whatever session we have opened.
  • Lastly these type conflicts errors are very common in ABAP, after adjusting/correcting the variables data type everything has to work fine, these errors will never let SAP instance down.

What I would like to know is:

How-come a very common type conflict error can let down the whole SAP instance????? What is the root-cause for this issue???

Did someone experienced these sort of issues before, if so please share your experience.

Many Thanks!


1 ACCEPTED SOLUTION

matt
Active Contributor
0 Kudos

Please post the code of your enhancement.

Also post the area in the dump showing the source code.

If you add an enhancement at a low-level widely used place, then the chances of you bringing the system crashing down about your ears are quite high. Since you apparently are now unable to use SE38 etc., there's little you can do but recover from backup. My assumption is that you've screwed up the enhancement somehow so all users end up running it.

9 REPLIES 9

matt
Active Contributor
0 Kudos

Please post the code of your enhancement.

Also post the area in the dump showing the source code.

If you add an enhancement at a low-level widely used place, then the chances of you bringing the system crashing down about your ears are quite high. Since you apparently are now unable to use SE38 etc., there's little you can do but recover from backup. My assumption is that you've screwed up the enhancement somehow so all users end up running it.

0 Kudos

Hi Matthew,

Thanks for your quick reply.

Unfortunately I could not post my code/screenshots as already Sandbox system is down.

But I saw description in my dump saying:

CONVT_NO_NUMBER

Unable to interpret "A " as a number, which is related to POPUP_WITH_2_BUTTONS_TO_CHOOSE FM.

I have created this enhancement a month ago and it's been working fine all these days, after adding code related to above FM this issue has raised.

My assumption is that you've screwed up the enhancement somehow so all users end up running it. - I would request you to elaborate this point, as said earlier, the very first statement in my enhancement is IF condition with my user-id, how come this will be activated for other users??

Thanks and please let me know your thoughts on the same.

matt
Active Contributor
0 Kudos

Venkat Aileni wrote:

My assumption is that you've screwed up the enhancement somehow so all users end up running it. - I would request you to elaborate this point, as said earlier, the very first statement in my enhancement is IF condition with my user-id, how come this will be activated for other users??

Thanks and please let me know your thoughts on the same.

If the conditional was properly constructed, then obviously it couldn't happen. it's clear that the FM is being called regardless of the user. In this context "you" was plural, not aimed at you personally. Somewhere, someone has screwed up your enhancement. Perhaps someone removed the IF... clause?

Without being able to see the source code, or at least the dump, there is nothing else to say. Everything is speculation.

What you can be sure of is that

IF sy-uname EQ 'myusername'.

  blah

ENDIF.

Will not result in the execution of blah.

0 Kudos

Hi Matthew,

I really appreciate the time you have spent on this topic and offering your valuable comments.

I agree without providing source code/at least the dump, everything is speculation. But I am really helpless as said earlier our sandbox system is down.

I really don't think someone has changed/screwed my enhancement code as this is sandbox system, OK now lets assume if someone has changed my code or else I have written my code outside of IF condition(which I didn't but lets assume) or assume this FM is calling regardless of users. Then next step would be to call the pop-up window with 2 options to choose(if this step is unclear please have a look at my initial post).

Then if someone selects Close window option then only this FM will return 'A' (0 -> Continue and 1 -> Cancel) and this results in type conflicts and would have given run time error. But in our case system has never prompted this window at all in any case for any users, agreed?

--------------------------------------------------

What you can be sure of is that

IF sy-uname EQ 'myusername'.

  blah

ENDIF.

Will not result in the execution of blah.

---------------------------------------------------

as per my knowledge/experience above condition should be active only for 'my username', I can be wrong if so can you please share any documentation where it has written stating the same or if by your personnel experience, I am really keen to look into it .

Thank you so much...

matt
Active Contributor
0 Kudos

The facts.

1. It is absolutely not possible for any code inside an IF structure to run, if the condition is not met. If you do not believe this to be the case, I suggest a career in the fast food industry.

2. The enhancement is in TRINT_CORR_INSERT

3. TRINT_CORR_INSERT is not run when you start SE38, SE37 or other transactions, nor when you enter the editor.

4. The problem suddenly started happening

5. The dump can only happen if some function module is called with incorrect type at runtime.

Conclusion

1. Someone has modified some code in an important part of the system, that is executed frequently by all users.

2. The modification is somewhere other than in function module TRINT_CORR_INSERT.

3. The problem is not to do with your enhancement

Without seeing the dump ,I can't say more.

0 Kudos

Thanks Mathew for your help in this issue.

Sorry for delay in my reply!

Here are my findings:

Just to check the system behavior I have tried to implement the same in another development system, wherein system has given an error message stating below and hence I couldn't enhance this object.

Then I have started searching for this error message and fortunately I found a similar thread. In which forum users have clearly said like any changes in this objects needs to be done with extreme caution, else there is always a possibility of system crash.

http://scn.sap.com/thread/2059051

Hence now I believe that the root cause for the system crash is due to run time error which has occurred in my implicit enhancement which is in this object.

Thanks,

Venkat

0 Kudos

I've came across the same error message during creation of an enhancement.

Funny thing is, the check has been changed with Basis release 7.31. In class CL_R3STANDARD_PERSISTENCE method OBJ_IS_ENHANCEABLE the function module call 'SUBST_CHECK_CENTRAL_BASIS' has been commented out (which contained a hard-coded list of packages, which were not enhanceable). Not it is checked with function module TR_GET_DLVUNIT_CHANGEABILITY, if the software component belonging to the package is modifiable (setting in SE06). This makes it possible to enhance basis relevant objects again, when in SE06 SAP_BASIS is set to modifiable...

Former Member
0 Kudos

Hi venkat

can u debug from other user-id for that FM to check ur code,

it would be more clear if u provide the coding u did.

alex_campbell
Contributor
0 Kudos

Are you able to enter debug mode before executing any transaction? If you enter /h before entering your t-code,  you might be able to debug into the first call of your implicit enhacnement, and skip the FM call (or at least see the code that's causing the issue). If you get the exception before the debugger starts, you might want to see if you can activate system debugging without triggering the exception, as the FM in question might be in to low-level of a call to debug normally.