cancel
Showing results for 
Search instead for 
Did you mean: 

error in webdynpro for abap

former_member612715
Participant
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

former_member612715
Participant
0 Kudos

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.

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

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.

Former Member
0 Kudos

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 ' '. *----


here if vbeln = '00000000' then the if condition is satisfied.....*

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'. ----


here you concatenate an AND only if vbeln is not 00000000 - if it is 00000000, still there should be an AND- try changing this to '' instead of '00000000' to make it look like if ls_node_vbak ne ''.

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

Answers (2)

Answers (2)

former_member612715
Participant
0 Kudos

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

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

>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.

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

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).