BAPI_PO_CREATE

来源:互联网 发布:约瑟夫环算法 数组 编辑:程序博客网 时间:2024/04/30 10:10
*&---------------------------------------------------------------------*
*& Report  Z_AF_031
*&
*&---------------------------------------------------------------------*

REPORT  z_af_031.

DATAzpo_header LIKE bapiekkoc,
      zpo_header_add_data LIKE  bapiekkoa,
      zpo_address LIKE bapiaddress,
      zpo_items LIKE bapiekpoc OCCURS 0 WITH HEADER LINE,
      zpo_item_add_data LIKE bapiekpoa OCCURS 0 WITH HEADER LINE,
      zpo_item_schedules LIKE bapieket OCCURS 0 WITH HEADER LINE,
      zpo_item_account_assignment LIKE bapiekkn OCCURS 0 WITH HEADER LINE,
      zpo_business_partner LIKE bapiekkop OCCURS 0 WITH HEADER LINE,
      zpurchaseorder LIKE bapiekkoc-po_number,
      zwait LIKE bapita-wait,
      zreturn LIKE BAPIRETURN OCCURS 0 WITH HEADER LINE,
      zreturn_commit LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATABEGIN OF itab1 OCCURS 0,
      ebeln(20),
      flag(2),
      message(40),
      END OF itab1.

START-OF-SELECTION.

  CLEAR zpo_header.
  CLEAR zpo_header_add_data.
  zpo_header-doc_date sy-datlo.
  zpo_header-doc_type 'NB'.
  zpo_header-doc_cat 'F'.
  zpo_header-co_code '1000' "Company code
  zpo_header-purch_org '1000'.
  zpo_header-vendor '0000001000'.
  zpo_header-pur_group '001'.
  zpo_header-po_number '.
  zpo_header_add_data-currency 'EUR'.
  CLEAR zpo_business_partner.
  zpo_business_partner-partnerdesc 'IP'.
  zpo_business_partner-LANGU 'E'.              " business partner 必须输入语言, 这个在后台有设定
  zpo_business_partner-buspartno '0000001000'.
  APPEND zpo_business_partner.

***PO Item
  CLEAR zpo_items.
  CLEAR zpo_item_schedules.
  CLEAR zpo_item_add_data.
  zpo_items-po_number ''.
  zpo_items-po_item '10'.
 zpo_items-short_text  'af_raw_100'.
  zpo_items-PUR_MAT 'AF_RAW_100'.
  zpo_items-store_loc '0001'.
  zpo_items-plant '1000'.
  zpo_items-item_cat '.
  zpo_items-acctasscat '.
 zpo_items-unit 'PC'.
  zpo_items-net_price 10.
  zpo_items-price_unit 1.
 zpo_items-ORDERPR_UN 'PC'.
  zpo_items-tax_code 'V9'.
  zpo_items-disp_quan 1.
  zpo_items-mat_grp '001'.
  zpo_items-trackingno ''.
  zpo_items-no_rounding 'X'.
 zpo_items-po_price  'X'.
 zpo_items-ret_item 'X'.
  zpo_item_add_data-gr_ind 'X'.
  zpo_item_add_data-ir_ind 'X'.
  zpo_item_schedules-po_item '10'.
  zpo_item_schedules-serial_no  '0001'.
  zpo_item_schedules-deliv_date sy-datum.
  zpo_item_schedules-quantity 1.
  zpo_item_account_assignment-po_item '10'.
 zpo_item_account_assignment-serial_no '01'.
 zpo_item_account_assignment-g_l_acct '0000510918'.
  APPEND zpo_item_schedules.
  CLEAR zpo_item_schedules.
  APPEND zpo_items.
  CLEAR zpo_items.
  APPEND zpo_item_account_assignment.
  CLEAR zpo_item_account_assignment.
***
  CLEAR:zpurchaseorder.
  CLEAR zreturn.
  CALL FUNCTION 'BAPI_PO_CREATE'
    EXPORTING
      po_header                  zpo_header
      po_header_add_data         zpo_header_add_data
      skip_items_with_error      'X'
    IMPORTING
      purchaseorder              zpurchaseorder
    TABLES
      po_items                   zpo_items
      po_item_add_data           zpo_item_add_data
      po_item_schedules          zpo_item_schedules
      po_business_partner        zpo_business_partner
      po_item_account_assignment zpo_item_account_assignment
      return                     zreturn.
  IF sy-subrc 0 AND zpurchaseorder NE '.
    itab1-ebeln zpurchaseorder.
*---------------Commit---------------------*
    CLEAR zreturn.
    zwait 'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait   zwait
      IMPORTING
        return zreturn_commit.
    IF sy-subrc 0.
      itab1-flag 'S'.
      itab1-message 'PO Create ok!'.
    ELSE.
      itab1-flag 'E'.
      itab1-message 'PO Create error11111!'.
    ENDIF.
  ELSE.
    itab1-flag 'E'.
    itab1-message 'PO Create error!'.
  ENDIF.
  APPEND itab1. CLEAR itab1.

  LOOP AT itab1.
    WRITEitab1.
  ENDLOOP.
  LOOP AT zreturn.
    WRITE zreturn-message,
            zreturn-log_no,
            zreturn-MESSAGE_V1.
  ENDLOOP.
0 0
原创粉丝点击