Scheduling Agreements 생성 BAPI

1. BAPI 명 : BAPI_SAG_CREATE

2. 소스코드

[#M_더보기|접기|

DATA: LS_HEADER  TYPE BAPIMEOUTHEADER.

DATA: LS_HEADERX TYPE BAPIMEOUTHEADERX.

DATA: LS_ITEM    TYPE BAPIMEOUTITEM.

DATA: LT_ITEM    TYPE TABLE OF BAPIMEOUTITEM.

DATA: LS_ITEMX   TYPE BAPIMEOUTITEMX.

DATA: LT_ITEMX   TYPE TABLE OF BAPIMEOUTITEMX.

DATA: LS_RETURN  TYPE BAPIRET2.

DATA: LT_RETURN  TYPE TABLE OF BAPIRET2.

DATA: LS_MARA TYPE MARA.

DATA: LT_MARA TYPE TABLE OF MARA.

DATA: LV_ITEM_NO(10) TYPE N.

* 자재코드 조회.

CLEAR: LT_MARA.

SELECT A~MATNR UP TO 1000 ROWS

             INTO CORRESPONDING FIELDS OF TABLE LT_MARA

             FROM MARA AS A INNER JOIN MARC AS C

               ON A~MATNR = C~MATNR

            INNER JOIN MARD AS D

               ON C~MATNR = D~MATNR

              AND C~WERKS = D~WERKS

            WHERE

*  A~MATNR LIKE ‘0000000000072%’

              A~LVORM EQ   SPACE

              AND A~MTART EQ   ‘ROH7’

              AND A~MATKL LIKE ‘Z73%’

              AND A~MEINS IN (‘EA’, ‘KG’)

              AND C~WERKS EQ   ‘1100’

              AND D~LGORT EQ   ‘1703’.

*              AND D~LABST GT 0.

* Header.

LS_HEADER-COMP_CODE = ‘TPYP’.

LS_HEADER-DOC_TYPE = ‘LPA’.

LS_HEADER-CREAT_DATE = SY-DATUM.

LS_HEADER-VENDOR = ‘0000020086’.

LS_HEADER-PMNTTRMS = ‘TP53’.

LS_HEADER-PURCH_ORG = ‘2000’.

LS_HEADER-PUR_GROUP = ‘276’.

LS_HEADER-CURRENCY = ‘KRW’.

LS_HEADER-VPER_START = SY-DATUM.

LS_HEADER-VPER_END = ‘99991231’.

LS_HEADERX-COMP_CODE = ‘X’.

LS_HEADERX-DOC_TYPE = ‘X’.

LS_HEADERX-CREAT_DATE = ‘X’.

LS_HEADERX-VENDOR = ‘X’.

LS_HEADERX-PMNTTRMS = ‘X’.

LS_HEADERX-PURCH_ORG = ‘X’.

LS_HEADERX-PUR_GROUP = ‘X’.

LS_HEADERX-CURRENCY = ‘X’.

LS_HEADERX-VPER_START = ‘X’.

LS_HEADERX-VPER_END = ‘X’.

* Item.

LOOP AT LT_MARA INTO LS_MARA.

  LV_ITEM_NO = SY-TABIX * 10.

  LS_ITEM-ITEM_NO = LV_ITEM_NO.

  LS_ITEM-MATERIAL = LS_MARA-MATNR. “‘000000000007240319’.

  LS_ITEM-PLANT = ‘1100’.

  LS_ITEM-TARGET_QTY = ‘100’.

  LS_ITEM-FUNDS_CTR = ‘DUMMY’.

  LS_ITEM-TAX_CODE = ‘VA’.  ” 다중건시 추가.

  IF LS_ITEM-NET_PRICE = 0.

    LS_ITEM-NET_PRICE = ‘100’. ” 다중건시 추가.

  ENDIF.

  APPEND LS_ITEM TO LT_ITEM.

  LS_ITEMX-ITEM_NO = LV_ITEM_NO.                            “‘00010’.

  LS_ITEMX-ITEM_NOX = ‘X’.

  LS_ITEMX-MATERIAL =   ‘X’.

  LS_ITEMX-PLANT =      ‘X’.

  LS_ITEMX-TARGET_QTY = ‘X’.

  LS_ITEMX-FUNDS_CTR =  ‘X’.

  LS_ITEMX-TAX_CODE = ‘X’. ” 다중건시 추가.

  IF LS_ITEM-NET_PRICE = 0.

    LS_ITEMX-NET_PRICE = ‘X’. ” 다중건시 추가.

  ENDIF.

  APPEND LS_ITEMX TO LT_ITEMX.

ENDLOOP.  ” LOOP AT LT_MARA INTO LS_MARA.

CALL FUNCTION ‘BAPI_SAG_CREATE’

  EXPORTING

    HEADER                      = LS_HEADER

    HEADERX                     = LS_HEADERX

*   VENDOR_ADDRESS              =

*   HEAD_EXPORT_IMPORT          =

*   HEAD_EXPORT_IMPORTX         =

*   TESTRUN                     =

*   TECHNICAL_DATA              =

* IMPORTING

*   PURCHASINGDOCUMENT          =

*   EXP_HEADER                  =

  TABLES

   RETURN                      = LT_RETURN

    ITEM                        = LT_ITEM

    ITEMX                       = LT_ITEMX

*   ACCOUNT                     =

*   ACCOUNTPROFITSEGMENT        =

*   ACCOUNTX                    =

*   SCHEDULE                    =

*   SCHEDULEX                   =

*   SC_COMPONENT                =

*   SC_COMPONENTX               =

*   SHIPPING                    =

*   SHIPPINGX                   =

*   SHIPPING_EXP                =

*   DELIVERY_ADDRESS            =

*   ITEM_COND_VALIDITY          =

*   ITEM_COND_VALIDITYX         =

*   ITEM_CONDITION              =

*   ITEM_CONDITIONX             =

*   ITEM_COND_SCALE_VALUE       =

*   ITEM_COND_SCALE_QUAN        =

*   EXPORT_IMPORT               =

*   EXPORT_IMPORTX              =

*   ITEM_TEXT                   =

*   HEADER_TEXT                 =

*   HEAD_COND_VALIDITY          =

*   HEAD_COND_VALIDITYX         =

*   HEAD_CONDITION              =

*   HEAD_CONDITIONX             =

*   HEAD_COND_SCALE_VAL         =

*   HEAD_COND_SCALE_QUAN        =

*   PARTNER                     =

*   PARTNERX                    =

*   EXTENSIONIN                 =

*   EXTENSIONOUT                =

          .

READ TABLE LT_RETURN WITH KEY TYPE = ‘E’ TRANSPORTING NO FIELDS.

IF SY-SUBRC = 0.

  CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.

  LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE = ‘E’.

    WRITE:/ LS_RETURN-FIELD, LS_RETURN-MESSAGE.

  ENDLOOP.

ELSE.

  CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’.

  READ TABLE LT_RETURN INTO LS_RETURN WITH KEY TYPE = ‘S’.

  WRITE:/ LS_RETURN-MESSAGE_V2.

ENDIF.  ” IF SY-SUBRC = 0.

_M#]