ALV Call Transaction VK13 Using BDC

来源:互联网 发布:数控铣床编程与加工 编辑:程序博客网 时间:2024/05/21 05:38

DATABDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.

FORM 
F_COMMAND USING I_UCOMM    TYPE SY-UCOMM

               I_SELFIELD TYPE SLIS_SELFIELD.
  DATABEGIN OF MESSTAB OCCURS 10.
          INCLUDE STRUCTURE BDCMSGCOLL.
  DATAEND OF MESSTAB.
  CASE I_UCOMM.
    WHEN '&IC1'.
      READ TABLE TD_OUT INTO TH_OUT INDEX I_SELFIELD-TABINDEX.
      IF TH_OUT IS NOT INITIAL.
        PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0100'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RV13A-KSCHL'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RV13A-KSCHL'
                                      'ZPR0'.
        PERFORM BDC_DYNPRO      USING 'SAPLV14A' '0100'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RV130-SELKZ(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=WEIT'.
        PERFORM BDC_DYNPRO      USING 'RV13A902' '1000'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'F001'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ONLI'.
        PERFORM BDC_FIELD       USING 'F001'
                                      TH_OUT-VKORG.
        PERFORM BDC_FIELD       USING 'F002'
                                      TH_OUT-VTWEG.
        PERFORM BDC_FIELD       USING 'F003'
                                      TH_OUT-KUNNR.
        PERFORM BDC_FIELD       USING 'F004-LOW'
                                      TH_OUT-MATNR.
        PERFORM BDC_FIELD       USING 'SEL_DATE'
                                      TH_OUT-EDDAT.

        CALL TRANSACTION 'VK13' USING BDCDATA
                            MODE 'E'
                            UPDATE 'A'
                            MESSAGES INTO MESSTAB.


      ENDIF.
  ENDCASE.

ENDFORM.                    "F_COMMAND


*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROGRAM    text
*      -->DYNPRO     text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  PROGRAM.
  BDCDATA-DYNPRO   DYNPRO.
  BDCDATA-DYNBEGIN 'X'.
  APPEND BDCDATA.
  CLEAR BDCDATA.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  CLEAR BDCDATA.
  BDCDATA-FNAM FNAM.
  BDCDATA-FVAL FVAL.
  APPEND BDCDATA.
  CLEAR BDCDATA.
ENDFORM.                    "BDC_FIELD