01-15-2015 12:18 AM
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
01-15-2015 4:06 AM
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.
01-15-2015 4:14 PM
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
01-16-2015 5:28 AM
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.
01-15-2015 8:41 AM
Hello,
Check SAP note:
800368 - Access method 'M' if you use an external storage system
Regards,
David
01-15-2015 4:15 PM
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
04-23-2015 3:53 PM
Check the tableSpace on your system. no space on the target system
08-10-2015 11:27 PM
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.