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.
*& 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.
相关文章推荐
- TCP协议和UDP协议简单实例
- css样式表
- 静态网页VS动态网页
- linux kernel同步机制的思考
- NSString、NSMutableString基本用法
- javascript笔记03:易犯错的比较运算
- 第一个自己完成的leetcode( JAVA) Implement Queue using Stacks
- 治愈系--致郁系
- 使用STM32F4XX自带数学库"arm_math.h"
- [Java]编译学习之一
- ppt转换成pdf转换器应用介绍
- [LeetCode]Longest Palindromic Substring
- plist文件中的Boolean类型
- c#猜猜看
- 循环下的radio操作
- General Ledger Useful SQL Scripts – Oracle Applications 11i
- Integer to Roman
- 欢迎使用CSDN-markdown编辑器
- js中几种实用的跨域方法原理详解
- C++知识点随笔(四):耦合问题、new和malloc、虚析构、多继承