2007 Nov 20 11:49 AM
Hi. My codes below (which uses BINARY SEARCH) gives an error message.
Any idea why? thanks.
Error Message: The addition "BINARY SEARCH" cannot be used with index access or general tab search.
**********************************************************
REPORT ZKK_BINARY_SEARCH.
TABLES: ZSCSDM_ED.
DATA: ITAB_VAL TYPE TABLE OF ZDM_A_CC01 WITH HEADER LINE.
DATA: ITAB_ERR TYPE TABLE OF ZSCSDM_ED WITH HEADER LINE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB_VAL FROM ZDM_A_CC01
WHERE LOAD_ID = 000045 AND USER_STATUS <> 'D'.
TABLES: T005 .
DATA: BEGIN OF ITAB_REF0011_LINE,
LAND1 TYPE T005-LAND1,
END OF ITAB_REF0011_LINE.
DATA: ITAB_REF0011 LIKE TABLE OF ITAB_REF0011_LINE WITH HEADER LINE.
SELECT LAND1 FROM T005
INTO CORRESPONDING FIELDS OF TABLE ITAB_REF0011.
LOOP AT ITAB_VAL.
DATA: TEMP LIKE LINE OF ITAB_REF0011.
SORT ITAB_REF0011.
READ TABLE ITAB_REF0011 WITH TABLE KEY
LAND1 = ITAB_VAL-ABTEI
BINARY SEARCH.
ENDLOOP.
2007 Nov 20 11:53 AM
SORT ITAB_REF0011 by LAND1. " Sort the table by LAND1
LOOP AT ITAB_VAL.
DATA: TEMP LIKE LINE OF ITAB_REF0011.
SORT ITAB_REF0011.
READ TABLE ITAB_REF0011 WITH KEY " Changed WITH TABLE to WITH KEY
LAND1 = ITAB_VAL-ABTEI
BINARY SEARCH.
ENDLOOP.
Hi. My codes below (which uses BINARY SEARCH) gives an error message.
Any idea why? thanks.
Error Message: The addition "BINARY SEARCH" cannot be used with index access or general tab search.
**********************************************************
REPORT ZKK_BINARY_SEARCH.
TABLES: ZSCSDM_ED.
DATA: ITAB_VAL TYPE TABLE OF ZDM_A_CC01 WITH HEADER LINE.
DATA: ITAB_ERR TYPE TABLE OF ZSCSDM_ED WITH HEADER LINE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB_VAL FROM ZDM_A_CC01
WHERE LOAD_ID = 000045 AND USER_STATUS <> 'D'.
TABLES: T005 .
DATA: BEGIN OF ITAB_REF0011_LINE,
LAND1 TYPE T005-LAND1,
END OF ITAB_REF0011_LINE.
DATA: ITAB_REF0011 LIKE TABLE OF ITAB_REF0011_LINE WITH HEADER LINE.
SELECT LAND1 FROM T005
INTO CORRESPONDING FIELDS OF TABLE ITAB_REF0011.
LOOP AT ITAB_VAL.
DATA: TEMP LIKE LINE OF ITAB_REF0011.
SORT ITAB_REF0011.
READ TABLE ITAB_REF0011 WITH TABLE KEY
LAND1 = ITAB_VAL-ABTEI
BINARY SEARCH.
ENDLOOP.
2007 Nov 20 11:53 AM
Hi
READ TABLE ITAB_REF0011 WITH KEY
LAND1 = ITAB_VAL-ABTEI
BINARY SEARCH.
use this
if it is table key then it wil be unique so need of searching
regards,
Venkatesh
2007 Nov 20 11:53 AM
SORT ITAB_REF0011 by LAND1. " Sort the table by LAND1
LOOP AT ITAB_VAL.
DATA: TEMP LIKE LINE OF ITAB_REF0011.
SORT ITAB_REF0011.
READ TABLE ITAB_REF0011 WITH KEY " Changed WITH TABLE to WITH KEY
LAND1 = ITAB_VAL-ABTEI
BINARY SEARCH.
ENDLOOP.
2007 Nov 20 12:11 PM
Hi all, thanks for the help. really appreciate it.
Another question is, if we use BINARY SEARCH on an internal table, do we have to sort the internal table first?
2007 Nov 20 11:54 AM
read table should have INTO.
because u have to retrieve the information into any variable then only it will work
2007 Nov 20 11:58 AM
Hi,
If you dont want to retrive data
just use transporting no-fields.
in additions
now you can check the sy-subrc .
Regards,
siva
2007 Nov 20 12:13 PM
yes,
u need to sort based on the fields that u are using in read statement, else the result need not be accurate
2007 Nov 20 12:13 PM
yes it's compulsary if u want to use binary search u should use sort before using read statement.
read statement must have into ,
u just check it out
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |