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: 

PERFORM_NOT_FOUND short dump

perry_song
Explorer
0 Kudos

Hello expert,

Please help on the custom code case:

short dump:

Runtime Errors PERFORM_NOT_FOUND

Exception CX_SY_DYN_CALL_ILLEGAL_FORM

Call (PERFORM) to a non-existent routine.

An exception occurred that is explained in detail below.

The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_FORM', was not caught in procedure "GET_ETC_SUMMARY_VALUE_2" "(FORM)", nor was it propagated by a RAISING clause. Since the caller of the procedure could not have anticipated that the exception would occur, the current program is terminated. The reason for the exception is: The program "SAPLZELUPF04V7" is meant to execute an external PERFORM, namely the routine "TDD_FMULA_CYF0002301_0001 " of the program "ZELUPLTDD_FMULA", but this routine does not exist. This may be due to any of the following reasons:

1. One of the programs "SAPLZELUPF04V7" or "ZELUPLTDD_FMULA" is currently being developed. The name "TDD_FMULA_CYF0002301_0001 " of the called routine may be incorrect, or the routine "TDD_FMULA_CYF0002301_0001 " is not yet implemented in the program "ZELUPLTDD_FMULA".

2. If the program SAPMSSY1 is involved in the runtime error, one of the function modules called via RFC is not flagged as remote-capable. (see Transaction SE37 Goto -> Administration -> RFC flag)

3. There is an inconsistency in the system. The versions of the programs "SAPLZELUPF04V7" and "ZELUPLTDD_FMULA" do not match.

=====================================

[Program type]

1.A (Type : 1)

2.B (Type : RFC function)

3.C (Type : S)

[Program execution process]

1.After Batch execution of #A# program, the program composes #Form

external program (program type : subroutine pool), then program

generated.

2.During execution of #A# program, #B# function controlled by para

process (RFC)

3.#C# program which generated by #B# program calls pertinent #FORM

sentence.

[Issues occurred]

1.The pertinent #FORM# sentence called by #PERFORM subr (sname) IN

PROGRAM [prog (pname)]# way but runtime error message occurred

(message : #PERFORM NOT FOUND) the pertinent #FORM# sentence exis

in #C# program actually.

[Opinion]

1.Whether Program source too big to be generated.

2.I suppose subroutine pool was not generated because the error

happened at first phase of RFC job. (#A# program does #Generatio while its execution.)

====================================

Many thanks,

Perry Song on behalf of customer.

4 REPLIES 4

Former Member
0 Kudos

the short dump clearly refers to yoru custom programs, and there is a perform routine coded which doesnt have any corresponding Form subroutine,

check your system and fix the error. No one at SDN would be able to fix this issue.

MxG on behalf of MxG

former_member598013
Active Contributor
0 Kudos

Hi Perry,

The Subroutine GET_ETC_SUMMARY_VALUE_2 is Not present in the Program. Thats why the short dump is coming when the system try to access the Perform and not able to locate where is it..

Just analyse why the perform is not present.. or you just missed this perform body in your program

Best way is create a body of the Perform by using Form Endform. This will fix your problem.

Thanks,

Chidanand

Former Member
0 Kudos

Hello Perry song,

You got the short dump bcoz, there is no perform by the name you provided in the program,

for example. consider there are 2 programs.

Program 1 :

REPORT ZPGM1.

*Calling a perform SNAME1 , the code of perform is written in ZPGM2.

perform sname1 IN PROGRAM ZPGM2.

Program 2 :

REPORT ZPGM2.

perform sname1 .

Form SNAME1 .

write : 'Text in form SNAME1' .

endform. " SNAME1

(here SNAME1 is found and it works perfectly )

*********************************************************

Change in Program 1 :

REPORT ZPGM1.

*Calling perform DELTA ,

perform DELTA IN PROGRAM ZPGM2 IF FOUND.

  • Now the perform statement will search for perform " DELTA " in ZPGM2 , but there is no perform by name DELTA , so here we need to mention the condition " IF FOUND " , so now by mentioning the condition " IF FOUND " in perform statement , if the perform DELTA is not found then it wont go to DUMP.

If condition " IF FOUND " is not mentioned in perform statement like

perform DELTA IN PROGRAM ZPGM2 . ( This gives DUMP )

just type " IF FOUND " when u r calling a perform from other program ( i guess this will solve the problem ).

Hope it might be helpfull,

Regards ,

Aby

Edited by: abhi on Nov 6, 2008 10:14 AM

0 Kudos

This message was moderated.