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 for VA01 Tcode

Former Member
0 Likes
2,010

Hi,

I want to create sales order using bapi BAPI_SALESORDER_CREATEFROMDAT2.

I am new to bapi. Pl. give examble coading for this bapi. reward points will be given if useful.

I have tried, but i am getting return message error, like " sales document is not changed".

<u>My Coading.</u>

tables:BAPISDHD1,BAPIPARNR,bapisditm,bapiret2.

types: begin of wa_sales,

auart(4) type c,

vkorg(4) type c,

vtweg(2) type c,

spart(2) type c,

kunnar(10) type c,

bstkd(35) type c,

bstdk(10) type c,

mabnr(18) type c,

kwmeng(15) type c,

end of wa_sales.

data: it_sales type table of wa_sales with header line,

return type table of BAPIRET2 with header line,

v_file type string,salesdocument like BAPIVBELN-VBELN.

data:bapisditm1 type table of bapisditm with header line,

bapiparnr1 type table of bapiparnr with header line.

parameters: P_file like RLGRAP-FILENAME OBLIGATORY.

at selection-screen on value-request for p_file.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = 'p_file '

IMPORTING

FILE_NAME = p_file.

start-of-selection.

v_file = p_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = v_file

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

tables

data_tab = IT_SALES

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

break-point.

LOOP AT IT_SALES.

BAPISDHD1-DOC_TYPE = it_sales-auart.

BAPISDHD1-sales_org = it_sales-vkorg.

bapisdhd1-distr_chan = it_sales-vtweg.

bapisdhd1-division = it_sales-spart.

BAPIPARNR1-partn_role = 'SP'.

BAPIPARNR1-PARTn_numb = it_sales-kunnar.

bapisditm1-material = it_sales-mabnr.

bapisditm1-target_qty = it_sales-kwmeng.

bapisditm1-purch_no_c = it_sales-bstkd.

bapisditm1-purch_date = it_sales-bstdk.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

order_header_in = BAPISDHD1

  • ORDER_HEADER_INX =

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

IMPORTING

SALESDOCUMENT = salesdocument

tables

RETURN = return

ORDER_ITEMS_IN = bapisditm1

  • ORDER_ITEMS_INX =

order_partners = bapiparnr1

  • ORDER_SCHEDULES_IN =

  • ORDER_SCHEDULES_INX =

  • ORDER_CONDITIONS_IN =

  • ORDER_CONDITIONS_INX =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • ORDER_CCARD =

  • ORDER_TEXT =

  • ORDER_KEYS =

  • EXTENSIONIN =

  • PARTNERADDRESSES =

.

write:/ return-type, return-id, return-number, return-message, return-log_no.

WRITE:/ SALESDOCUMENT.

endloop.

whts wrong with coading,

regards,

senthil kumar

3 REPLIES 3
Read only

Former Member
0 Likes
1,094

Hi,

Go to Documentation of this BAPI from SE37.

Use BAPI_TRNSACTION_COMMIT. To commit the work after your BAPI call.

Reward if useful!

Read only

Former Member
0 Likes
1,094

Hi, 
I used this code to create a sales order:

MOVE: lv_refobjecttype TO lwa_sales_header_in-refobjecttype,
<lf_output_tab>-ordtp TO lwa_sales_header_in-doc_type,
<lf_output_tab>-slorg TO lwa_sales_header_in-sales_org,
<lf_output_tab>-dstch TO lwa_sales_header_in-distr_chan,
<lf_output_tab>-divsn TO lwa_sales_header_in-division,
<lf_output_tab>-invdt TO lwa_sales_header_in-req_date_h,
lc_cons_1 TO lwa_sales_header_in-date_type,
space TO lwa_sales_header_in-bill_block,
<lf_output_tab>-ordre TO lwa_sales_header_in-ord_reason,
<lf_output_tab>-ordkey TO lwa_sales_header_in-purch_no_c,
<lf_output_tab>-invdt TO lwa_sales_header_in-doc_date,

lc_cons_i TO lwa_sales_header_inx-updateflag,
lc_cons_x TO lwa_sales_header_inx-doc_type,
lc_cons_x TO lwa_sales_header_inx-sales_org,
lc_cons_x TO lwa_sales_header_inx-distr_chan,
lc_cons_x TO lwa_sales_header_inx-division,
lc_cons_x TO lwa_sales_header_inx-req_date_h,
lc_cons_x TO lwa_sales_header_inx-date_type,
lc_cons_x TO lwa_sales_header_inx-bill_block,
lc_cons_x TO lwa_sales_header_inx-ord_reason,
lc_cons_x TO lwa_sales_header_inx-purch_no_c,
lc_cons_x TO lwa_sales_header_inx-doc_date .


MOVE:<lf_output_tab>-itm_number TO lwa_sales_items_in-itm_number,
<lf_output_tab>-matnr TO lwa_sales_items_in-material,
<lf_output_tab>-batch TO lwa_sales_items_in-batch,
<lf_output_tab>-usage TO lwa_sales_items_in-usage_ind, <lf_output_tab>-plant TO lwa_sales_items_in-plant,
<lf_output_tab>-quant TO lwa_sales_items_in-target_qty , <lf_output_tab>-stloc TO lwa_sales_items_in-store_loc,
<lf_output_tab>-ounit TO lwa_sales_items_in-sales_unit,
<lf_output_tab>-shppt TO lwa_sales_items_in-ship_point,

<lf_output_tab>-itm_number TO lwa_sales_items_inx-itm_number,
lc_cons_i TO lwa_sales_items_inx-updateflag,
lc_cons_x TO lwa_sales_items_inx-material,
lc_cons_x TO lwa_sales_items_inx-batch,
lc_cons_x TO lwa_sales_items_inx-usage_ind, lc_cons_x TO lwa_sales_items_inx-plant,
lc_cons_x TO lwa_sales_items_inx-target_qty , lc_cons_x TO lwa_sales_items_inx-store_loc,
lc_cons_x TO lwa_sales_items_inx-sales_unit,
lc_cons_x TO lwa_sales_items_inx-ship_point.


MOVE <lf_output_tab>-itmct TO lwa_sales_items_in-item_categ.
MOVE lc_cons_x TO lwa_sales_items_inx-item_categ.

APPEND lwa_sales_items_in TO li_sales_items_in.
APPEND lwa_sales_items_inx TO li_sales_items_inx.

MOVE: lc_cons_ag TO lwa_sales_partners-partn_role,
<lf_output_tab>-sold2 TO lwa_sales_partners-partn_numb,

<lf_output_tab>-itm_number TO lwa_sales_schedules_in-itm_number ,
<lf_output_tab>-quant TO lwa_sales_schedules_in-req_qty ,

<lf_output_tab>-itm_number TO lwa_sales_schedules_inx-itm_number,
lc_cons_i TO lwa_sales_schedules_inx-updateflag,
lc_cons_x TO lwa_sales_schedules_inx-req_qty.

APPEND lwa_sales_partners TO li_sales_partners.
APPEND lwa_sales_schedules_in TO li_sales_schedules_in .
APPEND lwa_sales_schedules_inx TO li_sales_schedules_inx.

MOVE:<lf_output_tab>-itm_number TO lwa_sales_conditions_in-itm_number,
<lf_output_tab>-contp TO lwa_sales_conditions_in-cond_type,
<lf_output_tab>-contp TO lwa_sales_conditions_in-condtype,
<lf_output_tab>-value TO lwa_sales_conditions_in-cond_value,
<lf_output_tab>-value TO lwa_sales_conditions_in-condvalue,
<lf_output_tab>-pcurr TO lwa_sales_conditions_in-currency.


APPEND lwa_sales_conditions_in TO li_sales_conditions_in.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* SALESDOCUMENT =
sales_header_in = lwa_sales_header_in
sales_header_inx = lwa_sales_header_inx
* SENDER =
binary_relationshiptype = lc_bin_rltnshtp
int_number_assignment = lwa_int_number_assignment
IMPORTING
salesdocument_ex = lv_salesdocument
TABLES
return = li_salesorder_return
sales_items_in = li_sales_items_in
sales_items_inx = li_sales_items_inx
sales_partners = li_sales_partners
sales_schedules_in = li_sales_schedules_in
sales_schedules_inx = li_sales_schedules_inx
sales_conditions_in = li_sales_conditions_in
* SALES_CFGS_REF =
* SALES_CFGS_INST =
* SALES_CFGS_PART_OF =
* SALES_CFGS_VALUE =
* SALES_CFGS_BLOB =
* SALES_CCARD =
* KEY_TABLE =
.

Revert back in case of queries!
Regards,
Vasanth
Read only

Former Member
0 Likes
1,094

Hi Prasad,

Where to use BAPI_TRANSACTION_COMMIT.

within loop ( after a loop pass ) or outside loop.

regards

senthil kumar