BAPI me21n vl10b vl02n

来源:互联网 发布:淘宝直播自我简介 编辑:程序博客网 时间:2024/06/06 14:18
FUNCTION ZTEST01.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(IT_TABP01) LIKE  ZMM_NCP01 STRUCTURE  ZMM_NCP01
*"  EXPORTING
*"     VALUE(MSG) TYPE  MAKTX
*"  TABLES
*"      IT_TABP02 STRUCTURE  ZMM_NCP02
*"----------------------------------------------------------------------
  TABLES: ZMM_NCP01,
          ZMM_NCP02,
          EKPO.


  DATA:
        POHEADER         LIKE BAPIMEPOHEADER OCCURS 0 WITH HEADER LINE,
        POHEADERX        LIKE BAPIMEPOHEADERX OCCURS 0 WITH HEADER LINE,
        EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER OCCURS 0 WITH HEADER LINE,
        RETURN           LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
        POITEM           LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
        POITEMX          LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
        POSCHEDULE       LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,
        POSCHEDULEX      LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,
        P_ITEMNO         LIKE EKPO-EBELP.


*            **Header Data
        POHEADER-PO_NUMBER   = ''.
        POHEADER-COMP_CODE   = IT_TABP01-BUKRS.
        POHEADER-DOC_TYPE    = IT_TABP01-BSART.
        POHEADER-CREAT_DATE  = SY-DATUM.
        POHEADER-CREATED_BY  = SY-UNAME.
        POHEADER-LANGU       = SY-LANGU.
        POHEADER-PURCH_ORG   = IT_TABP01-EKORG.
        POHEADER-PUR_GROUP   = IT_TABP01-EKGRP.
        POHEADER-DOC_DATE    = SY-DATUM.
        POHEADER-VAT_CNTRY   = 'CNY'.
        POHEADER-SUPPL_PLNT  = IT_TABP01-LIFNR.
        POHEADER-STATUS      =  'I'.
        APPEND POHEADER.


*            **Po Header Flag
        POHEADERX-PO_NUMBER  = 'X' .
        POHEADERX-COMP_CODE  = 'X' .
        POHEADERX-DOC_TYPE   = 'X' .
        POHEADERX-CREAT_DATE = 'X'.
        POHEADERX-CREATED_BY = 'X'.
        POHEADERX-LANGU      = 'X' .
        POHEADERX-PURCH_ORG  = 'X' .
        POHEADERX-PUR_GROUP  = 'X' .
        POHEADERX-DOC_DATE   = 'X'.
        POHEADERX-VAT_CNTRY  = 'X'.
        POHEADERX-SUPPL_VEND = 'X'.
        POHEADERX-SUPPL_PLNT = 'X'.
        POHEADERX-STATUS = 'X'.
        APPEND POHEADERX.


      LOOP AT IT_TABP02.
        P_ITEMNO = P_ITEMNO + 10.
*        **Po Item Data
        POITEM-PO_ITEM                    = P_ITEMNO.
        POITEM-MATERIAL                   = IT_TABP02-MATNR.
        POITEM-PLANT                      = IT_TABP02-WERKS.
        POITEM-STGE_LOC                   = IT_TABP02-LGORT_GI .
        POITEM-QUANTITY                   = IT_TABP02-MENGE .
        POITEM-NET_PRICE                  = IT_TABP02-NETPR .
        POITEM-PRICE_UNIT                 = IT_TABP02-KPEIN .
        POITEM-PREQ_NAME                  = SY-UNAME.
        POITEM-SHIPPING                   = IT_TABP02-EVERS.
        APPEND POITEM.
*        **Po Item Data Flag
        POITEMX-PO_ITEM                   = P_ITEMNO.
        POITEMX-MATERIAL                   = 'X' .
        POITEMX-PLANT                      = 'X'.
        POITEMX-STGE_LOC                   = 'X'.
        POITEMX-QUANTITY                   = 'X'.
        POITEMX-NET_PRICE                  = 'X'.
        POITEMX-PRICE_UNIT                 = 'X'.
        POITEMX-PREQ_NAME                  = 'X'.
        POITEMX-SHIPPING = 'X'.
        APPEND POITEMX.
      ENDLOOP.
      CLEAR P_ITEMNO.




  CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
      POHEADER         = POHEADER
      POHEADERX        = POHEADERX
    IMPORTING
      EXPPURCHASEORDER = EXPPURCHASEORDER
    TABLES
      RETURN           = RETURN
      POITEM           = POITEM
      POITEMX          = POITEMX
      POSCHEDULE       = POSCHEDULE
      POSCHEDULEX      = POSCHEDULEX.


  DATA ERROR_LOG TYPE C.
  LOOP AT RETURN.
    IF RETURN-TYPE = 'E'.
      ERROR_LOG = 'X'.
      EXIT.
    ENDIF.
  ENDLOOP.


  IF ERROR_LOG = 'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    CONCATENATE '凭证号码' EXPPURCHASEORDER '创建失败!' INTO MSG.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    CONCATENATE '凭证号码' EXPPURCHASEORDER '创建成功!' INTO MSG.
  ENDIF.


ENDFUNCTION.






FUNCTION ZTEST02.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  EXPORTING
*"     VALUE(MSG) TYPE  MAKTX
*"  TABLES
*"      IT_TABP01 STRUCTURE  ZMM_NCP03
*"----------------------------------------------------------------------
  TABLES: ZMM_NCP03.


  DATA: REQUEST    TYPE BAPIDELICIOUSREQUEST OCCURS 0 WITH HEADER LINE,
        CREATEDITEMS  TYPE  BAPIDELICIOUSCREATEDITEMS OCCURS 0 WITH HEADER LINE,
        RETURN     TYPE BAPIRET2 ,
        IT_RETURN  LIKE TABLE OF RETURN WITH HEADER LINE,
        IT_TAB     LIKE TABLE OF REQUEST WITH HEADER LINE,
        IT_ITEMS   LIKE TABLE OF CREATEDITEMS WITH HEADER LINE,
        IID        LIKE BAPIDELICIOUSREQUEST-ID,
        IITEM      LIKE BAPIDELICIOUSREQUEST-DOCUMENT_ITEM,
        SALEORDER(150)  TYPE C,
        SALES_UOM  LIKE BAPIDELICIOUSREQUEST-QUANTITY_SALES_UOM VALUE '1'.




  LOOP AT IT_TABP01.
    IID = IID + 10.
    REQUEST-ID = IID.
    REQUEST-DOCUMENT_NUMB = IT_TABP01-EBELN.
    REQUEST-DOCUMENT_ITEM = '10'.
    REQUEST-QUANTITY_SALES_UOM = SALES_UOM.
    REQUEST-DOCUMENT_TYPE = 'B'. "Delivery
    REQUEST-DOCUMENT_TYPE_DELIVERY = 'YY90'.
    REQUEST-DELIVERY_DATE = SY-DATUM+0(6).
    REQUEST-DOCUMENT_TYPE_DELIVERY = 'YY90'.
    APPEND REQUEST TO IT_TAB.


  ENDLOOP.


  CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
    TABLES
      REQUEST      = IT_TAB
      CREATEDITEMS = IT_ITEMS
      RETURN       = IT_RETURN.




  DATA ERROR_LOG TYPE C.
  LOOP AT IT_RETURN.
    IF IT_RETURN-TYPE = 'E'.
      ERROR_LOG = 'X'.
      EXIT.
    ENDIF.
  ENDLOOP.


  IF ERROR_LOG = 'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    CONCATENATE '' '销售凭证创建失败!' INTO MSG.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
*    loop at it_items.
**      concatenate SALES_UOM it_items-dOCUMENT_NUMB
*    endloop.
    CONCATENATE '销售号码' '创建成功!' INTO MSG.


  ENDIF.


ENDFUNCTION.






FUNCTION ZTEST03.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(VBELN) TYPE  VBELN_VL
*"  EXPORTING
*"     VALUE(MSG) TYPE  MAKTX
*"----------------------------------------------------------------------
  TABLES: VBUK.


  DATA: BEGIN OF I_VBKOK OCCURS 11.
          INCLUDE STRUCTURE VBKOK.
  DATA: END OF I_VBKOK.


  I_VBKOK-VBELN_VL     = VBELN.
  I_VBKOK-WABUC        = 'X'.
  I_VBKOK-WADAT_IST = SY-DATUM.
  APPEND I_VBKOK.


  CALL FUNCTION 'WS_DELIVERY_UPDATE'
    EXPORTING
      VBKOK_WA      = I_VBKOK
      DELIVERY      = VBELN.


  IF SY-SUBRC <> '0'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    CONCATENATE '交货单' VBELN  '发货过帐失败!' INTO MSG.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    CONCATENATE '交货单' VBELN  '发货过帐成功!' INTO MSG.
  ENDIF.


ENDFUNCTION.
原创粉丝点击