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

Not able to create sales order using BAPI - BAPI_SALESORDER_CREATEFROMDAT2

Former Member
0 Likes
3,130

Hi Experts,

I am not able to create sales order . I am using BAPI - BAPI_SALESORDER_CREATEFROMDAT2

to create sales order .I am passing external sales order number to the parameter

SALESDOCUMENTIN.

I am getting following error.

"524 |Only quantity 1 EA is allowed (Item 00001"

Here EA is UOM(Unit of measurement).

Below is the sample program through which i am trying to create the sales order.

&----


*& Report ZSDC_SALES_TEST

*&

&----


*&

*&

&----


report zsdc_sales_test.

*DATA: wa_bapi_header TYPE bapisdhd1.

************************************************************************

  • Include Name - ZSDC_SALES_ORD_UPLOAD_TOP

  • Program Name - ZSDC_SALES_ORD_UPLOAD_1393

  • Program Title - Include for Data Declaration and selection screen

  • Created by - Lalitha W

  • Created on - 18-Nov-2008

  • Object ID - SD_C_1393_SALES_ORDER_UPLOAD

  • Request Id - SD3K905579

*----


  • Description - This is a common INCLUDE for data declarations and

*selection screen details.

*----


  • HISTORY

*----


  • Date |Developer |Req by | Description |Reference ID

*----


  • | | | |

  • | | | |

************************************************************************

************************************************************************

  • TYPE-POOLS

************************************************************************

*TYPE-POOLS: truxs, abap, slis.

************************************************************************

  • TABLES

************************************************************************

*TABLES: t100.

************************************************************************

  • TYPES

************************************************************************

types:begin of ty_header,

auart(4) type c, " Sales Order Type

vkorg(4) type c, " Sales Organization

vtweg(2) type c, " Distrubution Channel

spart(2) type c, " Division

kunnr_1(10) type c, " Sold to Party

kunnr_2(10) type c, " Ship to Party

augru(3) type c, " Order Reason

bstkd(35) type c, " PO Number

bstdk(10) type c, " PO Date

ketdat(10) type c, " Required Delivery Date

zterm(4) type c, " Payment Terms

inco1(3) type c, " Inco Terms -1

inco2(28) type c, " Inco Terms -2

prsdt(10) type c, " pricing date

waerk(5) type c, " Document Currency

vkbur(4) type c, " Sales Office

vkgrp(3) type c, " Sales group

pltyp(2) type c, " Price List type

kdgrp(2) type c, " Customer Group

bstkd_e(35) type c, " Ship-to-party PO number

submi(10) type c, " Collective Number

bname(35) type c, " Name

ihrez(12) type c, " Your Reference

kschl_1(4) type c, " Condition Type

kbetr_1(11) type c, " Amount

kschl_2(4) type c, " Condition Type

kbetr_2(11) type c, " Amount

kschl_3(4) type c, " Condition Type

kbetr_3(11) type c, " Amount

  • partner_1(25) TYPE c, " Partner(Bill To Party Number)

  • partner_2(25) TYPE c, " Partner(Payer Number)

  • partner_3(25) TYPE c, " Partner(Sales Responsible Number)

  • partner_4(25) TYPE c, " Partner(Order admin)

  • partner_5(25) TYPE c, " Partner(Contact person)

partner_1(10) type c, " Partner(Bill To Party Number)

partner_2(10) type c, " Partner(Payer Number)

partner_3(10) type c, " Partner(Sales Responsible Number)

partner_4(10) type c, " Partner(Order admin)

partner_5(10) type c, " Partner(Contact person)

tdspras_1(2) type c,

text_1(500) type c, " Text Before Items Z012

tdspras_2(2) type c,

text_2(500) type c, " Invocie Up Z034

tdspras_3(2) type c,

text_3(500) type c, " Invocie Down Z035

tdspras_4(2) type c,

text_4(500) type c, " Customer Reference Continue Z018

tdspras_5(2) type c,

text_5(500) type c, " Dispatch Marks/ Order Z019

tdspras_6(2) type c,

text_6(500) type c, " Ordered By Z003

tdspras_7(2) type c,

text_7(500) type c, " Sales Parameters Z002

kvgr1(3) type c, " Industry

kvgr2(3) type c, " customer BU

end of ty_header.

types: begin of ty_item,

bstkd(35) type c, " PO Number

bstdk(10) type c, " PO Date

bstkd_e(35) type c, " Ship-to-party PO number

posnr(6) type c, " POSTION NUMBER

matnr(18) type c, " Material Number

kwmeng(18) type c, " Order Quantity

pstyv(4) type c, " Sales doc. item categ

kursk(18) type c, " EXCHANGE RATE****

ffprf(8) type c, " DIP PROFILE

werks(4) type c, " Delivering Plant

vstel(4) type c, " SHIPPING POINT

lgort(4) type c, " STORAGE LOCATION

route(6) type c, " Route

kurrf(18) type c, " EXCHANGE RATE-FI

ntgew(18) type c, " Net Weight

brgew(18) type c, " Gross Weight

gewei(3) type c, " Weight Unit

prctr(10) type c, " profit center

abgrs(6) type c, " RESULT ANALYSIS KEY

kalsm_k(4) type c, " COSTING SHEET

kschl_1(4) type c, " Condition Type

kbetr_1(11) type c, " Amount

kschl_2(4) type c, " Condition Type

kbetr_2(11) type c, " Amount

kschl_3(4) type c, " Condition Type

kbetr_3(11) type c, " Amount

text_1(500) type c, " material Text 0001

tdspras_1(1) type c,

text_2(500) type c, " Pr Text 9001

tdspras_2(1) type c,

end of ty_item.

types: begin of ty_schedule_line,

bstkd(35) type c, "PO number

bstdk(10) type c, "PO date

bstkd_e(35) type c, "Ship-to-party PO number

posnr(6) type c, "sales doc.Item

etdat(10) type c, "Schedule line date

wmeng(2) type c, "Order Quantity

end of ty_schedule_line.

types: begin of ty_err ,

auart(4) type c, " Sales Order Type

vkorg(4) type c, " Sales Organization

vtweg(2) type c, " Distrubution Channel

spart(2) type c, " Division

kunnr_1(10) type c, " Sold to Party

kunnr_2(10) type c, " Ship to Party

augru(3) type c, " Order Reason

bstkd(35) type c, " PO Number

bstdk(10) type c, " PO Date

ketdat(10) type c, " Required Delivery Date

zterm(4) type c, " Payment Terms

inco1(3) type c, " Inco Terms -1

inco2(28) type c, " Inco Terms -2

prsdt(10) type c, " pricing date

waerk(5) type c, " Document Currency

vkbur(2) type c, " Sales Office

vkgrp(3) type c, " Sales group

pltyp(2) type c, " Price List type

kdgrp(2) type c, " Customer Group

bstkd_e(35) type c, " Ship-to-party PO number

submi(10) type c, " Collective Number

bname(35) type c, " Name

ihrez(12) type c, " Your Reference

kschl_1(4) type c, " Condition Type

kbetr_1(11) type c, " Amount

kschl_2(4) type c, " Condition Type

kbetr_2(11) type c, " Amount

kschl_3(4) type c, " Condition Type

kbetr_3(11) type c, " Amount

partner_1(25) type c, " Partner(Bill To Party Number)

partner_2(25) type c, " Partner(Payer Number)

partner_3(25) type c, " Partner(Sales Responsible Number)

partner_4(25) type c, " Partner(Order admin)

partner_5(25) type c, " Partner(Contact person)

tdspras_1(2) type c,

text_1(500) type c, " Text Before Items Z012

tdspras_2(2) type c,

text_2(500) type c, " Invocie Up Z034

tdspras_3(2) type c,

text_3(500) type c, " Invocie Down Z035

tdspras_4(2) type c,

text_4(500) type c, " Customer Reference Continue Z018

tdspras_5(2) type c,

text_5(500) type c, " Dispatch Marks/ Order Z019

tdspras_6(2) type c,

text_6(500) type c, " Ordered By Z003

tdspras_7(2) type c,

text_7(500) type c, " Sales Parameters Z002

kvgr1(3) type c, " Industry

kvgr2(3) type c, " customer BU

message(600) type c,

end of ty_err.

types: begin of ty_t685a,

kschl type kschl,

krech type krech,

end of ty_t685a.

************************************************************************

  • INTERNAL TABLES

************************************************************************

***header

data: g_krech_1(4) type c, " Calculation type for condition

g_krech_2(4) type c, " Calculation type for condition

g_krech_3(4) type c. " Calculation type for condition

  • g_krech_4(4) TYPE c, " Calculation type for condition

  • g_krech_5(4) TYPE c, " Calculation type for condition

  • g_krech_6(4) TYPE c, " Calculation type for condition

  • g_krech_7(4) TYPE c, " Calculation type for condition

  • g_krech_8(4) TYPE c, " Calculation type for condition

  • g_krech_9(4) TYPE c, " Calculation type for condition

  • g_krech_10(4) TYPE c, " Calculation type for condition

  • g_krech_11(4) TYPE c, " Calculation type for condition

  • g_krech_12(4) TYPE c, " Calculation type for condition

  • g_krech_13(4) TYPE c, " Calculation type for condition

  • g_krech_14(4) TYPE c, " Calculation type for condition

  • g_krech_15(4) TYPE c, " Calculation type for condition

  • g_krech_16(4) TYPE c, " Calculation type for condition

  • g_krech_17(4) TYPE c, " Calculation type for condition

  • g_krech_18(4) TYPE c, " Calculation type for condition

  • g_krech_19(4) TYPE c, " Calculation type for condition

  • g_krech_20(4) TYPE c. " Calculation type for condition

        • Items

data: g_krech_item_1(4) type c, " Calculation type for condition

g_krech_item_2(4) type c, " Calculation type for condition

g_krech_item_3(4) type c. " Calculation type for condition

  • g_krech_item_4(4) TYPE c, " Calculation type for condition

  • g_krech_item_5(4) TYPE c, " Calculation type for condition

  • g_krech_item_6(4) TYPE c, " Calculation type for condition

  • g_krech_item_7(4) TYPE c, " Calculation type for condition

  • g_krech_item_8(4) TYPE c, " Calculation type for condition

  • g_krech_item_9(4) TYPE c, " Calculation type for condition

  • g_krech_item_10(4) TYPE c, " Calculation type for condition

  • g_krech_item_11(4) TYPE c, " Calculation type for condition

  • g_krech_item_12(4) TYPE c, " Calculation type for condition

  • g_krech_item_13(4) TYPE c, " Calculation type for condition

  • g_krech_item_14(4) TYPE c, " Calculation type for condition

  • g_krech_item_15(4) TYPE c, " Calculation type for condition

  • g_krech_item_16(4) TYPE c. " Calculation type for condition

data: it_t685a type standard table of ty_t685a.

data: wa_bapi_header type bapisdhd1,

  • wa_bapi_headerx TYPE bapisdhd1x,

it_bapi_item type table of bapisditm,

  • it_bapi_itemx TYPE TABLE OF bapisditmx,

it_bapi_cond type table of bapicond,

  • it_bapi_condx TYPE TABLE OF bapicondx,

it_bapi_partner type table of bapiparnr,

it_bapi_shdl type table of bapischdl,

  • it_bapi_shdlx TYPE TABLE OF bapischdlx,

  • it_bapi_order_text type TABLE OF BAPISDTEXT,

it_bapireturn type table of bapiret2.

data: wa_bapi_item like line of it_bapi_item,

  • wa_bapi_itemx LIKE LINE OF it_bapi_itemx,

wa_bapi_cond like line of it_bapi_cond,

  • wa_bapi_condx LIKE LINE OF it_bapi_condx,

wa_bapi_partner like line of it_bapi_partner,

wa_bapi_shdl like line of it_bapi_shdl,

  • wa_bapi_shdlx LIKE LINE OF it_bapi_shdlx,

  • wa_bapi_order_text like LINE OF it_bapi_order_text,

wa_bapireturn like line of it_bapireturn.

*DATA: zmode(1) VALUE 'N'.

data: it_header type standard table of ty_header.

*DATA: it_temp_header TYPE STANDARD TABLE OF ty_header.

data: it_item type standard table of ty_item.

*DATA: it_temp_item TYPE STANDARD TABLE OF ty_item.

data: it_err type standard table of ty_err.

data: it_fline1 type standard table of tline,

wa_fline1 type tline.

data: it_thead1 type thead.

data: it_fline2 type standard table of tline,

wa_fline2 type tline.

data: it_thead2 type thead.

data: it_fline3 type standard table of tline,

wa_fline3 type tline.

data: it_thead3 type thead.

data: it_fline4 type standard table of tline,

wa_fline4 type tline.

data: it_thead4 type thead.

data: it_fline5 type standard table of tline,

wa_fline5 type tline.

data: it_thead5 type thead.

data: wa_header like line of it_header,

wa_item like line of it_item,

wa_err type ty_err,

  • wa_bill LIKE LINE OF it_bill,

  • wa_bill1 LIKE LINE OF it_bill,

wa_iterr like line of it_err,

wa_t685a like line of it_t685a.

  • wa_bill_item TYPE ty_bill_item.

data: it_schedule_line type standard table of ty_schedule_line,

wa_schedule_line type ty_schedule_line.

data: sales_order_no type bapivbeln-vbeln.

data: ext_sales_order_no type bapivbeln-vbeln.

  • Variable to be used to separate the fields which are concatenated by a

  • runtime character

*DATA: g_tabchar(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.

*DATA: wa_truxs_t_text_data TYPE truxs_t_text_data.

*DATA: g_filename TYPE string,

  • g_path TYPE string,

  • g_fullpath TYPE string,

  • g_user_action TYPE i,

  • g_file_encoding TYPE abap_encoding.

*DATA : g_text(8192),

data : g_mstring1(100) type c,

g_mstring2(100) type c,

g_mstring3(100) type c,

g_mstring4(100) type c,

g_mstring5(100) type c.

data: g_count1 type ebelp,

g_str_count1(6) type c.

data: g_count type ebelp,

g_str_count(6) type c.

*DATA: f_subrc LIKE sy-subrc,

  • f_subrc1 LIKE sy-subrc,

  • f_error(500) TYPE c,

  • item1(27) TYPE c,

  • item2(27) TYPE c,

  • item3(27) TYPE c,

  • item4(27) TYPE c,

  • i TYPE ekpo-ebelp.

*DATA: g_billplan_header TYPE c,

  • g_billplan_item TYPE c.

data : g_external_so type vbak-vbeln. "SO

************************************************************************

  • SELECTION-SCREEN

************************************************************************

selection-screen begin of block frame1 with frame title text-001 .

parameters:p_file1 type rlgrap-filename, "OBLIGATORY, "Header data.

p_file2 type rlgrap-filename, "OBLIGATORY, "Item Data.

p_file3 type rlgrap-filename, "Schedule line.

p_file4 type rlgrap-filename ."OBLIGATORY. "Error file.

selection-screen end of block frame1.

*********************************************************

start-of-selection.

wa_bapi_header-doc_type = 'Z0MX'. "order type

wa_bapi_header-sales_org = '0130'."sales org

wa_bapi_header-distr_chan = '13'. "distr channel

wa_bapi_header-division = '13'. "division

  • Old code from copied program

  • wa_bapi_header-purch_no_s = wa_header-kunnr_2. " Ship to party

  • New code as required in Finland project

  • We are using to Header ->Order Tab -> Ship to Party -> Purchase order no (BSTKD_E) to store Old legacy SO number

wa_bapi_header-purch_no_s = 'MX100443'. "External SO i.e Old legacey SO number

wa_bapi_header-ref_1_s = '0000666666'. "Sold to party

  • wa_bapi_header-ord_reason = wa_header-augru.

*

wa_bapi_header-purch_no_c = 'ddr1234'. " PO number

wa_bapi_header-purch_date = sy-datum. " PO date

wa_bapi_header-req_date_h = sy-datum. " Required Delivery Date

wa_bapi_header-pmnttrms = '01'. " Payment Terms

  • wa_bapi_header-incoterms1 = wa_header-inco1.

  • wa_bapi_header-incoterms2 = wa_header-inco2.

    • wa_bapi_header-price_date = wa_header-prsdt. " Pricing date

    • wa_bapi_header-currency = wa_header-waerk. " Document Currency

    • wa_bapi_header-sales_grp = wa_header-vkgrp. " Sales group

    • wa_bapi_header-price_list = wa_header-pltyp. " Price list type

    • wa_bapi_header-cust_group = wa_header-kdgrp. " Cust Group

  • wa_bapi_header-ship_type = wa_header-vsart. " Shipping Type

  • wa_bapi_header-purch_no_s = wa_header-bstkd_e. " Ship-to-party po number

  • wa_bapi_header-collect_no = wa_header-submi. " Collective No.

    • wa_bapi_header-name = wa_header-bname. " Name

    • wa_bapi_header-ref_1 = wa_header-ihrez. " Your Reference

    • wa_bapi_header-cust_grp1 = wa_header-kvgr1. " Industry

    • wa_bapi_header-cust_grp2 = wa_header-kvgr2. " Customer BU

*ENDFORM. " f_header

  • IF wa_header-partner_1 IS NOT INITIAL.

wa_bapi_partner-partn_role = 'AG'.

wa_bapi_partner-partn_numb = '0000666666'.

wa_bapi_partner-itm_number = '000000'.

append wa_bapi_partner to it_bapi_partner.

clear wa_bapi_partner.

  • ENDIF.

call function 'CONVERSION_EXIT_ALPHA_INPUT'

exporting

input = wa_header-partner_2

importing

output = wa_header-partner_2.

  • IF wa_header-partner_2 IS NOT INITIAL.

wa_bapi_partner-partn_role = 'WE'.

wa_bapi_partner-partn_numb = '0000666666'.

wa_bapi_partner-itm_number = '000000'.

append wa_bapi_partner to it_bapi_partner.

clear wa_bapi_partner.

  • ENDIF.

perform f_item.

data : order_items_inx type table of bapisditmx with header line.

order_items_inx-material = 'X'. "

order_items_inx-target_qty = 'X'. "

order_items_inx-comp_quant = 'X'. "

order_items_inx-trgqty_den = 'X'.

order_items_inx-rnddlv_qty = 'X'.

order_items_inx-updateflag = 'I'.

order_items_inx-target_qu = 'X'.

order_items_inx-plant = 'X'. "

append order_items_inx.

call function 'BAPI_SALESORDER_CREATEFROMDAT2'

exporting

salesdocumentin = 'MX11111152'

order_header_in = wa_bapi_header

  • order_header_inx = wa_bapi_headerx

importing

salesdocument = sales_order_no

tables

return = it_bapireturn

order_items_in = it_bapi_item

order_items_inx = order_items_inx

order_partners = it_bapi_partner

  • order_conditions_in = it_bapi_cond.

.

if sy-subrc is initial.

commit work.

endif.

&----


*& Form f_item

&----


  • text

----


form f_item .

call function 'CONVERSION_EXIT_ALPHA_INPUT'

exporting

input = wa_item-posnr

importing

output = wa_item-posnr.

wa_item-posnr = '000010'.

  • IF sy-subrc EQ 0. "IS INITIAL.

move wa_item-posnr to g_str_count."commented out by shakti

  • ENDIF.

wa_bapi_item-itm_number = wa_item-posnr. " Line item

  • WA_BAPI_ITEM-PO_ITM_NO = WA_ITEM-EBELP.

  • wa_bapi_item-division = wa_item-spart.

wa_bapi_item-purch_no_c = 'ddr1234'. " po number

wa_bapi_item-purch_date = sy-datum. " po date

wa_bapi_item-purch_no_s = 'MX11111112'. " Ship-to-party po number

**

wa_item-matnr = 'MAXIMO_SERVICE'.

call function 'CONVERSION_EXIT_MATN1_INPUT'

exporting

input = wa_item-matnr

importing

output = wa_item-matnr

exceptions

length_error = 1

others = 2.

if sy-subrc is initial.

wa_bapi_item-material = wa_item-matnr. "material

endif.

wa_bapi_item-target_qty = '1'. " Order qty

wa_bapi_item-comp_quant = '1'.

wa_bapi_item-target_qu = 'EA'.

wa_bapi_item-fixed_quan = '1'.

  • wa_bapi_item-comp_quant = wa_item-kwmeng.

  • wa_bapi_item-trgqty_den = '1'.

  • wa_bapi_item-rnddlv_qty = wa_item-kwmeng.

  • CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

  • EXPORTING

  • input = wa_item-ps_psp_pnr

  • IMPORTING

  • output = wa_item-ps_psp_pnr.

*

  • IF sy-subrc = 0.

*

  • wa_bapi_item-wbs_elem = wa_item-ps_psp_pnr.

*

  • ENDIF.

wa_bapi_item-item_categ = 'ZMAX'.

    • wa_bapi_item-ex_rate_fi = wa_item-kurrf.

    • wa_bapi_item-dli_profil = wa_item-ffprf. " Dynamic item processor profile

**

    • wa_bapi_item-route = wa_item-route. " route

    • wa_bapi_item-exchg_rate = wa_item-kursk.

**

wa_bapi_item-plant = '2090'. " Plant

wa_bapi_item-ship_point = 'FN11'. " Shipping point

    • wa_bapi_item-store_loc = wa_item-lgort. " stg loc

    • REPLACE ALL OCCURRENCES OF ',' IN wa_item-ntgew WITH '.'.

    • REPLACE ALL OCCURRENCES OF ',' IN wa_item-brgew WITH '.'.

**

    • wa_bapi_item-net_weight = wa_item-ntgew. "

    • wa_bapi_item-gross_wght = wa_item-brgew. "

call function 'CONVERSION_EXIT_CUNIT_INPUT'

exporting

input = wa_item-gewei

language = sy-langu

importing

output = wa_item-gewei.

  • EXCEPTIONS

  • unit_not_found = 1

  • OTHERS = 2.

  • IF sy-subrc <> 0.

*

  • ENDIF.

wa_bapi_item-untof_wght = 'KG'. " weight unit

replace all occurrences of ',' in wa_item-kursk with '.'.

replace all occurrences of ',' in wa_item-kurrf with '.'.

    • wa_bapi_item-profit_ctr = wa_item-prctr. " Profit center

        • wa_bapi_item-resanalkey = wa_item-abgrs. " RESULT ANALYSIS KEY

    • wa_bapi_item-cstg_sheet = wa_item-kalsm_k. " COSTING SHEET

append wa_bapi_item to it_bapi_item.

endform. " f_item

Thanks & regards,

Chetan

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,750

see the following to create sales order:-

&----


*& Report ZSALESORDER

*&

&----


*&DEVELOPED BY JANI KRUPA 4.10.2008

*&

&----


REPORT ZSALESORDER.

  • Parameters

  • Sales document type

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text FOR FIELD p_auart.

PARAMETERS: p_auart TYPE auart OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Sales organization

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_vkorg.

PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Distribution channel

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_vtweg.

PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Division.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_spart.

PARAMETERS: p_spart TYPE spart OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SKIP 1.

  • Sold-to

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text4 FOR FIELD p_sold.

PARAMETERS: p_sold TYPE kunnr OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Ship-to

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text5 FOR FIELD p_ship.

PARAMETERS: p_ship TYPE kunnr OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SKIP 1.

  • Material

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text6 FOR FIELD p_matnr.

PARAMETERS: p_matnr TYPE matnr OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Quantity.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text7 FOR FIELD p_menge.

PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Plant

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text9 FOR FIELD p_plant.

PARAMETERS: p_plant TYPE werks_d .

SELECTION-SCREEN END OF LINE.

  • Complete Deliver

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text10 FOR FIELD p_autlf.

PARAMETERS: p_autlf TYPE autlf DEFAULT 'X'.

SELECTION-SCREEN END OF LINE.

  • Data declarations.

DATA: v_vbeln LIKE vbak-vbeln.

DATA: header LIKE bapisdhead1.

DATA: headerx LIKE bapisdhead1x.

DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.

DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.

DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.

DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx

WITH HEADER LINE.

DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl

WITH HEADER LINE.

DATA: lt_schedules_ink TYPE STANDARD TABLE OF bapisdhead1

WITH HEADER LINE.

  • Initialization.

INITIALIZATION.

v_text = 'Order type'.

v_text1 = 'Sales Org'.

v_text2 = 'Distribution channel'.

v_text3 = 'Division'.

v_text4 = 'Sold-to'.

v_text5 = 'Ship-to'.

v_text6 = 'Material'.

v_text7 = 'Quantity'.

v_text9 = 'Plant'.

v_text10 = 'Complete delivery'.

  • Start-of-selection.

START-OF-SELECTION.

  • Header data

  • Sales document type

header-doc_type = p_auart.

headerx-doc_type = 'X'.

  • Sales organization

header-sales_org = p_vkorg.

headerx-sales_org = 'X'.

  • Distribution channel

header-distr_chan = p_vtweg.

headerx-distr_chan = 'X'.

  • Division

header-division = p_spart.

headerx-division = 'X'.

headerx-updateflag = 'I'.

*Complete delivery

header-COMPL_DLV = p_autlf.

header-COMPL_DLV = 'X'.

  • Partner data

  • Sold to

partner-partn_role = 'AG'.

partner-partn_numb = p_sold.

APPEND partner.

  • Ship to

partner-partn_role = 'WE'.

partner-partn_numb = p_ship.

APPEND partner.

  • ITEM DATA

itemx-updateflag = 'I'.

  • Line item number.

item-itm_number = '000010'.

itemx-itm_number = 'X'.

  • Material

item-material = p_matnr.

itemx-material = 'X'.

  • Plant

item-plant = p_plant.

itemx-plant = 'X'.

  • Quantity

item-target_qty = p_menge.

itemx-target_qty = 'X'.

  • item category

itemx-ITEM_CATEG = 'X'.

APPEND item.

APPEND itemx.

  • ITEM DATA

itemx-updateflag = 'I'.

  • Line item number.

item-itm_number = '000020'.

itemx-itm_number = 'X'.

  • Material

item-material = p_matnr.

itemx-material = 'X'.

  • Plant

item-plant = p_plant.

itemx-plant = 'X'.

  • Quantity

item-target_qty = p_menge.

itemx-target_qty = 'X'.

APPEND item.

APPEND itemx.

  • Fill schedule lines

lt_schedules_in-itm_number = '000010'.

lt_schedules_in-sched_line = '0001'.

lt_schedules_in-req_qty = p_menge.

APPEND lt_schedules_in.

  • Fill schedule line flags

lt_schedules_inx-itm_number = '000010'.

lt_schedules_inx-sched_line = '0001'.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

  • Fill schedule lines

lt_schedules_in-itm_number = '000020'.

lt_schedules_in-sched_line = '0001'.

lt_schedules_in-req_qty = p_menge.

APPEND lt_schedules_in.

  • Fill schedule line flags

lt_schedules_inx-itm_number = '000020'.

lt_schedules_inx-sched_line = '0001'.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

  • Call the BAPI to create the sales order.

CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'

EXPORTING

sales_header_in = header

sales_header_inx = headerx

IMPORTING

salesdocument_ex = v_vbeln

TABLES

return = return

sales_items_in = item

sales_items_inx = itemx

sales_schedules_in = lt_schedules_in

sales_schedules_inx = lt_schedules_inx

sales_partners = partner.

  • Check the return table.

LOOP AT return WHERE type = 'E' OR type = 'A'.

EXIT.

ENDLOOP.

IF sy-subrc = 0.

WRITE: / 'Error in creating document'.

ELSE.

  • Commit the work.

COMMIT WORK AND WAIT.

WRITE: / 'Document ', v_vbeln, ' created'.

ENDIF.

3 REPLIES 3
Read only

Former Member
0 Likes
1,750

use FM:

BAPI_SALESORDER_CREATEFROMDATA

Read only

Former Member
0 Likes
1,750

hi

try this code

Order header

l_order_header-doc_type = 'ZQBV'.

l_order_header-distr_chan = '10'.

l_order_header-division = '00'.

if g_qals-werk eq '1100'.

l_order_header-sales_org = '1000'.

else.

if g_qals-werk eq '3100'.

l_order_header-sales_org = '3000'.

else.

message i001(00) with text-005.

endif.

endif.

l_order_header-purch_no_c = g_qals-prueflos. " <= lot

Partner data

l_order_partners-partn_role = 'AG'.

l_order_partners-partn_numb = g_qals-kunnr.

append l_order_partners to it_order_partners.

Order items => only one

l_order_items-itm_number = 10.

l_order_items-material = g_qals-matnr.

l_order_items-target_qty = 1.

append l_order_items to it_order_items.

Schedules for quantity

l_order_schdl-itm_number = 10.

l_order_schdl-req_qty = 1. " <= only 1 !

append l_order_schdl to it_order_schdl.

Conditions for value

l_order_conditions-itm_number = 10.

l_order_conditions-cond_type = 'PR00'.

l_order_conditions-cond_value = g_effort_sum.

l_order_conditions-currency = g_effort_unit.

append l_order_conditions to it_order_conditions.

BAPI to create sales order

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

SALESDOCUMENTIN =

ORDER_HEADER_IN = l_order_header

ORDER_HEADER_INX =

SENDER =

BINARY_RELATIONSHIPTYPE =

INT_NUMBER_ASSIGNMENT =

BEHAVE_WHEN_ERROR =

LOGIC_SWITCH =

TESTRUN =

CONVERT = ' '

IMPORTING

SALESDOCUMENT = l_salesdocument

TABLES

RETURN = it_return

ORDER_ITEMS_IN = it_order_items

ORDER_ITEMS_INX =

ORDER_PARTNERS = it_order_partners

ORDER_SCHEDULES_IN = it_order_schdl

ORDER_SCHEDULES_INX =

ORDER_CONDITIONS_IN = it_order_conditions

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 =

.

if not l_salesdocument is initial.

order successfully created

message i001(00) with text-001 l_salesdocument.

endif.

endif.

hope this helps

regards

Aakash Banga

Read only

Former Member
0 Likes
1,751

see the following to create sales order:-

&----


*& Report ZSALESORDER

*&

&----


*&DEVELOPED BY JANI KRUPA 4.10.2008

*&

&----


REPORT ZSALESORDER.

  • Parameters

  • Sales document type

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text FOR FIELD p_auart.

PARAMETERS: p_auart TYPE auart OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Sales organization

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_vkorg.

PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Distribution channel

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_vtweg.

PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Division.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_spart.

PARAMETERS: p_spart TYPE spart OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SKIP 1.

  • Sold-to

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text4 FOR FIELD p_sold.

PARAMETERS: p_sold TYPE kunnr OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Ship-to

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text5 FOR FIELD p_ship.

PARAMETERS: p_ship TYPE kunnr OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SKIP 1.

  • Material

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text6 FOR FIELD p_matnr.

PARAMETERS: p_matnr TYPE matnr OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Quantity.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text7 FOR FIELD p_menge.

PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.

SELECTION-SCREEN END OF LINE.

  • Plant

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text9 FOR FIELD p_plant.

PARAMETERS: p_plant TYPE werks_d .

SELECTION-SCREEN END OF LINE.

  • Complete Deliver

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 2(20) v_text10 FOR FIELD p_autlf.

PARAMETERS: p_autlf TYPE autlf DEFAULT 'X'.

SELECTION-SCREEN END OF LINE.

  • Data declarations.

DATA: v_vbeln LIKE vbak-vbeln.

DATA: header LIKE bapisdhead1.

DATA: headerx LIKE bapisdhead1x.

DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.

DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.

DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.

DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx

WITH HEADER LINE.

DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl

WITH HEADER LINE.

DATA: lt_schedules_ink TYPE STANDARD TABLE OF bapisdhead1

WITH HEADER LINE.

  • Initialization.

INITIALIZATION.

v_text = 'Order type'.

v_text1 = 'Sales Org'.

v_text2 = 'Distribution channel'.

v_text3 = 'Division'.

v_text4 = 'Sold-to'.

v_text5 = 'Ship-to'.

v_text6 = 'Material'.

v_text7 = 'Quantity'.

v_text9 = 'Plant'.

v_text10 = 'Complete delivery'.

  • Start-of-selection.

START-OF-SELECTION.

  • Header data

  • Sales document type

header-doc_type = p_auart.

headerx-doc_type = 'X'.

  • Sales organization

header-sales_org = p_vkorg.

headerx-sales_org = 'X'.

  • Distribution channel

header-distr_chan = p_vtweg.

headerx-distr_chan = 'X'.

  • Division

header-division = p_spart.

headerx-division = 'X'.

headerx-updateflag = 'I'.

*Complete delivery

header-COMPL_DLV = p_autlf.

header-COMPL_DLV = 'X'.

  • Partner data

  • Sold to

partner-partn_role = 'AG'.

partner-partn_numb = p_sold.

APPEND partner.

  • Ship to

partner-partn_role = 'WE'.

partner-partn_numb = p_ship.

APPEND partner.

  • ITEM DATA

itemx-updateflag = 'I'.

  • Line item number.

item-itm_number = '000010'.

itemx-itm_number = 'X'.

  • Material

item-material = p_matnr.

itemx-material = 'X'.

  • Plant

item-plant = p_plant.

itemx-plant = 'X'.

  • Quantity

item-target_qty = p_menge.

itemx-target_qty = 'X'.

  • item category

itemx-ITEM_CATEG = 'X'.

APPEND item.

APPEND itemx.

  • ITEM DATA

itemx-updateflag = 'I'.

  • Line item number.

item-itm_number = '000020'.

itemx-itm_number = 'X'.

  • Material

item-material = p_matnr.

itemx-material = 'X'.

  • Plant

item-plant = p_plant.

itemx-plant = 'X'.

  • Quantity

item-target_qty = p_menge.

itemx-target_qty = 'X'.

APPEND item.

APPEND itemx.

  • Fill schedule lines

lt_schedules_in-itm_number = '000010'.

lt_schedules_in-sched_line = '0001'.

lt_schedules_in-req_qty = p_menge.

APPEND lt_schedules_in.

  • Fill schedule line flags

lt_schedules_inx-itm_number = '000010'.

lt_schedules_inx-sched_line = '0001'.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

  • Fill schedule lines

lt_schedules_in-itm_number = '000020'.

lt_schedules_in-sched_line = '0001'.

lt_schedules_in-req_qty = p_menge.

APPEND lt_schedules_in.

  • Fill schedule line flags

lt_schedules_inx-itm_number = '000020'.

lt_schedules_inx-sched_line = '0001'.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

  • Call the BAPI to create the sales order.

CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'

EXPORTING

sales_header_in = header

sales_header_inx = headerx

IMPORTING

salesdocument_ex = v_vbeln

TABLES

return = return

sales_items_in = item

sales_items_inx = itemx

sales_schedules_in = lt_schedules_in

sales_schedules_inx = lt_schedules_inx

sales_partners = partner.

  • Check the return table.

LOOP AT return WHERE type = 'E' OR type = 'A'.

EXIT.

ENDLOOP.

IF sy-subrc = 0.

WRITE: / 'Error in creating document'.

ELSE.

  • Commit the work.

COMMIT WORK AND WAIT.

WRITE: / 'Document ', v_vbeln, ' created'.

ENDIF.