cancel
Showing results for 
Search instead for 
Did you mean: 

CALL FUNCTION error

Former Member
0 Kudos

Hi,

I am using the following call .

CALL FUNCTION 'Z_SD_IT_KONP_TABLE_FILL'

STARTING NEW TASK 'INFO'

PERFORMING return_info ON END OF TASK.

My program works correctly and recieves the data from the above Async RFC . But when my program terminates the other session which is created dumps giving error as CALL_FUNCTION_SEND_ERROR . Does anyone know why this is happening, or does any one know hoe to close a RFC connection.

Kunal

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi kunal,

Try setting a global flag variable to 'X' in your "return_info" subroutine and use the following after your CALL FUNCTION statement..

WAIT UNTIL <your global flag> = 'X'.

This will wait till the RFC function is complete and your routine return_info is processed.

For example,

FORM return_info USING taskname.

RECEIVE RESULTS FROM FUNCTION....

.....

gv_rfc_complete = 'X'.

ENFORM.

and then after your CALL FUNCTION statement..

WAIT UNTIL gv_rfc_complete = 'X'.

Sri

Message was edited by: Srikanth Pinnamaneni

Former Member
0 Kudos

Hi,

My program also has the following code.

RECEIVE RESULTS FROM FUNCTION 'Z_SD_IT_KONP_TABLE_FILL'

TABLES i_konp = i_konp_rfc

EXCEPTIONS

communication_failure = 1 MESSAGE w_msg

system_failure = 2 MESSAGE w_msg.

and also the wait call. My problem is not in my program , i am getting the FM results correctly and my program then process the data . The dump occurs in a different session which gets created due to the RFC call .

regards,

Kunal

Former Member
0 Kudos

Hi Kunal,

Check OSS NOTE 364218..

Actually I am giving the Note content below,

Symptom

Short dump with CALL_FUNCTION_SEND_ERROR or CALL_FUNCTION_REMOTE_ERROR occurs during the execution of a tRFC/qRFC-LUW (first function in "Active calls" is ARFC_DEST_SHIP or TRFC_QIN_DEST_SHIP).

In smq1, smq2 or sm58 the system displays error text "(I/O error)" or "Error in RFC driver program".

Additional key words

Cause and prerequisites

The problem is caused by incorrect programming in the application. During the execution of a tRFC/qRFC-LUW, a function was called via RFC with the destination 'BACK', which is not permitted because tRFC or qRFC does not have a normal RFC server and therefore does not have an RFC client.

Solution

Refer to the following note to eliminate the error:

By calling one of the function modules TRFC_RECEIVER_INFO or REMOTEID_OF_BACKGROUNDTASK you can determine if you are in a tRFC/qRFC environment (trfctype = space or tid = space means no tRFC/qRFC).

Sri

former_member225448
Participant
0 Kudos

Hello Sri,

Kunal is using asyncRFC and not transactional/queued RFC, which is something diffenrent.

Regards,

Juergen

Former Member
0 Kudos

Hi,

I am not running the call function in a tRFC since i am using STARTING NEW TASK which creates a Async RFC. I have never used the 'DESTINATION' keyword and thus it has opened a RFC GROUP DESTINATION call .So i still don't understand why this error has occurred.

regards,

Kunal

Former Member
0 Kudos

Hi Kunal,

Did you try using KEEPING TASK addition RECEIVE RESULTS FROM FUNCTION.. ? I know it will result in degradation of performance but just to check why this is happening..

Also if you do not specifiy DESTINATION then sytem calls it with DESTINATION 'NONE'..

How is your WAIT call coded? Is it possible for you to post it here?

If you find a solution for your problem then please post it here.

Also check this out..

<b> Replies to asynchronous calls can only be received if there is a change of roll area (e.g. a screen change) or if you use WAIT (online and in the background).</b>

Do you have any call screen statements etc in the RFC fm?

Sri

Message was edited by: Srikanth Pinnamaneni

Message was edited by: Srikanth Pinnamaneni

Former Member
0 Kudos

Kunal,

Call function errors happens when the parameters that you are passing as export / import from the caller program, are not matching the corresponding typs in the FM. check that first.