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: 

Urgent dynamic select condition.

Former Member
0 Kudos

Hi SDN,

I am using a dynamic where clause in my select condition i.e.

Select * from (Table ) into table it_table

where ( dyn_tab ).

but some times it works well & some times it gives dump..

Can u please tell me why it's giving dump.

Regards,

Rahul

1 ACCEPTED SOLUTION

Former Member
0 Kudos

hI,

DATA:

gd_where_conditions TYPE string.

SELECT * FROM ...

WHERE ( gd_where_conditions ).

However, if you are working on 6.20 (or less) than you could use the following function module to create your dynamic WHERE condition(s): RH_DYNAMIC_WHERE_BUILD

The function module returns the WHERE conditions in CONDTAB. Thus, you could code:

TYPES: BEGIN OF ty_s_clause.

TYPES: line(72) TYPE c.

TYPES: END OF ty_s_clause.

DATA:

gt_where_clauses TYPE STANDARD TABLE OF ty_s_clause

WITH DEFAULT KEY.

DATA:

gt_condtab TYPE STANDARD TABLE OF hrcond.

  • Fill gt_condtab with the required conditions

CALL FUNCTION 'RH_DYNAMIC_WHERE_BUILD'

EXPORTING

dbtable = space " can be empty

TABLES

condtab = gt_condtab

where_clause = gt_where_clauses

EXCEPTIONS

empty_condtab = 01

no_db_field = 02

unknown_db = 03

wrong_condition = 04.

  • Select your data

SELECT * FROM ...

WHERE (gt_where_clauses).

hope this helps.

plz reward if helpful

rEGARDS,

sANKAR

2 REPLIES 2

Former Member
0 Kudos

well this is quite hard without any error message.

sure i could start to estimate now and yeah prolly its a conversion error, but still this is way to less information to give any analysis on your problem.

Former Member
0 Kudos

hI,

DATA:

gd_where_conditions TYPE string.

SELECT * FROM ...

WHERE ( gd_where_conditions ).

However, if you are working on 6.20 (or less) than you could use the following function module to create your dynamic WHERE condition(s): RH_DYNAMIC_WHERE_BUILD

The function module returns the WHERE conditions in CONDTAB. Thus, you could code:

TYPES: BEGIN OF ty_s_clause.

TYPES: line(72) TYPE c.

TYPES: END OF ty_s_clause.

DATA:

gt_where_clauses TYPE STANDARD TABLE OF ty_s_clause

WITH DEFAULT KEY.

DATA:

gt_condtab TYPE STANDARD TABLE OF hrcond.

  • Fill gt_condtab with the required conditions

CALL FUNCTION 'RH_DYNAMIC_WHERE_BUILD'

EXPORTING

dbtable = space " can be empty

TABLES

condtab = gt_condtab

where_clause = gt_where_clauses

EXCEPTIONS

empty_condtab = 01

no_db_field = 02

unknown_db = 03

wrong_condition = 04.

  • Select your data

SELECT * FROM ...

WHERE (gt_where_clauses).

hope this helps.

plz reward if helpful

rEGARDS,

sANKAR