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 Sales Order

Former Member
0 Likes
678

hi experts,

iam new to this forum.

i have completed ABAP and now learning XAPPS -> Bapi.

I want to how to <u>create a Bapi to Create a Sales Order (VD01) .</u>

please guide me as i am a beginner.

bye

hi experts,

iam new to this forum.

i have completed ABAP and now learning XAPPS -> Bapi.

I want to how to <u>create a Bapi to Create a Sales Order (VD01) .</u>

please guide me as i am a beginner.

bye

3 REPLIES 3
Read only

uwe_schieferstein
Active Contributor
0 Likes
643

Hello Satish

There is absolutely no need to create a BAPI for such fundamental business objects with SAP because they are already there:

<b>BAPI_SALESORDER_CREATEFROMDAT2</b>

If you run into trouble using this BAPI with certain <i>document types</i> you can use the underlying RFC-enabled function module <b>SD_SALESDOCUMENT_CREATE</b>.

Regards

Uwe

Read only

Former Member
0 Likes
643

Hi,

You can use the BAPI BAPI_SALESDOCU_CREATEFROMDATA1

Check this sample code..


PARAMETERS: p_auart TYPE auart OBLIGATORY.
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
PARAMETERS: p_spart TYPE vtweg OBLIGATORY.

PARAMETERS: p_sold TYPE kunnr OBLIGATORY.
PARAMETERS: p_ship TYPE kunnr OBLIGATORY.

*ITEM
PARAMETERS: p_matnr TYPE matnr OBLIGATORY.
PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.
PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
PARAMETERS: p_itcat TYPE pstyv   OBLIGATORY.

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

* HEADER DATA
header-doc_type = p_auart.
headerx-doc_type = 'X'.

header-sales_org = p_vkorg.
headerx-sales_org = 'X'.

header-distr_chan  = p_vtweg.
headerx-distr_chan = 'X'.

header-division = p_spart.
headerx-division = 'X'.

headerx-updateflag = 'I'.

* PARTNER DATA
partner-partn_role = 'AG'.
partner-partn_numb = p_sold.
APPEND partner.

partner-partn_role = 'WE'.
partner-partn_numb = p_ship.
APPEND partner.

* ITEM DATA
itemx-updateflag = 'I'.

item-itm_number = '000010'.
itemx-itm_number = 'X'.


item-material = p_matnr.
itemx-material = 'X'.

item-plant    = p_plant.
itemx-plant   = 'X'.

item-target_qty = p_menge.
itemx-target_qty = 'X'.

item-target_qu = 'EA'.
itemx-target_qu = 'X'.

item-item_categ = p_itcat.
itemx-item_categ = '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.

* Call the BAPI
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 WORK AND WAIT.

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

ENDIF.

Thanks

Naren

Read only

Former Member
0 Likes
643

Hi Satish,

Here are some links for BAPI and code for sales order creation.

You can get good help form the following links,

BAPI-step by step

http://www.sapgenie.com/abap/bapi/example.htm

list of all bapis

http://www.planetsap.com/LIST_ALL_BAPIs.htm

for BAPI's

http://www.sappoint.com/abap/bapiintro.pdf

http://www.sappoint.com/abap/bapiprg.pdf

http://www.sappoint.com/abap/bapiactx.pdf

http://www.sappoint.com/abap/bapilst.pdf

http://www.sappoint.com/abap/bapiexer.pdf

http://service.sap.com/ale

http://service.sap.com/bapi

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf

http://www.planetsap.com/Bapi_main_page.htm

http://www.topxml.com/sap/sap_idoc_xml.asp

http://www.sapdevelopment.co.uk/

http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf

Also refer to the following links..

www.sappoint.com/abap/bapiintro.pdf

www.sap-img.com/bapi.htm

www.sap-img.com/abap/bapi-conventions.htm

www.planetsap.com/Bapi_main_page.htm

www.sapgenie.com/abap/bapi/index.htm

http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.htl

http://techrepublic.com.com/5100-6329-1051160.html#

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

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

http://www.sappoint.com/abap/bapiintro.pdf

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

ex:

BAPI_SALESORDER_CREATEFROMDAT1

BAPI_SALESORDER_CREATEFROMDAT2

ex:

REPORT ZBAPI_SALES.

DATA: order_header_in type bapisdhd1.
DATA: order_partners type table of BAPIPARNR.
data: return type table of BAPIRET2.
data: errmsg type BAPIRET2.

PARAMETER: p_vbeln LIKE vbrk-vbeln OBLIGATORY,
p_kunnr LIKE kuagv-kunnr OBLIGATORY.

START-OF-SELECTION.
order_header_in-doc_type = 'OR'.
order_header_in-sales_org = '1000'.
order_header_in-distr_chan = '30'.
order_header_in-division = '00'.
order_header_in-ref_doc = p_vbeln.
ORDER_HEADER_IN-REFDOCTYPE = 'ZQSR'.
ORDER_HEADER_IN-SD_DOC_CAT = 'C'.
CLEAR order_partners.
order_partners-partn_numb = p_kunnr.
order_partners-partn_role = 'SP'.
APPEND order_partners.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* SALESDOCUMENTIN =
order_header_in = order_header_in
* ORDER_HEADER_INX =
* SENDER =
* BINARY_RELATIONSHIPTYPE =
* INT_NUMBER_ASSIGNMENT =
* BEHAVE_WHEN_ERROR =
* LOGIC_SWITCH =
* TESTRUN =
* CONVERT = ' '
IMPORTING
salesdocument = sd_vbeln
TABLES
RETURN = return
* ORDER_ITEMS_IN =
* ORDER_ITEMS_INX =
order_partners = order_partners
* 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 =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

Reward points if useful,

Aleem.