Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI_PO_CREATE

Former Member
0 Likes
697

If you have program / code in which you have used "BAPI_PO_CREATE", can you please send the same just for reference , as I have not used the same earlier.

thanks and regards,

Hetal

5 REPLIES 5
Read only

Former Member
0 Likes
635

Hi

Please check this code

*-- Input File Declaration

TYPES: BEGIN OF ty_input_file,

column1 TYPE char50,

column2 TYPE char50,

column3 TYPE char50,

column4 TYPE char50,

column5 TYPE char50,

column6 TYPE char50,

column7 TYPE char50,

column8 TYPE char50,

column9 TYPE char50,

column10 TYPE char50,

column11 TYPE char50,

column12 TYPE char50,

column13 TYPE char50,

column14 TYPE char50,

column15 TYPE char50,

column16 TYPE char50,

column17 TYPE char50,

column18 TYPE char50,

END OF ty_input_file.

DATA: i_input_file TYPE STANDARD TABLE OF ty_input_file,

wa_input_file TYPE ty_input_file.

CONSTANTS: c_path TYPE char20 VALUE 'C:\',

c_mask TYPE char9 VALUE ',*.*,*.*.',

c_mode TYPE char1 VALUE 'O',

c_filetype TYPE char10 VALUE 'ASC',

c_x TYPE char01 VALUE 'X'.

PARAMETERS : p_fname LIKE rlgrap-filename.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.

*-- Browse Presentation Server

PERFORM f4_presentation_file.

START-OF-SELECTION..

*-- Read presentation server file

PERFORM f1003_upload_file.

IF NOT i_input_file[] IS INITIAL.

PERFORM split_data.

ENDIF.

*&----


*& Form f4_presentation_file

*&----


*& F4 Help for presentation server

*&----


FORM f4_presentation_file .

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

def_path = c_path

mask = c_mask

mode = c_mode

title = text-001

IMPORTING

filename = p_fname

EXCEPTIONS

inv_winsys = 1

no_batch = 2

selection_cancel = 3

selection_error = 4

OTHERS = 5.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " f4_presentation_file

*&----


*& Form f1003_upload_file

*&----


*& Upload File

*&----


FORM f1003_upload_file .

DATA: lcl_filename TYPE string.

lcl_filename = p_fname.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = lcl_filename

filetype = c_filetype

has_field_separator = c_x

TABLES

data_tab = i_input_file

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

EXIT.

ENDIF.

ENDFORM. " f1003_upload_file

&----


*& Form split_data

&----


  • Collect data for creating Purchase Order

----


FORM split_data .

DATA: i_poitem TYPE STANDARD TABLE OF bapimepoitem,

i_poitemx TYPE STANDARD TABLE OF bapimepoitemx,

i_poitem_sch TYPE STANDARD TABLE OF bapimeposchedule,

i_poitem_schx TYPE STANDARD TABLE OF bapimeposchedulx,

i_acct_ass TYPE STANDARD TABLE OF bapimepoaccount,

i_acct_assx TYPE STANDARD TABLE OF bapimepoaccountx,

i_services TYPE STANDARD TABLE OF bapiesllc ,

i_srvacc TYPE STANDARD TABLE OF bapiesklc,

i_return TYPE STANDARD TABLE OF bapiret2,

wa_header TYPE bapimepoheader,

wa_headerx TYPE bapimepoheaderx,

wa_poitem TYPE bapimepoitem,

wa_poitemx TYPE bapimepoitemx,

wa_poitem_sch TYPE bapimeposchedule,

wa_poitem_schx TYPE bapimeposchedulx,

wa_acct_ass TYPE bapimepoaccount,

wa_acct_assx TYPE bapimepoaccountx,

wa_services TYPE bapiesllc,

wa_srvacc TYPE bapiesklc,

wa_return TYPE bapiret2,

ws_po TYPE bapimepoheader-po_number.

break gbpra8.

wa_services-pckg_no = 10.

wa_services-line_no = 1.

wa_services-outl_no = '0'.

wa_services-outl_ind = c_x.

wa_services-subpckg_no = 20.

APPEND wa_services TO i_services.

wa_srvacc-pckg_no = 10.

wa_srvacc-line_no = 1.

wa_srvacc-serno_line = 01.

wa_srvacc-serial_no = 01.

wa_srvacc-percentage = 100.

APPEND wa_srvacc TO i_srvacc.

LOOP AT i_input_file INTO wa_input_file.

IF wa_input_file-column2 EQ 'HD'.

wa_header-doc_type = wa_input_file-column3.

wa_header-creat_date = sy-datum.

wa_header-created_by = sy-uname.

wa_header-vendor = wa_input_file-column4.

PERFORM conversion_output USING wa_header-vendor

CHANGING wa_header-vendor.

wa_header-comp_code = 'DE03'.

wa_header-purch_org = 'DE03'.

wa_header-pur_group = 'DE1'.

wa_header-vper_start = wa_input_file-column9.

wa_header-vper_end = wa_input_file-column10.

wa_headerx-comp_code = c_x.

wa_headerx-doc_type = c_x.

wa_headerx-creat_date = c_x.

wa_headerx-created_by = c_x.

wa_headerx-vendor = c_x.

wa_headerx-purch_org = c_x.

wa_headerx-pur_group = c_x.

wa_headerx-vper_start = c_x.

wa_headerx-vper_end = c_x.

ENDIF.

IF wa_input_file-column2 EQ 'IT'.

wa_poitem-po_item = wa_input_file-column3.

wa_poitem-short_text = wa_input_file-column6.

wa_poitem-plant = wa_input_file-column8.

wa_poitem-quantity = '1'.

wa_poitem-tax_code = 'V0'.

wa_poitem-item_cat = 'D'.

wa_poitem-acctasscat = 'K'.

wa_poitem-matl_group = wa_input_file-column7.

wa_poitem-pckg_no = '10'.

APPEND wa_poitem TO i_poitem .

wa_poitemx-po_item = wa_input_file-column3.

wa_poitemx-po_itemx = c_x.

wa_poitemx-short_text = c_x.

wa_poitemx-plant = c_x.

wa_poitemx-quantity = c_x.

wa_poitemx-tax_code = c_x.

wa_poitemx-item_cat = c_x.

wa_poitemx-acctasscat = c_x.

wa_poitemx-matl_group = c_x.

wa_poitemx-pckg_no = c_x.

APPEND wa_poitemx TO i_poitemx.

wa_poitem_sch-po_item = wa_input_file-column3.

wa_poitem_sch-delivery_date = sy-datum.

APPEND wa_poitem_sch TO i_poitem_sch.

wa_poitem_schx-po_item = wa_input_file-column3.

wa_poitem_schx-po_itemx = c_x.

wa_poitem_schx-delivery_date = c_x.

APPEND wa_poitem_schx TO i_poitem_schx.

wa_acct_ass-po_item = 10.

wa_acct_ass-serial_no = 01.

wa_acct_ass-gl_account = '0006360100'.

wa_acct_ass-co_area = '1000'.

wa_acct_ass-costcenter = 'KC010000'.

APPEND wa_acct_ass TO i_acct_ass.

wa_acct_ass-po_item = 10.

wa_acct_ass-serial_no = 02.

wa_acct_ass-gl_account = '0006360100'.

wa_acct_ass-co_area = '1000'.

wa_acct_ass-costcenter = 'KC010000'.

APPEND wa_acct_ass TO i_acct_ass.

wa_acct_assx-po_item = 10.

wa_acct_assx-serial_no = 01.

wa_acct_assx-po_itemx = c_x.

wa_acct_assx-serial_nox = c_x.

wa_acct_assx-gl_account = c_x.

wa_acct_assx-co_area = c_x.

wa_acct_assx-costcenter = c_x.

APPEND wa_acct_assx TO i_acct_assx.

wa_acct_assx-po_item = 10.

wa_acct_assx-serial_no = 02.

wa_acct_assx-po_itemx = c_x.

wa_acct_assx-serial_nox = c_x.

wa_acct_assx-gl_account = c_x.

wa_acct_assx-co_area = c_x.

wa_acct_assx-costcenter = c_x.

APPEND wa_acct_assx TO i_acct_assx.

wa_services-pckg_no = 20.

wa_services-line_no = 2.

wa_services-service = wa_input_file-column9.

wa_services-quantity = '100'.

wa_services-gr_price = '100'.

wa_services-userf1_txt = wa_input_file-column13.

APPEND wa_services TO i_services.

wa_srvacc-pckg_no = 20.

wa_srvacc-line_no = 1.

wa_srvacc-serno_line = 02.

wa_srvacc-serial_no = 02.

wa_srvacc-percentage = 100.

APPEND wa_srvacc TO i_srvacc.

ENDIF.

ENDLOOP.

CALL FUNCTION 'BAPI_PO_CREATE1'

EXPORTING

poheader = wa_header

poheaderx = wa_headerx

  • POADDRVENDOR =

  • TESTRUN =

  • MEMORY_UNCOMPLETE =

  • MEMORY_COMPLETE =

  • POEXPIMPHEADER =

  • POEXPIMPHEADERX =

  • VERSIONS =

  • NO_MESSAGING =

  • NO_MESSAGE_REQ =

  • NO_AUTHORITY =

  • NO_PRICE_FROM_PO =

IMPORTING

exppurchaseorder = ws_po

  • EXPHEADER =

  • EXPPOEXPIMPHEADER =

TABLES

return = i_return

poitem = i_poitem

poitemx = i_poitemx

  • POADDRDELIVERY =

poschedule = i_poitem_sch

poschedulex = i_poitem_schx

poaccount = i_acct_ass

  • POACCOUNTPROFITSEGMENT =

poaccountx = i_acct_assx

  • POCONDHEADER =

  • POCONDHEADERX =

  • POCOND =

  • POCONDX =

  • POLIMITS =

  • POCONTRACTLIMITS =

poservices = i_services

posrvaccessvalues = i_srvacc

  • POSERVICESTEXT =

  • EXTENSIONIN =

  • EXTENSIONOUT =

  • POEXPIMPITEM =

  • POEXPIMPITEMX =

  • POTEXTHEADER =

  • POTEXTITEM =

  • ALLVERSIONS =

  • POPARTNER =

.

break gbpra8.

LOOP AT i_return INTO wa_return.

ENDLOOP.

ENDFORM. " split_data

&----


*& Form conversion_output

&----


  • Conversion exit input

----


FORM conversion_output USING p_ip

CHANGING p_op.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = p_ip

IMPORTING

output = p_op.

Read only

Former Member
0 Likes
635

You can have a look at the stadard include:

MMWE0F01 (line number 744).

Regards,

Ravi

Read only

Former Member
0 Likes
635

HI,

Just check these sample programs on BAPI..

http://www.sap-img.com/bapi.htm

the above link can give lot of examples..

also check this sample..

REPORT ZVIJAY_TEST_PO .

*DATA DECLARATION

CONSTANTS : C_X VALUE 'X'.

*Structures to hold PO header data

DATA : HEADER LIKE BAPIMEPOHEADER ,

HEADERX LIKE BAPIMEPOHEADERX .

*Structures to hold PO account data

DATA : ACCOUNT LIKE BAPIMEPOACCOUNT OCCURS 0 WITH HEADER LINE ,

ACCOUNTX LIKE BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE .

*Internal Tables to hold PO ITEM DATA

DATA : ITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,

ITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,

*Internal table to hold messages from BAPI call

RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

*Internal table to hold messages from BAPI call

POCONTRACTLIMITS LIKE BAPIESUCC OCCURS 0 WITH HEADER LINE.

DATA : W_HEADER(40) VALUE 'PO Header',

PURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,

DELIVERY_DATE LIKE BAPIMEPOSCHEDULE-DELIVERY_DATE.

DATA : WS_LANGU LIKE SY-LANGU.

*text-001 = 'PO Header' - define as text element

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : COMPANY LIKE HEADER-COMP_CODE DEFAULT '122' ,

DOCTYP LIKE HEADER-DOC_TYPE DEFAULT 'NB' ,

CDATE LIKE HEADER-CREAT_DATE DEFAULT SY-DATUM ,

VENDOR LIKE HEADER-VENDOR DEFAULT '2000000012' ,

PUR_ORG LIKE HEADER-PURCH_ORG DEFAULT 'PU01' ,

PUR_GRP LIKE HEADER-PUR_GROUP DEFAULT '005' .

*sociedad like HEADER-COMP_CODE default '122' ,

*vendedor like HEADER-SALES_PERS default 'sale person'.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

PARAMETERS : ITEM_NUM LIKE ITEM-PO_ITEM DEFAULT '00010',

MATERIAL LIKE ITEM-MATERIAL DEFAULT '12000000' ,

TIPO_IMP LIKE ITEM-ACCTASSCAT DEFAULT 'K' ,

*pos_doc like ITEM-ITEM_CAT default 'F' ,

SHORTTXT LIKE ITEM-SHORT_TEXT DEFAULT 'PRUEBA BAPI' ,

GRUP_ART LIKE ITEM-MATL_GROUP DEFAULT '817230000' ,

PLANT LIKE ITEM-PLANT DEFAULT '3001' ,

MPE LIKE ITEM-TRACKINGNO DEFAULT '9999' ,

*contrato like ITEM-AGREEMENT default '4904000003' ,

*quantity like ITEM-QUANTITY default 1 .

PO_UNIT LIKE ITEM-PO_UNIT DEFAULT 'EA'.

SELECTION-SCREEN END OF BLOCK B2.

  • Par?mnetros de imputaci?n

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-004.

PARAMETERS : CENTRO LIKE ACCOUNT-COSTCENTER DEFAULT '1220813150',

CUENTA LIKE ACCOUNT-GL_ACCOUNT DEFAULT '6631400' ,

NUM_POS LIKE ACCOUNT-PO_ITEM DEFAULT '10' ,

SERIAL LIKE ACCOUNT-SERIAL_NO DEFAULT '01' ,

IND_IMP LIKE ACCOUNT-TAX_CODE DEFAULT 'I2' .

SELECTION-SCREEN END OF BLOCK B3.

&----


START-OF-SELECTION.

&----


*DATA POPULATION

&----


WS_LANGU = SY-LANGU. "Language variable

*POPULATE HEADER DATA FOR PO

*HEADER-COMP_CODE = sociedad .

HEADER-DOC_TYPE = DOCTYP .

HEADER-VENDOR = VENDOR .

HEADER-CREAT_DATE = CDATE .

HEADER-CREATED_BY = 'TD17191' .

HEADER-PURCH_ORG = PUR_ORG .

HEADER-PUR_GROUP = PUR_GRP .

HEADER-COMP_CODE = COMPANY .

HEADER-LANGU = WS_LANGU .

*HEADER-SALES_PERS = vendedor .

*HEADER-CURRENCY = 'DOP' .

*HEADER-ITEM_INTVL = 10 .

*HEADER-PMNTTRMS = 'N30' .

*HEADER-EXCH_RATE = 1 .

&----


*POPULATE HEADER FLAG.

&----


HEADERX-COMP_CODE = C_X.

HEADERX-DOC_TYPE = C_X.

HEADERX-VENDOR = C_X.

HEADERX-CREAT_DATE = C_X.

HEADERX-CREATED_BY = C_X.

HEADERX-PURCH_ORG = C_X.

HEADERX-PUR_GROUP = C_X.

HEADERX-LANGU = C_X.

*HEADERX-sales_pers = c_x.

*HEADERX-CURRENCY = c_x.

*HEADER-ITEM_INTVL = c_x.

*HEADER-PMNTTRMS = c_x.

*HEADER-EXCH_RATE = c_x.

*HEADER-EXCH_RATE = c_x.

&----


*POPULATE ITEM DATA.

&----


ITEM-PO_ITEM = ITEM_NUM.

ITEM-QUANTITY = '1'.

*ITEM-MATERIAL = material .

ITEM-SHORT_TEXT = 'prueba bapi_po_create1'.

*ITEM-TAX_CODE = ''.

ITEM-ACCTASSCAT = 'K' .

*ITEM-ITEM_CAT = 'D' .

ITEM-MATL_GROUP = '817230000' .

ITEM-PLANT = '3001' .

ITEM-TRACKINGNO = '99999'.

ITEM-PREQ_NAME = 'test'.

*ITEM-AGREEMENT = '' .

*ITEM-AGMT_ITEM = ''.

ITEM-QUANTITY = '1' .

ITEM-PO_UNIT = 'EA'.

*ITEM-ORDERPR_UN = 'EA'.

ITEM-CONV_NUM1 = '1'.

ITEM-CONV_DEN1 = '1'.

ITEM-NET_PRICE = '1000000' .

ITEM-PRICE_UNIT = '1'.

ITEM-GR_PR_TIME = '0'.

ITEM-PRNT_PRICE = 'X'.

ITEM-UNLIMITED_DLV = 'X'.

ITEM-GR_IND = 'X' .

ITEM-IR_IND = 'X' .

ITEM-GR_BASEDIV = 'X'.

*ITEM-PCKG_NO = '' .

APPEND ITEM. CLEAR ITEM.

&----


*POPULATE ITEM FLAG TABLE

&----


ITEMX-PO_ITEM = ITEM_NUM.

ITEMX-PO_ITEMX = C_X.

*ITEMX-MATERIAL = C_X.

ITEMX-SHORT_TEXT = C_X.

ITEMX-QUANTITY = C_X.

*ITEMX-TAX_CODE = C_X.

ITEMX-ACCTASSCAT = C_X.

*ITEMX-ITEM_CAT = c_x.

ITEMX-MATL_GROUP = C_X.

ITEMX-PLANT = C_X.

ITEMX-TRACKINGNO = C_X.

ITEMX-PREQ_NAME = C_X.

*ITEMX-AGREEMENT = C_X.

*ITEMX-AGMT_ITEM = c_x.

ITEMX-STGE_LOC = C_X.

ITEMX-QUANTITY = C_X.

ITEMX-PO_UNIT = C_X.

*ITEMX-ORDERPR_UN = C_X.

ITEMX-CONV_NUM1 = C_X.

ITEMX-CONV_DEN1 = C_X.

ITEMX-NET_PRICE = C_X.

ITEMX-PRICE_UNIT = C_X.

ITEMX-GR_PR_TIME = C_X.

ITEMX-PRNT_PRICE = C_X.

ITEMX-UNLIMITED_DLV = C_X.

ITEMX-GR_IND = C_X .

ITEMX-IR_IND = C_X .

ITEMX-GR_BASEDIV = C_X .

APPEND ITEMX. CLEAR ITEMX.

&----


*POPULATE ACCOUNT DATA.

&----


ACCOUNT-PO_ITEM = ITEM_NUM.

ACCOUNT-SERIAL_NO = SERIAL .

ACCOUNT-CREAT_DATE = SY-DATUM .

ACCOUNT-COSTCENTER = CENTRO .

ACCOUNT-GL_ACCOUNT = CUENTA .

ACCOUNT-GR_RCPT = 'tester'.

APPEND ACCOUNT. CLEAR ACCOUNT.

&----


*POPULATE ACCOUNT FLAG TABLE.

&----


ACCOUNTX-PO_ITEM = ITEM_NUM .

ACCOUNTX-PO_ITEMX = C_X .

ACCOUNTX-SERIAL_NO = SERIAL .

ACCOUNTX-SERIAL_NOX = C_X .

ACCOUNTX-CREAT_DATE = C_X .

ACCOUNTX-COSTCENTER = C_X .

ACCOUNTX-GL_ACCOUNT = C_X .

ACCOUNT-GR_RCPT = C_X.

APPEND ACCOUNTX. CLEAR ACCOUNTX.

&----


*BAPI CALL

&----


CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.

CALL FUNCTION 'BAPI_PO_CREATE1'

EXPORTING

POHEADER = HEADER

POHEADERX = HEADERX

IMPORTING

EXPPURCHASEORDER = PURCHASEORDER

TABLES

RETURN = RETURN

POITEM = ITEM

POITEMX = ITEMX

POACCOUNT = ACCOUNT

POACCOUNTX = ACCOUNTX.

&----


*Confirm the document creation by calling database COMMIT

&----


CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

  • IMPORTING

  • RETURN =

.

END-OF-SELECTION.

&----


*Output the messages returned from BAPI call

&----


LOOP AT RETURN.

WRITE / RETURN-MESSAGE.

ENDLOOP.

Regards,

Kumar

Read only

Former Member
0 Likes
635

Hi Jayant

this is the code

*----


  • FOR CREATING PO NUMBER

*----


*----


  • DATA- STRUCTURES

*----


DATA : GS_POHEADER LIKE BAPIMEPOHEADER,

GS_POHEADERX LIKE BAPIMEPOHEADERX,

GW_EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,

GW_POITEM LIKE BAPIMEPOITEM ,

GW_POITEM1 LIKE ZPO_ITEMS,

GW_POITEMX LIKE BAPIMEPOITEMX ,

GW_POACCOUNT LIKE BAPIMEPOACCOUNT ,

GW_POACCOUNT1 LIKE ZPO_ACCOUNTS,

GW_POACCOUNTX LIKE BAPIMEPOACCOUNTX.

*----


  • DATA- INTERNAL TABLES

*----


DATA : GT_POITEM LIKE BAPIMEPOITEM OCCURS 0,

GT_POITEMX LIKE BAPIMEPOITEMX OCCURS 0,

GT_POACCOUNT LIKE BAPIMEPOACCOUNT OCCURS 0,

GT_POACCOUNTX LIKE BAPIMEPOACCOUNTX OCCURS 0.

*----


  • WORKING VARIABLES

*----


DATA : GW_LOOPCOUNT TYPE STRING VALUE '0'.

GS_POHEADER-COMP_CODE = COMP_CODE. "import parameter

GS_POHEADER-DOC_TYPE = DOC_TYPE. " import parameter

GS_POHEADER-CREAT_DATE = DOC_DATE. " import parameter

GS_POHEADER-VENDOR = VENDOR. " import parameter

GS_POHEADER-PURCH_ORG = COMP_CODE. " import parameter

GS_POHEADER-PUR_GROUP = PUR_GROUP. " import parameter

GS_POHEADER-CURRENCY = CURRENCY.

GS_POHEADER-DOC_DATE = DOC_DATE.

GS_POHEADERX-COMP_CODE = GC_X. " constant

GS_POHEADERX-DOC_TYPE = GC_X.

GS_POHEADERX-CREAT_DATE = GC_X.

GS_POHEADERX-VENDOR = GC_X.

GS_POHEADERX-PURCH_ORG = GC_X.

GS_POHEADERX-PUR_GROUP = GC_X.

GS_POHEADERX-CURRENCY = GC_C.

GS_POHEADERX-DOC_DATE = GC_X.

  • ENTERING DATA INTO INTERNAL TABLE FROM IMPORT PARAMETER TABLE POITEM

LOOP AT POITEM INTO GW_POITEM1.

MOVE-CORRESPONDING GW_POITEM1

TO GW_POITEM.

APPEND GW_POITEM TO GT_POITEM.

GW_POITEMX-PO_ITEM = GW_POITEM-PO_ITEM.

GW_POITEMX-SHORT_TEXT = GC_X.

GW_POITEMX-MATERIAL = GC_X.

GW_POITEMX-PLANT = GC_X.

GW_POITEMX-STGE_LOC = GC_X.

GW_POITEMX-QUANTITY = GC_X.

GW_POITEMX-PO_UNIT = GC_X.

GW_POITEMX-NET_PRICE = GC_X.

GW_POITEMX-TAX_CODE = GC_X.

GW_POITEMX-IR_IND = GC_X.

GW_POITEMX-GR_BASEDIV = GC_X.

APPEND GW_POITEMX TO GT_POITEMX.

CLEAR GW_POITEMX.

CLEAR GW_POITEM.

ENDLOOP.

            • ENTERING DATA INTO INTERNAL TABLE FROM IMPORT *********

          • PARAMETER TABLE POACCOUNT *****************************

LOOP AT POACCOUNT INTO GW_POACCOUNT1.

MOVE-CORRESPONDING GW_POACCOUNT1

TO GW_POACCOUNT.

APPEND GW_POACCOUNT TO GT_POACCOUNT.

GW_POACCOUNTX-PO_ITEM = GW_POACCOUNT-PO_ITEM.

GW_POACCOUNTX-GL_ACCOUNT = GC_X.

GW_POACCOUNTX-COSTCENTER = GC_X.

APPEND GW_POACCOUNTX TO GT_POACCOUNTX.

CLEAR GW_POACCOUNTX.

CLEAR GW_POACCOUNT.

ENDLOOP.

                      • TO CREATE PURCHASE ORDER ***************************

CALL FUNCTION 'BAPI_PO_CREATE1'

EXPORTING

POHEADER = GS_POHEADER

POHEADERX = GS_POHEADERX

IMPORTING

EXPPURCHASEORDER = GW_EXPPURCHASEORDER

TABLES

RETURN = GT_RETURN

POITEM = GT_POITEM

POITEMX = GT_POITEMX

POACCOUNT = GT_POACCOUNT

POACCOUNTX = GT_POACCOUNTX.

                • COMMIT WORK AND WAIT ******************

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = GC_X.

IF GT_RETURN[] IS INITIAL .

WRITE : / TEXT-008 , " Purchase Order created

/'PURCHASE ORDER',GW_EXPPURCHASEORDER.

ELSE .

IF SY-SUBRC <> 0 .

  • Message : Error in creating purchase order.

WRITE : TEXT-000 .

ENDIF.

ENDIF.

Read only

Former Member
0 Likes
635

Found Bapi from SDN forum through another thread