Create PO (Purchase Order)

<< 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.