|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > Indonesia > Function Module Examples Code > Create PO (Purchase Order) |
Objective |
Pengetahuan menggunakan Function Module Standard SAP untuk membuat Purchace Order |
Support |
|
Contributor |
Albertus Reinandang ( reinandang@yahoo.com ) |
BAPI_PO_CREATE1 : Create Purchase Order
Contoh :
REPORT ztest_fm801.
DATA : li_poitem LIKE STANDARD TABLE OF bapimepoitem WITH HEADER LINE,
li_poitemx LIKE STANDARD TABLE OF bapimepoitemx WITH HEADER LINE,
li_poaccount LIKE STANDARD TABLE OF bapimepoaccount WITH HEADER LINE,
li_poaccountx LIKE STANDARD TABLE OF bapimepoaccountx WITH HEADER LINE,
li_return LIKE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
DATA : lw_poheader LIKE bapimepoheader,
lw_poheaderx LIKE bapimepoheaderx,
lw_return LIKE bapiret2.
DATA : lv_message LIKE sy-lisel.
START-OF-SELECTION.
lw_poheader-comp_code = '5600'.
lw_poheader-doc_type = 'PO01'.
lw_poheader-vendor = '0000010000'.
lw_poheader-purch_org = '5600'.
lw_poheader-pur_group = '561'.
lw_poheader-currency = 'USD'.
lw_poheaderx-comp_code = 'X'.
lw_poheaderx-doc_type = 'X'.
lw_poheaderx-vendor = 'X'.
lw_poheaderx-purch_org = 'X'.
lw_poheaderx-pur_group = 'X'.
lw_poheaderx-currency = 'X'.
li_poitem-po_item = '00010'.
li_poitem-short_text = 'GULA'.
li_poitem-plant = '5620'.
li_poitem-matl_group = '599001'.
li_poitem-quantity = '1'.
li_poitem-po_unit = 'EA'.
li_poitem-net_price = '10'.
li_poitem-tax_code = 'V1'.
li_poitem-acctasscat = 'K'.
li_poitem-distrib = ''.
APPEND li_poitem.
li_poitemx-po_item = '00010'.
li_poitemx-short_text = 'X'.
li_poitemx-plant = 'X'.
li_poitemx-matl_group = 'X'.
li_poitemx-quantity = 'X'.
li_poitemx-po_unit = 'X'.
li_poitemx-net_price = 'X'.
li_poitemx-tax_code = 'X'.
li_poitemx-acctasscat = 'X'.
li_poitemx-distrib = 'X'.
APPEND li_poitemx.
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* input = '0070107600'
* IMPORTING
* output = li_poaccount-gl_account.
*
* li_poaccount-po_item = '00010'.
* li_poaccount-serial_no = '01'.
* li_poaccount-creat_date = sy-datum.
** li_poaccount-gl_account = '0070107600'.
* li_poaccount-bus_area = 'SU01'.
* li_poaccount-costcenter = '0005620001'.
* li_poaccount-co_area = 'ZSMO'.
* li_poaccount-tax_code = 'V1'.
* li_poaccount-orderid = ' '.
* APPEND li_poaccount.
*
* li_poaccountx-po_item = '00010'.
* li_poaccountx-serial_no = '01'.
** li_poaccountx-po_itemx = 'X'.
** li_poaccountx-serial_nox = 'X'.
* li_poaccountx-creat_date = 'X'.
* li_poaccountx-gl_account = 'X'.
* li_poaccountx-bus_area = 'X'.
* li_poaccountx-costcenter = 'X'.
* li_poaccountx-co_area = 'X'.
* li_poaccountx-tax_code = 'X'.
* li_poaccountx-orderid = 'X'.
* APPEND li_poaccountx.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = lw_poheader
poheaderx = lw_poheaderx
TABLES
return = li_return
poitem = li_poitem
poitemx = li_poitemx
poaccount = li_poaccount
poaccountx = li_poaccountx.
LOOP AT li_return INTO lw_return.
CALL FUNCTION 'RPY_MESSAGE_COMPOSE'
EXPORTING
language = sy-langu
message_id = lw_return-id
message_number = lw_return-number
message_var1 = lw_return-message_v1
message_var2 = lw_return-message_v2
message_var3 = lw_return-message_v3
message_var4 = lw_return-message_v4
IMPORTING
message_text = lv_message.
WRITE:/ lv_message.
ENDLOOP.