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: 

Dump RPERF_ILLEGAL_STATEMENT on calling a if_http_client->send within a custom conversion exit

Former Member
0 Kudos

Hi Experts,

I have a conversion exit on a field which initially used to invoke a RFC call connection of type "T" and retrieve certain data set/do some validations.

This is working perfectly.

In a separate development project scenario we are using the if_http_client(s) - send request to send and receive data from a web server using RFC connection type "G". As a standalone program its working fine but when it gets invoked via the conversion exit it results in the below dump.txt attached

Can you please let me know what is wrong and how I can overcome this situation, I have to use the web service scenario.

Some code snippet where the dump is happening >>>>>>>:

   " Send the request to cardconnect server

>>>>>>>>>>>> CALL METHOD lv_http_client->send.

Flow:

ABAP Screen(s) data element -> Calls conversion exit -> calls few validations and a function to send and recieve some data from a web end point.. and on sending the dump happens.

ABAP dump:


Short text

    Statement "RFC-SYSTEM RFC_ID id RFC_VALUE value" is not allowed in this form.

What happened?

    Error in the ABAP Application Program


    The current ABAP program "SAPLSHTTP" had to be terminated because it has

    come across a statement that unfortunately cannot be executed.

What can you do?

    Note down which actions and inputs caused the error.

    To process the problem further, contact you SAP system

    administrator.

    Using Transaction ST22 for ABAP Dump Analysis, you can look

    at and manage termination messages, and you can also

    keep them for a long time.

Error analysis

    There is probably an error in the program

    "SAPLSHTTP".

    The program was probably called in a conversion exit

    or in a field exit. These are implemented by

    function modules called CONVERSION_EXIT_xxxxx_INPUT/OUTPUT or

    USER_EXIT_xxxxx_INPUT.

    Conversion exits are triggered during screen field transports or

    WRITE statements, field exits during field transports from the

    screen to the ABAP/4 program.

    In this connection, the following ABAP/4 statements are not allowed:

-  CALL SCREEN

-  CALL DIALOG

-  CALL TRANSACTION

-  SUBMIT

-  MESSAGE W... and MESSAGE I...

-  COMMIT WORK, ROLLBACK WORK

-  COMMUNICATION RECEIVE

-  STOP

-  REJECT

-  EXIT FROM STEP-LOOP

Moreover, conversion exits for output conversion

(implemented by function modules called

CONVERSION_EXIT_xxxxx_OUTPUT) do not allow

-  MESSAGE E...

to be used.

Thanks,

Rupali

7 REPLIES 7

Former Member
0 Kudos

Hi,

Are you really need to call it from conversion exit?

As it mentioned in short dump, not all statements are allowed in such call, so you can redesign your program to avoid call from conversion exit.

Best regards,

Nick.

0 Kudos

Hi Nick,

Yes, i need to use  this design at the moment.

I also tried using the below to create a new task and i am not allowed to use a wait statemnt in the main program. I have kind of hit the road block.

*CALL FUNCTION 'XX'

*    STARTING NEW TASK 'NEW'

*     DESTINATION 'NONE'

*    PERFORMING sub_proc ON END OF TASK

*    EXPORTING

*    

*    EXCEPTIONS

*      OTHERS            = 99.

is there any workaround or alternative?

Appreciate your help!

Best Regards,

Rupali

0 Kudos

Hi, Rupali.


I think there is no straightforward workaround.

Possible variants:

1)instead of conversion exit perform call in some ENHANCEMENT-POINT of PAI module VBAK_FUELLEN (include MV45AIAK_VBAK_FUELLEN)

IMHO it's the simplest.

2)redesign code of conversion exit to avoid illegal statements.

3)write small RFC server which implements function /PPSSEC/SAPLTS20001. You can call it from conversion_exit via RFC connection type T and call /PPSSEC/SAPLTS20001 implemented in SAP system from there.

Best regards,

Nick.

david_liu1
Advisor
Advisor
0 Kudos

Hello,

Check SAP note:

800368 - Access method 'M' if you use an external storage system

Regards,

David

0 Kudos

Hi David,

Thank you for the reply.

This sap note is not relevant to my issue here.

800368 - Access method 'M' if you use an external storage system


Regards,

Rupali

brian_briones
Participant
0 Kudos

Check the tableSpace on your system. no space on the target system

former_member338441
Discoverer
0 Kudos

Hi Rupali,

I had the same problem and I have code that is a work in progress.  What I've done so far is to define a new RFC enabled function module and call that from within the conversion exit.  Example below:

FUNCTION CONVERSION_EXIT_ZZWHT_INPUT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(INPUT)
*"  EXPORTING
*"     VALUE(OUTPUT)
*"----------------------------------------------------------------------

DATA: l_input  TYPE char50,
      l_output TYPE char50.

   l_input = input.

   CALL FUNCTION 'ZCONVERT_ZZWHT' DESTINATION 'NONE'
     EXPORTING
       input  = l_input
     IMPORTING
       output = l_output.

   output = l_output.

ENDFUNCTION.

Like yourself, the command "CALL METHOD lv_http_client->send." is called within the new RFC function module.  So far this solution has not dumped on me yet.  Will do more testing.