‎2007 Nov 01 2:41 PM
Hi all,
I have a interesting selection to be made from a Particular table the search is with material and plant.I fit is not found i have to search with the pattern as given below untill the corresponding material is found .any idea how i can do it.
for example see below
plant----material
H101 BTMSTY13/200
H101 BTMSTY13/20*
H101 BTMSTY13/2*
H101 BTMSTY13/*
H101 BTMSTY13*
H101 BTMSTY1*
H101 BTMSTY*
H101 BTMST*
H101 BTMS*
H101 BTM*
H101 BT*
H101 B*
H101 *
BTMSTY13/200
BTMSTY13/20*
BTMSTY13/2*
BTMSTY13/*
BTMSTY13*
BTMSTY1*
BTMSTY*
BTMST*
BTMS*
BTM*
BT*
B*
*
i have to search untill it reaches * * how can i search from table using pattern.
Thanks and regards,
Hemraj
‎2007 Nov 01 3:08 PM
THIS CODE MIGHT HELP
DATA: WA_MARC TYPE TYPES_MARC,
WL_WHR TYPE STRING,
WL_TIME TYPE SY-TABIX,
WL_LEN1 TYPE SY-INDEX,
WL_LEN2 TYPE SY-INDEX.
** Build Dynamic Select Query.
WL_LEN1 = STRLEN( P_WERKS ).
WL_LEN2 = STRLEN( P_MATNR ).
DO.
WL_WHR = 'WERKS = P_WERKS AND MATNR = P_MATNR'.
SELECT SINGLE WERKS MATNR FROM MARC INTO WA_MARC
WHERE (WL_WHR).
IF SY-SUBRC = 0.
EXIT.
ELSE.
WL_LEN1 = WL_LEN1 - 1.
IF WL_LEN1 >= 0.
P_WERKS+WL_LEN1(SY-INDEX) = '*'.
WL_WHR = 'WERKS = P_WERKS AND MATNR = P_MATNR'.
SELECT SINGLE WERKS MATNR FROM MARC INTO WA_MARC
WHERE (WL_WHR).
IF SY-SUBRC = 0.
EXIT.
ELSE.
WL_LEN2 = WL_LEN2 - 1.
IF WL_LEN2 >= 0.
P_MATNR+WL_LEN2(SY-INDEX) = '*'.
WL_WHR = 'WERKS = P_WERKS AND MATNR = P_MATNR'.
SELECT SINGLE WERKS MATNR FROM MARC INTO WA_MARC
WHERE (WL_WHR).
IF SY-SUBRC = 0.
EXIT.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDDO.Hope That helps
Anirban M.
‎2007 Nov 01 2:45 PM
‎2007 Nov 01 3:08 PM
THIS CODE MIGHT HELP
DATA: WA_MARC TYPE TYPES_MARC,
WL_WHR TYPE STRING,
WL_TIME TYPE SY-TABIX,
WL_LEN1 TYPE SY-INDEX,
WL_LEN2 TYPE SY-INDEX.
** Build Dynamic Select Query.
WL_LEN1 = STRLEN( P_WERKS ).
WL_LEN2 = STRLEN( P_MATNR ).
DO.
WL_WHR = 'WERKS = P_WERKS AND MATNR = P_MATNR'.
SELECT SINGLE WERKS MATNR FROM MARC INTO WA_MARC
WHERE (WL_WHR).
IF SY-SUBRC = 0.
EXIT.
ELSE.
WL_LEN1 = WL_LEN1 - 1.
IF WL_LEN1 >= 0.
P_WERKS+WL_LEN1(SY-INDEX) = '*'.
WL_WHR = 'WERKS = P_WERKS AND MATNR = P_MATNR'.
SELECT SINGLE WERKS MATNR FROM MARC INTO WA_MARC
WHERE (WL_WHR).
IF SY-SUBRC = 0.
EXIT.
ELSE.
WL_LEN2 = WL_LEN2 - 1.
IF WL_LEN2 >= 0.
P_MATNR+WL_LEN2(SY-INDEX) = '*'.
WL_WHR = 'WERKS = P_WERKS AND MATNR = P_MATNR'.
SELECT SINGLE WERKS MATNR FROM MARC INTO WA_MARC
WHERE (WL_WHR).
IF SY-SUBRC = 0.
EXIT.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDDO.Hope That helps
Anirban M.
‎2007 Nov 02 6:16 AM