‎2007 Oct 05 10:11 AM
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
‎2007 Oct 05 10:14 AM
Hi,
Go to Documentation of this BAPI from SE37.
Use BAPI_TRNSACTION_COMMIT. To commit the work after your BAPI call.
Reward if useful!
‎2007 Oct 05 10:15 AM
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
‎2007 Oct 05 10:41 AM
Hi Prasad,
Where to use BAPI_TRANSACTION_COMMIT.
within loop ( after a loop pass ) or outside loop.
regards
senthil kumar