CALL FUNCTION 'ZGL_GET_POPER'
    EXPORTING
      bukrs      = c_bukrs
      budat_low  = gv_fr_dt
      budat_high = gv_to_dt
    TABLES
      er_poper   = gt_poper.




































> Function source

 DATA: BEGIN OF lt_t009 OCCURS 0,
      bdatj TYPE t009b-bdatj,
      bumon TYPE t009b-bumon,
      butag TYPE t009b-butag,
      poper TYPE t009b-poper,
      reljr TYPE t009b-reljr,
    END OF lt_t009.

  RANGES s_bdatj FOR t009b-bdatj.
  DATA l_budat TYPE dats.

  DATA: lv_low TYPE sy-datum,
        lv_high TYPE sy-datum.

  CLEAR: lv_low, lv_high.

  lv_low = budat_low.
  lv_high = budat_high.

  SELECT bdatj bumon butag poper reljr
    INTO TABLE lt_t009 FROM t009b
    WHERE periv = 'ZF'
      AND bdatj = lv_low(4).

  IF lv_high IS INITIAL.
    lv_high = lv_low.
  ENDIF.

  LOOP AT lt_t009.

    CONCATENATE lt_t009-bdatj lt_t009-bumon lt_t009-butag INTO l_budat.
    IF l_budat >= lv_low AND l_budat <= lv_high.
      er_poper-gjahr = lt_t009-bdatj + lt_t009-reljr.
      er_poper-poper = lt_t009-poper.
      er_poper-budat = l_budat.
      er_poper-rpmax = CEIL( lt_t009-poper / 16 ) * 16.
      er_poper-gigan = er_poper-poper MOD 16 .

      IF er_poper-gigan = 0.
        er_poper-gigan = 16.
      ENDIF.

      APPEND er_poper. CLEAR er_poper.
    ENDIF.
    CLEAR lt_t009.
  ENDLOOP.

  SORT er_poper BY budat.

> Function 수행후 값 가져오는 부분

  LOOP AT gt_poper.

    LOOP AT gt_ska1.
      CLEAR faglflext.
      SELECT *   FROM faglflext WHERE ryear = p_woldo(4)
                        AND  rpmax = gt_poper-rpmax
                        AND  rldnr = 'Z1'
                        AND  rbukrs = '1000'
                        AND  racct = gt_ska1-saknr.

        ASSIGN ' ' TO <fs>.
        CONCATENATE 'FAGLFLEXT-HSL' gt_poper-gigan INTO l_field.

        ASSIGN (l_field) TO <fs>.

        IF <fs> IS NOT INITIAL.
          gt_data2-budat = gt_poper-budat.
          gt_data2-hkont = faglflext-racct.
          gt_data2-gsber = faglflext-rbusa.

          IF faglflext-rfarea IS INITIAL.
            gt_data2-fkber = 'ZZZZZZ'.
          ELSE.
            gt_data2-fkber = faglflext-rfarea.
          ENDIF.

          IF faglflext-drcrk = 'S'.
            gt_data2-s_amt = <fs>.
          ELSE.
            gt_data2-h_amt = <fs> .
          ENDIF.


          COLLECT gt_data2. CLEAR gt_data2.

        ENDIF.

      ENDSELECT.

      CLEAR gt_ska1.
    ENDLOOP.

    CLEAR gt_poper.
  ENDLOOP.


Posted by 아빠!캠핑가!
,