Skip to Content
0
Former Member
Jan 05, 2011 at 11:47 AM

how to use dynamic query for this ??

51 Views

hi , i am new to ABAP. i got a requirement to write dynamic query for the following code.

kindly address. two set of queries are same.but condition is different.

.IF p_psd EQ ' '.
*C--End of change DF 1232137- (Transport # :CIDK980530 )
*C--FETCH THE Deliverd Quantiity and Material Number
    SELECT aufnr "ORDER number
           wemng "Quantity of goods received for the order item
           matnr "MATERIAL NUMBER
           pwerk "PLANT
           dauat "Order Type
           FROM afpo
           INTO TABLE t_afpo
           WHERE aufnr IN s_order
           AND   wemng IN s_dqt
           AND   matnr IN s_matnr
           AND   pwerk IN s_plant
           AND   dauat = c_ro.
    IF sy-subrc = 0.
      SORT t_afpo BY aufnr matnr pwerk.
*C--FETCH THE OBJECT NUMBER
      SELECT aufnr "ORDER number
             objnr "Object number
             FROM aufk
             INTO TABLE t_aufk
             FOR ALL ENTRIES IN t_afpo
             WHERE aufnr = t_afpo-aufnr.
      IF sy-subrc = 0.
        SORT t_aufk BY aufnr objnr.
*C--FETCH THE Target Quantiity
        SELECT aufnr "ORDER number
               gamng "Total order quantity target quantity
               FROM afko
               INTO TABLE t_afko
               FOR ALL ENTRIES IN t_afpo
               WHERE aufnr = t_afpo-aufnr
               AND   gamng IN s_tqt.
        IF sy-subrc = 0.
          SORT t_afko BY aufnr .
        ENDIF.
      ENDIF.
    ELSE.
      MESSAGE text-e03 TYPE c_s. " No data for the selection criteria
      LEAVE LIST-PROCESSING.

    ENDIF.
*C--Begin of change DF 1232137- (Transport # :CIDK980530 )
  ENDIF.

  IF p_psd EQ c_x.
    SELECT aufnr "ORDER number
           wemng "Quantity of goods received for the order item
           matnr "MATERIAL NUMBER
           pwerk "PLANT
           dauat "Order Type
           FROM afpo
           INTO TABLE t_afpo
           WHERE aufnr IN s_order
           AND   wemng > 0
           AND   matnr IN s_matnr
           AND   pwerk IN s_plant
           AND   dauat = c_ro.
if sy-subrc = 0.

*C--FETCH THE OBJECT NUMBER
    IF  NOT t_afpo[] IS INITIAL.
      SORT t_afpo BY aufnr matnr pwerk.

      SELECT aufnr "ORDER number
             objnr "Object number
             FROM aufk
             INTO TABLE t_aufk
             FOR ALL ENTRIES IN t_afpo
             WHERE aufnr = t_afpo-aufnr.
      IF sy-subrc = 0.
        SORT t_afko BY aufnr gamng.

      ELSE.
        MESSAGE text-e03 TYPE c_s. " No data for the selection criteria
        LEAVE LIST-PROCESSING.
      ENDIF.
    ENDIF.
    IF NOT t_afpo[] IS INITIAL.

*C--FETCH THE Target Quantiity
      SELECT aufnr "ORDER number
             gamng "Total order quantity target quantity
             FROM afko
             INTO TABLE t_afko
             FOR ALL ENTRIES IN t_afpo
             WHERE aufnr = t_afpo-aufnr
             AND   gamng <> t_afpo-wemng .
      IF sy-subrc = 0.
        SORT t_afko BY aufnr gamng.
      ELSE.
        MESSAGE text-e03 TYPE c_s. " No data for the selection criteria
        LEAVE LIST-PROCESSING.
      ENDIF.
    ENDIF.
  ELSE.
    MESSAGE text-e03 TYPE c_s. " No data for the selection criteria
    LEAVE LIST-PROCESSING.
  ENDIF.

Edited by: Thomas Zloch on Jan 5, 2011 1:30 PM please use code tags