on 07-31-2008 6:52 PM
Hi Friends,
While creating a webdynpro application, i am getting the following error on the browser when i execute the application. Please help me how can i solve it.
The following error text was processed in the system SE1 : Error in module RSQL of the database interface.
The error occurred on the application server topwdserd001_SE1_51 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: ONACTIONACTION_FIND of program /1BCWDY/3T1358J0N3JXJR8HK9WA==CP
Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/3T1358J0N3JXJR8HK9WA==CP
Method: INVOKE_EVENTHANDLER of program CL_WDR_DELEGATING_VIEW========CP
Method: IF_WDR_ACTION~FIRE of program CL_WDR_ACTION=================CP
Method: DO_HANDLE_ACTION_EVENT of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW=================CP
Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: IF_WDR_RUNTIME~EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP
here is the code:
can you now see what are the errors:
method ONACTIONACTION_FIND .
DATA LO_ND_NODE_VBAK TYPE REF TO IF_WD_CONTEXT_NODE.
DATA LO_EL_NODE_VBAK TYPE REF TO IF_WD_CONTEXT_ELEMENT.
DATA LS_NODE_VBAK TYPE WD_THIS->ELEMENT_NODE_VBAK.
navigate from <CONTEXT> to <NODE_VBAK> via lead selection
LO_ND_NODE_VBAK = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_NODE_VBAk ).
get element via lead selection
LO_EL_NODE_VBAK = LO_ND_NODE_VBAK->GET_ELEMENT( ).
get all declared attributes
LO_EL_NODE_VBAK->GET_STATIC_ATTRIBUTES(
IMPORTING
STATIC_ATTRIBUTES = LS_NODE_VBAK ).
DATA: ls_where(72) TYPE c,
lt_where like TABLE OF ls_where,
lt_vbak TYPE STANDARD TABLE OF vbak.
if not LS_NODE_VBAK-vbeln eq ' '.
CONCATENATE 'VBELN = ''' ls_node_vbak-vbeln '''' INTO ls_where.
APPEND ls_where to lt_where.
ENDIF.
IF NOT LS_NODE_VBAK-erdat EQ '00000000'.
CONCATENATE 'ERDAT = ''' ls_node_vbak-erdat '''' INTO ls_where.
if LS_NODE_VBAK-vbeln ne '00000000'.
CONCATENATE 'AND' ls_where INTO ls_where SEPARATED BY space.
ENDIF.
APPEND ls_where to lt_where.
ENDIF.
SELECT VBELN ERDAT ERZET ERNAM ANGDT BNDDT AUDAT VBTYP TRVOG AUART
AUGRU GWLDT SUBMI LIFSK FAKSK NETWR WAERK VKORG VTWEG SPART
VKGRP VKBUR GSBER GSKST
FROM vbak INTO TABLE lt_vbak WHERE (lt_where).
DATA LO_ND_NODE_ALV TYPE REF TO IF_WD_CONTEXT_NODE.
DATA LS_NODE_ALV TYPE WD_THIS->ELEMENT_NODE_ALV.
navigate from <CONTEXT> to <NODE_ALV> via lead selection
LO_ND_NODE_ALV = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_NODE_ALV ).
get all declared attributes
LO_ND_NODE_ALV->bind_table( lt_vbak ).
endmethod.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I would say your dynamic where clause is the problem. Have you stepped through it in th debugger to see what value is getting generated in LT_WHERE? There has to be a problem with your format. What happens when both VBELN and ERDAT are initial. You end up with an empty LT_WHERE, right? This might well be the cause of your problem.
Incidently you can make your code much more readable by using string literals
CONCATENATE 'VBELN = ''' ls_node_vbak-vbeln '''' INTO ls_where.
intead
CONCATENATE `VBELN = '` ls_node_vbak-vbeln `'` INTO ls_where.
Hi Aditya,
its definitely a problem in your where clause...
i believe what is happening is that you are not able to concatenate the AND condition properly...
your code is as follows...(check my comments)
if not LS_NODE_VBAK-vbeln eq ' '. *----
CONCATENATE 'VBELN = ''' ls_node_vbak-vbeln '''' INTO ls_where.
APPEND ls_where to lt_where.
ENDIF.
IF NOT LS_NODE_VBAK-erdat EQ '00000000'.
CONCATENATE 'ERDAT = ''' ls_node_vbak-erdat '''' INTO ls_where.
if LS_NODE_VBAK-vbeln ne '00000000'. ----
CONCATENATE 'AND' ls_where INTO ls_where SEPARATED BY space.
ENDIF.
APPEND ls_where to lt_where.
ENDIF.
so the code should look like below...
IF NOT ls_node_vbak-vbeln EQ ' '.
CONCATENATE 'VBELN = ''' ls_node_vbak-vbeln '''' INTO ls_where.
APPEND ls_where TO lt_where.
ENDIF.
IF NOT ls_node_vbak-erdat EQ '00000000'.
CONCATENATE 'ERDAT = ''' ls_node_vbak-erdat '''' INTO ls_where.
IF ls_node_vbak-vbeln NE ''.
CONCATENATE 'AND' ls_where INTO ls_where SEPARATED BY space.
ENDIF.
APPEND ls_where TO lt_where.
ENDIF.
SELECT..............<your select statement here> where (lt_where)
hope it helps
Edited by: Priyank Jain on Aug 1, 2008 1:54 AM
yes, i did accordingly but i am still getting the following errors.
(almost same as previous)
The following error text was processed in the system SE1 : Error in module RSQL of the database interface.
The error occurred on the application server topwdserd001_SE1_51 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: ONACTIONACTION_FIND of program /1BCWDY/3T1358J0N3JXJR8HK9WA==CP
Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/3T1358J0N3JXJR8HK9WA==CP
Method: INVOKE_EVENTHANDLER of program CL_WDR_DELEGATING_VIEW========CP
Method: IF_WDR_ACTION~FIRE of program CL_WDR_ACTION=================CP
Method: DO_HANDLE_ACTION_EVENT of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW=================CP
Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: IF_WDR_RUNTIME~EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
>yes, i did accordingly but i am still getting the following errors.
You did what? I only suggest that you change to the string literals to make your code easier to read - that isn't going to fix your problem. You have something wrong with your where condition. As I said you should debug and see what the where condition value looks like at runtime when causing this error.
You should look to see what logic you have in ONACTIONACTION_FIND. From the error message there must be something wrong with a SQL statement in this method. You can also look at ST22 to find more details (such as the exact line of code that triggered this error).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
76 | |
9 | |
8 | |
7 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.