Application Development and Automation 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: 
Read only

selecting data from table

Former Member
0 Likes
502

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

1 ACCEPTED SOLUTION
Read only

former_member480923
Active Contributor
0 Likes
481

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.

3 REPLIES 3
Read only

Former Member
0 Likes
481

what table. How many records in each table.

Read only

former_member480923
Active Contributor
0 Likes
482

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.

Read only

0 Likes
481

Thank u Anirban for the help and effort .I will try this.