您的位置:首页 > 其它

BAPI_PO_CREATE

2015-07-08 09:52 507 查看
*&---------------------------------------------------------------------*

*& Report Z_AF_031

*&

*&---------------------------------------------------------------------*

REPORT z_af_031.

DATA: zpo_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.

DATA: BEGIN 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.

WRITE: / itab1.

ENDLOOP.

LOOP AT zreturn.

WRITE: zreturn-message,

zreturn-log_no,

zreturn-MESSAGE_V1.

ENDLOOP.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: